iptables路由转发与地址伪装的简单实现
三台虚拟机模拟架设一个防火墙应用
一:在Vmware软件上建立3台虚拟机A、B、iptables,分别当做客户机A、架设防火墙的路由iptables、服务器B。
在路由iptables上配置增添一块网卡eth1,并且设置IP:1.2.3.4/16,eth0的IP 172.16.10.1/16
A的IP-1.2.3.5/16
B的IP—172.16.10.2/16
修改机器iptables的配置文件,让它能够转发,充当路由。
echo 1 > /proc/sys/net/ipv4/ip_forward #此文件不能直接被编辑修改,修改之后不必重启
测试
设置完成之后,可以简单的通过PING命令来测试A与iptables、B与iptables、A与B能否相互通信
AB、A与iptables、B与iptables互ping都是可以的。
我们要实现的是在A访问B的时候,隐藏A主机的IP地址,机器B查看自己主机的访问日志的时候看到的是iptables机器的IP。怎么样?很神奇吧,赶紧往下看吧。
听到这里,你可能想到要隐藏自己的IP去做一些不想被别人知道的事儿。确实,这是iptables能做的。iptables能做的远远不止这一点,它最关键的还是在于提高安全。
下面是具体的做法,已经熟悉做法的,可以略过。
3台机器的分配:
A机器:
1更改网卡设置:
2修改IP
vim /etc/sysconfig/network-scripts/ifcfg-eth0
IPADDR=1.2.3.5 #修改IPADDR的值
GATAWAY=1.2.3.4 #A的网关为iptables的eth1的IP
service network restart #重启服务让修改生效
iptables机器:
1更改网卡设置:
第二块网卡的此项设置要与A网卡一致,让他们在同一个网段内,如果不设的话,两者是不能相互通信的哦
2修改IP
vim /etc/sysconfig/network-scripts/ifcfg-eth0
IPADDR=172.16.10.1 #修改IPADDR的值
vim /etc/sysconfig/network-scripts/ifcfg-eth1
IPADDR=1.2.3.4 #修改IPADDR的值
vim /etc/sysconfig/network
service network restart
iptables机器与A机器的两块网卡完成,可以试验看一下,两者能否相互ping通
ping 1.2.3.5 #在iptables上面ping机器A
ping 1.2.3.4 #在iptables上面ping 机器iptables
1更改网卡设置:
更改机器B的选项为Vmnet2
2修改IP
vim /etc/sysconfig/network-scripts/ifcfg-eth0
IPADDR=172.16.10.2 #修改IPADDR的值
GATAWAY=172.16.10.1 #B的网关为iptables的eth0的IP
service network restart
二:
此方法不仅能做路由转发。还可以
比如A访问B,但给B显示的是机器iptables的eth0网卡的IP地址。
iptables –t nat –A POSTROUTING –o eth0 17216.10.1 –j SNAT –to-source 172.16.10.2 #在机器(iptables)上添加以下规则
再查看B的日志