この記事では、TCP ラッパーとは何か、および Linux サーバー上で TCP ラッパーを構成してネットワーク サービスのアクセス許可を制限する方法について説明します。始める前に、TCP ラッパーによって適切に構成されたファイアウォールの必要性がなくなるわけではないことを明確にしておく必要があります。
現時点では、このツールはシステムの究極のセキュリティ対策ではなく、ホストベースのアクセス制御リストとして考えることができます。どちらか一方だけを優先するのではなく、ファイアウォールと TCP ラッパーを使用することで、サービスが単一障害点にならないようにすることができます。
hosts.allow ファイルと hosts.deny ファイルを正しく理解する
ネットワーク要求がホストに到達すると、TCP ラッパーは hosts.allow と hosts.deny (この順序で) を使用して、クライアントがホストの使用を許可する必要があるかどうかを判断します。提供されたサービス。
デフォルトでは、これらのファイルの内容は空であるかコメントアウトされているか、まったく存在しません。そのため、あらゆるリクエストは TCP フィルターを介して許可され、システムはファイアウォールに依存してすべての保護を提供するようになります。それは私たちが望んでいることではないからです。冒頭で説明した理由により、次の 2 つのファイルが存在することを確認してください:
# ls -l /etc/hosts.allow /etc/hosts.deny
2 つのファイルの記述構文ルールは同じです:
<services> : <clients> [: <option1> : <option2> : ...]
ファイル内では、
1 のサービスが参照されます。対応するサービスはカンマ区切りのリストです。
2. クライアントは、ルールの影響を受けるホスト名または IP アドレスをカンマで区切って指します。次のワイルドカードも使用できます:
1).ALL はすべてを意味し、クライアントとサービスに適用されます。
2).LOCAL は、localhost など、公式ドメイン名に完全修飾ホスト名 (FQDN) を持たないマシンを照合することを意味します。
3).KNOWN は、ホスト名、ホストアドレス、またはユーザーが既知であることを意味します (つまり、DNS または他のサービスを通じて解決できる)。
4).UNKNOWN は KNOWN の反対です。
5).PARANOID 逆引き DNS ルックアップで異なるアドレスが返された場合、接続は切断されます (最初に IP に基づいてホスト名を解決し、次にホスト名に基づいて IP アドレスを取得します)。
3. 最後に、コロンで区切られたアクション リストは、ルールがトリガーされたときに実行されるアクションを表します。
サービスのアクセスを許可する /etc/hosts.allow ファイル内のルールは、/etc/hosts.deny 内のルールよりも優先されることに注意してください。また、2 つのルールが同じサービスに適用される場合、最初のルールのみが考慮されます。
残念ながら、すべてのネットワーク サービスが TCP フィルターをサポートしているわけではありません。特定のサービスが TCP フィルターをサポートしているかどうかを確認するには、次のコマンドを実行します。
# ldd /path/to/binary | grep libwrap
上記のコマンドを実行して次の結果が得られれば、TCP フィルターは正常です。 sshd と vsftpd がサポートされている場合の例として、出力を以下に示します。 ️
TCP フィルターを使用してサービス許可を制限する方法
/etc/hosts.allow と /etc/hosts.deny を編集するときは、最後のフィルターを使用してください。 Enter キーを押して後に新しい行を追加します空白ではない行。 SSH および FTP サービスで localhost と 192.168.0.102 のみを許可し、他のすべてのユーザーを拒否するには、次の内容を /etc/hosts.deny に追加します:sshd,vsftpd : ALL ALL : ALL
sshd,vsftpd : 192.168.0.102,LOCAL
1.0/24 マシンで vsftpd サービスにアクセスするには、次の行を追加します。 hosts.deny ファイルの行:
vsftpd : 10.0.1.
最後の 2 つの例では、クライアント リストの各行の先頭と末尾にあるドットに注目してください。これは、「名前または IP にその文字列が含まれるすべてのホストまたはクライアント」を意味するために使用されます