iptables

리눅스의 방화벽 규칙을 위한 tool 현재는 FirewallD라는 더 손쉽게 사용가능한 툴로 대체중이다.1

자주 쓰이는 명령어 형태

iptables {-A | -C | -D } chain rule-specification
iptables -I chain [rulenum] rule-specification
iptables -R chain rulenum rule-specification
iptables -D chain rulenum
iptables {-F | -L | -Z } [chain [rulenum]] [options...]
iptables -P chain target

rule-specification = [matches...]
match = -m matchname [per-match-option]
target = -j targetname [per-target-option]

cheat sheet

설명

iptables는 Linux 패킷 필터링 룰 관리 툴이다. 일반적으로 iptables는 방화벽 프로그램으로 알려져 있으나 방화벽 역활을 하는 패킷 필터링은 실질적으로 netfilter가 담당하게 되며 iptables는 패킷 필터링을 위한 룰을 만들어 줄 뿐이다.

iptables의 구성요소

Chain

체인은 패킷이 통과하는 파이프와 같다. iptables에서는 3개의 기본 chain이 존재하며 이 체인은 지울수 없다.

위의 기본 chain 이외에 사용자 정의 체인 또한 만들수 있다. 사용자 정의 체인은 iptable -N new-chain-name을 사용하면 만들수 있다.

Target

타켓은 패킷을 보낼곳을 말한다. 타켓은 미리 정의된 타켓이거나 또다른 체인일 수 있다. 미리 정의된 타켓은 다음과 같다.

rule

룰은 맨위에서 부터 순서대로 적용된다. 위에서 부터 하나씩 검사하여 일치하는 룰이 있다면 target에 지정된대로 처리하게 된다. 만약 마지막 룰까지 일치하지 않는다면 그 체인의 기본 전략대로 처리하게 된다.

Example

참고 링크


  1. 사실상 firewalld가 iptables의 좀 더 쉬운 interface를 제공하는 느낌이다.