我有 2 台服务器,我为http
和配置了一台服务器php
(名称为:web),为另一台服务器mysql
(名称为:db)。
在这两台服务器中,我都有公有 IP 和私有 IP。我想制定以下规则:
web
将服务器的 ssh 端口改为1234
。(我已经在 中进行了此更改/etc/ssh/sshd_config
)- 阻止对
web
公共接口的所有请求,除 80、443 和 1234 之外。 - 阻止所有对公共接口的请求
db
。 - 阻止对
db
私有接口的所有请求,除来自私有接口的 22 和 3306 之外web
。
web
私有 IP:192.168.0.110
db
私有 IP:192.168.0.111
所以我为 iptables 编写了这些规则。
防火墙.shdb
#!/bin/bash
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -s 192.168.0.110 -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -s 192.168.0.110 -p tcp --dport 3306 -j ACCEPT
firwall.sh 在web
#!/bin/bash
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -p tcp --dport 1234 -j ACCEPT
但是运行这些规则后,我与服务器的连接将完全丢失,并且这两个服务器也无法相互通信。
我的问题在哪里?