Linux(CentOS)下,DNAT和SNAT(分享IP)
linux-dash
A beautiful web dashboard for Linux
项目地址:https://gitcode.com/gh_mirrors/li/linux-dash
免费下载资源
·
我有两台服务器:
前端服务器A,它具备外网地址(115.238.54.116),也有内网地址(192.168.0.2);
后端服务器B,它没有外网地址,只具备内网地址(192.168.0.3)。
通过设置DNAT,可以实现内网服务器供Internet访问。
通过设置SNAT,可以实现内网主机访问Internet。
查看防火墙的详细配置,可参考《防火墙iptables配置》。
直接修改iptables的配置文件:vi /etc/sysconfig/iptables
填入如下内容后,用命令(# service iptables restart)使得设置生效。
#iptables有3个表(filter,nat,mangle)
#这里只配置filter和nat,mangle一般不用。
#filter过滤表的配置(它包含:INPUT,FORWARD,OUTPUT)
*filter
#接收(INPUT)的默认策略是丢弃(DROP)
:INPUT DROP [9650160:4545407604]
#接收所有本机的请求
-A INPUT -i lo -j ACCEPT
#接所有ICMP的请求(PING)
-A INPUT -p icmp -j ACCEPT
#接收所有已经建立了链接的请求
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#允许远程链接(SSH,PostgreSQL,MySQL,Tomcat,Nginx等,以及自定义服务)
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 5432 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 54104 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 9090 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8090 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8000 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
#拒绝其他所有请求,告诉它主机禁止访问
-A INPUT -j REJECT --reject-with icmp-host-prohibited
#转发(FORWARD)的默认策略是接受(ACCEPT)
:FORWARD ACCEPT [2068743:358404333]
#转发所有已经建立了链接的请求
-A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
#允许远程链接(SSH,MySQL等)控制其背后的内网服务器
-A FORWARD -m state --state NEW -m tcp -p tcp --dport 50022 -j ACCEPT
-A FORWARD -m state --state NEW -m tcp -p tcp --dport 53306 -j ACCEPT
-A FORWARD -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
-A FORWARD -m state --state NEW -s 192.168.0.0/24 -j ACCEPT
-A FORWARD -m state --state NEW -d 192.168.0.0/24 -j ACCEPT
#拒绝其他所有转发,告诉它主机禁止访问
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
#发送(OUTPUT)的默认策略是接受(ACCEPT)
:OUTPUT ACCEPT [9988047:5993618714]
COMMIT
#nat表的默认配置(它包含:PREROUTING,POSTROUTING,OUTPUT)
*nat
#前置路由(PREROUTING)的默认策略是接受(ACCEPT)
:PREROUTING ACCEPT [683:42497]
#DNAT设置,允许远程链接(SSH,MySQL等)控制其背后的内网服务器
-A PREROUTING -i em1 -p tcp -m tcp --dport 50022 -j DNAT --to-destination 192.168.0.3
-A PREROUTING -i em1 -p tcp -m tcp --dport 53306 -j DNAT --to-destination 192.168.0.3:3306
-A PREROUTING -i em1 -p tcp -m tcp --dport 3306 -j DNAT --to-destination 192.168.0.3
-A PREROUTING -i em1 -p tcp -m tcp --dport 8090 -j REDIRECT --to-ports 8080
#后置路由(PREROUTING)的默认策略是接受(ACCEPT)
:POSTROUTING ACCEPT [1:52]
#SNAT设置,分享公网IP,其背后的内网主机,也可以访问外网
#-A POSTROUTING -o em1 -j SNAT --to-source 115.238.54.116
-A POSTROUTING -s 192.168.0.0/24 -o em1 -j MASQUERADE
#发送(OUTPUT)的默认策略是接受(ACCEPT)
:OUTPUT ACCEPT [63:3772]
COMMIT
GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e
added ecosystem file for PM2 4 年前
5def40a3
Add host customization support for the NodeJS version 4 年前
更多推荐
已为社区贡献17条内容
所有评论(0)