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