리눅스에서 네트워크 방화벽을 직접 제어하려면 iptables를 사용할 줄 알아야 합니다.
iptables는 네트워크 패킷을 필터링하고 제어할 수 있는 강력한 도구로,
UFW나 firewalld 같은 방화벽 프론트엔드도 내부적으로 iptables를 사용합니다.
iptables의 기초적인 구조와 간단한 규칙 설정 방법을 알아보겠습니다.
1. iptables 기본 체인 이해하기
iptables는 기본적으로 세 가지 체인(Chains)으로 작동합니다:
- INPUT: 서버로 들어오는 패킷 처리
- OUTPUT: 서버에서 나가는 패킷 처리
- FORWARD: 서버를 거쳐 다른 호스트로 전달되는 패킷 처리(라우터용)
기본 정책을 먼저 설정할 수 있습니다:
sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT ACCEPT
위 설정은 들어오는 모든 패킷을 기본적으로 차단하고, 나가는 것은 허용합니다.
2. 포트 열기/허용 규칙 추가
서비스 포트를 열려면 ACCEPT 규칙을 추가합니다.
✔ SSH(22번 포트) 허용
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
✔ 웹 서비스 포트(80, 443) 허용
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
3. 특정 IP만 허용하기
예를 들어, 192.168.0.10에서만 SSH 접속을 허용하고 싶다면:
sudo iptables -A INPUT -p tcp -s 192.168.0.10 --dport 22 -j ACCEPT
4. 기존 규칙 확인 및 삭제
✔ 규칙 목록 보기
sudo iptables -L -n -v
✔ 특정 규칙 삭제
규칙 번호를 확인하고 삭제합니다:
sudo iptables -L --line-numbers
예: INPUT 체인의 3번 규칙을 삭제
sudo iptables -D INPUT 3
5. 규칙 저장 및 복원
서버를 재부팅하면 iptables 규칙은 초기화됩니다.
설정한 규칙을 영구적으로 유지하려면 배포판별 방법을 사용해야 합니다.
✔ Debian/Ubuntu
sudo apt install iptables-persistent
sudo netfilter-persistent save
✔ CentOS/RHEL
sudo service iptables save
iptables로 방화벽 기초 다지기
iptables는 리눅스 방화벽의 핵심입니다.
기본 정책과 허용 규칙만으로도 서버를 훨씬 안전하게 보호할 수 있습니다.
iptables는 사용이 어려워 보이지만, 기초부터 규칙 추가/삭제를 연습하면 금방 익숙해집니다.
'개발 > 리눅스' 카테고리의 다른 글
[Linux] Apache 서버 설치와 설정 가이드 (2) | 2025.07.12 |
---|---|
[Linux] Nginx 설치 및 기본 설정 방법 (0) | 2025.07.11 |
[Linux] 포트 열기/닫기 및 포트 확인하는 방법 (3) | 2025.07.09 |
[Linux] 리눅스 서버에 고정 IP 설정하는 방법 (1) | 2025.07.08 |
[Linux] curl, wget 사용법 정리 (0) | 2025.07.07 |