使用 iptables 阻止从公共 IP 访问服务器

使用 iptables 阻止从公共 IP 访问服务器

我有 2 台服务器,我为http和配置了一台服务器php(名称为:web),为另一台服务器mysql(名称为:db)。

在这两台服务器中,我都有公有 IP 和私有 IP。我想制定以下规则:

  1. web将服务器的 ssh 端口改为1234。(我已经在 中进行了此更改/etc/ssh/sshd_config
  2. 阻止对web公共接口的所有请求,除 80、443 和 1234 之外。
  3. 阻止所有对公共接口的请求db
  4. 阻止对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

但是运行这些规则后,我与服务器的连接将完全丢失,并且这两个服务器也无法相互通信。

我的问题在哪里?

相关内容