SNAT与DNAT的原理与应用

SNAT与DNAT的原理与应用

2023年7月23日发(作者:)

SNAT与DNAT的原理与应⽤⼀、SNAT原理与应⽤1、SNAT应⽤环境局域⽹主机共享单个公⽹IP地址接⼊Internet (私有IP不能在Internet中正常路由)2、SNAT原理修改数据包的源地址3、SNAT转换前提条件① 局域⽹各主机已正确设置IP地址、⼦⽹掩码、默认⽹关地址② Linux⽹关开启IP路由转发临时打开:echo 1 > /proc/sys/net/ ipv4/ip_forward或sysctl -W 4. ip_forward=1永久打开:vim /etc/_forward = 1#将此⾏写⼊配置⽂件sysctl -P#读取修改后的配置

4、SNAT转换1:固定的公⽹IP地址:SNAT转换1:固定的公⽹IP地址:iptables -t nat -A POSTROUTING -s 192.168.80.0/24 -o ens33 -j SNAT --to 12.0.0.1或iptables -t nat -A POSTROUTING -s 192.168.80.0/24 -o ens33 -j SNAT --to-source 12.0.0.1-12.0.0.10 内⽹IP 出站 外⽹⽹卡 外⽹IP或地址池-s 内⽹IP-o 出站外⽹⽹卡source 外⽹IP或地址池

5、SNAT转换2:⾮固定的公⽹IP地址(共享动态IP地址) :iptables -t nat -A POSTROUTING -s 192.168.80.0/24 -o ens33 -j MASQUERADE

100200

⼆、DNAT原理与应⽤DNAT转换前提条件:1.局域⽹的服务器能够访问Internet2.⽹关的外⽹地址有正确的DNS解析记录⽹关开启IDNAT转换1:发布内⽹的Web服务vim /etc/_forward = 1sysctl -P DNAT转换1:发布内⽹的Web服务#把从ens33进来的要访问web服务的数据包⽬的地址转换为 192.168.80.11iptables -t nat -A PREROUTING -i ens33 -d 12.0.0.1 -p tcp --dport 80 -j DNAT --to 192.168.80.11或iptables -t nat -A PREROUTING -i ens33 -d 12.0.0.1 -p tcp --dport 80 -j DNAT --to-destination 192.168.80.11 ⼊站 外⽹⽹卡 外⽹IP 内⽹服务器IPiptables -t nat -A PREROUTING -i ens33 -p tcp --dport 80 -j DNAT --to 192.168.80.11-192.168.80.20

DNAT转换2:发布时修改⽬标端⼝#发布局域⽹内部的OpenSSH服务器,外⽹主机需使⽤250端⼝进⾏连接iptables -t nat -A PREROUTING -i ens33 -d 12.0.0.1 -p tcp --dport 250 -j DNAT --to 192.168.80.11:22#在外⽹环境中使⽤SSH测试ssh -p 250 root@12.0.0.1yum -y install net-tools#若没有ifconfig 命令可提前使⽤yum 进⾏安装ifconfig ens33

注意:使⽤DNAT时,同时还有配合SNAT使⽤,才能实现响应数据包的正确返回⼩知识扩展:主机型防⽕墙主要使⽤INPUT、OUTPUT链,设置规则时⼀-般要详细的指定到端⼝⽹络型防⽕墙主要使⽤FORWARD链,设置规则时很少去指定到端⼝,⼀般指定到IP地址或者到⽹段即可三、防⽕墙规则的备份和还原导出(备份)所有表的规则iptables-save > /opt/导⼊(还原)规则iptables-restore < /opt/将iptables规则⽂件保存在/etc/sysconfig/iptables中,iptables服务启动时会⾃动还原规则iptables-save > /etc/sysconfig/iptablessystemctl stop iptables #停⽌iptables服务会清空掉所有表的规则systemctl start iptables #启动iptables服务会⾃动还原/etc/sysconfig/iptables中的规则

四、Linux抓包1、tcpdump简介tcpdump命令是⼀款sniffer⼯具,是linux上的抓包⼯具,嗅探器;它可以打印出所有经过⽹络接⼝的数据包的头信息。tcpdump命令⼯作时先要把⽹卡的⼯作模式切换到混杂模式。所以tcpdump命令需要以root⾝份运⾏。tcpdump命令是linux下使⽤最⼴泛的⽹络协议分析⼯具。使⽤tcpdump命令时,必须精通TCP/IP协议⼯作原理。2、格式tcpdump [参数]3、常⽤参数常⽤参数-a-c<数据包数⽬>-d-dd-ddd说明尝试将⽹络和⼴播地址转换成名称收到指定的数据包数⽬后,就停⽌进⾏倾倒操作把编译过的数据包编码转换成可阅读的格式,并倾倒到标准输出把编译过的数据包编码转换成C语⾔的格式,并倾倒到标准输出把编译过的数据包编码转换成⼗进制数字的格式,并倾倒到标准输出-e-f-F<表达⽂件>-i<⽹络界⾯>-l-n-N-O-p-q-r<数据包⽂件>-s<数据包⼤⼩>-S-t-tt-T<数据包类型>-v-vv-x-w<数据包⽂件>在每列倾倒资料上显⽰连接层级的⽂件头⽤数字显⽰⽹际⽹络地址指定内含表达⽅式的⽂件使⽤指定的⽹络截⾯送出数据包使⽤标准输出列的缓冲区不把主机的⽹络地址转换成名字不列出域名不将数据包编码最佳化不让⽹络界⾯进⼊混杂模式快速输出,仅列出少数的传输协议信息 从指定的⽂件读取数据包数据设置每个数据包的⼤⼩⽤绝对⽽⾮相对数值列出TCP关联数在每列倾倒资料上不显⽰时间戳记在每列倾倒资料上显⽰未经格式化的时间戳记强制将表达⽅式所指定的数据包转译成设置的数据包类型详细显⽰指令执⾏过程更详细显⽰指令执⾏过程⽤⼗六进制字码列出数据包资料把数据包数据写⼊指定的⽂件4、⽰例

发布者:admin,转转请注明出处:http://www.yc00.com/web/1690103974a306168.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信