有時候,我們不想改動原本的網絡環境,來經常網絡安全管理,這時候我們就可以用到透明防火牆了,這時候我們就用到網橋的模塊,當然它屬於第二層的那一層了。
實驗環境:
server ——firewall——client
server ip address: 192.168.1.100
client ip address: 192.168.1.200
firewall ip address :192.168.1.1
需求:
只允許server可以通過網上鄰居講文件傳輸到client(這個過程是單向的),server與client可以相互通過icmp echo request 來確認彼此的間聯通(這個過程是雙向的 )
步驟:
1.綁定張網卡合成一個網橋接口(bridge interface)
firewall至少要有兩張網卡,然後將它們綁定起來,firewall可以成網橋了,首先需要安裝bridge-utils與bridge-utils-devel這個兩組件,這兩個組件就將eth0與eth1綁定成一個網橋設備,符合我們的要求。我的環境是rhcl 4.4假設定,這兩個組件在光盤裡就有的
#rpm-ivh bridge-util-×
接著將eth0與eth1 綁定成bri0 interface
#ifconfig eth0 0.0.0.0
#ifconfig eth1 0.0.0.0
#brctl addbr bri0
#brctl addif bri0 eth0
#brctl addif bri1 eth1
使用brctl show 確認一下:
#brctl show
birdge name bridge id STP enable interface
bri0 8000.000347305b3 no eth0
eth1
這裡問題
到了這裡,既然bri0 interface 已經建立好了,那麼是否在上面寫入ip地址呢?答案是肯定的,
有了ip地址我們就可以做到遠程控制了,設置方法有兩種,一種是手工寫入,第二種通過dhcp server 獲取
手工寫入:
#ifconfig bri0 192.168.1.1 netmask 255.255.255.0 up
dhcp client
# dhclient bri0
以上可以寫shell腳本,每次開機自動的執行,我用的是rhel 4.4 放在/etc/rc.local中
2. 設置firewall轉發功能
#vi /etc/systcl.conf
#Controls ip packet forwarding
net.ipv4.ip_forwarding = 1
#sysctl -p
可以測試一下,目前server與client的網絡連通xing
3.設置策略
至於策略那就是玩iptables了,基礎部分我就不講了相信大家理解的比我深刻,因為今天是休息天啊手寫都發酸了。
進入主題:
為了安全考慮先把forward default policy設置為drop 只放行smb 協議和icmp ech0 request
# iptables -P FORWARD DROP
這時server與client目前肯定是連不通的
設置允許n個數據包通過:
# iptables —A FORWARD -m state -state RELATED,ESTABLISHED -j ACCPT
允許icmp ech0 request:
#iptables -A -FORWARD -s 192.168.1.0/24 -p icmp -icmp-type 8 -j ACCPT
設置只有server可以通過網上鄰居將文件送到client
#iptables -A FORWARD -s 192.168.1.100/24 -d 192.168.1.200/24 -p tcp -dport 139 -j ACCPT
#iptables -A FORWARD -s 192.168.1.100、24 -d 192.168.1.200/24 -p tcp -dport 445 -j
ACCPT
這樣一就OK了