AlmaLinux9.2にファイアーウォールを設定
篠原 隆司
アフィリエイト広告を利用しています
このページの内容が役に立ったら X (旧twitter) でフォローして頂けると励みになります
挨拶や報告は無しで大丈夫です
さくらのVPSにAlmaLinux9.2をインストールした覚書です。
今回はファイアーウォールの設定を行っていきたいと思います。
※さくらのVPSではコントロールパネルに「パケットフィルタ―設定」があるのでファイアーウォール不要説がありますが、公式のマニュアルにあるとおり完璧なものではないので、パケットフィルターとOSのファイアーウォールの併用がオススメです。
なお本番環境で利用される場合はここにある内容だけを鵜呑みにせずセキュリティ専門家に相談されることをお勧めします。
環境
実施日 | 2023-09-07 |
サーバ | さくらのVPS 2G |
OS | AlmaLinux9.2 |
cat /etc/redhat-release
AlmaLinux release 9.2 (Turquoise Kodkod)
よく使うコマンド
まずはお約束の systemctl です。
# 起動状態を確認する
systemctl status firewalld
# 起動する
systemctl start firewalld
# 停止する
systemctl stop firewalld
# 自動起動を有効にする
systemctl enable firewalld
# 自動起動の状態を確認する
systemctl is-enabled firewalld
設定の再読込み
firewall-cmd --reload
現在のゾーンを確認する
firewall-cmd --get-active-zones
デフォルトゾーンを確認する
firewall-cmd --get-default-zone
ゾーンのルールを確認する
firewall-cmd --list-all
許可しているサービスを確認する
firewall-cmd --list-services
サービスを追加する
サービスとして追加した場合は、そのサービスのデフォルトのポートが開くことになります。
httpなら80、httpsなら443、sshなら22
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
解放しているポートを確認する
firewall-cmd --list-ports
接続元のIPアドレスを許可する
firewall-cmd --add-source=192.168.11.5 --zone=public --permanent
ポートを開ける
firewall-cmd --permanent --zone=public --add-port=22/tcp
設定ファイルを直接編集する
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="dhcpv6-client"/>
<service name="cockpit"/>
<service name="http"/>
<service name="https"/>
<service name="ssh"/>
<rule family="ipv4">
<source address="123.123.123.123"/>
<port port="22000" protocol="tcp"/>
<accept/>
</rule>
<rule family="ipv4">
<source address="124.124.124.124"/>
<port port="22000" protocol="tcp"/>
<accept/>
</rule>
</zone>
IPアドレス 123.123.123.123 と 124.124.124.124 のポート 22000 を許可する設定例です。
自分の環境が固定IPでないので、プロバイダのホスト名で設定したかったのですが、やり方が分からなかったので、今のところはとりあえずIPアドレス指定にしました。
まだやってないですがプロバイダのIPアドレス範囲で設定する方法もあります。
ついでに http https も加えておきます。
SSHを細かく設定する
独自のSSHの設定ファイルを作成します。
# ファイルを新しく作成
vi /etc/firewalld/services/ssh-alt.xml
▼ ★の数字を変更します。
<?xml version="1.0" encoding="utf-8"?>
<service>
<short>SSH</short>
<description>Secure Shell (SSH) is a protocol for logging into and executing commands on remote machines. It provides secure encrypted communications. If you plan on accessing your machine remotely via SSH over a firewalled interface, enable this option. You need the openssh-server package installed for this option to be useful.</description>
<port protocol="tcp" port="22★"/>
</service>
ssh を ssh-alt に書き換え
vi /etc/firewalld/zones/public.xml
こちらは削除
<service name="ssh"/>
こちらを書き加える
<service name="ssh-alt"/>
設定を再読み込みして確認します。
# 設定を再読み込み
firewall-cmd --reload
# 設定の確認
firewall-cmd --list-all