가이드

운영 가이드 04. UFW, SSH 설정, Fail2ban으로 기본 보안 잡기

외부에 공개되는 Ubuntu 웹서버에서 최소한으로 먼저 설정해야 하는 UFW 규칙, SSH 보안 옵션, Fail2ban 구성 예시를 한 번에 정리했습니다.

우분투 관리자 2026.05.03 조회 290

운영 서버는 웹서비스를 올리기 전에 먼저 관리 포트와 인증 방식을 정리하는 편이 안전합니다.

여기서는 UFW로 필요한 포트만 열고, SSH 설정을 다듬고, Fail2ban으로 반복 로그인 시도를 차단하는 기본 흐름을 소개합니다.

UFW 기본 정책과 허용 포트

Apache를 쓸 경우에는 `Apache Full` 프로파일을 허용하면 됩니다.

sudo apt install ufw -y
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow OpenSSH
sudo ufw allow 'Nginx Full'
sudo ufw enable
sudo ufw status verbose

SSH 설정에서 먼저 볼 항목

운영 서버라면 root 직접 로그인과 비밀번호 인증을 계속 열어 둘지부터 판단해야 합니다.

SSH 키 기반 접근으로 전환할 수 있다면 `PermitRootLogin no`, `PasswordAuthentication no` 방향이 일반적으로 더 안전합니다.

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
sudo nano /etc/ssh/sshd_config

# 예시
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
sudo sshd -t
sudo systemctl restart ssh
sudo systemctl status ssh

SSH 키 로그인이 확인되기 전에는 비밀번호 인증을 먼저 끄지 않는 편이 안전합니다.

Fail2ban 설치와 SSH jail 구성

sudo apt install fail2ban -y
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local
[sshd]
enabled = true
port = ssh
logpath = %(sshd_log)s
bantime = 1h
findtime = 10m
maxretry = 5
sudo systemctl enable --now fail2ban
sudo fail2ban-client status
sudo fail2ban-client status sshd

추가로 같이 보면 좋은 점검 명령

sudo ss -tulpn
sudo ufw status numbered
sudo journalctl -u ssh -n 50 --no-pager
sudo journalctl -u fail2ban -n 50 --no-pager

마무리 메모

웹서비스 설치보다 먼저 서버 출입문을 정리해 두면 이후 공개 과정이 훨씬 편해집니다.

다음 단계에서는 Apache 기반 APM 스택 설치와 Nginx 기반 구성을 각각 따로 소개합니다.