iptables 가 실행 안 됩니다. (2.6.7, 데비안 unstable)

sklee23의 이미지

iptables 를 사용하려고 합니다.

제 PC 는 2.6.7 커널을 사용하고 있고 다음 옵션을 static 하게 넣고 컴파일 했습니다.
CONFIG_NETFILTER=y
CONFIG_IP_NF_IPTABLES=y

부팅시 다음 메시지가 나오는걸 보면 제대로 초기화는 되는거 같습니다.

# dmesg | grep ip_tables
ip_tables: (C) 2000-2002 Netfilter core team

그런데 실제로 루트에서 iptables -L 등을 해보아도 에러 메세지만 나옵니다.

# iptables -L
FATAL: Module ip_tables not found.
iptables v1.2.11: can't initialize iptables table `filter': Table does not exist (do you need to insmod?)
Perhaps iptables or your kernel needs to be upgraded.
#

데비안 unstable 을 사용하고 update 까지 어제 해준 상태입니다..

왜 그런지 아시는 분들은 해결방안을 알려주시면 감사하겠습니다.

indie의 이미지

iptables정책이 없으신것 같네요
자신의 정책을 만드시고 실행시켜 보세요
그리고 모듈리스트는 lsmod로 확인 가능합니다.

집에나 갈까?

sklee23의 이미지

정책 문제는 아니었고 제가 몰랐었는데 위에 적은 두개 옵션만으로는 충분하지 않았던거 같습니다.

http://iptables-tutorial.frozentux.net/iptables-tutorial.html#KERNELSETUP 를 참고해서 다음의 몇 개를 더 넣고
커널 컴파일을 새로 했습니다.

CONFIG_IP_NF_CONNTRACK=y
CONFIG_IP_NF_MATCH_LIMIT=y
CONFIG_IP_NF_MATCH_IPRANGE=y
CONFIG_IP_NF_MATCH_STATE=y
CONFIG_IP_NF_FILTER=y
CONFIG_IP_NF_NAT=y
CONFIG_IP_NF_NAT_NEEDED=y
CONFIG_IP_NF_TARGET_MASQUERADE=y
CONFIG_IP_NF_TARGET_LOG=y

각각의 옵션이 뭐하는 건지는 잘 모르겠지만 다시 부팅하고 사용해보니 잘 되는군요.

# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination

Chain FORWARD (policy ACCEPT)
target prot opt source destination

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

DROP 등을 넣고 테스트해보아도 잘 되는거 같습니다.