iptables 설정하기

리눅스에 기본 설치된 네트워크 필터(방화벽)인 iptables의 규칙 추가/삭제 방법이다.

기본적으로 모든 포트를 막고, 필요한 포트를 허용하는 방식을 권장한다.(iptable -P INPUT DROP)

규칙의 우선순위는 위에서부터 적용된다.

# 모든 규칙 제거
$ iptables -F

# 사용자가 만든 모든 체인을 제거한다.
$ iptables -X

# 등록된 규칙에 맞지 않는 트래픽은 허용한다.(거부하는 규칙이 없으면 모든 포트가 열리게 된다.)
$ iptables -P INPUT ACCEPT
$ iptables -P FORWARD ACCEPT
$ iptables -P OUTPUT ACCEPT

# 등록된 규칙에 맞지 않는 트래픽은 거부한다.(허용하는 규칙이 없으면 모든 포트가 막히게 된다.)
$ iptables -P INPUT DROP
$ iptables -P FORWARD DROP
$ iptables -P OUTPUT DROP

# 모든 입력 네트워크에서 HTTP, HTTPS를 허용한다.
$ iptables -A INPUT -p tcp -m multiport --dports 80,443 -m state --state NEW,ESTABLISHED -j ACCEPT

# IP 192.168.0.10 에서 모든 입력을 허용한다.
$ iptables -A INPUT -s 192.168.0.10 -j ACCEPT

# IP 192.168.0.0/24 네트워크에서 모든 입력을 허용한다.
$ iptables -A INPUT -s 192.168.0.0/24 -j ACCEPT

# 모든 입력 네트워크에서 ssh 접속을 거부한다.
$ iptables -A INPUT --dport 22 -j DROP

# 등록된 규칙을 보여준다.
$ iptables -L -v
Chain INPUT (policy ACCEPT 62027 packets, 38M bytes)
 pkts bytes target     prot opt in     out     source               destination
 143K   20M ACCEPT     tcp  --  any    any     anywhere             anywhere             multiport dports http,https
  384 31070 ACCEPT     all  --  any    any     192.168.0.0/24       anywhere
 2059  121K DROP       tcp  --  any    any     anywhere             anywhere             tcp dpt:ssh

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 189K packets, 169M bytes)
 pkts bytes target     prot opt in     out     source               destination

# 등록된 규칙을 번호와 함께 보여준다. 번호는 규칙을 중간에 추가하거나 삭제할 때 사용된다.
$ iptables -L --line-numbers
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination
1    ACCEPT     tcp  --  anywhere             anywhere             multiport dports http,https
2    ACCEPT     all  --  192.168.0.0/24       anywhere

Chain FORWARD (policy ACCEPT)
num  target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination

# loopback 접근허용을 맨 처음(1번) 규칙으로 추가한다.
$ iptables -I INPUT 1 -i lo -j ACCEPT
$ iptables -I OUTPUT 1 -o lo -j ACCEPT

# INPUT체인 2번 규칙을 제거한다.
$ iptables -D INPUT 2

You may also like...

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다