ユーザーがブラウザを使用して「se」または「ru」で終わるドメイン名を入力すると、そのサイトへのアクセスが拒否されることを確認できるかどうかを確認しようとしています。
PS:これは学校の課題であり、私の先生はtcpラッパーを使用するように要求しているので、残念ながら、トリックを実行するモジュールをダウンロードすることは問題外です。
いいえ、できません。 (それはトリックの質問かもしれません:-)。
TCPラッパー(tcp_wrappers_7.6.tar.gz)
Wietse Venemaのネットワークロガー。TCPDまたはLOG_TCPとも呼ばれます。これらのプログラムは、クライアントのホスト名をログに記録します。 着信 telnet、ftp、rsh、rlogin、fingerなどのリクエスト。
Webサイトをフェッチするために、Webブラウザは送信要求を行います。 (そして、Webブラウザは意図されていない目的でlibwrap
を悪用しません。)
TCPラッパーは時代遅れになっています。 Webサーバー(Apacheなど)は、TCPラッパーをサポートしてコンパイルする必要がある場合があります。ApacheとNginxには、通常使用される独自のメソッドとモジュールがあります。
WebサーバーのNginxもTCPラッパーをサポートしていませんが、次のアドレスにそれらをサポートするモジュールがあります: https://github.com/sjinks/ngx_tcpwrappers 。これもソースからのコンパイルが必要であり、厳しい制限があります。
TCPラッパーには、知っておくべきいくつかの特性があることに注意してください。
最も残念なのは、libwrap(TCPラッパー機能を実装するライブラリ)はスレッドセーフなライブラリではない)です。つまり、2つのスレッドが同時にlibwrapを使用しようとすると、結果がおかしくなる可能性があります。 libwrapがstrtok()、gethostbyname()、gethostbyaddr()などの非再入可能関数を使用するためです。nginxがスレッドサポート付きで構築されている場合(まだ機能しますか?)、libwrapを使用するとパフォーマンスが低下する可能性があります(libwrapへのアクセスのため)関数はシリアル化する必要があります)nginxがスレッドサポートなしで構成されている場合(これはLinuxのデフォルトです)、すべてがOKです。
動的ACL構成には代償が伴います。libwrapはすべてのリクエストで/etc/hosts.allowと/etc/hosts.denyを読み取って解析します。これは、高負荷のプロジェクトでは問題になる可能性があります。
したがって、結局、tcpwrappersを使用することは現実的ではありません。