1. 程式人生 > >Linux防火牆下的簡單路由配置與埠對映

Linux防火牆下的簡單路由配置與埠對映

實驗室的windows03伺服器總是被埠掃描,又裝不了其他的防毒軟體,6年前證明瑞星靠不住,6年後還是靠不住。在實驗室找了臺沒用的機子,做一個簡單的防火牆。具體步驟如下:
  1. 一臺能跑得動你將要安裝的LInux的機器
  2. Linux系統安裝盤,發行版隨意,核心2.6
  3. 該機器需要有兩塊網絡卡
    系統安裝完成後,分別給兩塊網絡卡設定IP地址,一個為內網IP,一個為外網IP。這裡假設eht0為外網地址:201.114.0.156 , eth1為內網地址:192.168.0.1 。     首先檢查IP轉發是否開啟:

[root@RHEL ~]# cat /proc/sys/net/ipv4/ip_forward
0


    如果輸出為0,那麼可以通過將ip_forward至1來臨時的實現IP轉發,命令如下:

[root@RHEL ~]# echo 1 >> /proc/sys/net/ipv4/ip_forward 

[root@RHEL ~]# cat /proc/sys/net/ipv4/ip_forward 

1


    也可以通過修改系統配置檔案來永久啟用IP轉發。開啟/etc/sysctl.conf , 將"net.ipv4.ip_forward“的值由 “0” 修改成“1”:

# Controls IP packet forwarding

#net.ipv4.ip_forward = 0
net.ipv4.ip_forward = 1


    儲存後退出,重啟網路服務:

[root@RHEL ~]# /etc/init.d/network restart

         接下來通過iptables命令來設定防火牆的轉發規則。這裡給出一個示例:

# 清空現有規則

iptables -F

# 對於外網(WAN)到內網(LAN)的封包,至允許那些迴應包
iptables -A FORWARD -i eth0 -o eht1 -m state --state ESTABLISHED,RELATED -j ACCEPT

# 對於所有內網(LAN)到外網(WAN)的封包都予以放行
iptables -A FORWARD -i eht0 -o eth1 -j ACCEPT

#啟用轉發日誌
iptables -A FORWARD -j LOG

# 啟用IP偽裝,使得內網中所有轉發出去的封包都是Linux伺服器一臺機子發出的
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

# 啟用地址轉換(NAT)將內網的Web服務對映到外網的特定埠上
iptables -A PREROUTING -t nat -p tcp --dport 8080 -j DNAT --to-destination 192.168.0.2:8080

        如果想要每次系統啟動後自動啟用相關的規則,可以直接將命令新增到“/etc/rc.local”中。重啟iptables , 然後執行“rc.local”指令碼。

[root@RHEL ~]# /etc/init.d/iptables restart
[root@RHEL ~]# sh /etc/rc.local

    iptables還包含了更豐富的轉發過濾規則,這裡只是涉及到很簡單隔離內外網的功能。更強大的功能可以參考iptables的命令手冊。     內網的機器可以使用內部地址,然後將閘道器設為Linux伺服器的內網地址,DNS設定為外網的DNS。如果條件允許,可以在Linux伺服器上面部署一個DNS緩衝服務,這樣內網機器可以直接將Linux伺服器設定為DNS。     這裡需要注意的是,Linux伺服器上鍊接內網的網絡卡只需要設定IP地址和子網掩碼,不要設定預設閘道器。只需要將連結外網的網絡卡設定好閘道器,避免內網的包轉發到無法到達的閘道器地址,而沒有跳轉到外網介面。 轉載:http://blog.chinaunix.net/uid-8326220-id-364071.html