アプリケーションサーバーをロックダウンします。サーバーは、http経由で提供されるWebアプリをホストします。他にもいくつかのポートが開いています。
ポート53はDNS用に開いています。なぜこれが必要なのですか?
追加:(これに答える必要はありませんが...)このコマンドは、Linuxのiptablesを使用してそのポートを開きますか?
# iptables -A INPUT -m tcp -p tcp --dport 53 -j ACCEPT
ポート53はDNS用に開いています。なぜこれが必要なのですか?
UDPはステートレスプロトコルであるため、サーバーが送信するDNSクエリへの応答にUDP 53を許可する必要があります。アウトバウンド接続やソフトウェアの更新など、必要な場合はブロックしないでください。
DNSソースポートのランダム化が適用された最新のオペレーティングシステムの名前解決ソフトウェアの場合、クエリのソースポート(つまり、応答の宛先ポート)は必ずしも53である必要はありません。このような場合、UDPポート53をブロックすることはおそらく安全です(ただし、不正なDNSリゾルバーがリッスンしていない限り不要です)。
このコマンドは、Linuxでiptablesを使用してそのポートを保護しますか?
サーバーが実際にDNSサーバーでない限り、TCP 53インバウンドを許可する必要はありません。2番目のコマンドには-m udp -p tcp
、これはあまり意味がありません。
ローカルネットワークのみを使用し、ローカルネームサーバーを使用し、インターネット上のランダムなサイトに接続していない場合は、ポート53を開いたままにする必要はありません。ただし、インターネットを使用したい場合は、ホスト名をIPアドレスに変換できる必要があります。そのためにはDNSが必要です。
いつポート53を開きますか? DNSゾーンをホストしている場合を想定しています。 DNSを内部で実行していますか、それとも抑制していますか?誰かがレコードを取得するようにしたい場合は、実行する場合は53を開いたほうがよいでしょう。あなたがDNSを他の場所でホストしていると言ったように、これらのポートをVhostsなどで開いたままにする理由はありません。
IPtablesのルールに関する限り、セキュリティで何を意味するのかはわかりませんが、それによってポートが開かれます。
DNSはUDPポート53を使用します
なぜこれが必要なのですか?
サーバーをDNSサーバーとして使用する場合(たとえば、独自のドメインをホストしている場合)
問題のアプリケーションサーバーがDNSサーバーでない場合は、ポート53を開く必要はありません。 「開いているポート」とは、ポートがネットワーク内のクライアントから外部に見えることを意味します(または、インターネット上にあります)。一般的な考えに反して、サーバーまたはホストは、発信DNSクエリを作成するためにポート53を開く必要はありません。これは、TCP/IPモデルが機能する方法ではありません。ホストでtcpdumpを実行してから、別の端末またはブラウザからDNSルックアップを発行して、これを確認できます。
'tcpdump -n -s 1500 -i eth0 udp port 53'
したがって、質問に答えるには、ネットワークにDNSサービスを提供しているホストでポート53のみを開く必要があります。
質問の一部ではありませんが、すべてのネットワークサーバーホストにファイアウォールをインストールすることをお勧めします。これにより、ネットワーク外部からの攻撃や、ウイルス/トロイの木馬、およびネットワーク内部の「非常に賢い」(しかし悪性の)ユーザーからの侵入を防ぐことができます。ファイアウォールを使用すると、ポートの開閉やアクセスポリシーの設定を簡単に行えるため、複雑なiptables
ルールを手動で作成(および記憶)する必要がなくなります。