Firewalld よく使う設定コマンド CentOS7

優

新規で投入するサーバはもっぱらCentOS7になってます。

クラウド等でもデフォルトOSはCentOS7が主流となっている印象な昨今。一刻と迫っているCentOS6サポート終了の2020年。CentOS6ユーザの皆様、そろそろサーバ移行する準備はもうお済みでしょうか。

今回はCentOS6と7の違いとして導入障壁の1つになっている、ファイアウォール『firewalld』の使い方をご紹介するチップスです。

 

現状の確認

# 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:

 

デフォルトで設定されているサービスを確認しよう

# firewall-cmd --list-service --zone=public
dhcpv6-client ssh

 

任意のポートを解放しよう

WEBサーバ用のポート

# firewall-cmd --permanent --add-port=80/tcp --zone=public --permanent
# firewall-cmd --permanent --add-port=443/tcp --zone=public --permanent

 

FTP

# 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

passiveポートは任意のものを設定して下さいね。

 

有効な設定を確認

# firewall-cmd --list-service --zone=public --permanent
dhcpv6-client ssh
# firewall-cmd --list-port --zone=public --permanent
443/tcp 80/tcp 30000-30030/tcp 20/tcp 21/tcp

 

設定を反映させます。

# firewall-cmd --reload

 

有効なゾーンの確認

# firewall-cmd --get-active-zones
public
interfaces: eth0

 

特定IPによるポートの許可

ssh用のゾーンを作ります。DBなどでリモート接続を許可する場合は、特定のネットワークだけに解放しないと大変なことになるので、ここは是非覚えておきましょう。

# firewall-cmd --permanent --new-zone=ssh

反映させます。

# firewall-cmd --reload

 

以下のように設定します。ネットワークは任意のものを入れると良いです。

# 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

 

状態を確認します。

# firewall-cmd --get-active-zones

public
interfaces: eth0
ssh
sources: 153.xxx.yyy.7/32

反映させましょう。

# systemctl reload firewalld

 

ルールの削除

addの部分をremoveに変えれば良いです。

# firewall-cmd --permanent --remove-port=80/tcp --zone=public --permanent

 

ゾーンの削除

先程作ったオリジナルゾーン”ssh”を削除しましょう。

# firewall-cmd --permanent --delete-zone=ssh

 

有効なゾーンの確認

# firewall-cmd --get-active-zones
public
interfaces: eth0

zone単位で一気に削除できるのでお手軽です。

 

特定IPのアクセス拒否

# firewall-cmd --zone=drop --add-source=xxx.xxx.xxx.0/24

 

これで一通りfirewalldの設定ができますね~!

実際はfirewalldの内部的にiptablesが動いているし、CentOS7でもiptablesは使えますのでご安心下さい笑

最新情報をチェックしよう!
>システム構築・保守に特化した会社です。

システム構築・保守に特化した会社です。

システムの構築・保守運用「システムガーディアン」 社内システム担当が欲しいが、専属で雇うほどの仕事量はない。 必要な時に必要なだけ頼りたいというお悩みを持つ企業様へ専門知識を持って対応を行っております。 サーバから各種システムまで自社・他社で構築されたシステムに対してサポートを行っております。

CTR IMG