iptables 개념과 설치 | iptables 명령어

iptables는 netfilter.org에서 C언어로 만들어진 패킷 필터링이며 무료 방화벽 서비스입니다. 리눅스 방화벽의 기본 정책은 필요한 것을 제외한 모든 패킷에 대해 거부하는 것이 방화벽의 기본 정책입니다.
기본 설치 명령어는 다음과 같습니다.
# CentOS
yum -y install iptables-services
# Rocky Linux
dnf install iptables-services iptables-utils
# 리눅스 부팅 시 활성화
systemctl enable iptables 
기본 룰 설정 옵션은 다음과 같습니다.
iptables -[명령어 옵션] [체인명] [Match] [정책(target)]Ⅰ. iptables 용어와 기본
iptables에서는 체인[Chain]이라고 불리는 규칙[Rule]으로 패킷 필터링[Packet Filtering]을 하며, 패킷[Packet]에 대해 허용할 것인지 거부할 것인지를 정하게 됩니다. 여기에서 Chain이 패킷 필터링을 하는 게 아닌 패킷 필터링은 커널에 탑재된 NetFilter 기능으로 작동하며, Chain은 패킷 필터링을 가능하게 하는 룰 셋 구축을 한다는 것이 됩니다.
패킷 필터링은 네트워크에서 데이터를 전송하는 패킷들을 분석하여 일부 패킷을 차단하거나 허용하는 것으로 보통 패킷은 해더와 데이터를 가지고 있다고 보며, 패킷의 헤더를 확인하여 패킷의 차단 여부를 결정 짓게 됩니다.
Chain은 서버로 들어오기 전에 설정한 방화벽 룰이라 결론 지을 수 있습니다.
iptables -[명령어 옵션] [체인명] [Match] [정책(target)]
# 처음 설치 시 설정 된 옵션 중 하나인 22번 포트
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT기본 명령어에서 보면 체인(chain), Match, 정책(target)으로 구성 된 것을 확인할 수 있습니다.
1. 체인(chain)
iptables의 filter 테이블에 미리 정의된 세 가지의 체인이 존재하는데 이는 INPUT, OUTPUT, FORWARD입니다. 이 체인들은 네트워크 트래픽(IP 패킷)에 대하여 정해진 규칙들을 수행합니다.
♣ 체인(chain) 명령어 옵션
처음 iptables 설치 시 기본 설정 된 22번 포트의 설정 값입니다.
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT2. 매치(Match)
패킷을 처리할 때 만족해야 하는 조건들입니다. 조건에 일치하는 패킷만 적용됩니다.
3. -m state 확장 모듈
-m state 모듈의 4가지 설정 값(NEW, ESTABLISHED, RELATED, INVALID)이 있습니다.
4. 정책(target)
들어오는 패킷에 대한 정책입니다.
- ACCEPT : 패킷을 허용함.
- DROP : 패킷을 버림.(패킷이 전송된 적이 없던 것처럼)
- REJECT : 패킷을 버리고 이와 동시에 적절한 응답 패킷을 전송함.
- LOG : 패킷을 syslog에 기록
- RETURN : 호출 체인 내에서 패킷 처리를 계속 진행함.
5. vi/etc/sysconfig/iptables
iptables [-명령어 옵션] [체인명] [Match] [정책(target)]와 같은 방법으로 명령어를 입력하고 재시작 하는 방법도 있지만 개인적으로 /etc/sysconfig/iptables 경로에서 수정 후 재시작을 하는 것을 선호합니다. 설정된 목록을 보면서 할 수 있기 때문입니다.
vi /etc/sysconfig/iptables
Ⅱ. iptables 시스템 관리 명령어
♣ 시스템 관리 명령어 예시
~]# iptables -L
ACCEPT tcp -- 180.69.0.177 anywhere tcp dpts:40001:40103 state NEW,ESTABLISHED
ACCEPT tcp -- 180.69.0.177 anywhere tcp dpt:7774 state NEW,ESTABLISHED
ACCEPT tcp -- 180.69.0.177 anywhere tcp dpts:40001:40103 state NEW,ESTABLISHED
~]# iptables -nvL
0 0 ACCEPT tcp -- * * 180.69.0.177 0.0.0.0/0 tcp dpts:40001:40103 state NEW,ESTABLISHED
0 0 ACCEPT tcp -- * * 180.69.0.177 0.0.0.0/0 tcp dpt:7774 state NEW,ESTABLISHED
0 0 ACCEPT tcp -- * * 180.69.0.177 0.0.0.0/0 tcp dpts:40001:40103 state EW,ESTABLISHED
0 0 ACCEPT tcp -- * * 180.69.0.177 0.0.0.0/0 tcp dpt:7774 state NEW,ESTABLISHED Ⅲ. 기본 설정
Ⅳ. 포트 및 IP 설정 방법
Ⅴ. 룰 명령어

ℹ️ 제휴 안내
본 사이트의 콘텐츠에는 제휴 링크가 포함되어 있습니다. 방문자가 이 링크를 통해 상품 또는 서비스를 구매하면 본 사이트는 판매처로부터 수수료를 지급받습니다. 이 과정에서 구매자가 지불하는 금액(이벤트 할인 시 금액이 내려갑니다↓)은 오르지 않습니다. 게시된 가격·할인·재고 정보는 작성 시점 기준이며 실제와 다를 수 있으므로, 구매 전 판매처에서 최종 확인하시기 바랍니다. 상품 선정과 평가는 자체 기준에 따라 작성되며, 수수료 지급 여부가 소개 순서나 평가 내용에 영향을 주지 않습니다.