CentOS5.3 으로 리눅스 브릿지 방화벽 구축하였습니다. eht0(외부),eth1(내부)연결했습니다.
인터넷 - (eth0)방화벽(eth1) - 스위치 -서버들 => 이렇게 구성했음
2.6커널에서는 기본적으로 bridge모드를 지원하기 때문에 brctl 유틸리만 다운 받아서 사용하시면 됩니다.
1. yum install bridge-utils 업데이트 합니다.
2. /etc/sysctl.conf수정 net.ip4.ip_forward = 1 로 수정 합니다.
3. /etc/sysconfig/network-scripts에 ifcfg-br0 파일 생성
*파일에 삽입
DEVICE=br0
TYPE=Bridge
IPADDR=218.154.XXX.XXX
GATEWAY=218.154.XXX.XXX
NETMASK=255.255.255.XXX
ONBOOT=yes
====================================================
ifcfg-eth0 수정
DEVICE=eth0
BRIDGE=br0
ONBOOT=yes
====================================================
ifcfg-eth1 수정
DEVICE=eth1
BRIDGE=br0
ONBOOT=yes
====================================================
4. brctl show 실행
bridge name bridge id STP enabled interfaces
Bridge firewalling registered => 브릿지 파이월이 등록되었다고 나옴
5. lsmod로 bridge 모듈 올라왔는지 확인
6. service network restart 실행
7.brctl show 로 브리지 상태 확인
[root@firewall ~]# brctl show
bridge name bridge id STP enabled interfaces
br0 8000.00c09f2a6974 no eth1
eth0
여기까지 한후 eth0과 eth1에 한번씩 케이블을 연결해서 PING이 되는지 확인합니다.
이제 iptables 로 브릿지 정책을 설정하면 된다. 기본적으로 iptables 기본정책
INPUT,OUTPUT은 방화벽 자체에 룰을 적용하는것이고, 브릿지 통과는 FORWARD에 적용받는다.
iptables 정책보기
http://kjhfull.tistory.com/entry/firewallpolicy
참고 : centOS 5.3 2.6커널에서는 브릿지 모드가 기본제공되고 유틸만 설치하면 되는데..혹시 안되시는 분들은 make menuconfig 에서 아래 선택후 재컴파일 해보시기 바랍니다.
Networking -> Network options -> 802.1D Ethernet Bridginf 체크
Networking -> Network options -> Network packet fileting(replaces ipchains) 체크
Networking -> Network options -> Network packet filtering(replaces ipchains) 하위메뉴
-> Bridged IP/ARP packets filtering 체크 후 하위메뉴 -->Bridge:Netfilter configuration ->
Ethernet Bridge tables(ebtables) supoort 모두체크 후 커널을 재 컴파일
============================================================================================