IPTables を使うには、まずIpTablesサービスを起動します。 コマンドで起動させることができます。
service iptables start |
![]() | 警告 | |
---|---|---|
IPTablesサービスを使うために、IP6Tablesサービスを以下のコマンドでオフにしてください。
|
システムがブートする度にデフォルトでIPTablesを起動させるには、 chkconfigを使ってサービスでランレベルのステータスを 変更する必要があります。
chkconfig --level 345 iptables on |
IPTablesの構文は複数列に分かれています。主要な列はchainです。 chain でパケットが処理される状態を指定します。使い方は次の通りです。
iptables -A chain -j target |
-Aは1つのルールを既存のルールセットの末尾に アペンドします。chainは1つのルールのchain名です。 IPTablesの3つの組込みchain(ネットワークを横断するパケットすべての影響するchainのこと)は INPUT、OUTPUT、FORWARD です。このchainは不変で削除することはできません。
![]() | 重要 | |
---|---|---|
IPTablesのルールセットを作成しているとき、その順序が非常に重要なので十分に注意してください。 例えば、ローカルの192.168.100.0/24サブネットからのパケットはすべてドロップすると chainで指定していると、chainがアペンドされ(-A) 192.168.100.13(これはドロップ制限サブネット内)からのパケットを許可し、 次にアペンドされたルールが無視されます。 最初に192.168.100.13 を許可するようルールを設定してから、サブネット上のドロップルールを 設定する必要があります。 複数のルールを持つ1つの既存chainに1つのルールを任意に挿入するには、 -Iを使用して、 その後にルールを挿入するchain、ルールを位置付けするためのルール番号(1,2,3,...,n)を続けます。例えば、
ルールがローカルのループバックデバイストラフィックを許可するために INPUT chainに1番目のルールとして挿入されます。 |
はじめから設置されているいくつかの基本的なポリシーは、 より詳細にユーザー定義のルールを構築していく土台として役に立ちます。 IPTablesはポリシー(-P)を使用して デフォルトのルールを作成します。 セキュリティ志向の管理者はたいていポリシーとしてすべてのパケットをドロップして、 ケースバイケースで特定パケットを許可することを選びます。 以下のルールではネットワークゲートウェイ上でのすべての着信及び発信パケットをブロックします。
iptables -P INPUT DROP iptables -P OUTPUT DROP |
また、内部のクライアントの不注意によるインターネットに曝されてしまう危険を制限するため、 フォワードされたパケット — ファイアウォールから目的とするノードまでルーティングされるネットワークトラフィック— もすべて拒否することを推奨します。
iptables -P FORWARD DROP |
![]() | 注記 |
---|---|
アペンドされたルールを扱うとき、 REJECT と DROP ターゲットアクションとの間には相異点があります。REJECTターゲットは、アクセスを拒否して、サービスに接続を試行するユーザーに connection refusedエラーを返します。 DROPは名前の通り、telnet ユーザーに何の警告もせずにパケットをドロップします。これらのターゲットは管理者の判断で 使用することができますが、ユーザーが混乱して接続試行をくり返してしまうのを防ぐために REJECTターゲットを推奨します。 |
ポリシーchainを設定したら、特定のネットワーク及びセキュリティに必要となる新しいルールを 作成します。次のセクションでは、IPTablesファイアウォールを構築していく過程で 実行できるいくつかのルールを概説します。