この記事では、単純なファイアウォールに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