私のサーバーのセキュリティを設定しています。ファイアウォールの管理を容易にするためにUFWをインストールしました。 UFWでいくつかの設定をしていくつかのポートを許可しました。したがって、これを有効にすると、DNSサービスが応答しなくなります。
DNSをテストするためにコマンドを実行してみましたDIG www.domain.com.br
が、成功しませんでした。 UFWが無効になると、このコマンドは問題なく実行されます。ポート53(TCPとUDP)を許可しましたが、DNSは機能しません。
私のUFW設定:
Status: active
Logging: on (low)
Default: deny (incoming), deny (outgoing), disabled (routed)
New profiles: skip
To Action From
-- ------ ----
21/tcp ALLOW IN Anywhere
16/tcp ALLOW IN Anywhere
443/tcp ALLOW IN Anywhere
80 ALLOW IN Anywhere
53 ALLOW IN Anywhere
465 ALLOW IN Anywhere
25/tcp ALLOW IN Anywhere
22 ALLOW IN Anywhere
21/tcp (v6) ALLOW IN Anywhere (v6)
16/tcp (v6) ALLOW IN Anywhere (v6)
443/tcp (v6) ALLOW IN Anywhere (v6)
80 (v6) ALLOW IN Anywhere (v6)
53 (v6) ALLOW IN Anywhere (v6)
465 (v6) ALLOW IN Anywhere (v6)
25/tcp (v6) ALLOW IN Anywhere (v6)
22 (v6) ALLOW IN Anywhere (v6)
答え1
完全で正しい構文は次のとおりです。
sudo ufw allow out to any port 53
答え2
この問題を解決しました。発信ポート53(DNSサービスポート)を許可します。ありがとうございます。
sudo ufw allow out 53
答え3
ufw allow dns
着信 DNS 要求を最初に許可します。これは望むものではありません。
第二に、他の答えに記載されているすべてのコマンドに従うことができます(最も簡単ですufw allow out 53
)注文の問題。したがって、単独で使用すると、DNS要求も拒否する拒否ステートメントがある場合最後に入れて!
したがって、最初にDNSサーバーがポート53を使用できるようにすると、一部の要求がブロック/拒否される可能性があります。
答え4
私自身は他のプロジェクトのいくつかのファイアウォールルールを扱っていますが、@diegoklapperのソリューションは機能しませんでした。
sudo ufw allow dns
より明示的に(たとえば、特定のインターフェイス)、コピーしようとしても失敗しました。
sudo ufw allow in on eth0 from any to any port 53 proto tcp
私が間違っていることに気づくまで(プロトコルを参照):
sudo ufw allow in on eth0 from any to any port 53 proto udp
注:これはdnsmasq
DNS要求を処理または転送し、デフォルトでアウトバウンド要求を許可する場合はより具体的に適用されます。
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing)
New profiles: skip
To Action From
-- ------ ----
53/udp on eth0 ALLOW IN Anywhere