私は一部のマシンの構成をまったく理解していないまま管理を担当しました。
いくつかはiptablesを使います。いくつかはtcp_wrappers(例えば/etc/hosts.allow
)を使用しています。一部の人々は両方を使用します。それらのどれも一貫して構成されていません。
多くの場合、iptablesとtcp_wrappersには冗長ルールがあるようです。場合によってはクラッシュします。メンテナンスが悪夢なので、ひとつのシステムに切り替える方に傾いています。
これを行う前に、同じシステムで両方を使用することが適切な状況であるかどうかを尋ねたいと思います。
答え1
tcp_wrappers
セキュリティについて真剣に考える人ならば、90年代に大きく流行しており、セキュリティを扱う際にほとんどのOSIレイヤ7ソリューションが強く推奨されていました。世界は発展し、今日、我々は異なるレベルと異なる技術を使用しています。より多くの解決策があります。
ソリューションを設計するための完全に間違った方法や完全に正しい方法はありません。
ソフトウェアやユースケースに応じて一般的にアプリケーションレベルで処理するとき単純化するその他の構成
また、会社のファイアウォールまたは仮想化側ですべてのファイアウォールルールを定義した可能性があり、iptables
すべてのサーバーにルールを適用したくない場合があります。
問題のバイナリ/プログラムをコンパイルすることも可能であることに注意してください。いいえたとえば、libwrapはサポートされていませんtcp_wrappers
。通常、最初に再確認することをお勧めします。
前述したように、最善のアプローチが何であるかを判断するには、いくつかの角度を考慮する必要があります。あなたのため。
答え2
これhosts_access(5)
マニュアルページiptablesの代わりに許可/拒否エントリを使用したい理由のいくつかの可能性を提供します。
- ユーザーマッチング(クライアントでサポートされている場合):既存のホスト実装を知りません。RFC 931それとももはや友達ではありません。なぜなら、これは大きなセキュリティ上の欠陥だと思うからです!
- ブービトラップ/プログラム呼び出し:ログインルールよりも複雑なものを実装する場合。
- プログラム固有のルール:ネットワークポートではなくプロセスパスでフィルタリングする場合。この機能が必要ですが、そうでない場合は役立ちます。
owner
モジュールはで利用できますiptables
。 - Keepalive/Linger オプション(~
hosts_options(5)
):あなたのプログラムがこのタスクを実行せず、初期化システムもこのタスクを実行しない場合(?)
hosts.allow
私は必要なものすべてを使用したことがありませんが、規則によっては(2)または(4)のいくつかの機能が必要になることがありますhosts.deny
。iptables
これらのファイルが奇妙な操作を行わない場合は、そのファイルを同等のiptables
規則に置き換えることができます。確かに管理が簡素化されます!