やりたいこと
ESXiのポート開閉を実機上のコマンド操作で実施したい。
尚、今回は例としてiofiltervpを例にして行う。
iofiltervp Inbound TCP Dst 9080 9080
環境情報
- VMware ESXi 6.7
やり方
サービス名とポートの開閉状況を以下のリスト上から確認した上で(true : オープン , false : クローズ)
# esxcli network firewall ruleset list ... iofiltervp true ...
以下コマンドでファイアウォールにてポートへの通信を不許可とすると
# esxcli network firewall ruleset set --ruleset-id=iofiltervp --enabled=false
確かに変更されている。
# esxcli network firewall ruleset list | grep iofiltervp iofiltervp false
以下、補足です。
補足
vCenter上のGUIでは「設定>ファイアウォール」にてサービス名を選択してチェックのつけ外しで同機能のオンオフを切り替えれますが、コマンドでも行えます。
setコマンドの構文は以下で
Usage: esxcli network firewall ruleset set [cmd options] Description: set Set firewall ruleset status (allowedAll flag and enabled status). Cmd options: -a|--allowed-all=<bool> Set to true to allowed all ip, set to false to use allowed ip list. -e|--enabled=<bool> Set to true to enable ruleset, set to false to disable it. -r|--ruleset-id=<str> The label of the ruleset. (required)
ポートが開いている状態で他サーバからポート状況を確認すると
# ssh -v xx -p 9080 ... debug1: Connection established.
疎通できますが閉じてしまうと疎通に失敗します。
以上、ご参考になれば幸いです。