この記事では、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のマニュアルページ。