iptables 명령어 요약
iptables 명령어 요약입니다. Netfilter table/chain, legacy와 nft backend 구분, 규칙 조회/추가/삭제/NAT, 저장 주의사항을 정리했습니다.
iptables는 Linux 커널의 Netfilter packet filter rule을 관리하는 전통적인 CLI입니다. 최근 배포판에서는 nftables가 기본인 경우가 많고, iptables 명령이 nft backend로 동작할 수 있으므로 현재 시스템이 legacy인지 nft backend인지 먼저 확인해야 합니다.
현재 backend 확인
iptables --version
iptables -L -n -v
iptables-save | head
nft list ruleset 2>/dev/null | head
iptables v1.x (nf_tables)처럼 보이면 iptables 명령이 nftables backend를 사용하는 것입니다. 운영 표준이 nftables라면 새 규칙은 nft 기준으로 관리하는 편이 일관적입니다.
테이블과 체인
filter: INPUT, FORWARD, OUTPUT 기본 필터링nat: PREROUTING, POSTROUTING, OUTPUT NAT 처리mangle: packet mark 등 특수 처리raw: conntrack 전 처리
규칙 조회
sudo iptables -L -n -v --line-numbers
sudo iptables -t nat -L -n -v --line-numbers
sudo iptables -S
sudo iptables-save
--line-numbers는 특정 줄 삭제나 삽입에 필요합니다. 규칙을 수정하기 전에는 iptables-save로 현재 상태를 백업합니다.
기본 허용 예시
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -s 203.0.113.0/24 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
SSH rule을 source 제한 없이 먼저 지우거나 default DROP을 바로 적용하면 원격 접속이 끊길 수 있습니다. 원격 서버에서는 console 접근이나 자동 rollback을 준비합니다.
NAT 예시
sudo sysctl -w net.ipv4.ip_forward=1
sudo iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o eth0 -j MASQUERADE
sudo iptables -A FORWARD -s 192.168.10.0/24 -o eth0 -j ACCEPT
sudo iptables -A FORWARD -d 192.168.10.0/24 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
삭제와 삽입
sudo iptables -L INPUT -n --line-numbers
sudo iptables -D INPUT 3
sudo iptables -I INPUT 1 -p tcp --dport 22 -s 203.0.113.0/24 -j ACCEPT
저장 주의
iptables 명령으로 넣은 규칙은 배포판 설정에 따라 재부팅 후 사라질 수 있습니다. RHEL 계열, Debian/Ubuntu 계열, firewalld 사용 여부에 따라 저장 방식이 다릅니다.
sudo iptables-save > /tmp/iptables.rules
sudo iptables-restore < /tmp/iptables.rules
firewalld가 활성화된 서버에서 iptables를 직접 수정하면 firewalld reload 때 덮어써질 수 있습니다. 한 서버에서 방화벽 관리 도구를 섞지 않는 것이 좋습니다.
운영 기준
- 규칙 변경 전
iptables-save로 백업합니다. - 원격 서버에서는 SSH 허용 rule을 먼저 확인합니다.
- DROP 정책을 적용하기 전 허용 rule 순서를 검증합니다.
- 새 구축에서는 nftables/firewalld 중 표준 도구를 정하고 문서화합니다.
- 방화벽 로그에는 내부 IP와 포트 정보가 포함되므로 공유 전 마스킹합니다.