iptablesは、LinuxカーネルのIPパケットフィルタリングルールを設定、維持、およびチェックするために使用されます。Linuxのファイアウォールとして、その機能は非常に強力です。3つのテーブルがあり、各テーブルにはルールチェーンがあります。 |
iptablesは、LinuxカーネルのIPパケットフィルタリングルールを設定、維持、およびチェックするために使用されます。Linuxのファイアウォールとして、その機能は非常に強力です。3つのテーブルがあり、各テーブルにはルールチェーンがあります。
(1)Filterはデフォルトのテーブルであり、組み込みのチェーンINPUT(着信パケットの処理)、FORWARD(渡されたパケットの処理)、およびOUTPUT(ローカルで生成されたパケットの処理)が含まれています。
(2)NATテーブルが照会されると、新しい接続グループが検出されたことが示されます。これは、PREROUTING(着信グループを変更)、OUTPUT(ルーティング前にローカルグループを変更)、POSTROUTING(3つの組み込みチェーンで構成されます)。変更して外出の準備をします)グループ化)。
(3)マングルテーブルは、指定されたグループを変更するために使用されます。これには、PREROUTING(ルートの前に入力されたグループを変更する)とOUTPUT(ルートの前にローカルグループを変更する)の2つの組み込みルールがあります。以下に、iptablesの一般的な構成を簡単に紹介します。
1.iptablesルールを表示する
現在のiptablesポリシーを表示するには、iptables-Lコマンドを使用します。デフォルトのビューは、次のようにフィルターテーブルのコンテンツです。
root @ linuxprobe:〜#iptables-L チェーンINPUT(ポリシーACCEPT) ターゲット protoptソース宛先 f2b-sshdtcp –どこでもマルチポートdports ssh チェーンFORWARD(ポリシーACCEPT) ターゲットprot optソース宛先 チェーン出力(ポリシーACCEPT) ターゲットprot optソース宛先 チェーンf2b-sshd(1参照) ターゲット protoptソース宛先 RETURNall-どこでもどこでも
2.チェーン戦略を設定します
フィルタテーブルの場合、デフォルトのチェーンポリシーはACCEPTです。次のコマンドでチェーンポリシーを変更できます。
root @ linuxprobe:〜#iptables-P INPUT DROP root @ linuxprobe:〜#iptables-P FORWARD DROP root @ linuxprobe:〜#iptbales-P OUTPUT DROP
上記のコマンド設定は、受信、転送、および送信されたパケットを破棄し、より厳密なパケット管理を実装します。受信パケットと送信パケットの両方が破棄されるように設定されているため、他のルールをさらに構成するときは、INPUTとOUTPUTの個別の構成に注意する必要があります。もちろん、このマシンがパケットを送信することを信頼している場合は、上記の3番目のルールを構成する必要はありません。
3.既存のルールをクリアします
次のルールを使用して、既存のルールをクリアできます。
root @ linuxprobe:〜#iptables-F
4.ネットワークポート転送ルール
ファイアウォールまたはゲートウェイとして使用されるサーバーの場合、1つのネットワークポートがパブリックネットワークに接続され、他のネットワークポートからのパケットがこのネットワークポートに転送されて、内部ネットワークからパブリックネットワークへの通信が実現されます。内部ネットワークとeth1がパブリックネットワークに接続されている場合、構成ルールは次のとおりです。
root @ linuxprobe:〜#iptables-A FORWARD-i eth0-o eth1-j ACCEPT
5.ポート転送ルール
このコマンドは、ポート888のパケットをポート22に転送するため、SSH接続はポート888を介して行うこともできます。
root @ linuxprobe:〜#iptables-t nat-A PREROUTING-p tcp-d 192.168.1.1 –dport 888-j DNAT--to 192.168.1.1:22
6.DoS攻撃の防止
以下に示すように、拡張モジュールの制限を使用して、DoS攻撃を防ぐためにiptablesルールを構成することもできます。
root @ linuxprobe:〜#iptables-A INPUT-p tcp –dport 80-m limit –limit 25 / minutes--limit-burst 100-j ACCEPT
--litmit 25 / minutesは、1分あたりの最大接続数が25に制限されていることを示します。
--litmit-burst 100は、接続の総数が100を超えると、litmit / minute制限がアクティブになることを示します。