(1) 請求-響應報文均會經由FORWARD鏈,要注意規則的方向性服務器
(2) 若是要啓用conntrack機制,建議將雙方向的狀態爲ESTABLISHED的報文直接放行網絡
假設:172.17.252.162 互聯網上的主機(只有橋接,斷掉僅主機)測試
兩個網卡192.168.10.200和172.17.253.132 防火牆主機ui
192.168.10.187 內部網絡主機(只有僅主機,斷掉橋接)
實驗目的:容許內網主機訪問互聯網上主機,不容許互聯網上主機訪問內網主機
(1)添加網關,讓172.17.252.0/16網段的主機和192.168.10.0/24網段的主機可以互相ping通
route add default gw 172.17.253.132
route add default gw 192.168.10.200
(2)在防火牆主機上添加策略,使內網的主機能訪問互聯網上的主機,而互聯網上的主機不能訪問內網的主機
iptables -A FORWARD -s 192.168.10.0/24 -d 172.17.252.0/16 -m state --state NEW -j ACCEPT 在FORWARD鏈上容許源地址爲192.168.10.0/24網段目標地址爲172.17.252.0/16網段
iptables -I FORWARD -m state --state ESTABLISHED -j ACCEPT
iptables -A FORWARD -j REJECT 拒絕其餘轉發
上一個實驗能夠實現內網主機訪問互聯網主機,不容許互聯網主機訪問內網主機,可是有一個巨大的問題,就是內網主機地址必須是公有地址,成本過高,還不安全
假設:192.168.6.52 互聯網上的主機 ,只有一塊網卡,橋接(公網ip)
192.168.66.128(僅主機)和192.168.6.143(橋接,公網ip) 防火牆主機,兩塊網卡,一塊橋接,一塊僅主機
192.168.66.177 內網的主機 ,一塊網卡,僅主機(內網ip)
實驗目的:如今要經過防火牆作源地址轉換,將192.168.66.177轉換爲192.168.6.143,從而實現訪問互聯網上的主機
(1)在內網主機(192.168.66.177)上,將網關指向192.168.66.128
route add default gw 192.168.66.177
(2)在防火牆主機上作源地址轉換,將內網的整個網段都替換成公網地址
iptables -t nat -A POSTROUTING -s 192.168.66.0/24 -j SNAT --to-source 192.168.6.143
在192.168.6.52互聯網上的主機上開一個web服務,而後用內網的主機192.168.66.177去訪問,若是能訪問到,說明實驗成功
systemctl start httpd 開啓httpd服務
2.在192.168.66.177主機上用curl命令去訪問
假如說公司內部有一我的出差了,在互聯網上想訪問公司內部一個服務器,這要怎麼作呢?如圖:
當互聯網上的主機訪問192.168.6.143的80端口時,就給他轉到192.168.66.177的80端口
假設:192.168.6.52 互聯網上的主機,一塊網卡,橋接
192.168.6.143和192.168.66.128 防火牆主機,兩塊網卡,一塊橋接,一塊僅主機
192.168.66.177 內網的主機 ,一塊網卡,僅主機
實驗目的:實現互聯網上的主機可以訪問內網主機開啓的httpd服務
(1)在內網主機(192.168.66.177)上,將網關指向192.168.66.128
route add default gw 192.168.66.177
(2)在防火牆主機上作目標地址轉換,將目標地址192.168.6.143轉換爲192.168.66.177
iptables -t nat -A PREROUTING -d 192.168.6.143 -p tcp --dport 80 -j DNAT --to-destination 192.168.66.177:80
(3)在內網主機(192.168.66.177)開啓httpd服務
echo hello world > /var/www/html/index.html
在互聯網上的主機上用curl命令訪問192.168.10.143
實現其餘人訪問我本機的一個端口(如:80),給他轉發到本機的另外一個端口(如:8080)上
vim /etc/httpd/conf/httpd.conf
(2)在內網主機(192.168.66.177)上設置轉發策略,若是訪問本機的80端口就給轉發到本機的8080端口
iptables -t nat -A PREROUTING -d 192.168.66.177 -p tcp --dport 80 -j REDIRECT --to-ports 8080