Ubuntuで筑波大学にVPN接続する

動機

課題内容を学内からしか閲覧できない科目のレポートが突然目の前に現れた!!

俺はUbuntuでしかプログラムを書けない!!

しかし大学公式にはLinuxでの利用方法は書かれていない!!

方法

要約
  • ゲートウェイovpnファイルのremote行にdomein port形式で書かれている
  • ovpnを分割してそれぞれ鍵ファイルとして使う
学情のページを見る

筑波大学 VPN サービス 設定マニュアル

SoftEther VPN, L2TP/IPsec, OpenVPN, MS-SSTP の各プロトコルで提供されているらしい。

NetworkManagerにプラグインを入れる

$ apt search vpn をするとそれっぽいのが出てくる。 今回はOpenVPNを選択した。

$ sudo apt install NetworkManager-openvpn-gnome すると必要なパッケージが全部入った。

設定

学情のページでは散々にOpenVPNを避けるように案内されている。

OpenVPN プロトコルを用いた筑波大学 VPN サービスへの接続方法 を見ると公式クライアントでは設定ファイルを1つぶち込んでユーザー名・パスワードを入力すればいいらしいが, Ubuntuではそうはいかなかった。

NetworkManagerのアイコンをクリックし, 「接続を編集する…」をクリックして開いたダイアログで「Add」をクリックする。そこでOpenVPNを選ぶ。

「作成…」をクリックするとメニューが開くので認証→タイプを「パスワードと証明書(TLS)」にする。

f:id:y_sanagi:20170423200045p:plain

証明書や秘密鍵で3つのファイルが必要になるが, 学情で配布している設定ファイルは1つしかない。 しょうがないので設定ファイルをcatで見ると, 中身はXMLっぽくマークアップされたテキストである。

そこで<ca>内のテキストを全てca.pemとして, <cert>内をcert.pemとして, <key>内をkey.pemとして保存する。

学情からダウンロードした *.ovpn ファイルでremoteから始まる行がゲートウェイなので, domain:port の形で「ゲートウェイ」欄に記述する。 ユーザー名に13桁の番号(UTID-13), パスワードに統一認証パスワードを入力する。 ユーザー証明書として先ほど保存した cert.pem を, CA証明書として ca.pem を, 秘密鍵として key.pem を選択する。「秘密鍵のパスワード」は不要。

保存して, NetworkManagerのアイコンから「VPN接続」→(先ほど設定した接続の名前) を選択して「VPN接続の確立に成功しました」と表示されれば完了。

余談

SoftEtherも設定してみたが, 設定が悪くてパケットがVPNを通ってくれなかった。

追記: 学内へのアクセスのみVPNを通す

OpenVPNに接続するとパケットが学外に出ていかない感じだったが, 「IPv4設定」の「方式」を「自動(VPN)アドレス専用」にして, 「ルート…」からアドレス 130.158.0.0, ネットマスク 16 と入力したら学外にはVPNを通さずにアクセスできるようになった。traceroute によると 130.158.0.0/24 外の slis.tsukuba.ac.jp へもVPNを通っているがよくわからない。

f:id:y_sanagi:20170429160657p:plain

ちなみに, VPNを通したtracerouteは遅いので感覚でわかる。

追記2: Unity以外からVPN接続する方法

y-sni.hatenablog.com