Linux中部署SNAT和DNAT
来源:互联网 发布:java web开发用jsp吗 编辑:程序博客网 时间:2024/06/05 05:59
部署环境:
[root@miner_k html]# cat /etc/redhat-release CentOS release 6.5 (Final)
网络架构:
服务器A:(linux)—【NAT】
eth0:192.168.6.181/24 (能连接到互联网上)
服务器B:(Linux)
eth0:192.168.6.94/24
服务器C:(windows)
网卡1:192.168.6.6/24
SNAT的设置
在服务器A上的配置:
- 开启路由转发
临时开启:
[root@miner_k ~]# echo 1 > /proc/sys/net/ipv4/ip_forward
永久开启:
[root@miner_k ~]# vim /etc/sysctl.confnet.ipv4.ip_forward = 1[root@miner_k ~]# sysctl -p
- 2 防火墙配置:
[root@miner_k ~]# iptables -t nat -I POSTROUTING -s 192.168.6.0/24 -j MASQUERADE或者:[root@miner_k ~]# iptables -t nat -I POSTROUTING -s 192.168.6.0/24 -j SNAT --to-source 192.168.6.181
服务器B的配置:
[root@docker ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0DEVICE="eth0"BOOTPROTO="static"ONBOOT="yes"STARTMODE="onboot"IPADDR=192.168.6.94PREFIX=24GATEWAY=192.168.6.181
服务器C的配置:
如果能ping通,但是通过浏览器上不了网,是由于mtu值不同导致需要设置mtu值的大小。
windows 操作系统中修改mtu值
查询
输入:netsh interface ipv4 show subinterfaces 查询到目前系统的MTU值。 如果你查询不到你想要的连接,请看看是否已经禁用了某个本地连接。设置
netsh interface ipv4 set subinterface “本地连接” mtu=1480 store=persistentLinux操作系统中mtu值的修改
方法一:# vi /etc/sysconfig/network-scripts/ifcfg-eth0#增加如下内容 MTU="9000"方法二:# echo "1460" > /sys/class/net/eth0/mtu
DNAT的设置:
服务器A上的设置:
将访问服务器A的8080端口转发给服务器C的80端口
[root@miner_k ~]# iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to-destination 192.168.6.94:80
服务器C上的配置:
[root@docker ~]# yum -y install httpd[root@docker ~]# service httpd start[root@docker ~]# echo "web1" > /var/www/html/index.html
注意:
1.手动设置DNAT之后,数据的回包是使用NAT自动提供的SNAT。同理,手动设置SNAT,数据包的回复也是通过NAT自动提供的DNAT。
2.后端服务器是否需要指定网关到NAT的服务器DNAT中后端服务器不需要将网关指定到NAT上
SNAT必须将网关指定到NAT上
在NAT服务器上做限制
经过NAT服务器时需要经过iptables的PREROUTING、FORWARD、POSTROUTING这三个链,可以在这些链上做限制。
1.中断NAT的地址转换
[root@miner_k ~]# iptables -P FORWARD DROP
2.允许后端服务器ping通外网
[root@miner_k ~]# iptables -I FORWARD -p icmp --icmp-type 8 -m state --state NEW -j ACCEPT[root@miner_k ~]# iptables -I FORWARD -p icmp -m state --state ESTABLISHED,RELATED -j ACCEPT
3.在允许后端服务器连接外网之后,禁止访问百度
[root@miner_k ~]# iptables -I FORWARD -m string --algo kmp --string "www.baidu.com" -j DROP
更多好玩的还有待发现,可以根据iptables的策略做限制。
- Linux中部署SNAT和DNAT
- windows中部署SNAT和DNAT
- Linux-SNAT和DNAT
- linux防火墙中的snat和dnat
- SNAT和DNAT
- ipatbles DNAT 和SNAT
- SNAT和DNAT
- Linux里的防火墙(中):使用iptables实现DNAT和SNAT
- Linux(CentOS)下,DNAT和SNAT(分享IP)
- iptables中SNAT, DNAT, MASQUERADE
- iptables中SNAT, DNAT, MASQUERADE
- IPtables中SNAT、DNAT和MASQUERADE的含义
- iptables中DNAT、SNAT和MASQUERADE的理解
- IPtables中SNAT、DNAT和MASQUERADE的区别
- 五十 IPtables中SNAT、DNAT和MASQUERADE的含义
- IPtables中SNAT、DNAT和MASQUERADE的含义
- IPtables中SNAT、DNAT和MASQUERADE的含义
- IPtables中SNAT、DNAT和MASQUERADE的含义
- HCatalog Streaming Mutation API
- String的substring()方法内部实现
- js和html
- xcode中 Default-568h@2x 图片问题
- 【stm32f407】ADC实验
- Linux中部署SNAT和DNAT
- DAO模式
- webpack 初试
- SQL_Server_2012修改sa密码的方法
- web前端开发学习
- Android Studio 给模拟器发短信,emulator control点击没有反应
- 小程序纪录
- QHDlive IPTV
- ormlite-android使用