hoge な blog

メモとかtipsとか

Chromeで特定サイトへのアクセスのみをproxy server経由で行う方法

はじめに

これは筆者が学内のIPアドレスのままリモートで論文にアクセスする方法を模索した結果をメモしたものです.
大学公認のSSL-VPN Gatewayサービスを使えと言う意見はごもっともなのですが,なんとなく不便を感じたため,他の方法を模索しました.
色々と模索した結果,ユーザ側で自由度の高そうなアクセス処理ができそうな方法を見つけたので共有しようと思った次第です.
筆者はpaperpileを論文管理に用いているため,Chromeをブラウザとして利用していますが,Firefoxなどでも可能だと思います.

設定の方法のみを述べるため,SOCKS proxyやDynamic Forwardingの説明,sshの細かい設定の仕方などには触れません. 既にいくつかのサイトにて説明がされているため,他のサイトをご参照ください.

何か他に良い方法をご存知の方は,コメントしていただけると幸いです.

対象者 and 目的

  • VPNサーバを(何らかの理由で)立てることはできないが,sshでアクセスは可能という場合
  • HTTP(or HTTPS)で特定のサイトに踏み台サーバのIPアドレスでアクセスしたい場合
  • 全てのトラフィックVPNに流してトラフィックを増大・集中させたくない場合
  • 特定サイト以外はダイレクトにアクセスしたい場合
  • SwitchyOmegaの使い方を知りたい場合

使用するツール

構成図

Create a SOCKS proxy on a Linux server with SSH to bypass content filters を参考にしました.

f:id:AkkyOrz:20200509233446j:plain
ネットワーク的な構成図

設定方法

大きく分けると,以下の2つを行う必要があります.

  1. sshでトンネルを張る
  2. SwitchyOmegaを設定する

1. sshでトンネルを張る

~/.ssh/configを設定します.

第617回 SOCKSを利用してSSHのみで簡易VPNを構築する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社 を参考に設定します.

Host socks
    HostName <proxy server name>
    User <username>
    IdentityFile /path/to/secret_key
    DynamicForward 1080
    Compression yes
    ExitOnForwardFailure yes
    Port <ssh port (default 22)>

その後ターミナルを起動し,

$ ssh socks -f

でトンネルを張ります.-fオプションはバックグラウンド実行のオプションです.

2. SwitchyOmega を設定する

Chrome Extensionを追加

Proxy SwitchyOmega - Chrome Web Store から,SwitcyOmegaをChromeに追加します.

次に,SwitchyOmega の設定を行います.

qiita.com を参考にしました.

Chrome Extension を追加した後,アイコンをクリックし,Options を選択します.

これはSwitchyOmegaの画像です.
SwitchyOmegaのアイコン

Proxy Profile の作成

まずは Proxy の設定をします. SwitchyOmega のオプション画面が開いたら,左の欄の PROFILES から New Profile を選択します.

f:id:AkkyOrz:20200513222741p:plain
SwitchyOmegaのNewProfile選択画面

Profile name を入力し, Proxy Profile を選択して Create ボタンを押します.

f:id:AkkyOrz:20200513223416p:plain
New Profile作成画面

Proxy の設定画面が開いたら,以下の図のように Proxy を設定します.
この設定画面では,利用するProxyのプロトコル,サーバのIPアドレス,Port番号を指定します.
今回はローカルの1080番ポートにポートフォワーディング用のポートを開いているため,localhost:1080にSOCKS5で接続します.
設定したら,左の欄の ACTIONS から Apply changes を押して変更を反映させます.

f:id:AkkyOrz:20200513223547p:plain
Proxy設定画面

Switch Profile の作成

次に,Switch の設定をします.
先ほどと同様に,左の欄の PROFILES から New Profile を選択し今度は Switch Profile を作成します.
Profile name を入力し,Switch Profile を選択して Create ボタンを押します.

Condition Type, Condition Details, Profile を組みあわせて設定を行います.
上から下に向けてマッチングを行っていくため,上の方設定のほうが優先されます.
詳しい設定の方法については,下図のマウスカーソルの部分の?をクリックしてでてくるHelpを参照してください.
私はProxy経由でアクセスしたいサイトに 先程作成したProfileを設定し,それに当てはまらないサイトは直接接続するように設定しました.

f:id:AkkyOrz:20200513234849p:plain
Switch設定画面

Apply changes を選択して設定を反映させます.

Switchの有効化

最後にSwitchの設定を有効にします.
SwitchyOmegaのアイコンをクリックし,使用したいSwitchのProfileをクリックして有効化します.
これで設定は完了です.

まとめ

VPNではなく,SOCKS proxy を用いて特定のサイトにアクセスする方法についてまとめました.
参考になれば幸いです.

備考

Firefoxでの利用方法

github.com でも言及されていますが,SwitchyOmegaには,Experimentalなアドオンが存在するようです.
これを利用するとChromeと同様なことができると思います.

結局コマンド実行してるし,結局ログインする手間と変わらなくない?WOWWOW?

ごもっともです.

それって大学のネットワークでやっていいの?

東京大学附属図書館 ASKサービス - 詳細画面 を見て,研究室内のIPアドレスを用いて論文をダウンロードすることはOKだと判断しました. ただ,大量にダウンロードを行うとシステマティックダウンロードと疑われてしまうため,注意が必要とのことでした.

Warningについて

導入してすぐに,いくつかのWarningっぽいのがでました.

Resources that failed to load A few resources failed to load due to issues with your network, proxy server or the webpage. SwitchyOmega is just the reporter of these issues, not the cause of them.

1 .fontawesome.com 1 .bootstrapcdn.com

You can add switch conditions for them only when using a Switch Profile.

firefox/SwitchyOmega.sorl at master · nonoroazoro/firefox みたいなのを導入するといいのかもしれません.

Ubuntu Weekly Recipe

今回のSOCKS Proxyの詳しい内容は,技術評論社が連載を行っている,Ubuntu Weekly Recipe を参照しています.

gihyo.jp

今回のSOCKS Proxyの話以外にも,参考になる記事が沢山有るので,Ubuntuを使用している方は特に見てみると良いかもしれません.おすすめです.