Ubuntuで筑波大学にVPN接続する
動機
課題内容を学内からしか閲覧できない科目のレポートが突然目の前に現れた!!
俺はUbuntuでしかプログラムを書けない!!
しかし大学公式にはLinuxでの利用方法は書かれていない!!
方法
要約
- ゲートウェイは
ovpn
ファイルのremote
行にdomein port
形式で書かれている ovpn
を分割してそれぞれ鍵ファイルとして使う
学情のページを見る
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)」にする。
証明書や秘密鍵で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を通っているがよくわからない。
ちなみに, VPNを通したtracerouteは遅いので感覚でわかる。