網絡防火牆和NAT地址轉換

網絡防火牆

iptables/netfilter網絡防火牆:html

(1) 充當網關web

(2) 使用filter表的FORWARD鏈vim

注意的問題:安全

(1) 請求-響應報文均會經由FORWARD鏈,要注意規則的方向性服務器

(2) 若是要啓用conntrack機制,建議將雙方向的狀態爲ESTABLISHED的報文直接放行網絡

實驗:禁止互聯網上的主機訪問內網主機curl

實驗環境:3臺機器tcp

假設: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通

1.在172.17.252.162主機上

route add default gw 172.17.253.132

2.在192.168.10.187主機上

route add default gw 192.168.10.200

3.在防火牆上主機上開啓轉發功能

vim /etc/sysctl.conf

sysctl -p 使添加的內核參數生效

4.查看連個網段的主機可否互相ping通

 

(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 拒絕其餘轉發

(3)測試

在互聯網主機上訪問內部網絡主機 不能ping通

在內網主機上ping互聯網主機 能ping通

 

實驗:NAT: network address translation 網絡地址轉換

1.SNAT 源網絡地址轉換

上一個實驗能夠實現內網主機訪問互聯網主機,不容許互聯網主機訪問內網主機,可是有一個巨大的問題,就是內網主機地址必須是公有地址,成本過高,還不安全

實驗環境:

假設: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

(3)測試

在192.168.6.52互聯網上的主機上開一個web服務,而後用內網的主機192.168.66.177去訪問,若是能訪問到,說明實驗成功

1.在192.168.6.52主機上

systemctl start httpd 開啓httpd服務

2.在192.168.66.177主機上用curl命令去訪問

用ping也能通

(4)在互聯網上的主機看看是誰訪問的

都是192.168.6.143訪問的,說明試驗成功

 

2.DNAT目標網絡地址轉換

假如說公司內部有一我的出差了,在互聯網上想訪問公司內部一個服務器,這要怎麼作呢?如圖:

當互聯網上的主機訪問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服務

systemctl start httpd

echo hello world > /var/www/html/index.html

(4)測試

在互聯網上的主機上用curl命令訪問192.168.10.143

(5)咱們在內網主機上看日誌,確實是互聯網上的主機訪問的

 

3.轉發

實現其餘人訪問我本機的一個端口(如:80),給他轉發到本機的另外一個端口(如:8080)上

咱們基於上一個實驗來作本實驗

(1)將內網主機上httpd服務端口改爲8080

vim /etc/httpd/conf/httpd.conf

Listen 8080

重啓服務 systemctl restart httpd

ss -ntl 查看端口

如今只有8080端口,沒有80端口

(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

(3)測試

在互聯網主機(192.168.6.52)上用curl來訪問防火牆主機192.168.6.143

curl 192.168.6.143

相關文章
相關標籤/搜索