브릿지 방화벽에서 iptables의 FORWARD가 작동 안하는 문제
브릿지 방화벽을 만들고 있습니다.
관련 모듈도 정상적으로 로드 되고 iptables도 v1.2.9로 최신 버전을 사용하고 있습니다.
기본적으로 INPUT, OUTPUT은 잘 작동하는 것 같은데 FORWARD만 이상하게 모두 통과됩니다.. 즉 작동을 안하는 군요.. 다음의 환경을 보시고 문제가 뭔지 지적 부탁합니다.
-- lsmod --
Module Size Used by Not tainted
iptable_filter 2380 1
ip_nat_irc 3440 0 (unused)
ip_nat_ftp 4208 0 (unused)
ip_nat_snmp_basic 10640 0 (unused)
ipt_MASQUERADE 2136 0 (unused)
ipt_REJECT 3672 1
ipt_REDIRECT 1368 0 (unused)
ipt_state 1048 0 (unused)
ipt_string 2648 0 (unused)
ip_conntrack_irc 3520 0 (unused)
ip_conntrack_ftp 4960 0 (unused)
iptable_nat 19288 4 [ip_nat_irc ip_nat_ftp ip_nat_snmp_basic ipt_MASQUERADE ipt_REDIRECT]
ip_conntrack 20380 4 [ip_nat_irc ip_nat_ftp ipt_MASQUERADE ipt_REDIRECT ipt_state ip_conntrack_irc ip_conntrack_ftp iptable_nat]
e1000 69712 1
위에 보시면 기본적으로 iptable_filter도 정상적으로 로드되어서 사용되고 있습니다.
-- iptables -L --
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT tcp -- 210.xxx.xxx.xxx anywhere tcp dpt:ssh
Chain FORWARD (policy DROP)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
핸재 상태의 기본 정책입니다. 방화벽으로 들어가는 것은 제가 설정한 ssh포트 이외에는 완전히 막혔으므로 정상이고... 나가는 것도.. 잘 나갑니다.
이 시스템은 브릿지로 설정하였으므로 내부의 다른 컴퓨터의 패킷일 포워딩 해주는 기능을 합니다. 실제로 모듈 적재 전에는 이 브릿지를 통하여 내부의 커뮤터가 외부와 별 문제없이 잘 작동합니다. 그런데 모듈 적재 후 iptables 기본 정책을 세워주어도(위에서 보면 FORWARD는 기본적으로 DROP) 내부 컴에서 방화벽을 거쳐 나가는것도 자유, 외부에서 들어오는 것도 잘 들어옵니다.
기본적으로 FORWARD가 막혀야 기타 풀어줄 정책도 넣고 할텐데.. 이건 방화벽이 작동을 안하니 어찌할 도리가 없네요..
혹시 제가 빼먹은 것이 있거나.. 필요한 모듈을 올리지 않았거나.. 뭔가 잘못한 것 같은데.. 유용한 지식 있으시면 답변 부탁드립니다.
bridge-nf 패치
bridge-nf 패치 하신건가요? 브릿지는 link layer에서 동작하기 때문에 브릿지가 포워드하는 패킷은 iptables까지 도달하지 않습니다. 이걸 가능하게 하려면 별도로 커널을 패치해야 합니다.
http://ebtables.sourceforge.net/에서 받을 수 있습니다.
패치 햇습니다.
현재 리눅스 커널 2.4.19에
브릿지 패치
bridge-nf-0.0.7-against-2.4.19.diff
를 적용하여 커널 컴파일 한 상태입니다.
그리고 설치 메뉴얼은 이재홍님의 "리눅스로 Bridge Firewall 만들기"
를 참조하였습니다.
ebtables를 써 보는게 어떨까요?
ebtables와 bridge-nf 패치를 모두 하고서 ebtables의 FORWARD로 패킷이 통과하는지를 보는 건 어떨까요? 그러면 link layer에서 ip layer로 가는 부분이 문제인지 다른 설정에 문제가 있는 건지를 분명히 할 수 있을 것 같은데요.
댓글 달기