2022/09/14

firewalldの設定【Rocky Linux 8】

firewalldの考え方として、デフォルト動作(特に指定していない場合、REJECT)があって、その上にzoneが積み重なっていく形になります。

デフォルトだと、public zoneのみアクティブなので、「public」(ssh・dhcpv6-client・cockpitが許可)それ以外の場合、デフォルト動作へ判断を委ねる。(デフォルト動作がREJECTなので、応答ありの拒否になる)

管理用にzoneを追加するなど様々な設定がありますが、例として、以下のような基本的設定のみ紹介します。

  • http/httpsを通信できるようにします。
  • sshのポート番号を「22」から「50022」に変更して通信できるようにします。
  • Webmin用にポート番号を「50000」で通信できるようにします。

1.firewalldをインストールして、自動起動を有効化の上、起動します

[root@sv1 ~]# dnf install firewalld
[root@sv1 ~]# systemctl enable --now firewalld

2.現在の設定を確認します

[root@sv1 ~]# firewall-cmd --get-active-zones
public
  interfaces: eth0

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

3.sshとWebmin用にservicesファイルを用意します

[root@sv1 ~]# cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/ssh-50022.xml
[root@sv1 ~]# vi /etc/firewalld/services/ssh-50022.xml
-   <port protocol="tcp" port="22"/>
+   <port protocol="tcp" port="50022"/>

[root@sv1 ~]# vi /etc/firewalld/services/webmin.xml
<?xml version="1.0" encoding="utf-8"?>
<service>
  <short>WEBMIN</short>
  <description>Webmin</description>
  <port protocol="tcp" port="50000"/>
  <port protocol="udp" port="50000"/>
</service>

4.許可するサービスを追加します(http・https・ssh-50022・webmin)

[root@sv1 ~]# firewall-cmd --permanent --add-service=http
success
[root@sv1 ~]# firewall-cmd --permanent --add-service=https
success
[root@sv1 ~]# firewall-cmd --permanent --add-service=ssh-50022
success
[root@sv1 ~]# firewall-cmd --permanent --add-service=webmin
success
[root@sv1 ~]# firewall-cmd --reload
success

5.最後に反映されているか確認します

[root@sv1 ~]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0
  sources:
  services: cockpit dhcpv6-client http https ssh ssh-50022 webmin
  ports:
  protocols:
  forward: no
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

なお、元のssh(ポート番号:22)は、通信確認後に削除しましょう。

スポンサーリンク