新規で投入するサーバはもっぱらCentOS7になってます。
クラウド等でもデフォルトOSはCentOS7が主流となっている印象な昨今。一刻と迫っているCentOS6サポート終了の2020年。CentOS6ユーザの皆様、そろそろサーバ移行する準備はもうお済みでしょうか。
今回はCentOS6と7の違いとして導入障壁の1つになっている、ファイアウォール『firewalld』の使い方をご紹介するチップスです。
現状の確認
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
# firewall-cmd --list-all public (active) target: default icmp-block-inversion: no interfaces: eth0 sources: services: dhcpv6-client ssh ports: protocols: masquerade: no forward-ports: sourceports: icmp-blocks: rich rules: |
デフォルトで設定されているサービスを確認しよう
1 2 |
# firewall-cmd --list-service --zone=public dhcpv6-client ssh |
任意のポートを解放しよう
WEBサーバ用のポート
1 |
# firewall-cmd --permanent --add-port=80/tcp --zone=public --permanent |
1 |
# firewall-cmd --permanent --add-port=443/tcp --zone=public --permanent |
FTP
1 2 3 |
# firewall-cmd --permanent --add-port=20/tcp --zone=public --permanent # firewall-cmd --permanent --add-port=21/tcp --zone=public --permanent # firewall-cmd --permanent --add-port=30000-30030/tcp --zone=public --permanent |
有効な設定を確認
1 2 |
# firewall-cmd --list-service --zone=public --permanent dhcpv6-client ssh |
1 2 |
# firewall-cmd --list-port --zone=public --permanent 443/tcp 80/tcp 30000-30030/tcp 20/tcp 21/tcp |
設定を反映させます。
1 |
# firewall-cmd --reload |
有効なゾーンの確認
1 2 3 |
# firewall-cmd --get-active-zones public interfaces: eth0 |
特定IPによるポートの許可
ssh用のゾーンを作ります。DBなどでリモート接続を許可する場合は、特定のネットワークだけに解放しないと大変なことになるので、ここは是非覚えておきましょう。
1 |
# firewall-cmd --permanent --new-zone=ssh |
反映させます。
1 |
# firewall-cmd --reload |
以下のように設定します。ネットワークは任意のものを入れると良いです。
1 2 3 4 |
# firewall-cmd --permanent --zone=ssh --set-target=ACCEPT # firewall-cmd --permanent --zone=ssh --add-service=ssh # firewall-cmd --permanent --zone=ssh --add-source=153.xxx.yyy.7/32 # firewall-cmd --reload |
状態を確認します。
1 2 3 4 5 6 |
# firewall-cmd --get-active-zones public interfaces: eth0 ssh sources: 153.xxx.yyy.7/32 |
反映させましょう。
1 |
# systemctl reload firewalld |
ルールの削除
addの部分をremoveに変えれば良いです。
1 |
# firewall-cmd --permanent --remove-port=80/tcp --zone=public --permanent |
ゾーンの削除
先程作ったオリジナルゾーン”ssh”を削除しましょう。
1 |
# firewall-cmd --permanent --delete-zone=ssh |
有効なゾーンの確認
1 2 3 |
# firewall-cmd --get-active-zones public interfaces: eth0 |
zone単位で一気に削除できるのでお手軽です。
特定IPのアクセス拒否
1 |
# firewall-cmd --zone=drop --add-source=xxx.xxx.xxx.0/24 |
これで一通りfirewalldの設定ができますね~!
実際はfirewalldの内部的にiptablesが動いているし、CentOS7でもiptablesは使えますのでご安心下さい笑