残念ながら、学習モードまたはパッシブモードで実行して、すべてのネットワーク使用状況をログに記録し、その結果を取得しiptables
て、ログから実際のファイアウォールを生成するようなスクリプトは今まで見たことがありません。
あなたの最善の策は、システムが提供しているサービスを完全に理解し始めるときに、単純なものから始め、継続的にさまざまな要素を追加し続けることです。netstat
ホストしているさまざまなサービスで使用されているポートや、それらにアクセスしているIPアドレスを確認するなどのツールを使用する必要があります。
$ sudo netstat -tlpn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 26292/sendmail
tcp 0 0 0.0.0.0:890 0.0.0.0:* LISTEN 26149/ypbind
tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 26321/smbd
tcp 0 0 127.0.0.1:2207 0.0.0.0:* LISTEN 26226/python
tcp 0 0 127.0.0.1:2208 0.0.0.0:* LISTEN 26221/./hpiod
tcp 0 0 127.0.0.1:199 0.0.0.0:* LISTEN 26237/snmpd
tcp 0 0 0.0.0.0:809 0.0.0.0:* LISTEN 26067/rpc.statd
tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 26321/smbd
tcp 0 0 0.0.0.0:587 0.0.0.0:* LISTEN 26292/sendmail
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 26038/portmap
tcp 0 0 0.0.0.0:35604 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 26249/sshd
tcp 0 0 0.0.0.0:631 0.0.0.0:* LISTEN 26257/cupsd
tcp 0 0 :::22 :::* LISTEN 26249/sshd
tcp 0 0 :::631 :::* LISTEN 26257/cupsd
注:上記では、TCP接続を受け入れるサーバー上で実行しているサービスを確認できます。つまり、さまざまなポートでの接続を「リッスン」しています。
SSH(ポート22)やHTTP(ポート80)のようなものから始めるのは簡単ではありません。これらがシステムにとって一般的である場合、これらのタイプのサービスを一度にまとめて実行します。LDAPやNISなどの他のサービスの場合、これらをより制御された方法で実行したい場合があります。導入するときに問題が発生しないようにします。
FireHOL、ファイアウォールビルダー(fwbuilder)、eztablesなどのツールは、このプロジェクトを攻撃する際に役立ちます。これらのツールは、カスタムiptable
ルールを手動で作成する必要があることから、抽象化の優れたレイヤーを提供します。
FireHOL
FireHOLは、理解しやすく人間が読める構成からあらゆる複雑な安全でステートフルなファイアウォールを構築する言語(およびそれを実行するプログラム)です。
例
transparent_squid 8080 "squid root" inface eth0
interface eth0 mylan
policy accept
interface ppp+ internet
server smtp accept
server http accept
server ftp accept
server ssh accept src example.firehol.org
client all accept
router mylan2internet inface eth0 outface ppp+
masquerade
route all accept
fwbuilder
Fwbuilderは、ユーザーがオブジェクトを作成し、それらのオブジェクトをファイアウォールにドラッグアンドドロップして、単一のPCまたはPCのネットワーク用の強力なセキュリティシステムを構築できる、ユニークなグラフィカルファイアウォールツールです。Fwbuilderは幅広いファイアウォール(Cisco ASA / PIX、Linux iptables、FreeBSDのipfilter、OpenBSDのpfなど)をサポートしているため、そのルールを複数のプラットフォームに展開できます。LinuxでFwbuilderを使用する方法を見てみましょう。これは、強力なセキュリティシステムで一生続く可能性があります。
例
eztables
Eztablesを使用すると、iptablesに触れることなく、ファイアウォールをすばやく構成できます。ファイアウォールルールの構文は、読みやすく適用しやすいように設計されています。
これは、インターネット全体がTCPポート80でWebサーバーにアクセスできるようにする方法です。
allow_in any $eth0 any 80/tcp
Eztablesはシンプルでありながらパワフルになるように設計されています。ラップトップを保護するのか、ホームルーターをセットアップするのか、会社のファイアウォールを構築するのかは関係ありません。
Fail2Banの使用
初歩的なiptables
ファイアウォールが整っていると、Fail2Banなどのツールを使用してファイアウォールを補完したくなるでしょう。
抜粋
Fail2banはログファイル(例:/ var / log / apache / error_log)をスキャンし、悪意のある兆候を示すIPを禁止します-パスワードの失敗が多すぎる、エクスプロイトを探すなど。指定された時間の間、他の任意のアクション(たとえば、電子メールの送信)も構成できます。Fail2Banには、箱から出して、さまざまなサービス(Apache、Courier、SSHなど)用のフィルターが付属しています。
このようなツールを使用すると、システムを強化し続けるときにシステムが耐えなければならない危険性を制限できます。システムが強化されたと確信している場合でも、セキュリティ対策の一環としてFail2Banを引き続き使用することをお勧めします。
参考文献