六、iptablesNAT模式-网络地址转换(企业级应用)
网络地址转换NAT(企业应用,虚拟机做实验效果不佳)
1.SNAT:把内网地址转换成公网地址(源地址转换)
一个数据包在经过路由之后(或者说在通过防火墙的过滤之后)才被知道他的源IP是谁,在路由之前只能看到目标IP,如果我看不到你的源IP,那怎么匹配想过滤的数据包并进行源地址转换?我防火墙根本就不能确定你是否是符合匹配条件的IP,所以只能使用POSTROUTING
iptables -t nat -A POSTROUTING -s 192.168.123.0/24 -d 192.168.122.0/24 -j SNAT --to-source 192.168.2.1
注释:在路由之后将原地址123.0访问你的目标地址122.0,通过SNAT转换将源地址123.0,转换成了2.1.为什么这样做呢? 因为数据在回包的时候要知道源地址是谁, 要不然回不去。
2.DNAT:要把公网ip换到内网IP -----公网ip只有一个, 内网ip有多个。(目标地址转换)
如果我不在路由之前就把目标地址转换完成,很显然当数据包到达入口IP之后,他的目的已经达到了,因为他本来的目标IP就是防火墙的对外公网IP,那么数据包还会往里面走吗?显然不可能了,所以只能使用PREROUTING
1.1 1.2 2.1 2.2
C---------------------B---------------------A
client 转发 web-server
iptables -t nat -A PREROUTING -d 192.168.1.2 -j DNAT --to-destination 192.168.2.2
七、企业级防火墙配置
1、清除防火墙规则
# iptables -F
2、修改默认规则为拒绝(修改前先放行22端口,保证自己能够连上主机)
[root@iptables-server ~]# iptables -A INPUT -p tcp --dport 22 -j ACCEPT #放开22号端口
[root@iptables-server ~]# iptables -P INPUT DROP #将默认所有进来的请求设置为全部拒绝掉
[root@iptables-server ~]# iptables -P FORWARD DROP #将默认所有的转发的规则设置为全部拒绝掉
注意:修改默认规则: 只能使用ACCEPT和DROP
# iptables -P INPUT DROP ----拒绝
# iptables -P INPUT ACCEPT ----允许
3、放行指定的端口
[root@iptables-server ~]# iptables -A INPUT -i lo -j ACCEPT #允许通过lo网卡进入的请求
[root@iptables-server ~]# iptables -A INPUT -p tcp -m multiport --dport 80,443 -j ACCEPT #允许访问80和443端口
[root@iptables-server ~]# iptables -A INPUT -s 192.168.246.0/24 -j ACCEPT #允许这个内网网段连接服务器
4、保存iptables配置
[root@iptables-server ~]# service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]
或者
[root@iptables-server ~]# iptables-save > /etc/sysconfig/iptables