Gate Oneをインストールすると、WEBブラウザからSSHクライアントを起動できるようになります。たとえば、HTTP(S)通信しか外部接続できない環境からGate OneをインストールしたサーバへWEBブラウザで接続してそのサーバへSSHログインしたり、他のサーバへGate OneをインストールしたサーバからSSHログインができるようになります。
環境と事前の準備
OS:CentOS Linux release 7.3.1611 (Core)
IP: 192.168.101.3
最小構成でインストール後、yumアップデートしています。
SELinuxとfirewalldは停止しています。
# systemctl stop firewalld # systemctl disable firewalld # sed -i 's/^SELINUX=enforcing\|^SELINUX=permissive/SELINUX=disabled/' /etc/selinux/config # shutdown -r now
SELinuxとfirewalldを停止するか否かは、ご自身でご判断ください。
Gate Oneインストール
# wget https://bootstrap.pypa.io/get-pip.py # python get-pip.py # pip install 'tornado==2.4.1' # wget https://github.com/downloads/liftoff/GateOne/gateone-1.1.tar.gz # tar zxvf gateone-1.1.tar.gz # cd GateOne # python setup.py install # cd /opt/gateone/ # ./gateone.py
実行してエラーが発生しなければインストール完了です。ブラウザで「https://192.168.101.3/」へ接続すると次のような画面が表示されます。
制限のある環境から接続する
サーバで既にhttpdが起動している場合は、Gate Oneが待ち受けるポートを変更する必要があります。ただし、ポートを変更すると制限のある環境から接続する際にファイアウォールで阻まれる可能性があります。制限のある環境から接続するのであれば443へhttps接続したいところです。
そこで、WEBサーバで転送させます。接続イメージは次のようになります。「/ssh」へアクセスしたときだけ、転送させましょう。
まずはGate Oneの設定ファイルを編集します。念のためバックアップしておきます。
# cp /opt/gateone/server.conf{,.bak} # vi /opt/gateone/server.conf
portを443から50000に変更、url_prefixは「/」から「/ssh」へ変更、disable_sslをFalseからTrueへ変更、originsは必要なものに絞ります。以下はバックアップとの比較です。
# diff /opt/gateone/server.conf{,.bak} 7c7 < port = 50000 --- > port = 443 9c9 < url_prefix = "/ssh" --- > url_prefix = "/" 23c23 < disable_ssl = True --- > disable_ssl = False 32c32 < origins = "https://192.168.101.3" --- > origins = "http://localhost;https://localhost;http://127.0.0.1;https://127.0.0.1;https://gateone;https://192.168.101.3" #
次にリバースプロキシの設定です。ws://が必要です。
# cat << EOF > /etc/httpd/conf.d/r_proxy.conf <ifModule mod_proxy.c> ProxyRequests Off <Proxy *> Require all granted </Proxy> ProxyPass /ssh/ws ws://192.168.101.3:50000/ssh/ws ProxyPassReverse /ssh/ws ws://192.168.101.3:50000/ssh/ws ProxyPass /ssh http://192.168.101.3:50000/ssh ProxyPassReverse /ssh http://192.168.101.3:50000/ssh </IfModule> EOF
設定が終わったらhttpdを再起動してGate Oneへ「https://192.168.101.3/ssh」で接続できることを確認します。
セキュリティ上の注意
Gate OneはGate Oneをインストールしたサーバへsshログインするものではありません。Gate Oneをインストールしたサーバをsshクライアントにします。つまり、Gate Oneをインストールしたサーバ上でsshコマンドを発行できる事と同じなので、第3者にアクセスを許すと踏み台にされる恐れがありますから注意してください。