GNU/Linux >> Linux の 問題 >  >> Linux

iptablesの紹介

この記事では、単純なファイアウォールにIPテーブルを使用する方法と、ファイアウォールに必要なポートに穴を開けるプロセスについて説明します。 IPテーブルは、すべてのLinuxディストリビューションで利用できるファイアウォールおよびネットワークツールであり、受信したパケットをカーネルレベルで分析することで動作します。

IPテーブルのコマンド、パラメータ、およびその他のオプションの包括的なリストについては、MANページおよびIPテーブルのハウツーを参照してください。

基本ルールセット

現在のルールを一覧表示するコマンドは次のとおりです。

  sudo iptables --list

デフォルトの出力は次のとおりです。

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
ルールセットの読み取り

デフォルトのインストールでは、3つの事前定義されたチェーンが表示されます 、ルールのリスト。着信トラフィック(INPUT)、転送トラフィック(FORWARD)、および発信トラフィック(OUTPUT)の3つの主要なアクティビティを処理します。上記の表から取り除く最も重要なことは、そのすべてのポリシーのデフォルトのルールセットが ACCEPTに設定されていることです。 。

ポリシー

利用可能なポリシーとその他のオプションは広範囲にわたっています。それらについてもっと知りたい場合は、IPtablesのmanページをチェックしてください。この記事では、最も一般的なポリシーのみを取り上げます:

  • 受け入れる 他のターゲットルールが適用されない限り、トラフィックを明示的に通過させます。

  • 拒否 一致したパケットに応答してエラーパケットを送り返します。それ以外の場合は、 DROPと同等です。 つまり、終了する TARGET 、ルールトラバーサルを終了します。

  • ドロップ ターゲットルールが適用されない限り、通信なしでホストへの接続を停止します。

利用可能なオプション

IPtablesのMANページ:https://linux.die.net/man/8/iptables

iptablesによって認識されるオプション 次のグループに属します:

  • コマンド 実行するアクションを指定します。
  • パラメータ 使用するコマンドのルール仕様を設定します。
  • その他のオプション 必要に応じて、使用するコマンドに指定します。
単純なファイアウォールコマンド

サーバーにすでに接続されている接続を許可します。

sudo iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT

ServiceNetでの接続を許可します。 CloudBackupやCloudMonitoringなどの他のRackspaceCloud製品で必要です。

sudo iptables -A INPUT -i eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT

SSHへの接続を許可します。このコマンドを使用してカスタマイズすることもできます。次のコマンドは、SSHポート22へのすべてのTCP接続の試行を許可します。 。

  sudo iptables -I INPUT 1 -p tcp  --dport 22 -j ACCEPT

CIDR(ClasslessInter Domain Routing)表記を使用して、特定のIPサブネットからの接続のみを許可します。この例では、192.168.1.0〜192.168.1.255の範囲のIPアドレスにロックダウンします。

sudo iptables -I INPUT 1 -p tcp --dport 22 -s 192.168.1.0/24 -j ACCEPT

HTTP 80への接続を許可する またはHTTPS443 任意の接続から。

sudo iptables -I INPUT 1 -p tcp --dport 80 -j ACCEPT
sudo iptables -I INPUT 1 -p tcp --dport 443 -j ACCEPT

ポート21でFTPサーバーへの接続を許可する 。

sudo iptables -I INPUT 1 -p tcp --dport 21 -j ACCEPT

すべての接続を拒否するようにデフォルトのポリシーを変更すると、許可された接続のみが受け入れられます。

sudo iptables -P INPUT DROP

重要 :着信SSH接続を許可するアクセスルールを設定した後、このルールを実行します。

共通ポートのリスト

上記のコマンドを使用して、以下の一般的なポートのリストからオプションを組み合わせて、実行中のサーバーのルールを作成します。

ルールセットを保存する

何らかの理由でサーバーが再起動した場合、またはIPTablesを再起動した場合、変更は揮発性メモリに保存されるため、変更は失われます。次のコマンドは、プレーンテキストファイル / etc / sysconfig / iptablesを作成します 、人間が読める構文を使用します。このファイルへのすべての編集は、iptablesが再起動するたびに有効になります。

  • CentOSおよびFedoraの場合

    /etc/init.d/iptables save
    
  • Ubuntuオペレーティングシステムの場合

    iptables-save > /etc/iptables.rules
    
  • 他のすべてのディストリビューションの場合

    iptables-save > /etc/sysconfig/iptables
    
概要

この記事では、基本的な攻撃からサーバーを保護するための簡単なファイアウォールを作成する方法を説明します。 IPTablesは強力なツールであり、完全に探索するには本が必要になることに注意してください。さらにルールを作成する際にサポートが必要な場合は、Easy Firewall GeneratorforIPTablesを参照してください。

参考資料と役立つリンク
  • UbuntuIPtablesのハウツー
  • Man IPtables

Linux
  1. GNUAutotoolsの紹介

  2. Ubuntu14.04でIptablesを使用したファイアウォール構成

  3. LinuxサーバーでIptablesのポートを開く方法

  1. Cプログラミング言語-はじめに

  2. diffコマンドの概要

  3. CentOSのIptablesでHttpポート(80)を開く方法

  1. LinuxサーバーでIptablesのポートを開く方法

  2. iptables の変更を元に戻す

  3. すべての iptables ルールをクリアする最良の方法