Hosts.denyファイルで.seと.ruへのすべての接続を無効にする方法

Hosts.denyファイルで.seと.ruへのすべての接続を無効にする方法

ユーザーがブラウザを使用して「se」または「ru」で終わるドメイン名を入力している場合は、そのWebサイトへのアクセスを拒否できるかどうかを確認しようとしています。

PS:これは学校の課題であり、先生が私にtcpラッパーを使用するように頼んだので、残念ながらいくつかのモジュールをダウンロードすることは不可能です。

答え1

いいえ、できません。 (これはトリッキーな質問かもしれません:-)。

TCPラッパー(tcp_wrappers_7.6.tar.gz)

TCPDまたはLOG_TCPとも呼ばれるWietse Venemaのネットワークロガーです。このプログラムはクライアントのホスト名を記録します。着信telnet、ftp、rsh、rlogin、Fingerなどのリクエスト。

Webサイトをインポートするために、Webブラウザは外部に要求を送信します。 (Webブラウザはlibwrap意図しない目的で誤用されることはありません。)

答え2

TCP ラッパーは廃止されました。 Webサーバー(Apacheなど)はTCPラッパーサポートでコンパイルする必要があります。 ApacheとNginxには一般的に使用される独自のメソッドとモジュールがあります。

WebサーバーNginxもTCPラッパーをサポートしていませんが、次のアドレスでそれをサポートするモジュールがあります。https://github.com/sjinks/ngx_tcpwrappers。また、ソースでコンパイルする必要があり、厳しい制限があります。

TCPラッパーには、知っておくべきいくつかの機能があります。

最も残念なことは、libwrap(TCPラッパー機能を実装するライブラリ)がスレッドセーフなライブラリではないということです。つまり、両方のスレッドが同時にlibwrapを使用しようとすると、結果が奇妙になる可能性があります。これは、libwrapがstrtok()、gethostbyname()、gethostbyaddr()などの非再入関数を使用するためです。 nginxがスレッドサポートで構築されている場合(まだ機能しますか?)、libwrapを使用するとパフォーマンスが低下する可能性があります(libwrap関数へのアクセスをシリアル化する必要があるため)。 nginxがスレッド(Linuxのデフォルト)をサポートしないように設定されている場合、すべてがうまく機能します。
動的 ACL 構成にはコストがかかります。 libwrap は、すべてのリクエストで /etc/hosts.allow および /etc/hosts.deny を読み取り、解析します。これは、負荷の高いプロジェクトで問題になる可能性があります。

したがって、最終的にtcpwrappersを使用することは不可能です。

関連情報