實驗室的windows03服務(wù)器總是被端口掃描,又裝不了其他的殺毒軟件,6年前證明瑞星靠不住,6年后還是靠不住。在實驗室找了臺沒用的機子,做一個簡單的防火墻。具體步驟如下:
- 一臺能跑得動你將要安裝的LInux的機器
- Linux系統(tǒng)安裝盤,發(fā)行版隨意,內(nèi)核2.6
- 該機器需要有兩塊網(wǎng)卡
系統(tǒng)安裝完成后,分別給兩塊網(wǎng)卡設(shè)置IP地址,一個為內(nèi)網(wǎng)IP,一個為外網(wǎng)IP。這里假設(shè)eht0為外網(wǎng)地址:201.114.0.156 , eth1為內(nèi)網(wǎng)地址:192.168.0.1 。
首先檢查IP轉(zhuǎn)發(fā)是否開啟:
[root@RHEL ~]# cat /proc/sys/net/ipv4/ip_forward 0 |
如果輸出為0,那么可以通過將ip_forward至1來臨時的實現(xiàn)IP轉(zhuǎn)發(fā),命令如下:
[root@RHEL ~]# echo 1 >> /proc/sys/net/ipv4/ip_forward [root@RHEL ~]# cat /proc/sys/net/ipv4/ip_forward
1 |
也可以通過修改系統(tǒng)配置文件來永久啟用IP轉(zhuǎn)發(fā)。打開/etc/sysctl.conf , 將"net.ipv4.ip_forward“的值由 “0” 修改成“1”:
# Controls IP packet forwarding #net.ipv4.ip_forward = 0 net.ipv4.ip_forward = 1
|
保存后退出,重啟網(wǎng)絡(luò)服務(wù):
[root@RHEL ~]# /etc/init.d/network restart
|
接下來通過iptables命令來設(shè)置防火墻的轉(zhuǎn)發(fā)規(guī)則。這里給出一個示例:
# 清空現(xiàn)有規(guī)則 iptables -F # 對于外網(wǎng)(WAN)到內(nèi)網(wǎng)(LAN)的封包,至允許那些回應(yīng)包 iptables -A FORWARD -i eth0 -o eht1 -m state --state ESTABLISHED,RELATED -j ACCEPT # 對于所有內(nèi)網(wǎng)(LAN)到外網(wǎng)(WAN)的封包都予以放行 iptables -A FORWARD -i eht0 -o eth1 -j ACCEPT #啟用轉(zhuǎn)發(fā)日志 iptables -A FORWARD -j LOG # 啟用IP偽裝,使得內(nèi)網(wǎng)中所有轉(zhuǎn)發(fā)出去的封包都是Linux服務(wù)器一臺機子發(fā)出的 iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE # 啟用地址轉(zhuǎn)換(NAT)將內(nèi)網(wǎng)的Web服務(wù)映射到外網(wǎng)的特定端口上 iptables -A PREROUTING -t nat -p tcp --dport 8080 -j DNAT --to-destination 192.168.0.2:8080
|
如果想要每次系統(tǒng)啟動后自動啟用相關(guān)的規(guī)則,可以直接將命令添加到“/etc/rc.local”中。重啟iptables , 然后運行“rc.local”腳本。
[root@RHEL ~]# /etc/init.d/iptables restart [root@RHEL ~]# sh /etc/rc.local |
iptables還包含了更豐富的轉(zhuǎn)發(fā)過濾規(guī)則,這里只是涉及到很簡單隔離內(nèi)外網(wǎng)的功能。更強大的功能可以參考iptables的命令手冊。
內(nèi)網(wǎng)的機器可以使用內(nèi)部地址,然后將網(wǎng)關(guān)設(shè)為Linux服務(wù)器的內(nèi)網(wǎng)地址,DNS設(shè)定為外網(wǎng)的DNS。如果條件允許,可以在Linux服務(wù)器上面部署一個DNS緩沖服務(wù),這樣內(nèi)網(wǎng)機器可以直接將Linux服務(wù)器設(shè)置為DNS。
這里需要注意的是,Linux服務(wù)器上鏈接內(nèi)網(wǎng)的網(wǎng)卡只需要設(shè)置IP地址和子網(wǎng)掩碼,不要設(shè)定默認(rèn)網(wǎng)關(guān)。只需要將鏈接外網(wǎng)的網(wǎng)卡設(shè)置好網(wǎng)關(guān),避免內(nèi)網(wǎng)的包轉(zhuǎn)發(fā)到無法到達的網(wǎng)關(guān)地址,而沒有跳轉(zhuǎn)到外網(wǎng)接口。