それなりに適当にやってます

なんとなくそれっぽいメモとか備忘録とか適当に。 2018年5月にブログ移転しました。 古い記事は未整理です。

SSHのメモ (reverse proxy/socks proxy)


備忘メモ

リバースプロキシ : [internal server] -> [external server]

(internal)$ ssh -N -R 0.0.0.0:[port]:localhost:22 username@external
上記の通り external 側で "0.0.0.0" でリッスンさせたい場合は外部鯖の sshd_config で GatewayPorts を許可しとく。
Match User username
GatewayPorts yes
スクリプト
適当にスクリプトを作って cron で回す
$ vi ppp.sh
#!/bin/bash
COMMAND=\"ssh -fN -R 0.0.0.0:[port]:localhost:22 username@external\"
pgrep -f -x \"${COMMAND}\" > /dev/null 2>&1 || ${COMMAND}

socks プロキシ : [external server] <- [localhost]

(localhost)$ ssh -N -D [socks port] [external server]

合わせ技

外部の踏み台から内部のサーバにアクセス
ReverseProxy: [internal server] -> [external server]
SocksProxy: [internal server] <- [external server] <- [localhost]
(internal)$ ssh -N -R 127.0.0.1:[reverse_proxy port]:localhost:22 username@external
(localhost)$ ssh -N -D [socks port] -p [reverse_proxy port] [external server]
"-f" 付けてバックグラウンドで実行したり、ssh_config にしとくと楽

以上、c⌒っ゚д゚)っ