この記事では、iptables
の使用方法に関する基本的な情報を提供します。 ソフトウェアファイアウォール。このファイアウォールは、RedHat®EnterpriseLinux®(RHEL®)6およびCentOS®6ベースのディストリビューションのデフォルトのファイアウォールソリューションです。
注 :この記事の手順は、RackConnect®サーバーでの使用を目的としたものではありません。 RackConnectサーバーのファイアウォールを変更する必要がある場合は、専用ファイアウォールマネージャーを使用する必要があります。
次の前提条件が必要です。
- SecureShell®(SSH)の基本的な理解
- サーバーへのsudoまたは管理アクセス
- RHEL6またはCentOS6を実行しているRackConnect以外のクラウドサーバー。
「iptables」とは何ですか?どのように機能しますか?
iptables
はデフォルトのLinuxソフトウェアファイアウォールソリューションです。 netfilterカーネルモジュールを使用することにより、iptables
着信および発信ネットワークトラフィックを処理できます。 iptables
サーバー上のテーブルの一部として構成されたルールのチェーンを使用します。テーブルは、特定のタスクを実行する類似のチェーンをグループ化します。
テーブル、チェーン、およびルール
各テーブルには、一連のデフォルトチェーンがあります。この記事では、フィルターについて説明します。 INPUTを含むテーブル 、フォワード 、および出力 チェーン。これらのチェーンのルールは上から下に読み取られ、処理されます。
-
入力 :このチェーンは、サーバー宛ての着信トラフィックを処理します。
-
フォワード :このチェーンは、サーバーに到着するが別のデバイス宛てのトラフィックを処理します。
-
出力 :このチェーンは、サーバーで発信される発信パケットに使用されます。
ターゲット、アクション、およびフィルター
次の表は、iptables
の基本的なターゲットとアクションを示しています。 トラフィックがサーバーに送信されるとき:
名前 | 説明 |
---|---|
ACCEPT | トラフィックは受け入れられ、それ以上のルールは処理されません。 |
ドロップ | パケットはブロックされ、それ以上のルールは処理されません。送信者に応答が送信されません。 |
ログ | パケット情報はサーバーに記録され、iptablesはルールの処理を続行します。 |
拒否 | DROPパケットに似ていますが、送信者に応答を送信します。 |
フィルター | それが何をするか |
---|---|
-p (protocol) | パケットのプロトコル。指定されたプロトコルは、tcp のいずれかになります。 、udp 、icmp 、または特別なキーワードall 。 |
-s, --source | パケットの送信元IPアドレス。 |
-d --destination | パケットの宛先。 |
-sport | 一致する送信元ポート。 |
-dport | 一致する宛先ポート。 |
-i | パケットが受信されるインターフェース。 |
次のルールは、iptables
の例です。 ルール:
iptables -I INPUT -i eth0 -s 192.168.1.1 -p tcp --dport 22 -j ACCEPT
この例では、送信元IPアドレス192.168.1.1
からのトラフィック 、tcp
を介して プロトコルはeth0
で受け入れられます 宛先ポートのインターフェース22
。このルールは、INPUT
の先頭に追加されます チェーン。
サーバー上の着信および発信ネットワークトラフィックを制限する1つの方法は、ファイアウォールルールを実装することです。 RHELまたはCentOS6サーバーでは、デフォルトのソフトウェアファイアウォールソリューションはiptables
です。 。 iptables
サーバーで実行されている専用ファイアウォールの構成と同様の構成をセットアップできます。これらのルールはCHAIN
で構成します ルールによって異なります。この記事では、INPUT
について説明します。 チェーン。iptables
を介してトラフィックを受け入れるデフォルトのチェーンです。 。
iptables
に新しいルールを追加する前に 、サービスが実行されていることを確認し、現在のルールを一覧表示する必要があります。
iptables
のステータスを確認するには 、次のコマンドを実行します:
service iptables status
サービスがActive
であることを示す出力が表示されるはずです サーバー上。そうでない場合は、service iptables start
を使用してサービスを開始できます コマンド。
サービスの開始後、次のコマンドを使用してルールを一覧表示できます。
iptables -L
ルールをまだ構成していない場合、出力は次の例のようになります。
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
次の例は、iptables
のいくつかのルールを示しています およびiptables
内のそれらの機能 。
INSERTとAPPEND
iptables
を使用 、-I
flagは、選択したチェーンの最上位にルールを挿入し、-A
フラグは、選択したチェーンの最下部に新しいルールを追加します。ルールは上から下に読み取られるため、これは重要です。したがって、すべての着信トラフィックをブロックするルールが上部にあり、-A
を使用する場合 IPからのトラフィックを受け入れるルールを追加するには、追加したルールが最初のルールによってブロックされます。 -A
かどうかを判断するには、構成を検討する必要があります または-I
サーバーで行われる変更には、より適切なオプションです。変更を加える前に、常に現在のルールを確認してください。
ドロップで終わるすべてのルールを追加し、パケットを受け入れるすべてのルールを挿入することをお勧めします。
コマンド例 | それが何をするか |
---|---|
iptables -L | このコマンドは、すべてのiptables を一覧表示します ルール。 |
iptables -L --line-numbers | このコマンドは、すべてのiptables を一覧表示します ルールを設定し、各ルールごとに行番号を提供します。 |
iptables -D INPUT 2 | iptables -L --line-numbers と組み合わせて使用する場合 、このコマンドは、INPUT の2番目のルールを削除します 鎖。これは、正しいルールを確実に削除するための最良の方法です。 |
iptables -A INPUT -m tcp -p tcp -s 12.345.67.89 --dport=22 -j DROP | このルールは、ポート22のトラフィックを送信元IPからTCP経由のINPUTチェーンを介してドロップします。このルールは、INPUTチェーンの先頭に追加されます。 |
iptables -A INPUT -s 12.345.67.89 -j DROP | このルールは、送信元IPからのすべての着信接続をドロップします。この例は、INPUT の先頭に追加されます チェーン。 |
iptables -D INPUT -m tcp -p tcp -s 12.345.67.89 --dport=22 -j ACCEPT | このコマンドは、指定されたルールをINPUT から削除します テーブル。 -D を使用できます 任意のチェーンまたはルールでフラグを立てますが、上記のように行番号で削除することをお勧めします。 |
iptables -I INPUT -m tcp -p tcp -s 12.345.67.89 --dport=22 -j ACCEPT | このルールは、ポート22でソースIPからINPUT を介してトラフィックを受け入れます。 TCP経由のチェーン。このルールはINPUT に挿入されます チェーン。 |
iptables -I INPUT -s 12.345.67.89 -j ACCEPT | このルールは、任意のポートの任意のプロトコルを介した送信元IPからのすべての着信接続を受け入れます。このルールはINPUT に挿入されます チェーン。 |
service iptables save | デフォルトでは、iptables 永続性を提供しません。このコマンドを使用すると、ルールを保存できます。 |
service iptables reload | このコマンドはiptablesサービスをリロードして、新しいルールの処理を可能にします。 |
この記事では、iptables
の基本についてのみ触れます。 。サーバーへのアクセスを制限するために構成できるタスクとルールは他にもいくつかあります。 iptables
の詳細については 、man
を確認できます iptablesのiptablesのページ-Linuxのマニュアルページ。