IPTablesは、Linuxベースのシステムにおいてパケットフィルタリングを行うための強力なツールであり、Ubuntu 14.04でも広く使用されています。この記事では、Ubuntu 14.04上でIPTablesを使用してファイアウォールを設定する方法について、詳しく解説します。
1. IPTablesのインストール
まず最初に、IPTablesがインストールされていない場合は、以下のコマンドを使ってインストールします。
bashsudo apt-get update sudo apt-get install iptables
これで、IPTablesがインストールされ、使用準備が整います。
2. 基本的なIPTablesのルール設定
IPTablesは、ネットワークパケットのフィルタリングルールを設定することにより、ネットワーク通信を制御します。基本的なルールを設定するためには、iptables
コマンドを使用します。
2.1 現在のルールの確認
IPTablesの設定状況を確認するには、次のコマンドを実行します。
bashsudo iptables -L
このコマンドは、現在設定されているルールのリストを表示します。
2.2 ルールの追加
以下は、基本的なIPTablesルールの例です。
-
SSH(ポート22)の許可:
SSH接続を許可するには、次のコマンドを実行します。
bashsudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
-
HTTP(ポート80)の許可:
ウェブサーバーにHTTP通信を許可するには、次のコマンドを使用します。
bashsudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
-
HTTPS(ポート443)の許可:
セキュアなHTTP通信を許可するためには、以下のコマンドを実行します。
bashsudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
-
すべての入力トラフィックを拒否:
デフォルトでは、すべての入力トラフィックを拒否することがセキュリティ上重要です。このルールを追加することで、他のルールで明示的に許可された通信のみを通過させることができます。
bashsudo iptables -A INPUT -j DROP
2.3 ルールの削除
もし誤ってルールを追加してしまった場合、そのルールを削除することも可能です。例えば、SSHポートの許可を削除するには、次のコマンドを使用します。
bashsudo iptables -D INPUT -p tcp --dport 22 -j ACCEPT
3. デフォルトポリシーの設定
IPTablesのデフォルトポリシーを設定することで、ネットワークトラフィックの全体的な取り扱い方法を決定できます。デフォルトのポリシーには、ACCEPT
(許可)やDROP
(拒否)があります。
-
入力トラフィックのデフォルトポリシーを拒否に設定:
bashsudo iptables -P INPUT DROP
-
出力トラフィックのデフォルトポリシーを許可に設定:
bashsudo iptables -P OUTPUT ACCEPT
-
転送トラフィックのデフォルトポリシーを拒否に設定:
bashsudo iptables -P FORWARD DROP
4. 設定を永続化する方法
IPTablesの設定は、システムを再起動するとリセットされてしまいます。設定を永続化するためには、iptables-persistent
パッケージをインストールする必要があります。
4.1 iptables-persistent
のインストール
次のコマンドを実行して、iptables-persistent
をインストールします。
bashsudo apt-get install iptables-persistent
インストール後、システムが再起動してもIPTablesのルールが保持されるようになります。
4.2 ルールの保存
設定したIPTablesのルールを保存するには、次のコマンドを実行します。
bashsudo netfilter-persistent save
これで、システムを再起動しても、設定したルールが自動的に適用されます。
5. 特定のIPアドレスやサブネットを許可・拒否
IPTablesでは、特定のIPアドレスやサブネットからの接続を制限することもできます。
-
特定のIPアドレスからの接続を拒否:
例えば、
192.168.1.100
からの接続を拒否するには、次のコマンドを使用します。bashsudo iptables -A INPUT -s 192.168.1.100 -j DROP
-
特定のサブネットからの接続を許可:
192.168.1.0/24
というサブネットからの接続を許可するには、次のコマンドを使用します。bashsudo iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT
6. ログを設定する
IPTablesでは、ログを記録してトラフィックの状況を監視することも可能です。例えば、拒否された接続をログとして記録するには、以下のコマンドを使用します。
bashsudo iptables -A INPUT -j LOG --log-prefix "IPTables-Dropped: "
この設定を行うと、拒否された接続がシステムのログに記録されます。
7. 再起動後の設定の適用
システムが再起動した後にIPTablesの設定を適用するには、以下のコマンドを使用します。
bashsudo service netfilter-persistent restart
8. 結論
Ubuntu 14.04でIPTablesを使用することによって、システムのネットワークトラフィックを効率的に管理することができます。基本的なルール設定から、特定のIPアドレスやサブネットの管理、そしてログの設定に至るまで、さまざまな機能を利用することが可能です。セキュリティを強化するために、適切なファイアウォールの設定を行うことは非常に重要です。