Hosts.allow:iptablesを使用する場合は必要ありませんか?

Hosts.allow:iptablesを使用する場合は必要ありませんか?

IPマスカレーディングを許可し、最終的にプロキシ使用から切り替えるために、ゲートウェイ/プロキシ/ファイアウォールとして使用しているボックスを設定しようとしています。これはDebianスクイーズシステムです。

現在、私のホスト.allowファイルは空です(hosts.denyは言いますALL: PARANOID)。なぜなら、squidはとにかく必要なポートに対する要求を許可するからです(また、sshを介してボックスに接続することもできます)。

iptablesは同じように動作しますか?つまり、iptablesが正しく設定されていると、ホスト.許可ファイルが空になる可能性がありますか?

答え1

短い答え:はい。 TCPwrapper(hosts.allowやhost.denyクエリなど)はiptablesとは独立したアクセス制御方法であり、1つの方法を使用しても他の方法を使用する必要はありません。唯一の関心事は、必要なアクセスが両方で許可されていることを確認することです(両方がシステムで有効になっている場合)。

答え2

hosts.*iptablesを使用する場合、これらのファイルは必要ありません。どちらにもアクセスを拒否/許可する機能がありますが、動作方法は非常に異なります。

       Network
          |
       IPTables
         /  \  
TCPWrapper  Squid/Daemon
  Daemon

Iptablesは、tcpwrappersの下の階層を実行するカーネルベースのパケットフィルタリングフレームワークです。何かを破棄または拒否すると、iptablesパケットはユーザー空間に到達しません。プログラムが何であれ、どのように書かれたかにかかわらず、その観点からはパケットは存在しません。

TCPwrapperとhosts.*その機能を使用するプログラムはユーザースペースで実行され、以下を使用する必要があります。図書館ラッパーこれらのファイルを使用するか、ホストファイルを読み取り、拒否されたクライアントから受信した接続を閉じて、それをエミュレートしてください。

イカはファイルを読みませんhosts.deny|allow。次のように指定された独自のアクセス制御実装があります。aclの位置は次のとおりです。squid.conf。同様に、iptablesの上にSquidアクセス制御を設定でき、iptablesの上にhost.deny / allowを使用できます。このルールは、iptables がトラフィックの通過を許可する場合にのみ機能します。現在、tcp_wrappersをサポートするプログラムはあまりなく、inetdメインスーパーサーバーとして徐々に消えています。

答え3

SSHへのnull接続を引き続き使用できる理由ホスト、許可そうかもしれないデフォルトでは、tcpwrapperはすべての接続を許可します。明示的に否定しない限り。

逆(デフォルトでは拒否)動作を実行する1つの方法は、次の行を追加することです。/etc/hosts.deny(自分を排除しないように注意してください!)

ALL: ALL


Tcpwrappers(hosts.allowとhosts.deny)は、iptablesのようにすべてのネットワークサービスでは機能しません。

通常、次のようにデーモンがlibwrapに関連付けられていることを確認して、デーモンがtcpwrappersをサポートしていることを確認できます。

$ ldd /usr/sbin/sshd | grep libwrap
    libwrap.so.0 => /lib64/libwrap.so.0 (0x00007f389b5a2000)

出力がないと、デーモンは tcpwrappers をサポートしない可能性があります。

最後に、非常に一般的な設定はiptablesを使用し、tcpwrapperは未設定のままにすることです。

関連情報