IPTables(Linuxファイアウォール)の基本ガイドヒント/コマンド


このチュートリアルでは、Linuxオペレーティングシステムでファイアウォールがどのように機能するか、およびLinuxのIPTablesとは何ですか?ファイアウォールは、システムで送受信されるパケットの運命を決定します。 IPTablesはルールベースのファイアウォールであり、ほとんどのLinuxオペレーティングシステムにプリインストールされています。デフォルトでは、ルールなしで実行されます。 IPTablesは、ipchainsまたはipfwadmと呼ばれる前は、カーネル2.4に含まれていました。 IPTablesは、カーネルと通信し、フィルタリングするパケットを決定するためのフロントエンドツールです。このガイドは、IPTablesの大まかなアイデアと基本的なコマンドを理解するのに役立つ場合があります。ここでは、必要に応じて参照およびカスタマイズできる実用的なiptablesルールについて説明します。

次のように、さまざまなプロトコルにさまざまなサービスが使用されます。

  1. iptables applies to IPv4.
  2. ip6tables applies to IPv6.
  3. arptables applies to ARP.
  4. ebtables applies to Ethernet frames..

IPTablesのメインファイルは次のとおりです。

  1. /etc/init.d/iptables – init script to start|stop|restart and save rulesets.
  2. /etc/sysconfig/iptables – where Rulesets are saved.
  3. /sbin/iptables – binary.

現在、3つのテーブルがあります。

  • Filter
  • NAT
  • Mangle

現在、合計4つのチェーンがあります。

  1. INPUT : Default chain originating to system.
  2. OUTPUT : Default chain generating from system.
  3. FORWARD : Default chain packets are send through another interface.
  4. RH-Firewall-1-INPUT : The user-defined custom chain.

注:上記のメインファイルは、UbuntuLinuxでは若干異なる場合があります。

Iptabeファイアウォールを開始、停止、再起動する方法。

# /etc/init.d/iptables start 
# /etc/init.d/iptables stop
# /etc/init.d/iptables restart

システムの起動時にIPTablesを起動するには、次のコマンドを使用します。

#chkconfig --level 345 iptables on

以下のコマンドでIPTablesルールセットを保存します。システムが再起動してIPTablesサービスを再起動するたびに、既存のルールがフラッシュまたはリセットされました。以下のコマンドは、デフォルトでTPTablesルールセットを/ etc/sysconfig/iptablesファイルに保存し、IPTablesがフラッシュアウトした場合にルールが適用または復元されます。

#service iptables save

IPTables/Firewallのステータスを確認しています。オプション「-L」(リストルールセット)、「-v」(詳細)、および「-n」(数値形式で表示)。

[[email protected] ~]# iptables -L -n -v

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
    6   396 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0
    0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22
    0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT 5 packets, 588 bytes)
 pkts bytes target     prot opt in     out     source               destination

IPTablesルールを数字で表示します。引数「–line-numbers」を使用すると、ルールを追加または削除できます。

[[email protected] ~]# iptables -n -L -v --line-numbers

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination
1       51  4080 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
2        0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0
3        0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0
4        0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22
5        0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination
1        0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT 45 packets, 5384 bytes)
num   pkts bytes target     prot opt in     out     source               destination

IPTablesルールのフラッシュまたは削除。以下のコマンドは、テーブルからすべてのルールを削除します。上記のコマンドを実行する前に、ルールセットのバックアップを取ります。

[[email protected] ~]# iptables -F

ルールを削除または追加する場合は、最初にチェーン内のルールを見てみましょう。以下のコマンドは、ルールを追加または削除するのに役立つルール番号とともに、INPUTおよびOUTPUTチェーンのルールセットを表示します。

[[email protected] ~]# iptables -L INPUT -n --line-numbers

Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination
1    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
2    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0
3    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0
4    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22
5    REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited
[[email protected] ~]# iptables -L OUTPUT -n --line-numbers
Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination

INPUTチェーンからルール5を削除したい場合を考えてみましょう。次のコマンドを使用します。

[[email protected] ~]# iptables -D INPUT 5

4〜5個のルールセットのINPUTチェーンにルールを挿入または追加します。

[[email protected] ~]# iptables -I INPUT 5 -s ipaddress -j DROP

初心者向けのIPTablesの基本的な使用法と機能について説明しました。 TCP/IPを完全に理解し、セットアップについて十分に理解したら、複雑なルールを作成できます。