当前位置: > CentOS > CentOS教程 >

Centos7配置为NAT服务器

时间:2017-08-27 00:03来源:51cto.com 作者:51cto.com

Centos7做NAT路由器配置

准备三台实验机器:

模拟内网:Ubuntu14.04  192.168.104.10

模拟外网:Ubuntu14.04  10.20.20.100

模拟nat服务器(作为网关):centos7  192.168.104.2  10.20.20.2

 

环境:vsphere虚拟化平台

 

1.配置内网服务器网络(关闭内网服务器防火墙)

2.配置外网服务器网络(关闭外网服务器防火墙)

 

3.配置nat服务器

 

4.配置好服务器网络之后,配置nat服务器的防火墙和路由规则(重要)

1)配置路由

2)配置防火墙(重点)

SNAT:内网访问外网,作用于nat表POSTROUTING链

DNAT:外网访问内网,作用于nat表PREROUTING链

首先关闭自带防火墙(systemctl  stop  firewalld)

清除之前所有的规则:(nat会使用到filter表和nat表)

         iptables  -X & iptables  -F &iptables  -Z (清理filter表的规则,不加 –t 就默认filter表)

         iptables -X -t nat  & iptables  -F  -tnat & iptables  -Z  -t nat (清理filter表的规则)

 

实验一:内网通过nat访问外网

1.iptables -P FORWARD DROP #关闭forward转发链,安全。

2.iptables -A FORWARD –m state –stateESTABLISHED,RELATED –j ACCEPT #使用状态模块,放行相关的和建立连接的请求

3.iptables -A FORWARD -m state-state NEW -s 192.168.104.0/24 -j ACCEPT #允许内网通过网关访问外网,注意其实到这步就可以实现内网访问外网,但是如果在外网上抓包会看到源地址并没有转换,所以这样不够完善。

4.iptables -t nat -APOSTROUTING -s 192.168.104.0/24 -o ens192 -j MASQUERADE

#将192.168.104段的地址伪装成nat出口地址,MASQUERADE这个值其实就是IP伪装成封包出去(-o)的那块网卡上的IP。其实上面的语句和iptables -t nat-A POSTROUTING -s 192.168.104.0/24 -j SNAT --to-source 10.20.20.2 效果是一样的。再次在外网服务器上抓包取证。

 

实验二:外网通过nat访问内网服务(ssh为例)

1.iptables -P FORWARD DROP #关闭forward转发链,安全。

2.iptables -A FORWARD –m state –stateESTABLISHED,RELATED –j ACCEPT #使用状态模块,放行相关的和建立连接的请求

3.iptables -t nat -APREROUTING -p tcp -i ens192 --dport 10222 -j DNAT --to-destination192.168.104.10:22  #外部请求nat服务器某个端口然后DNAT跳转到内网服务器上

4.iptables -A FORWARD -iens192 -o ens160 -d 192.168.104.10 -p tcp --dport 22 -j ACCEPT

# 外部请求进到nat服务器,然后经过nat表的PREROUTING链到达filter表的FORWARD链,然后放行目的地址的22端口,在内网服务器上抓包取证。

总结:

在linux nat中,被转发的包实际经过了以下几个  表-链 的组合

1.  mangle  --PREROUTING

2.  nat         --PREROUTING                            #用于外部访问内部服务的NAT

3.  mangle      --FORWARD                                 

4.  filter           --FORWARD     

5.  mangle      --POSTROUTING

6.  nat              --POSTROUTING                         #用于内部浏览外部的NAT

nat一般都是在filter表的forward链和nat表的prerouting,postrouting链上做规则设定。

(责任编辑:IT)
------分隔线----------------------------
栏目列表
推荐内容