リモート環境でのアプリケーション設定

2019.09.24

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

今月からふるさと勤務になり基本的にリモートから業務を行うことになりました。業務を行うにあたり接続元IPを制限された環境へ接続する必要がありますが、この要件を満たすためにクラスメソッドではSOCKSプロキシサーバが設置されています。このSOCKSプロキシを利用するにはSSL-VPN接続を経由しています。

そこで業務を行うためにリモート環境でのアプリケーション設定をいくつか行いましたのでその作業をまとめます。

環境

  • macOS Mojave
  • ssh OpenSSH_7.9p1, LibreSSL 2.7.3
  • git version 2.23.0
  • DBeaver version 6.1.5

なおSOCKSプロキシサーバはホスト名がproxy.example.com、ポート番号が1080であり認証が不要なサーバと想定して作業を行っています。

SSH

ssh接続を行う際に認証が不要なSOCKSプロキシサーバ経由でアクセスするにはnc (netcat)を利用した以下のコマンドを実行することで接続できます。

ssh target_host.com -o "ProxyCommand nc -X 5 -x proxy.example.com:1080 %h %p"

上記のコマンドでも接続できるのですが、毎回SOCKSプロキシサーバのオプションを記述するのも大変なので SOCKSプロキシサーバのオプションを~/.ssh/configに設定します。

Host target_host 
    HostName target_host.com
    ProxyCommand nc -X 5 -x proxy.example.com:1080 %h %p

さらに、SOCKSプロキシサーバ経由でアクセスするターゲットサーバが複数ある場合は下記のようにワイルドカードを使うことでプロキシサーバの設定とターゲットサーバの設定を分けて記述でき、管理が楽になります。

Host *-proxy
    ProxyCommand nc -X 5 -x proxy.example.com:1080 %h %p 

Host target_host-proxy
    HostName target_host.com

Host target_host2-proxy
    HostName target_host2.com

Host target_host3-proxy
    HostName target_host3.com

Git

リポジトリに移動し、下記のコマンドを実行します。

git config http.proxy 'socks5://proxy.example.com:1080'

このコマンドでリポジトリの .git/config にproxyの設定が以下の様に追加されます。

$ tail .git/config

[http]
    proxy = socks5://proxy.example.com:1080

この設定によりSOCKSプロキシサーバ経由でリモートリポジトリにアクセスできるようになります。

DBeaver(SQLクライアントツール)

以前は他のGUIツールを使っていましたが、SOCKSプロキシサーバ経由でRedshiftへ接続できるツールを探している際にDBeaverに出会い使い勝手が良いので気に入って使っています。

  1. まずはDBeaverをインストール後コネクションを作成します。この際にRedshiftを選ぶとSOCKSプロキシサーバ経由での接続に失敗します。そこでPostgreSQLでコネクションを作成します。

  2. 次にRedshiftへの接続情報を登録します。

  3. Proxyタブを開いてSOCKSプロキシサーバの情報を登録します。

以上でコネクションを作成できます。

実際にSQL文を実行してみるとデータが取得できます。

まとめ

リモートで業務を行う際にはきちんとしたセキュリティ対策が必要になります。 クラスメソッドではリモートで業務行える環境が構築されているためアプリケーションに設定をすれば安心してリモートで仕事が行なえます。

最後まで読んで頂いてありがとうございました。