iptablesの設定

ルール設定ファイル:/etc/sysconfig/iptables
一般設定ファイル:/etc/sysconfig/iptables-config

1.1 現在の設定確認
  • Filterテーブル
[root@sv ~]# iptables -vL
  • NATテーブル
[root@sv ~]# iptables -t nat -vL

1.2 設定の追加例
例)192.168.1.0/24のDNS受付を許可
[root@sv ~]# iptables -A INPUT -p udp -s 192.168.1.0/24 --dport 53 -j ACCEPT
例)TCPにおける継続通信の接続要求ESTABLISHED,ICMP等の関連通信RELATEDを許可し、それ以外の新規接続要求を拒否する(この時ICMPで拒否を返す)。
また、新規のNFS接続要求は許可する。優先順位に注意する(1.継続TCP通信許可 2.新規NFS許可 3.全拒否)
[root@sv ~]# iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
[root@sv ~]# iptables -A INPUT -m state --state NEW -p tcp --dport nfs -j ACCEPT
[root@sv ~]# iptables -A INPUT -j REJECT --reject-with icmp-host-prohibited

1.3 IPマスカレード(Linuxのルーター化)
eth0.100(Vlan1000)からusb0(WiMAX)にIPマスカレードを行う。始めに、IPルーティングを有効化する。
[root@sv ~]# vim /etc/[[sysctl]].conf
  net.ipv4.ip_forward = 1

インターフェース間のフォワーディングを許可
[root@sv ~]# iptables -I FORWARD -i eth0.1000 -o usb0 -j ACCEPT
[root@sv ~]# iptables -I FORWARD -i eth0.1000 -o usb0 -j ACCEPT

1対多NAPTの追加(IPマスカレード)
[root@sv ~]# iptables -t nat -s 192.168.0.0/16 -o usb0 -j MASQUERADE

設定の保存、以下のどちらでもOK
[root@sv ~]# service iptables save
[root@sv ~]# iptables-save > /etc/sysconfig/iptables


1.4 FTPのポート解放
FTPは動的にポート番号が変化するデータコネクションがあるため、コントロールコネクション(TCP/21)のみをオープンするだけでは
データ通信が行えない。そのため、別途モジュールを利用する。
[root@sv ~]# modprobe ip_conntrack_ftp
上記で一時的に有効になるが、以下のようにして恒久的に設定
[root@sv ~]# iptables -I INPUT 4 -p tcp -m state --state NEW --dport ftp -j ACCEPT
[root@sv ~]# vim /etc/sysconfig/iptables-config
IPTABLES_MODULES="ip_conntrack_ftp" ←追記
以下のように、再起動時に自動で読み込まれる
[root@sv ~]# service iptables restart
iptables: Setting chains to policy ACCEPT: filter          [  OK  ]
iptables: Flushing firewall rules:                         [  OK  ]
iptables: Unloading modules:                               [  OK  ]
iptables: Applying firewall rules:                         [  OK  ]
iptables: Loading additional modules: ip_conntrack_ftp     [  OK  ]

1.5 systemctl用のiptables
CentOS7からはsystemctlでサービスを管理するようになったため、iptablesもこれで管理する。
標準ではsystemctl用のiptables-servicesがインストールされていないため、別途インストールする。
※これをインストールしないと再起動時の/etc/sysconfig/iptablesが読み込まれない( ^ω^)だめじゃん・・・

# [[yum]] install iptables-services
最終更新:2017年02月26日 18:09