特定のIPのみを許可するようにOpenBSDで/etc/host.allowを設定するにはどうすればよいですか?

特定のIPのみを許可するようにOpenBSDで/etc/host.allowを設定するにはどうすればよいですか?

私は静的HTMLベースのウェブサイトを実行しているOpenBSD 5.1コンピュータを持っています。

許可するIPアドレスのリストがあります。たとえば、次のようになります。

...
78.128.49.0/24
78.128.50.0/24
...

約10KB。 〜10,000行。サーバー(httpd、sshなどすべて、未使用のポート)に接続せずにこれらのIPアドレスを許可したいと思います。

尋ねる:host.allow/host.denyファイルでこれを行うための最良の構文は何ですか? (私が知っている限り、10,000のIPアドレス範囲をファイルに入れてからファイアウォールに入れる方が良いです。)

答え1

OpenBSDの実装では、tcpwrappers各アドレスに10,000個のエントリを含める必要があります。/etc/hosts.allowこれは非常に迅速に扱いにくくなります。

ALL : ... 78.128.49.0/24 78.128.50.0/24 ... : deny

悪夢になるためにたくさん並ぶ必要はありません。アドレスはスペース、カンマ、またはその両方で区切られます。

これをpf構成して実行している場合は、アドレスファイルの内容でテーブルを入力する方が簡単です。

table <blockthese> persist file /etc/list-of-addresses-to-block

block in log quick on $ext_if from <blockthese> to any

テーブルルックアップはpf高速で、メモリ使用量の面ではテーブルは非常に効率的です。したがって、古いシステムのRAM容量が非常に制限されていない限り、この方法はうまく機能します。これは私が複数のシステムで使用した戦略です。 FreeBSDホストであり、非常にうまく動作します。

関連情報