firewall 特定のIPアドレスからのみhttp・https通信を許可

firewall 特定のIPアドレスからのみhttp・https通信を許可

firewallで特定のIPアドレスからのみhttp・https通信を許可する方法を記述してます。

環境

  • OS Rocky Linux release 8.4 (Green Obsidian)

IPアドレスを指定

まずは、許可するIPアドレスを指定します。

sudo firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="ip-address" port protocol="tcp
" port="{80,443}" accept"

※ グローバルIP 100.100.100.100を許可する場合は
sudo firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="100.100.100.100" port protocol="tcp
" port="{80,443}" accept"

「192.168.0.0/16」のように、スラッシュ(CIDR)表記も可能です。

次に、sshサービスやポートが許可されていれば全てアクセスできるので、削除しておきます。

sudo firewall-cmd --remove-service=http --zone=public --permanent
sudo firewall-cmd --remove-service=https --zone=public --permanent
sudo firewall-cmd --remove-port=80/tcp --zone=public --permanent
sudo firewall-cmd --remove-port=443/tcp --zone=public --permanent

後は再起動を実行します。

sudo firewall-cmd --reload