一、环境
服务器IP地址:192.168.1.2
Linux操作系统IP地址:192.168.1.3(eth0);192.168.10.20(eth1)
客户端IP地址:192.168.10.30
拓扑图如下:
二、配置
1、 开启防火墙数据转发功能
配置文件:/proc/sys/net/ipv4/ip_forward
该配置文件中默认值为0,将值改为1
注:0表示此功能能关闭;1表示此功能开启。
2、linux操作系统中的IPTABLES
用到的命令:
(1)查看目前本机的防火墙规则:iptables –L –n
参数:
-L:列出目前的table当然规则
-n:不进行IP和HOSTNAME的反查,显示信息的速度会快很多。
(2)清空原有防火墙规则:iptables [-FXZ]
参数:
-F:清除所有的已定制的规则
-X:除掉所有用户“自定义”的chain
-Z:将所有的chain的计数与流量统计都归零
(3)通过命令配置防火墙转发功能
A.首先,当客户端发起到服务器的连接请求:数据包先从客户端(192.168.10.30)发出,到达linux主机(192.168.10.20),经过防火墙将数据包封装新的数据包头(192.168.1.3)。简单来说就是数据包经过linux主机防火墙时,经过数据包头转换,将旧的源地址(客户端地址:192.168.10.30)改为新的源地址(linux)
命令:
iptables -t nat –A POSTROUTING –s192.168.10.30 –o eth0 -j SNAT --to-source 192.168.1.3
参数:
-t:后面接table,例如nat或者filter,省略此项时默认使用filter
-A 链名:新增一条规则,该规则增加在原规则的最后面。例如原来有两条规则,使用-A后就是加上第三条规则。
-io 网路接口:设置数据包进出的接口规范
-o:数据包所进入的那个网络接口。与POSTROUTING(修改来源IP)结合。
-i:数据包所传出的那个网络接口。与PREROTING(修改目的IP)结合。
-s 来源IP/网络:设置此规则的数据包的来源地;-d:目标IP/网络:同-s,只不过这里指的是目标的的ip/网络
-j:后面接操作;SNAT:修改数据包报头的来源项目 DNAT:修改数据包报头的目的项目
B.当数据包从客户端发出到eth1后再次进行转换:
命令:
iptables-t nat –A PREROUTING -d 192.168.10.20 -i eth0 –j DNAT --to-destination192.168.1.2
同样的,当服务器收到客户端请求返回数据包:
iptables –t nat –A POSTROUTING -s 192.168.1.2-o eth1 -j SNAT --to-source 192.168.10.20
iptables -t nat -A PREROUTING -d 192.168.1.3-i eth1 -j DNAT --to-distination 192.168.10.30
至此防火墙配置完成。
以上有不足或者错误的地方敬请指正!
转载于:https://blog.51cto.com/12213305/1869266