ざっくり言うと、pfsenseのSSHログインを有効化+ProxyCommand+nc、といった具合。
[localhost(on the Internet)] -->[pfsense server] -->[target server(on the private network)]
参考にしたサイト
…しかしここの説明だとWAN側からのログインを有効にする方法が分からず手間取ったさ。
How to Access pfSense Remotely Using SSH
上記サイトと説明がかぶるのだけど、ここでFirewallのRule設定に言及があったので。まぁpfsenseの説明をよく読めば分かったことかも知れんけど。
やりかた
pfsenseの設定
- pfsenseの管理画面にログイン、System >Advanced >Admin Access >Secure Shellに移動
- [Enable Secure Shell]をOnに
- 安全のため[Disable password login for Secure Shell (RSA/DSA key only)]をOnに
- [SSH port]を適当に指定(仮に114114とでもしておこうか)
- 以上でSave
- System >User Managerへ移動、Add Userを実行
- 冒頭のイメージ図で[localhost(on the Internet)]から[prsense server]へ接続するためのユーザを作成、Save
- 作成したユーザの編集画面を開き、[Effective Privileges]に[User - System - Shell account access]を追加
- [Authorized keys]にの公開鍵を追記
- 以上でSave
- Firewall >Rulesに移動、Rule追加を実行
- [Destination]を[WAN]に、[Destination port range]に114114を指定
- 以上をSaveし、さらにApply change実行
pfsenseの設定は以上で完了。必要に応じ[localhost(on the Internet)]から[pfsense server]にsshログインできることを確認。
クライアント・サーバー(接続先)の設定
- [localhost(on the Internet)]の公開鍵を[target server(on the private network)]の.ssh/authorized_keysに登録
- .ssh/configを以下のように記述
Host gateway HostName pfsense_server Port 114114 Host target HostName target_server ProxyCommand /usr/bin/ssh gateway /usr/bin/nc %h %p
.ssh/authorized_keys、.ssh/configのパーミッションには注意すること。
以上を実施のうえ、次のようにsshコマンドを実行することで[pfsense server]を介して[target server(on the private network)]に接続できるようになる。sshの他scp、sftpも使用可能。
[localhost(on the Internet)]$ ssh target_server