1 iptables与firewalld的关系
RHEL7.0以后使用firewalld服务取代了iptables服务但是依然可以使用iptables服务只是默认不开启了iptables和firewalld都不是真正的防火墙,它们都只是用来定义防火墙策略的防火墙管理工具,是操作系统上的一种服务,将定义好的规则交给内核中的netfilter(网络过滤器)来读取,从而实现防火墙的功能,firewalld和iptables除了可以可以在inbond和outbond方向做策略限制以外,还能实现snat和dnat功能。
注意firewalld和iptables同时只能运行一种服务否则会出现不可预知的情况
2 iptables安装
RHEL7.0以后iptables默认不开启需要安装iptables服务
安装完成后
3 实验场景
3.1 源地址转换
需求:
源地址1(172.16.202.15)需要访问公网目的地址(192.168.111.245),源地址2(172.16.202.16)不需要访问公网。
内网两台服务器,分别为源地址1(172.16.202.15)和源地址2(172.16.202.16),公网出口处有一台centos 7.1的双网卡服务器一个接口接内网(172.16.202.14),一个接口接外网(192.168.111.63)。
源地址1上首先需要保证和iptables服务器能够互通,并且有去往192.168.111.245的路由路由下一跳需要指向iptables内网接口(172.16.202.14),由iptables服务器做源nat,把源地址(172.16.202.15)nat成公网接口地址(192.168.111.63),从而可以访问目的地址(192.168.111.245)。
一、首先在源地址1服务器上配置去往192.168.111.245的路由
ip route add 192.168.111.245 via 172.16.202.14    //临时添加路由重启网卡或者系统后路由会丢失建议做路由固化
路由固化:在/etc/sysconfig/network-scripts目录下新建一个route配置文件vi route-eth0,新增一条路由,192.168.111.245/32 via 172.16.202.14重启网卡即可生效
二、iptables服务器上,配置snat策略
iptables -t nat -A POSTROUTING -s 172.16.202.15/32 -d 192.168.111.245/32 -j SNAT --to 192.168.111.63
注释:
-t  table    table to manipulate (default: `filter')          //这个选项指定命令要操作的匹配包的表。如果内核被配置为自动加载模块,这时若模块没有加载,系统将尝试为该表加载适合的模块。这些表如下:filter,这是默认的表,包含了内建的链INPUT(处理进入的包)、FORWARD(处理通过的包)和OUTPUT(处理本地生成的包)。
nat  //这个表被查询时表示遇到了产生新的连接的包,由三个内建的链构成:PREROUTING (修改到来的包)、OUTPUT(修改路由之前本地的包)、POSTROUTING(修改准备出去的包)。
-A  chain        //在所选择的链末添加规则
POSTROUTING  //先路由再做nat
-s    //源IP地址
-d    //目的IP地址
-j SNAT    //做源地址转换
--to    //转换后的IP地址
此时,从源地址1服务器上去ping 192.168.111.245结果如下route add 添加路由:
提示destination host prohibited说明路由可达但是在中间路径上被防火墙阻止了,源地址1本地服务器上,因为是出接口方向流量,所以默认情况下,不会被阻止,所以只能在iptables服务器上,被防火墙默认规则阻止了,所以只需要在iptables服务器上放开防火墙限制即可

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。