Ubuntu 서버 초기 설정 — SSH 접속부터 해킹 차단까지 완벽 가이드
VPS를 구매하면 빈 서버가 하나 생긴다. 이제 이 서버에 접속해서 초기 설정을 해야 한다.
서버를 만들고 아무것도 안 한 채 15시간을 뒀더니, 로그인 시도가 647건 들어와 있었다. 아무것도 설치 안 했고, 도메인도 연결 안 했는데. VPS는 만든 순간부터 전 세계 봇들이 접근을 시도한다.
이 글에서는 서버 접속부터 보안 설정까지, VPS를 만든 직후에 반드시 해야 할 5가지를 정리한다.
SSH란?
내 컴퓨터에서 원격 서버에 접속하는 방법이다.
서버에는 모니터가 없다. 대신 터미널(명령어 창)을 통해 원격으로 접속해서 조작한다. 이 원격 접속 방식이 SSH(Secure Shell)다.
Windows라면 PowerShell이나 명령 프롬프트에서, Mac이나 Linux라면 터미널에서 바로 사용할 수 있다.
서버 접속하기
VPS 대시보드(Vultr 기준)에서 서버를 클릭하면 접속 정보가 나온다.
| 항목 | 설명 |
|---|---|
| IP Address | 서버의 주소 |
| Username | 기본값 root |
| Password | 자동 생성된 비밀번호 |
터미널을 열고 아래 명령어를 입력한다.
ssh root@서버IP주소
처음 접속하면 “Are you sure you want to continue connecting?”이 나온다. yes 입력. 그리고 비밀번호를 입력하면 접속 완료다.
팁: 비밀번호 입력 시 화면에 아무것도 안 보이는 게 정상이다. 보안상 타이핑이 표시되지 않는 것이니 그대로 입력하고 Enter를 누르면 된다.
1단계: 시스템 업데이트
서버에 설치된 소프트웨어를 최신 버전으로 업데이트한다. 보안 패치가 포함되어 있어서 가장 먼저 해야 한다.
apt update && apt upgrade -y
apt update는 업데이트 목록을 가져오고, apt upgrade -y는 실제로 설치한다. -y는 “전부 동의”라는 뜻이다.
2단계: 방화벽(UFW) 설정
새 서버는 모든 포트가 열려 있는 상태다. 필요한 포트만 열고 나머지를 전부 막아야 한다.
ufw allow 22
ufw allow 80
ufw allow 443
ufw enable
| 포트 | 용도 |
|---|---|
| 22 | SSH — 서버 접속용 |
| 80 | HTTP — 웹사이트 |
| 443 | HTTPS — 보안 웹사이트 |
ufw enable 후 “Command may disrupt existing SSH connections” 경고가 나오면 y를 입력한다. 22번 포트를 이미 열었으니 접속이 끊기지 않는다.
설정 확인:
ufw status
3개 포트만 ALLOW로 표시되면 성공이다.
3단계: 새 사용자 만들기
root는 서버의 최고 관리자 계정이다. 모든 권한이 있어서 위험하다. 일반 사용자를 만들어서 평소에는 그걸로 접속하는 게 안전하다.
adduser 사용자이름
비밀번호를 설정하라고 나온다. 나머지 정보(Full Name 등)는 Enter로 넘겨도 된다.
주의: Ubuntu는 비밀번호에 사용자 이름이 포함되면 거부한다. 사용자 이름과 관련 없는 비밀번호를 설정하자.
새 사용자에게 관리자(sudo) 권한을 부여한다.
usermod -aG sudo 사용자이름
이제 이 사용자로 접속할 수 있는지 테스트한다. 기존 접속을 끊지 말고 새 터미널 창을 열어서:
ssh 사용자이름@서버IP주소
접속이 되면 성공. sudo 명령어도 테스트해 보자.
sudo apt update
비밀번호를 입력하고 정상 실행되면 OK.
4단계: root 원격 접속 차단
새 사용자가 정상 작동하는 걸 확인했으면, root로 원격 접속하는 걸 막는다. 해커들이 가장 먼저 시도하는 게 root 로그인이니까.
sudo nano /etc/ssh/sshd_config
파일에서 PermitRootLogin 항목을 찾는다. (Ctrl+W로 검색 가능)
PermitRootLogin no
yes를 no로 바꾸고 저장한다. (Ctrl+O → Enter → Ctrl+X)
SSH 서비스를 재시작한다.
sudo systemctl restart sshd
중요: root 접속을 차단하기 전에 반드시 새 사용자로 접속이 되는지 확인해야 한다. 안 그러면 서버에 접속할 방법이 없어진다.
5단계: fail2ban 설치 — 해킹 자동 차단
fail2ban은 반복적으로 로그인을 시도하는 IP를 감지해서 자동으로 차단하는 도구다.
sudo apt install -y fail2ban
설치하면 기본 설정으로 바로 작동한다. 기본값은 5회 실패 시 10분 차단이다.
설정을 변경하고 싶다면 설정 파일을 복사해서 수정한다.
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local
[sshd] 섹션에서 주요 설정:
| 항목 | 기본값 | 설명 |
|---|---|---|
| maxretry | 5 | 몇 번 실패하면 차단할지 |
| bantime | 10m | 차단 시간 |
| findtime | 10m | 이 시간 안에 maxretry만큼 실패하면 차단 |
더 강하게 설정하고 싶다면:
[sshd]
enabled = true
maxretry = 3
bantime = 1h
findtime = 10m
설정 변경 후 재시작:
sudo systemctl restart fail2ban
차단된 IP 확인:
sudo fail2ban-client status sshd
설정 전 vs 설정 후
| 항목 | 설정 전 | 설정 후 |
|---|---|---|
| 시스템 | 업데이트 안 됨 | 최신 상태 |
| 방화벽 | 전체 오픈 | 3개 포트만 허용 |
| 접속 계정 | root만 | 일반 사용자 + sudo |
| root 원격 접속 | 허용 | 차단 |
| 해킹 차단 | 없음 | fail2ban 자동 차단 |
정리
VPS를 만든 직후에 반드시 해야 할 5가지:
- 시스템 업데이트 —
apt update && apt upgrade -y - 방화벽 설정 — SSH(22), HTTP(80), HTTPS(443)만 허용
- 새 사용자 생성 — root 대신 일반 사용자로 접속
- root 원격 접속 차단 —
PermitRootLogin no - fail2ban 설치 — 반복 로그인 시도 자동 차단
이 5가지를 안 하면? 하루 만에 수백 건의 해킹 시도가 들어온다. 보안 설정은 선택이 아니라 필수다.