SSH 多段接続で三段先のサーバに接続する
SSH の ProxyCommand を使うと接続先サーバで自動的に指定コマンドを実行出来ます。これを利用することで「サーバ A に接続し、そこからサーバ B に接続する(二段接続)」ということが出来ます。更に、これを応用すると「サーバ A に接続し、そこからサーバ B に接続し、更にサーバ B からサーバ C へ接続する(三段接続)」ということも出来ます(四段以上の接続も可能です)。今回は多段 SSH の設定方法をメモしておきます。
SSH の ProxyCommand を使うと接続先サーバで自動的に指定コマンドを実行出来ます。これを利用することで「サーバ A に接続し、そこからサーバ B に接続する(二段接続)」ということが出来ます。更に、これを応用すると「サーバ A に接続し、そこからサーバ B に接続し、更にサーバ B からサーバ C へ接続する(三段接続)」ということも出来ます(四段以上の接続も可能です)。今回は多段 SSH の設定方法をメモしておきます。
sopenssl コマンドは様々なことが実行できますが、HTTPS の接続テストに使うことも出来ます。今回は openssl を使って SSL/TLS バージョンを明示的に指定した接続テストの方法をメモします。
macOS から Linux 等へ SSH する際、LANG 環境変数を渡して欲しく無い… という場合があります。こういった場合は macOS の /etc/ssh/ssh_config を下記のように変更します(SendEnv をコメントアウトします)。
HTTP のテストを行う際に curl を使うことは出来ますが、httpie を使うと「結果を色分け表示する」「JSON を整形して表示する」等、より人間にとって見やすく結果を表示することが出来ます。
macOS であれば Homebrew で簡単にインストール出来ます。
1 |
|
httpie のコマンドは httpie では無く、http です。 http --help でヘルプを表示出来ます。
Web のデバッグには Fiddler が非常に便利です。Fiddler は .NET Framework 上で動作するので原理的には Windows 以外の OS でも動作可能です。macOS の場合は Homebrew Cask でインストール可能です。
macOS でも bash-completion を入れると bash の補完が出来るようになります。特に定義ファイルを追加しなくても、ssh の接続先を補完してくれるので、これだけでも便利です (定義ファイルを追加してカスタマイズしていくと更に便利です!)。
Homebrew はインストール済みだとします。bash-completion がインストールされていないと以下のように「Not installed」と表示されます。
複数の OS で検証をしていると、不意に「この OS のルーティング追加コマンドは何だっけ…?」となることがあります、、、ので、OS 毎のルーティング追加方法をメモしておきます。
ショートカットを上手に使うと効率が良くなり、生産性が向上します。Cisco IOS / Linux / OS X で便利なショートカットをメモしておきます。
scapy があれば対話的に、または Python スクリプトから任意のパケットを生成すること (等) が出来ます。OS X への scapy インストール手順をメモしておきます。検証には OS X El Captian (10.11.4) を、インストールには homebrew を使いました (homebrew はインストールされている前提です)。
何か問題が発生した時、Wireshark / tcpdump / tshark 等でパケットをキャプチャし、解析したい場合があります。しかし、OS X 版の Wireshark は通常だとウインドウがひとつしか開かない為、「複数のパケットキャプチャ結果を並べて表示し、比較する」ということが出来ません。こういった場合は以下のコマンドを実行することで Wireshark のウインドウを複数、開くことが出来ます。
1 |
|
これで複数のキャプチャ結果を並べて表示し、比較&解析出来ます。