使用 iptables 阻止從公用 IP 存取伺服器

使用 iptables 阻止從公用 IP 存取伺服器

我有 2 台伺服器,我為http和配置了一台伺服器php(名稱為: web ),另一台為mysql(名稱為: db )。

在這兩台伺服器中,我都有公有和私有 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

上的 fiwall.shweb

#!/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

但是運行這些規則後,我與伺服器的連接將完全丟失,這兩個伺服器無法相互通訊。

我的問題出在哪裡?

相關內容