サーバーが 2 台あり、1 台を(名前は web ) 用に、もう 1 台を (名前は db ) 用にhttp
構成しました。php
mysql
これら両方のサーバーには、パブリック 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 用にこれらのルールを作成しました。
上のfirewall.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
しかし、これらのルールを実行すると、サーバーへの接続が完全に失われ、これら 2 つのサーバーは相互に通信できなくなります。
私の問題はどこにあるのでしょうか?