何がしたいか
タイトルの通りfirewalldでポートフォワーディングする
環境
Rocky Linux 8
事前準備
/etc/sysctl.conf
に以下を追記しポート転送できるようにする
net.ipv4.ip_forward=1
net.ipv6.conf.all.forwarding=1
sudo sysctl -p
を実行し設定を適用
設定方法
# 転送したいポートを設定(転送先アドレスを省略するとlocalhostへ転送される)
sudo firewall-cmd --add-port=[転送元ポート]/tcp --zone=public
sudo firewall-cmd --add-forward-port=port=[転送元ポート]:proto=tcp:toport=[転送先ポート]:toaddr=[転送先IPアドレス] --zone=public
# 各種許可設定
sudo firewall-cmd --zone=public --add-masquerade --permanent
sudo firewall-cmd --zone=public --add-forward --permanent
# 設定永続化
sudo firewall-cmd --runtime-to-permanent
# 設定適用
sudo firewall-cmd --reload
まとめ
iptalesを直接弄らなくてもポートフォワーディングできるのはかなり便利。Wireguardと併用しても良さそう。