cmod.ify

[LINUX] 서버 구축 및 데이터베이스 설치 가이드 본문

BASIC/LINUX

[LINUX] 서버 구축 및 데이터베이스 설치 가이드

modifyC 2026. 1. 15. 18:35
728x90
반응형

1. 원격 접속 서버 (Telnet & SSH)

멀리 떨어진 컴퓨터에 접속하여 명령어를 실행할 수 있는 서버 환경임.

Telnet (텔넷)

  • 개요: 텍스트 기반 원격 접속 프로토콜 (TCP 23번 포트).
  • 특징: 설치가 쉽고 리소스를 적게 차지하지만, 데이터가 암호화되지 않는 평문 전송 방식이라 보안에 취약함.
  • 활용: 오늘날에는 보안 문제로 SSH가 대체했으나, 엔지니어들이 특정 포트의 개방 여부를 확인하는 용도로 가끔 사용함. (telnet [IP] [포트])

SSH (Secure Shell)

  • 개요: 보안이 강화된 원격 접속 프로토콜 (TCP 22번 포트). 모든 통신 내용을 암호화함.
  • 서버 설치 및 구동:
    • 설치: sudo apt install openssh-server
    • 실행: sudo systemctl start ssh (부팅 시 자동 시작: enable)
    • 방화벽 허용: sudo ufw allow 22/tcp
  • SSH 키 방식 접속 (보안 권장):
    1. 키 생성: ssh-keygen -t rsa -b 4096 (엔터 3번)
    2. 공개키 서버 전송: ssh-copy-id [사용자명]@[IP주소]
    3. 설정 완료 시 비밀번호 입력 없이 안전하게 접속 가능함.

2. 파일 전송 (SCP)

SSH 프로토콜을 기반으로 네트워크를 통해 파일을 안전하게 복사하는 명령어임.

  • 기본 문법: scp [옵션] [원본] [대상]
  • 로컬 -> 서버 전송: scp test.txt 유저@IP:/경로
  • 디렉토리 전송: -r 옵션 사용 (scp -r ./sample 유저@IP:/경로)
  • 서버 -> 로컬 다운로드: scp 유저@IP:/서버경로 /로컬경로

3. MariaDB (RDBMS)

관계형 데이터베이스 관리 시스템으로 MySQL과 높은 호환성을 가짐.

  • 설치 및 실행: sudo apt install mariadb-server 후 서비스 start 및 enable 수행.
  • 계정 설정:
    • root 비번 생성: sudo mysqladmin -u root password '비밀번호'
    • 유저 생성: CREATE USER '계정'@'%' IDENTIFIED BY '비밀번호';
    • 권한 부여: GRANT ALL PRIVILEGES ON *.* TO '계정'@'%';
  • 외부 접속 허용:
    • 설정 파일(/etc/mysql/mariadb.conf.d/50-server.cnf)에서 bind-address를 0.0.0.0으로 수정함.
    • 방화벽 허용: sudo ufw allow 3306/tcp

4. MongoDB (NoSQL)

문서 지향적(Document-oriented) 데이터베이스임.

  • 설치: GPG 키 등록 및 저장소 리스트 추가 후 apt install mongodb-org로 설치함.
# MongoDB 공개 GPG 키 등록
curl -fsSL https://www.mongodb.org/static/pgp/server-7.0.asc | \
sudo gpg --dearmor -o /usr/share/keyrings/mongodb-server-7.0.gpg

#저장소리스트추가
echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/7.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list
  • 오류 해결: 서비스 실행 시 권한 문제가 생기면 /var/lib/mongodb와 /var/log/mongodb의 소유권을 mongodb:mongodb로 변경해줘야 함.
  • 접속 확인 mongosh
db.createUser({
  user: "hapi",
  pwd: "3556",
  roles: [
    { role: "userAdminAnyDatabase", db: "admin" },
    "readWriteAnyDatabase"
  ]
})
  • 보안 설정 (인증 모드):
    1. 관리자 계정 생성: db.createUser(...)
    2. 설정 파일(/etc/mongod.conf)에서 security: authorization: enabled 추가.
  • 외부 접속: 포트 27017 방화벽 해제 후 mongodb://계정:비밀번호@IP:포트/ 형식으로 접속함.

 


5. Redis (In-Memory DB)

키-값(Key-Value) 구조의 고성능 인메모리 데이터 저장소임.

  • 설치: sudo apt install redis-server
  • 설정 및 보안:
    • 파일: /etc/redis/redis.conf
    • 외부 접속 허용: bind 0.0.0.0
    • 비밀번호 설정: requirepass 비밀번호
  • 접속: redis-cli -h [IP] -p 6379 -a [비밀번호]
    • 보안을 위해 접속 후 AUTH [비밀번호] 명령어로 인증하는 방식이 권장됨.
  • 방화벽: sudo ufw allow 6379/tcp
728x90
반응형