class="layout-aside-right paging-number">
본문 바로가기
카테고리 없음

서버 보안 기초 – SSH 설정 및 방화벽(Firewall) 설정법

by 탱클 2025. 11. 24.

서버 보안 기초 – SSH 설정 및 방화벽(Firewall) 설정법

서버를 구축한 후 가장 먼저 해야 할 일은 보안 설정이다. 아무리 잘 만든 웹사이트도 서버 보안이 허술하면 해킹, 데이터 유출, 서비스 중단 등의 심각한 피해로 이어질 수 있다. 이 글에서는 서버 보안의 기초로서 SSH 설정 강화와 방화벽(Firewall) 설정 방법을 소개한다. Ubuntu 리눅스 서버 기준으로 설명한다.

1. 기본 SSH 접속 방식 이해하기

SSH(Secure Shell)는 서버에 원격으로 접속할 수 있는 보안 프로토콜이다. 대부분의 리눅스 서버는 기본적으로 22번 포트를 통해 SSH 접속을 허용한다.

기본 접속 명령 예시:

ssh -i my-key.pem 사용자명@서버IP

서버에 접속이 가능한 상태라면, 이제 보안을 강화할 차례다.

2. 루트 계정 접속 비활성화

루트(root) 계정은 시스템의 모든 권한을 가진 계정이기 때문에 공격자에게 매우 매력적인 대상이다. 루트 계정으로 직접 접속하는 것을 비활성화하는 것이 좋다.

  1. 일반 사용자 계정 생성:
sudo adduser newuser
sudo usermod -aG sudo newuser
  1. SSH 설정 파일 수정:
sudo nano /etc/ssh/sshd_config

다음 항목을 찾아서 아래와 같이 수정하거나 추가한다.

PermitRootLogin no

파일을 저장하고 SSH 서비스를 재시작한다.

sudo systemctl restart ssh

3. 포트 번호 변경

기본 SSH 포트인 22번은 해커의 주요 타깃이다. 다른 포트로 변경하면 자동화된 스캔 공격을 피할 수 있다.

  1. /etc/ssh/sshd_config 파일을 연다.
sudo nano /etc/ssh/sshd_config
  1. 다음 항목을 원하는 포트 번호로 변경한다.
Port 2222
  1. 변경한 포트를 방화벽에서 허용하고, SSH 재시작
sudo ufw allow 2222
sudo systemctl restart ssh

변경 후에는 SSH 접속 시 포트 번호를 명시해야 한다.

ssh -p 2222 사용자명@서버IP

4. 방화벽(UFW) 설정

Ubuntu에서는 기본적으로 UFW(Uncomplicated Firewall)를 사용해 접근 제어를 할 수 있다.

  1. 방화벽 활성화 및 기본 정책 설정:
sudo ufw default deny incoming
sudo ufw default allow outgoing
  1. 필요한 포트만 허용:
sudo ufw allow 80    # HTTP
sudo ufw allow 443   # HTTPS
sudo ufw allow 2222  # SSH (포트를 바꿨을 경우)
  1. 방화벽 활성화 및 상태 확인:
sudo ufw enable
sudo ufw status

5. Fail2Ban 설치 (선택 사항)

Fail2Ban은 SSH 같은 서비스에 반복적으로 로그인 시도하는 IP를 자동으로 차단해주는 도구다.

설치 및 설정:

sudo apt install fail2ban -y

기본 설정으로도 충분하지만, 필요 시 /etc/fail2ban/jail.local을 생성해 사용자 설정을 추가할 수 있다.

서비스 시작:

sudo systemctl enable fail2ban
sudo systemctl start fail2ban

마무리

서버 보안은 단순한 옵션이 아니라 필수 사항이다. 기본적인 SSH 설정과 방화벽만 잘 구성해도 수많은 공격 시도로부터 서버를 보호할 수 있다. 위 내용을 적용하고 주기적으로 보안 상태를 점검한다면, 보다 안전하게 서버를 운영할 수 있다.