Linuxのhosts.deny形式と例
Linuxシステムでは、hosts.denyファイルを使用して、1つまたは複数のIPアドレス、ホスト名、またはドメインからの接続試行を拒否できます。これは、システム上の任意のTCPラップサービスと連携して機能します。hosts.denyファイルは、hosts.allowと組み合わせて使用され、接続試行が受け入れられるか拒否されるかを決定します。
hosts.denyファイルは、非常にシンプルな構文のプレーンテキスト設定ファイルです。このチュートリアルでは、hosts.denyファイルの例を示し、さまざまな可能性のあるシナリオに対してファイルをフォーマットする方法を説明します。
このチュートリアルでは、あなたは学びます:
hosts.denyファイルは何をしますか?hosts.denyファイルの編集とフォーマットの方法
Linuxのhosts.deny形式と例
hosts.denyファイルには、指定されたサービスへのアクセスが拒否されるホストまたはネットワークのルールのリストが含まれています。フォーマットは1行につき1つのルールをリストすることです。以下に、このファイルで使用できるルールのさまざまな例を示します。
接続が試みられると、
hosts.allow ファイルが参照され、接続が許可されるかどうかが確認されます。許可された場合、その後、hosts.deny ファイルが参照され、接続を具体的に拒否するルールがあるかどうかが確認されます。-
通常の構文は以下の通りです。各値はコロン
:で区切られています。service : host/networkオプションを指定することもできますが、これはあまり一般的ではありません。他のニッチな選択肢については以下で説明します。必要に応じて、さらにオプションを追加することができ、各オプションは別のコロンで区切られます。
service : host/network [: <option>: <option>: ...] 次の行は、
sshdサービスへのすべてのトラフィックを拒否します。ALLはワイルドカードとして使用されます。sshd : ALL前述したように、
hosts.allowファイル内のルールは、このルールの前にトリガーされます。したがって、ALLルールは、すでに明示的に受け入れられていない接続のためのキャッチオールとして使用できます。この行は、
10.ネットワーク上のすべてのホストからの接続を拒否します。他のすべてのホストからの接続は、hosts.allowファイルによって許可されるか、他のホストに適用されるルールがない場合は、それらの接続が許可されます。sshd : 10.特定のIPv4およびIPv6アドレスからの接続を拒否する:
sshd : 10.10.136.241 sshd : [2a02:2149:88f1:4c00:9991:9daa:b580:aee1]IPv6アドレスは
[ ]ブラケットで囲む必要があることに注意してください。IPを使用する代わりに、接続を拒否するためにホスト名を指定することもできます。
sshd : some.host.linuxconfig.org ドメイン名を使用してすべてのホストからの接続を拒否します。
sshd : .linuxconfig.orgサービスとホスト/ネットワークフィールドの両方にワイルドカードを使用することもできます。これにより、任意のサービスへのすべての接続が拒否されます。これは、すでに
hosts.allowの中に、通信を受け取る必要のあるすべてのホストまたはネットワークからの接続を許可するルールがある場合にのみ使用すべきです。ALL : ALL-
ローカル接続のみを拒否するには、
LOCALワイルドカードを使用できます。sshd : LOCAL EXCEPT演算子は、すべてを包含するルールの例外を作成するために使用できます。たとえば、このルールは .linuxconfig.org ドメイン名からのすべての接続を拒否しますが、一つのホストだけは例外です。sshd : .linuxconfig.org EXCEPT terminal.linuxconfig.org
締めくくりの考え
このチュートリアルでは、Linuxシステムにおけるさまざまなフィルタリングルールでhosts.denyをフォーマットする方法を見ました。これはTCPラップされたサービスのトラフィックをフィルタリングするための効果的な方法ですが、Linuxカーネルに組み込まれた強力なiptables/nftablesファイアウォールの普及により、一般的な使用からは外れています。
