TCP ラッパーは、サービスへのアクセスを許可および拒否するだけではありません。オプションのコマンド引数を使用すると、接続バナーを送信したり、特定のホストからの攻撃を警告したり、ログを強化したりできます。
サービスの TCP ラッパー バナー
サービスの TCP ラッパー バナーを実装するには、banner オプションを使用します。この例では、vsftpd のバナーを実装しています。システムの任意の場所にバナー ファイルを作成し、デーモンと同じ名前を付ける必要があります。この例では、ファイルの名前は /etc/banners/vsftpd です 次の行が含まれます:
220-Hello, %c 220-All activity on ftp.example.com is logged. 220-Inappropriate use results in access privileges being removed.
%c token は、さまざまなクライアント情報を提供します。 %d トークン (表示されていません) は、クライアントが接続を試みたデーモンの名前に展開されます。このバナーを着信接続に表示するには、次の行を /etc/hosts.allow ファイルに追加します:
# vi /etc/hosts.allow vsftpd : ALL : banners /etc/banners/
潜在的な攻撃を警告する TCP ラッパー
TCP ラッパーは、spawn ディレクティブを使用して、ホストまたはネットワークからの潜在的な攻撃を警告できます。 spawn ディレクティブは、任意のシェル コマンドを実行します。この例では、200.182.68.0/24 ネットワークからアクセスが試みられています。 /etc/hosts.deny ファイルに次の行を追加して、そのネットワークからの接続試行を拒否し、その試行を特別なファイルに記録します:
# vi /etc/hosts.deny ALL : 200.182.68.0 : spawn /bin/echo `date` %c %d >> /var/log/intruder_alert
接続を許可してログに記録するには、spawn ディレクティブを /etc/hosts.allow ファイルに配置します。
アクセスを拒否し、接続試行をログに記録
/etc/hosts.deny の次のエントリは、(/etc/hosts.allow で特に許可されていない限り) すべてのサービスへのすべてのクライアント アクセスを拒否し、接続試行をログに記録します:
# vi /etc/hosts.deny ALL : ALL : spawn /bin/echo “%c tried to connect to %d and was blocked” >> /var/log/tcpwrappers.log
重大度オプションを使用して、ログ レベルを上げることができます。 FTP サーバーに ssh しようとする人は誰でも侵入者であると想定します。これを示すには、デフォルトのフラグ info の代わりに emerg フラグをログ ファイルに配置し、接続を拒否します。これを行うには、次の行を /etc/hosts.deny に追加します:
# vi /etc/hosts.deny sshd : ALL : severity emerg
これは、デフォルトの authpriv ロギング機能を使用しますが、優先度を info のデフォルト値から emerg に上げ、ログ メッセージをコンソールに直接投稿します。
特定のドメインからのアクセスを拒否する
次の例では、SSH デーモン (sshd) への接続が example.com ドメイン内のホストから試行された場合、echo コマンドを実行してその試行を特別なログ ファイルに追加し、接続を拒否することを示しています。オプションの deny ディレクティブが使用されているため、この行は /etc/hosts.allow ファイルに表示されていてもアクセスを拒否します:
# vi /etc/hosts.allow sshd : .example.com \ : spawn /bin/echo `/bin/date` access denied >> /var/log/sshd.log \ : deny
各オプション フィールド (spawn と deny) の前にバックスラッシュ (\) を付けて、長さによるルールの失敗を防ぎます。
Linux での TCP ラッパー (/etc/hosts.allow &/etc/hosts.deny) について理解する