Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
2
Help us understand the problem. What is going on with this article?
@dolcano

CentOS7のfirewalldで困った記録

More than 1 year has passed since last update.

Firewalldの使い方がわからなくて困った記録

CentOS7からiptablesではなく、Firewalldに変更された。
splunkをインストールして、さてアクセスしようとしたらfirewalldで弾かれていたので、設定を変える。

基本的なコマンド

# systemctl start firewalld firewalldを起動
# systemctl stop firewalld firewalldを停止
# systemctl enable firewalld firewalldをサービスに登録
# systemctl disable firewalld firewalldをサービスから解除
# firewall-cmd --list-all-zones すべてのゾーンをリスト
# firewall-cmd --state firewalldの状態を表示
# firewall-cmd --get-zones ゾーンを取得
# firewall-cmd --list-all 現在のゾーンを表示

現在の設定確認

[root@localhost zones]# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: enp0s3
sources:
services: dhcpv6-client ssh
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:

新規に設定を追加するとき

まずサービス用のxmlファイルを作る

[root@localhost ~]# cp /usr/lib/firewalld/services/http.xml /etc/firewalld/services/splunk.xml
[root@localhost services]# cat splunk.xml
<?xml version="1.0" encoding="utf-8"?>
<service>
<short>WWW8000 (HTTP)</short>
<description>Using Splunk Web Access</description>
<port protocol="tcp" port="8000"/>
</service>

次に zone/public.xml に新しいサービスを追加する

[root@localhost ~]# vi /etc/firewalld/zones/public.xml

[root@localhost zones]# cat public.xml
<?xml version="1.0" encoding="utf-8"?>
<zone>
<short>Public</short>
<description>For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.</description>
<service name="dhcpv6-client"/>
<service name="ssh"/>
<service name="splunk"/>
</zone>

設定を追加したら、firewalldをリスタート

[root@localhost zones]# systemctl restart firewalld.service

[root@localhost zones]# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: enp0s3
sources:
services: dhcpv6-client ssh splunk
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:

こんな感じで通過ルールを設定できるようになった。でもちゃんとしたやり方は違うんだろうなー。

本当は・・・

本当は、firewall-cmdを使用して以下のようにやるのがお作法らしい。
ちなみに以下の例ではpublic zoneにサービスやポートを追加/削除する例の場合だ。

portの追加(TCP8000番を追加)

firewall-cmd --add-port=8000/tcp --zone=public --permanent

portの削除(TCP8000番を削除)

firewall-cmd --remove-port=8000/tcp --zone=public --permanent

serviceの追加(httpを追加)

firewall-cmd --add-service=http --zone=public --permanent

serviceの削除(httpを削除)

firewall-cmd --remove-service=http --zone=public --permanent

firewall-cmd の設定が終わったら、systemctlコマンドでfirewalldをリスタートする。

2
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
dolcano

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
2
Help us understand the problem. What is going on with this article?