본문 바로가기
카테고리 없음

[Firewall] 리눅스 서버 필수 방화벽 UFW 설정 및 특정 IP 허용 방법

by 돌미나리는야생미나리 2026. 4. 7.

인터넷에 연결된 모든 서버는 24시간 내내 수많은 침입 시도에 노출되어 있습니다. 불필요한 포트를 열어두는 것은 마치 대문을 열어두고 외출하는 것과 같습니다. 리눅스 서버 보안의 첫걸음은 바로 **방화벽(Firewall)**을 통해 꼭 필요한 트래픽만 허용하고 나머지는 모두 차단하는 것입니다.

오늘은 우분투(Ubuntu)에서 가장 쉽고 직관적으로 사용할 수 있는 방화벽 도구인 **UFW(Uncomplicated Firewall)**의 설정법을 완벽하게 정리해 보겠습니다.


1. UFW란 무엇인가?

UFW는 이름 그대로 '복잡하지 않은 방화벽'입니다. 리눅스 커널의 패킷 필터링 기능을 담당하는 iptables를 사용자가 더 쉽게 다룰 수 있도록 만든 인터페이스입니다. 복잡한 명령어 대신 단순한 규칙(Allow/Deny)만으로 서버를 보호할 수 있다는 장점이 있습니다.


2. UFW 시작하기: 기본 설정

2.1 UFW 상태 확인

현재 방화벽이 활성화되어 있는지 확인합니다. 처음에는 보통 inactive 상태입니다.

Bash
 
sudo ufw status

2.2 기본 정책 설정 (Default Policy)

가장 안전한 방화벽 전략은 **"들어오는 것은 모두 막고, 나가는 것은 허용하는 것"**입니다.

Bash
 
# 모든 들어오는 접속 차단
sudo ufw default deny incoming

# 모든 나가는 접속 허용
sudo ufw default allow outgoing

3. 필수 서비스 허용하기 (주의사항)

중요: 방화벽을 활성화하기 전에 반드시 **SSH(22번 포트)**를 허용해야 합니다. 그렇지 않으면 본인도 서버에 접속하지 못하는 '락아웃(Lock-out)' 현상이 발생합니다.

3.1 SSH 및 웹 서비스 허용

Bash
 
# SSH 허용 (기본 22번 포트)
sudo ufw allow ssh

# HTTP(80) 및 HTTPS(443) 허용
sudo ufw allow http
sudo ufw allow https

3.2 특정 포트 범위 허용

특정 범위의 포트를 한꺼번에 열어야 할 때 사용합니다. (예: 8000~8100번)

Bash
 
sudo ufw allow 8000:8100/tcp

4. 특정 IP 주소 관리하기 (화이트리스트)

보안을 더욱 강화하려면, 관리자 페이지나 DB 접속 포트 등은 특정 IP에서만 접속할 수 있도록 제한하는 것이 좋습니다.

4.1 특정 IP 허용

Bash
 
# 특정 IP(예: 123.123.123.123)에서의 모든 접속 허용
sudo ufw allow from 123.123.123.123

# 특정 IP가 특정 포트(예: 3306 DB 포트)에만 접속하게 허용
sudo ufw allow from 123.123.123.123 to any port 3306

4.2 특정 IP 차단 (Blacklist)

공격이 의심되는 특정 IP를 즉시 차단할 때 유용합니다.

Bash
 
sudo ufw deny from 123.123.123.123

5. 방화벽 활성화 및 규칙 삭제

모든 규칙을 설정했다면 이제 방화벽을 가동합니다.

5.1 활성화 및 비활성화

Bash
 
# 방화벽 활성화 (SSH 허용 여부 재차 확인!)
sudo ufw enable

# 방화벽 비활성화
sudo ufw disable

5.2 규칙 삭제

설정된 규칙을 삭제하고 싶을 때는 번호를 확인한 뒤 삭제하는 것이 가장 정확합니다.

Bash
 
# 규칙 번호 확인
sudo ufw status numbered

# 2번 규칙 삭제
sudo ufw delete 2

6. 결론: 보안은 겹겹이 쌓는 층(Layer)입니다

UFW는 서버를 지키는 든든한 성벽입니다. 하지만 방화벽 하나만으로 모든 공격을 막을 수는 없습니다. 앞서 다뤘던 SSH 포트 변경, Root 로그인 차단 등과 함께 적용할 때 비로소 강력한 보안 체계가 완성됩니다.