CentOSマシンでDNS設定のためにポート53を開くときに問題が発生します。
これが私のiptables設定です
-A INPUT -p udp -m udp --sport 53 -j ACCEPT
-A OUTPUT -p udp -m udp --dport 53 -j ACCEPT
マシンのnmapスキャンを実行すると、ポート80だけが開いていると表示されました。何か不足していますか?
編集:
完全なiptable
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -p udp -m state --state NEW,ESTABLISHED -m udp --dport 53 -j ACCEPT
-A INPUT -p udp -m udp --sport 53 -j ACCEPT
-A INPUT -p tcp -m state --state NEW --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT -reject-with icmp-Host-prohibited
-A FORWARD -j REJECT -reject-with icmp-Host-prohibited
-A OUTPUT -p udp -m udp --dport 53 -j ACCEPT
COMMIT
セマンティクスが逆になります。
投稿したルールは送信リモートDNSサーバーへのDNS接続を許可しますが、受信ローカルDNSサーバーへの接続は許可しません。
ローカルDNSサーバーへの接続を許可するには、INPUTルールとOUTPUTルールを逆にします。
-A INPUT -p udp -m udp --dport 53 -j ACCEPT
-A OUTPUT -p udp -m udp --sport 53 -j ACCEPT
(そして、ファイアウォールをステートフルになるように修正するには、ある時点で数分かかります。)
使用する -I
の代わりに -A
。
DNSサーバーがリッスンしている場合、ポート53でリッスンするため、入力ルールは次のようになります。
-I INPUT -p udp -m udp --dport 53 -j ACCEPT
DNSサーバーがアクティブに実行されていますか?ポートを開いている場合でも、サービスはアクティブである必要があります。 netstatコマンドを実行すると、ローカルでリッスンしているものを確認できます。また、何が表示されるかを確認するためだけに、ファイアウォールを一時的に完全にオフにしてみましたか?