iptablesからfirewalldへ
iptablesでは「チェーン」に対して、パケットを通過させたり拒否したりするルールを定義してフィルタリングします。チェーンには、パケットの受信に対する「INPUT」チェーン、パケットの送信に対する「OUTPUT」チェーン、ネットワークインターフェースの間でのパケット転送に対する「FORWARD」チェーンの3つが用意されています。 これらのチェーンに対してフィルタリングルールを定義していくことで、ファイアウォールとして機能させます。 いわゆる古典的なACL(Access Control List)型のファイアウォールといえます。
具体的には、最初に基本ポリシーとしてDROP(基本無視)やREJECT(基本拒否)、ACCEPT(基本通過)を定義します。その上で、対象ごとに細かいフィルタリングルールを定義していきます。 それぞれのフィルタリングルールは通常、TCPやUDPのポート番号か、単一ホストのIPアドレスまたはネットワークアドレス、あるいはその両者を対象として定義します。 他にも、hashlimitオプションを使用することで回数による接続制限をかけるなどといったスパム対策を取ることもできます。(例:同じIPアドレスから5分間の間に10回接続要求があった場合は、それ以降、新しい接続を5分間拒否する。)
iptablesを有効にするCentOS 7ではデフォルトではiptablesは無効になっています。iptablesを使用したい場合は、事前に設定が必要です。 また、iptablesはfirewalldと同時に起動することはできません。 そのため、まずデフォルトで動いているfirewalldサービスを停止します。
# systemctl stop firewalld.service # systemctl status firewalld.service ● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled) Active: inactive (dead) since 日 2018-12-30 04:09:53 JST; 2min 18s ago Main PID: 839 (code=exited, status=0/SUCCESS) # systemctl start iptables.serviceもし、「Failed to start iptables.service: Unit iptables.service failed to load: No such file or directory.」メッセージが表示され、エラーとなった場合、iptablesがインストールされていませんので、yumコマンドでインストールします。
# yum -y install iptables-services iptablesのルールの見方 # cat /etc/sysconfig/iptables *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [21:3500] -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT -A INPUT -p tcp -m tcp --dport 53 -j ACCEPT -A INPUT -p udp -m udp --dport 53 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT # systemctl reload iptables.services # iptables -nL Chain INPUT (policy ACCEPT) target prot opt source destination ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 ACCEPT all -- 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 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:21 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:53 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:53 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited Chain FORWARD (policy ACCEPT) target prot opt source destination REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited Chain OUTPUT (policy ACCEPT) target prot opt source destination iptablesを無効にする # systemctl stop iptables.services # systemctl start firewalld.services カテゴリー サイト情報 メタ情報(C) 2019 CentOS7ではじめるサーバー構築入門