firewalldを設定して不要なサービスにアクセスさせないようセキュリティを強化します。
まずインストール直後にどのようになっているか確認しておきます。デフォルトはpublicゾーンにアタッチされており、許可されているサービスとしてcockpit/dhcpv6-client/sshのみ許可されています。
# firewall-cmd --list-all public (active) target: default icmp-block-inversion: no interfaces: enp2s0f0 sources: services: cockpit dhcpv6-client ssh ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules: |
public以外にも多数のゾーンが定義されています。必要に応じてpublicからその他へ適用替えすればよいのですが、基本はデフォルトのpublicのままで良いです。
基本的にコマンドレベルで何かと操作することが可能なのですが、個人的な好みでファイルを編集し、reloadするというスタイルが一番やりやすいように思うので、そこのみ記載します。
コマンド周りに関してはAlamaLinux8でもかいたこちらあたりが参考になります。
デフォルトでルールを記載している設定ファイルは以下となります。
# cat /etc/firewalld/zones/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="ssh"/> <service name="dhcpv6-client"/> </zone> |
これに必要なルールを足していくということになります。
# vi /etc/firewalld/zones/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> # 192.168.0.0/24からのsshを許可 <rule family="ipv4"> <source address="192.168.0.0/24"/> <port protocol="tcp" port="22"/> <accept/> </rule> # 192.168.0.0/24からのsmtpを許可 <rule family="ipv4"> <source address="192.168.0.0/24"/> <port protocol="tcp" port="25"/> <accept/> </rule> </zone> |
上ではプロトコル、ポート番号を指定していますが、サービス名で指定することも可能です。
# vi /etc/firewalld/zones/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="ssh"/> <service name="dhcpv6-client"/> <service name="cockpit"/> # 192.168.0.0/24からのsshを許可 <rule family="ipv4"> <source address="192.168.0.0/24"/> <service name="ssh"/> <accept/> </rule> # 192.168.0.0/24からのsmtpを許可 <rule family="ipv4"> <source address="192.168.0.0/24"/> <service name="smtp"/> <accept/> </rule> </zone> |
ファイル編集後、有効にするために以下のコマンドの実行および確認を行います。
# firewall-cmd --reload # firewall-cmd --list-all public (active) target: default icmp-block-inversion: no interfaces: enp2s0f0 sources: services: cockpit dhcpv6-client ssh ports: protocols: forward: yes masquerade: no forward-ports: source-ports: icmp-blocks: rich rules: rule family="ipv4" source address="192.168.0.0/24" service name="smtp" accept rule family="ipv4" source address="192.168.0.0/24" service name="ssh" accept |