IPTablesは、コマンドラインを介してLinux上で実行されるファイアウォールシステムの名前です。プログラムは主にとして使用されますUbuntuで提供されるデフォルトのユーティリティ。管理者は多くの場合、IPTablesファイアウォールを使用して、トラフィックがネットワークに入るのを許可または防止します。
IPTablesを初めて使用する場合、最初に行う必要があるのは、次のコマンドを使用してIPTablesを更新またはインストールすることです。
$ sudo apt-get install iptables
コマンドラインインターフェイスに慣れていないユーザーは、IPTablesに学習曲線があることに気付きますが、ユーティリティ自体は非常にシンプルで使いやすいです。トラフィックを制御するための基礎として使用できる一連のコアコマンドがあります。そうは言っても、IPTablesルールを変更するときは非常に注意する必要があります。間違ったコマンドを入力すると、物理マシンの問題を解決するまで、IPTablesから完全にロックアウトされる可能性があります。
この記事では、IPTablesの基本的なガイドを提供し、基本を紹介します。IPTablesのコアに入る前に、次のことを確認する必要があります。Ubuntuを実行する 16.04的VPAとSSHクライアントを使用的 ローカルマシン。すでにこれらをお持ちの場合は、開始する時が来ました。
内容
IPTablesチュートリアル:チェーン
IPTablesで習得する基本的な概念のXNUMXつは、チェーンの概念です。チェーンは本質的にルールです。フィルタテーブルには、IPTablesで遭遇するXNUMXつのチェーンがあります。入る、前方 と出力。
-
- 入力 – INPUTチェーンは、着信データパケットを制御するルールです。ここで新しい接続をブロックまたは許可できます。これは、ポート、プロトコル、および送信元IPアドレスに基づいて行うことができます。
- FORWARD – FORWARDチェーンは、さまざまな端末の場所に転送されている着信パケットをフィルタリングします。ルーティングを行っているか、特に転送を探している場合を除いて、このチェーンを使用することはほとんどありません。
- 出力 – OUTPUTチェーンは、発信データパケットと接続を管理するために使用されます。外部ホストにpingを実行すると、入力チェーンを使用してデータが返されることに注意してください。
デフォルトのチェーン動作
最初に特定のルールの構成に直接進むこともできますが、デフォルトの動作を定義するには、一歩下がる必要があります。チェーンのデフォルトの動作を確認するには、次のコマンドを実行する必要があります。
$ sudo iptables-Lコマンド
これにより、次のように表示されます。
user @ ubuntu:〜$ sudo iptables -L -v チェーン入力(ポリシーACCEPT) チェーンフォワード(ポリシーACCEPT) チェーン出力(ポリシーACCEPT) user @ ubuntu:〜$
この情報は、チェーン構成の目的を正確に示しています。この例では、入力チェーン、転送チェーン、および出力チェーンがトラフィックを受け入れるように構成されています。これらの設定は、必要な接続を妨げないため、開始点として適しています。
ただし、ポリシーが接続を受け入れない場合は、次の各コマンドを入力してすべての接続を受け入れることができます。
$ sudo iptables --policy INPUT ACCEPT
$ sudo iptables --policy OUTPUT ACCEPT
$ sudo iptables --policy FORWARD ACCEPT
デフォルト設定ですべての接続が受け入れられると、IPアドレスとポート番号をブロックすることでIPTablesへのアクセスを制御できます。これにより、デフォルトですべての接続をブロックする代わりに、ブロックする接続を指定できます。
特に機密情報を扱う場合は、すべての接続を自動的にブロックするようにデフォルト設定を構成できます。このようにして、IPTablesを使用して、許可する個々のIPアドレスを選択できます。これを行うには、次のコマンドを入力する必要があります。
$ sudo iptables --policy INPUT DROP
$ sudo iptables --policy OUTPUT DROP
$ sudo iptables --policy FORWARD DROP
ほとんどのユーザーがすべての接続を受け入れるのが最善ですが、セキュリティの高いサーバーで作業している場合は、覚えておく価値があります。
単一の接続を構成する
デフォルトのチェーン動作を構成した後、単一の接続を構成できます。ここで、いわゆる接続固有の応答を構成します。これは基本的に、IPアドレスまたはポートに接続するときに相互作用する方法をIPTablesに指示します。これらの応答は次のとおりです。受け入れる、あきらめる、ごみ。
上の画像でわかるように、ユーザーは、要件に基づいて接続を許可、ドロップ、または拒否するためのチェーンルールを定義しています。以下は、各応答に含まれる内容の説明です。
- 同意 –この構成では、接続のみが許可されます。
- DROP –ドロップは、ソースと対話することなく接続をブロックします。
- 拒否 –これにより、試行された接続がブロックされますが、エラーメッセージも送信されます。これは通常、接続の試行がファイアウォールによってブロックされたことをソースに通知するためのものです。
接続を許可またはブロックする方法
設定に応じて、接続をブロックまたは許可するさまざまな方法があります。次の例では、非表示のブロック方法を使用しています。Drop 対話せずに切断します。 iptables-A デフォルトのチェーン設定で確立されたルールに警告を追加できます。このコマンドを使用して接続をブロックする方法を以下に示します。
単一のIPアドレスをブロックします。
$ sudo iptables -A INPUT -S 10.10.10.10 -j ドロップ
上記の例では、10.10.10.10をブロックするIPアドレスに置き換えることができます。
一連のIPアドレスをブロックします。
$ sudo iptables -A INPUT -s 10.10.10.10.0 / 24 -j DROP
または
$ sudo iptables -A INPUT -s 10.10.10.0/255.255.255/.0 -j DROP
単一のポートをブロックします。
$ sudo iptables -A INPUT -p tcp --dport ssh -s 10.10.10.10 -j DROP
'sshは任意のプロトコルまたはポート番号に置き換えることができることに注意してください。また、コードの-p tcpセグメントは、ブロックするプロトコルがUDPであるかTCPであるかを示すために使用されることに注意してください。
プロトコルがUDPを使用する場合は、次のように入力します-pudp代わりに-p TCP。次のコマンドを入力して、IPアドレスからのすべての接続をブロックすることもできます。
$ sudo iptables -A INPUT -p tcp --dport ssh -jDROP
双方向通信:接続ステータスIPTablesチュートリアル
遭遇するプロトコルのほとんどは、送信のために双方向通信を必要とします。これは、送信が入力と出力で構成されていることを意味します。システムに何が入るかは、何が出るかと同じくらい重要です。接続ステータスを使用すると、双方向接続と一方向接続を組み合わせることができます。次の例では、SSHプロトコルはIPアドレスからのSSH接続をブロックしますが、IPアドレスへの接続は許可します。
$ sudo iptables -A INPUT -p tcp --dport ssh -s 10.10.10.10 -m state --state NEW、ESTABLISHED -j ACCEPT $ sudo iptables -A OUTPUT -p tcp —sport 22 -d10.10.10.10。-m state --state ESTABLISHED -J ACCEPT
接続状態を変更するコマンドを入力した後、変更を保存する必要があります。これを行わないと、ユーティリティを閉じたときに構成が失われます。使用する配布システムに応じて、さまざまなコマンドを使用できます。
Ubuntu:
$ sudo / sbin / iptables-保存
Red Hat / CentOS –
$ sudo / sbin / service iptables save
または
$ sudo /etc/init.d/iptables 保存
これらのコマンドを使用することは非常に重要です。これにより、ユーティリティがロードされるたびに構成する手間が省けます。
ルールを削除
ルールを保存できることと同じくらい重要なのは、ルールを削除できることです。間違えた場合、または古いルールを削除したい場合は、次のオプションを使用できます– D 命令。このコマンドは、入力したルール番号と組み合わせて使用する必要があります。この番号は、IPTablesに削除するルールを指示します。たとえば、次のように入力した場合:
$ sudo iptables -D INPUT 10
次に、構成した10番目のルールが削除されます。
家を片付けて一連のルールを削除したい場合は、-Fコマンド。これを行うには、次のように入力します。
$ sudo iptables -F
これにより、ルールセット全体がクリアされ、IPTableが更新されます。
IPTables:連鎖律を学ぶ!
これでIPTablesチュートリアルは終了です。ご覧のとおり、IPTablesはブロックして許可する方法ですLinuxリリースバージョンフローの多機能ツール。このユーティリティを効果的に使用するには、デフォルト構成を効果的に設定し、その上に他のルールを構築する必要があります。デフォルトの構成では、トラフィックを許可または拒否するための広範なトラフィックの意図を概説できます。これらのルールにより、IPアドレス、ポート、およびプロトコルに基づいてメソッドを構築できます。
IPTablesの可能性のほんの一部に過ぎません。さまざまなコマンドを使用して、サーバー上のトラフィックをどのように体験するかを決定できます。ただし、他のコマンドの使用を開始する前に、基本を理解することをお勧めします。たとえば、より専門的なことに取り組む前に、基本的な連鎖律を理解する必要があります。
IPTablesの動作に慣れたら、さらに多くのルールを統合してエクスペリエンスをカスタマイズできるようになります。これにより、許可する接続の種類をこれまで以上に正確に指定できるようになります。