设为首页 收藏本站
查看: 1769|回复: 0

[经验分享] Centos7配置为NAT服务器

[复制链接]

尚未签到

发表于 2018-4-21 12:38:39 | 显示全部楼层 |阅读模式
Centos7NAT路由器配置

  准备三台实验机器:
  模拟内网:Ubuntu14.04  192.168.104.10
  模拟外网:Ubuntu14.04  10.20.20.100
  模拟nat服务器(作为网关):centos7  192.168.104.2  10.20.20.2
  环境:vsphere虚拟化平台
DSC0000.png

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

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

  3.配置nat服务器
DSC0003.png

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

  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 #允许内网通过网关访问外网,注意其实到这步就可以实现内网访问外网,但是如果在外网上抓包会看到源地址并没有转换,所以这样不够完善。
DSC0005.png

  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 效果是一样的。再次在外网服务器上抓包取证。
DSC0006.png

  实验二:外网通过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端口,在内网服务器上抓包取证。
   DSC0007.png
DSC0008.png

  总结:
  在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链上做规则设定。
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-450041-1-1.html 上篇帖子: centos7.2下部署nginx 下篇帖子: centos 6 升级python 2.7
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表