본문 바로가기
운영체제/리눅스(CentOS)

리눅스 방화벽 설정 완벽 가이드 (UFW, iptables, firewalld 예제 포함)

by 마루의 일상 2025. 4. 7.
728x90
반응형

리눅스 서버를 운영하다 보면 외부 접근을 제어하거나 보안을 강화하기 위해 방화벽(Firewall) 설정은 필수입니다.
이번 포스팅에서는 대표적인 세 가지 리눅스 방화벽 도구인 UFW, iptables, firewalld의 사용법과 실제 예제를 포함해 쉽게 따라할 수 있도록 안내해드리겠습니다.


✅ UFW (Uncomplicated Firewall)

UFW는 Ubuntu 계열에서 기본 제공되는 방화벽 관리 도구로, iptables를 쉽게 관리할 수 있게 해줍니다.

🔧 설치 및 활성화

 
sudo apt update sudo apt install ufw sudo ufw enable

🔍 현재 상태 확인

sudo ufw status verbose

🚪 포트 허용 / 차단

# 22번 SSH 허용 sudo ufw allow 22 # HTTP (포트 80) 허용 sudo ufw allow 80 # 특정 포트 차단 sudo ufw deny 8080 # 포트 범위 허용 (예: 3000~3010) sudo ufw allow 3000:3010/tcp # 특정 IP에서만 허용 sudo ufw allow from 192.168.1.100 to any port 22

🔐 기본 정책 설정

# 기본 수신 거부, 송신 허용 sudo ufw default deny incoming sudo ufw default allow outgoing

🔥 iptables

iptables는 리눅스 커널 레벨에서 동작하는 강력한 방화벽 툴입니다. 다만 다소 복잡하므로 설정 시 신중함이 필요합니다.

🔧 현재 규칙 보기

sudo iptables -L -n -v

🛡 기본 정책 설정

 
sudo iptables -P INPUT DROP sudo iptables -P FORWARD DROP sudo iptables -P OUTPUT ACCEPT

✅ 포트 허용

 
# SSH (22번 포트) 허용 sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT # HTTP 허용 sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT # 특정 IP에서만 SSH 허용 sudo iptables -A INPUT -p tcp -s 192.168.1.100 --dport 22 -j ACCEPT

🗑 불필요한 규칙 삭제

 
# 첫 번째 규칙 삭제 sudo iptables -D INPUT 1

💾 설정 저장

Ubuntu에서는:

 
sudo apt install iptables-persistent sudo netfilter-persistent save

CentOS에서는:

 
sudo service iptables save

🧱 firewalld

firewalld는 CentOS, RHEL 등에서 주로 사용되는 방화벽 서비스이며, zones라는 개념을 통해 더 유연한 설정이 가능합니다.

🔧 설치 및 활성화

 
sudo yum install firewalld sudo systemctl start firewalld sudo systemctl enable firewalld

🔍 기본 정보 확인

 
# 상태 확인 sudo firewall-cmd --state # 현재 zone 확인 sudo firewall-cmd --get-active-zones

🚪 포트 허용 / 차단

 
# 22번 포트 허용 (영구적으로) sudo firewall-cmd --permanent --add-port=22/tcp # 허용 확인 sudo firewall-cmd --list-ports # 포트 삭제 sudo firewall-cmd --permanent --remove-port=22/tcp # 변경 적용 sudo firewall-cmd --reload

🔥 서비스 기반 설정

 
# HTTP 서비스 허용 sudo firewall-cmd --permanent --add-service=http # 특정 IP 허용 sudo firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=192.168.0.5 accept'

🔄 3가지 도구 비교

항목UFWiptablesfirewalld
사용 편의성 매우 쉬움 복잡함 중간
유연성 중간 매우 높음 높음
Ubuntu 기본 O O X (설치 가능)
CentOS 기본 X O O
Zone 개념 X X O

💡 마무리 팁

  • UFW는 빠르게 설정하고 싶을 때 추천.
  • iptables는 복잡한 규칙이나 고급 보안 설정이 필요할 때 유용.
  • firewalld는 zone 기반의 유연한 정책 적용이 가능.

📌 참고 명령 모음

 
# UFW 비활성화 sudo ufw disable # iptables 모든 규칙 초기화 sudo iptables -F # firewalld 초기화 sudo firewall-cmd --permanent --remove-service=ssh sudo firewall-cmd --reload

리눅스 서버의 보안을 강화하고 싶다면 방화벽 설정은 필수입니다. 처음에는 어렵게 느껴질 수 있지만, 하나하나 따라하다 보면 분명 익숙해질 거예요.

728x90
반응형