天天看點

【linux】iptables防火牆SNAT和DNAT的簡單示範

首先說明snat和dnat都大緻相當于網絡中的nat和pat協定,本實驗是通過用一台linxu虛拟機來模拟内網網關,并且利用linux上的iptables防火牆政策,達到位址轉換和端口映射的目的。

snat

實驗結構:

真機----------------(v1)網關伺服器s1(v2)--------------(v2)外網伺服器s2

開2台虛拟機linux,分别模拟s1和s2。

其中,s1上另增加一塊網卡,使用vmnet1與真機相連。

使用vmnet2與外網伺服器的s2的vmnet2相連。

ip位址規劃

真機:

vmnet1:192.168.80.5/24

s1:

vmnet1:192.168.80.20/24

vmnet2:192.168.90.1/24

s2:

vmnet2:192.168.90.22/24

實驗步驟:

設定s1,s2的網卡參數

vi /etc/sysconfig/network-scripts/ifcfg-eth0

設定如下

【linux】iptables防火牆SNAT和DNAT的簡單示範

繼續設定另一塊網卡的參數

首先ifconfig檢視一下eth1的mac位址,然後

cd /etc/sysconfig/network-scripts/

複制模闆

cp -p ifcfg-eth0 ifcfg-eth1

修改

vi  ifcfg-eth1

【linux】iptables防火牆SNAT和DNAT的簡單示範

在s1上開啟路由轉發功能

vi /etc/sysctl.conf

【linux】iptables防火牆SNAT和DNAT的簡單示範

設定s2的網卡參數

s2

vi /etc/sysconfig/network-scripts/ifcfg-eth1

【linux】iptables防火牆SNAT和DNAT的簡單示範

關閉s2的防火牆

service iptables stop

将真機vmnet1的ip位址設定為192.168.80.5/24 ,網關設定為192.168.80.20

2.在s1上設定防火牆,使得s1可以做pat,将真機位址192.168.80.5轉換為外網口

位址192.168.90.1

iptables –t nat –i postrouting –s 192.168.80.0/24 –o eth1 –j snat --to

192.168.90.1

注釋:-t 規則表      -i   規則鍊    -s 源位址   -o出站接口   -j  政策

測試結果,在真機上ping 192.168.90.22

【linux】iptables防火牆SNAT和DNAT的簡單示範

是通的。

可以在s2上搭建一個ftp,來觀察結果。

service vsftpd start

然後在真機上登入 ftp

【linux】iptables防火牆SNAT和DNAT的簡單示範

在s2上檢視一下是誰在登入

netstat –anpt

【linux】iptables防火牆SNAT和DNAT的簡單示範

登入自己的主機位址為192.168.90.1  表明pat已經轉換位址成功。

dnat

真機(模拟外網)(v1)----------(vmnet1)網關伺服器s1(vmnet2)---- -----(vmnet2)内網伺服器s2

ip位址的規劃依舊不變

在s1上做修改

s1

首先清空原來的防火牆配置

iptables –f

配置新的dnat政策

iptables –t nat –a prerouting –i eth0 –d 192.168.80.20 –p tcp --dport 21 –j dnat

--to 192.168.90.22

注釋:-t 規則表      -a   規則鍊     -i 入站接口    -d 目标位址    –p協定                     --dport  目标端口           -j  政策

測試,用真機ftp 192.168.90.22

【linux】iptables防火牆SNAT和DNAT的簡單示範

成功登入

在s2上netstat -anpt

【linux】iptables防火牆SNAT和DNAT的簡單示範

驗證登入的為真機ip位址192.168.80.5。

實驗結束。

繼續閱讀