Iptableは、IPv4パケットフィルタリングとNATの管理ツールです。 Iptablesは、LinuxカーネルでIPv4パケットフィルタールールのテーブルを設定、維持、および検査するために使用されます。いくつかの異なるテーブルを定義できます。各テーブルには多数の組み込みチェーンが含まれており、ユーザー定義のチェーンが含まれている場合もあります。各チェーンは、パケットのセットに一致する可能性のあるルールのリストです。各ルールは、一致するパケットをどう処理するかを指定します。これは「ターゲット」と呼ばれ、同じテーブル内のユーザー定義チェーンへのジャンプである可能性があります。
ファイアウォールルールは、パケットとターゲットの基準を指定します。パケットが一致しない場合、チェーン内の次のルールが検査されます。一致する場合、次のルールはターゲットの値によって指定されます。これは、ユーザー定義のチェーンの名前、または特別な値ACCEPT、DROP、QUEUE、RETURNのいずれかです。
- ACCEPTは、パケットを通過させることを意味します。
- DROPは、パケットを床に落とすことを意味します
- QUEUEは、パケットをユーザースペースに渡すことを意味します
- RETURNは、このチェーンのトラバースを停止し、前のチェーンの次のルールから再開することを意味します。
合計4つのチェーンがあります:
- 入力 -デフォルトのチェーンは、システムにアドレス指定されたパケットに使用されます。これを使用して、着信ポートとIPアドレス/サブネットを開閉します
- 出力 -デフォルトのチェーンは、パケットがシステムから生成されているときに使用されます。このオープンまたはクローズの送信ポートとIPアドレス/サブネットを使用します
- フォワード -デフォルトのチェーンは、パケットが別のインターフェイスを介して送信されるときに使用されます。通常、Linuxをルーターとしてセットアップするときに使用されます
- RH-ファイアウォール-1-入力 -これはユーザー定義のカスタムチェーンです。 INPUT、OUTPUT、FORWARDチェーンで使用されます。
Iptablesのインストール
次のコマンドでiptablesをインストールできます。
[root@vpn ~]# yum install iptables -y
iptableバージョンを確認してください:
[root@vpn ~]# iptables --version
iptables v1.3.5
iptablesのステータスを確認してください:
[root@vpn ~]# service iptables status
iptablesを起動します:
[root@vpn ~]# service iptables start
Flushing firewall rules: [ OK ]
Setting chains to policy ACCEPT: filter [ OK ]
Unloading iptables modules: [ OK ]
iptablesを設定するには、起動時に開始します:
[root@vpn ~]# chkconfig iptables on
CentOSのデフォルトの設定ファイルは/etc/ sysconfig/iptablesです。このファイルを読み取ってファイアウォールをアクティブ化するのはシステムスクリプトです
Iptable Rules
1)iptablesルールをすでに定義している場合に必要なすべてのルール(F)とチェーン(X)をリセットします
#iptables -t filter -F
#iptables -t filter -X
2)ファイアウォールのステータスを表示する
#iptables -L -n -v
3)ヌルパケットのブロック
#iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
4)SYN-FLOOD攻撃を拒否します
#iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
5)偵察パケットを拒否する
#iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
6)ファイアウォールフィルターにローカルホストインターフェイスを追加する
#iptables -A INPUT -i lo -j ACCEPT
7)Webサーバートラフィックを許可する
#iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
#iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
8)ユーザーにSMTPサーバーの使用を許可する
#iptables -A INPUT -p tcp -m tcp --dport 25 -j ACCEPT
#iptables -A INPUT -p tcp -m tcp --dport 465 -j ACCEPT
9)ユーザーがサーバーでメールを読めるようにする
POP3トラフィックを許可する
#iptables -A INPUT -p tcp -m tcp --dport 110 -j ACCEPT
#iptables -A INPUT -p tcp -m tcp --dport 995 -j ACCEPT
POP3トラフィックを許可する
#iptables -A INPUT -p tcp -m tcp --dport 143 -j ACCEPT
#iptables -A INPUT -p tcp -m tcp --dport 993 -j ACCEPT
10)sshトラフィックを許可する
#iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
1つのソースからのSSHポートへのトラフィックを許可する
#iptables -A INPUT -p tcp -s YOUR_IP_ADDRESS -m tcp --dport 22 -j ACCEPT
11)確立された発信接続がサーバーからの応答を受信できるようにします
#iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
12)IPアドレスをブロックする
#iptables -A INPUT -s IP_ADDRESS -j DROP
13)特定のIPアドレスのポートをブロックする
#iptables -A INPUT -p tcp -s IP_ADDRESS --dport PORT -j DROP
14)特定のIPアドレスのポートを開く
#iptables -A INPUT -p tcp -s IP_ADDRESS --dport PORT -j ACCEPT
15)特定のIPアドレスのプリンタを許可する
#iptables -A INPUT -s IP_ADDRESS -p udp -m udp --dport 631 -j ACCEPT
16)DNSを開く
#iptables -A INPUT -m state --state NEW -p tcp --dport 53 -j ACCEPT
17)MYSQLポートを開く
#iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
18)さまざまなポートを開きます(例:7000-7100)
#iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 7000:7100 -j ACCEPT
すべてのルールを設定したら、ルールを保存してiptablesを再起動する必要があります
#service iptables save
#service iptables restart