대박코드 작업일지

2026.03.01 (Day 3) – 3화 1부: SSH, 서버 접속 시작하다


1. SSH 서버 접속

  • Vultr 대시보드에서 서버 정보 확인 (IP, Username, Password)
  • VSCode 터미널에서 sshpass를 이용해 SSH 접속 성공
  • 접속 명령어: ssh root@**********

서버 상태 확인 결과

  • 호스트명: vultr
  • OS: Ubuntu 24.04, Linux 6.8.0
  • 메모리: 955MB 중 330MB 사용 (625MB 여유)
  • 디스크: 23GB 중 6.1GB 사용 (16GB 여유)

2. 시스템 업데이트

  • apt update → 47개 패키지 업데이트 가능 확인
  • apt upgrade -y → 47개 패키지 전부 최신 버전으로 업그레이드
  • 커널 업데이트 포함 (6.8.0-100 → 6.8.0-101)

3. 방화벽 설정 (UFW)

  • 설정 전: 모든 포트가 열려 있는 상태 (위험)
  • 허용한 포트:
  • 22 (SSH) → 서버 접속용
  • 80 (HTTP) → 웹사이트 접속
  • 443 (HTTPS) → 보안 웹사이트 접속
  • 나머지 포트: 전부 차단 (deny incoming)
  • ufw enable → 방화벽 활성화 완료

4. 새 사용자 생성

  • root는 모든 권한을 가진 슈퍼 관리자 → 보안상 위험
  • 일반 사용자 ************ 생성
  • sudo 그룹에 추가 (필요할 때만 관리자 권한 사용)

이슈: 비밀번호 설정 실패

  • 문제: ********* 비밀번호 설정 시 “BAD PASSWORD: The password contains the user name in some form” 에러 발생
  • 원인: Ubuntu PAM 보안 정책이 사용자 이름(***********)이 포함된 비밀번호를 거부
  • 해결: 사용자 이름이 포함되지 않은 비밀번호로 변경 → 설정 성공

5. 보안 점검 & 추가 조치

점검 결과

  • root 원격 로그인: 허용 상태 (위험)
  • fail2ban: 미설치 (위험)
  • 서버 생성 15시간 만에 이미 647번의 해킹 시도 발견!

조치 1: root 원격 로그인 차단

  • /etc/ssh/sshd_config에서 PermitRootLogin yesPermitRootLogin no 변경
  • SSH 서비스 재시작 (systemctl restart ssh)
  • 이후 root 계정으로 원격 접속 불가, ********* 계정으로만 접속

조치 2: fail2ban 설치

  • fail2ban: 반복적으로 로그인 시도하는 IP를 자동 차단하는 보안 도구
  • apt install -y fail2ban → 설치 즉시 작동
  • 설치 직후 결과:
  • 총 실패한 로그인 시도: 647번
  • 자동 차단된 IP: 7개 (157.245.107.129, 170.64.174.172, 64.227.173.94, 208.68.37.15, 138.68.74.135, 46.101.236.51, 45.148.10.240)

최종 서버 보안 상태

항목 설정 전 설정 후
—— ——— ———
시스템 업데이트 47개 미업데이트 최신
방화벽 (UFW) 꺼짐 SSH/HTTP/HTTPS만 허용
root 원격 접속 허용 차단
fail2ban 미설치 설치 완료 (7개 IP 차단)
사용자 계정 root만 존재 ********* (sudo) 추가

서버 접속 정보

구분
—— ——
IP *************
일반 사용자 *************
접속 명령어 **************

※ root 원격 접속 차단됨 — 긴급 시 Vultr 콘솔에서만 접속 가능


다음에 할 것

1. 3화 2부: WordPress 설치 (Nginx + PHP + MySQL + WordPress)

2. 3화 3부: 도메인 연결 + 블로그 공개 → v0.2 마일스톤