OpenConnectはSSL VPNクライアントとして動作するオープンソースです。もともとはCisco AnyConnect SSL VPNをサポートするように作られましたが、今日ではJuniper, Palo Altoなど多数のVPN Clinetをサポートします。
Cisco DevNetの学習ではCisco DevNet Sandboxへ接続する時によく使用します。
OpenCoonectのインストール
openconnectはEPELリポジトリで公開されています。EPELを有効にし、yumやdnfコマンドなどでインストールします。
dnf install epel-release dnf install openconnect
OpenCoonectの動作確認
DevNet Sandboxの予約
Cisco DevNet Sandboxへアクセスし、検証したいラボを選びます。
検証したい時間を入力し、「Reserve」を押下します。
右上の辺りにセットアップが完了するまでの時間が表示されています。セットアップが完了するまで待ちます。
SSL VPNの接続情報
セットアップが完了すると、SSL VPNで接続するための情報がメールにて送付されます。
YourLabIsReady_with_VPNCredentials_Email Hi XXXXXXXXXXXXXXX1237, Good News! Your IOS XE on CSR Latest Code sandbox lab is ready. And now, let's get you connected to your sandbox lab. If you DO NOT have AnyConnect installed on your system: - You must install it now so that you can access devices in your lab. Please follow these instructions. - <https://developer.cisco.com/site/devnet/sandbox/anyconnect/>Download the Cisco AnyConnect VPN Client Software - <https://devnetsandbox.cisco.com/Docs/VPN_Access/AnyConnect_Installation_Guide.pdf>Installation Guide for the Cisco AnyConnect VPN Client Software If you DO have AnyConnect already installed on your system: - If you have never used AnyConnect, you can get detailed connection instructions <https://devnetsandbox.cisco.com/Docs/VPN_Access/AnyConnect_Connection_Guide.pdf>here. - Your lab's private VPN connection information: - Lab Network Address: devnetsandbox-us-sjc.cisco.com:20129 - Username: XXXXXXXXXX - Password: JZPMYDPF - Did you have issues connecting? - You can get help <http://www.cisco.com/c/en/us/support/security/anyconnect-secure-mobility-client-v4-x/model.html> here, or <https://communities.cisco.com/community/developer/sandbox>here. - You can now use the Lab Web Portal to get information about the resources in your Lab. You can connect to most devices directly through the Web Portal, or if you prefer, you can use your favorite connection tool such as <http://www.putty.org/>PuTTY. To access your sandbox lab: - Go directly to your <https://devnetsandbox.cisco.com/RM/Diagram/Index/123c72b7-cde1-43b3-8c17-6a2af3afd535>IOS XE on CSR Latest Code lab. (You need to be logged into DevNet to navigate to your lab) - You must establish a VPN connection (see above) to interact with the devices in your lab. And that's it. If you have any questions, you can reference the <https://developer.cisco.com/docs/sandbox/>DevNet Sandbox Documentation, or visit us at the <https://communities.cisco.com/community/developer/sandbox>DevNet Sandbox Developer Community Forum. Meanwhile, have fun! We wish you happy and productive sandboxing. Cheers, The DevNet Sandbox Team
OpenConnectによる接続
openconnectコマンドでSSL VPNを確立します。「-b」はバックグランドで実行するの意味です。
ユーザ名およびパスワードは対話形式で入力します。
[root@localhost ~]# openconnect -b devnetsandbox-us-sjc.cisco.com:20129 POST https://devnetsandbox-us-sjc.cisco.com:20129/ Connected to 128.107.93.228:20129 SSL negotiation with devnetsandbox-us-sjc.cisco.com Connected to HTTPS on devnetsandbox-us-sjc.cisco.com with ciphersuite (TLS1.2)-(ECDHE-SECP256R1)-(RSA-SHA512)-(AES-256-GCM) XML POST enabled GROUP: [Anyconnect-pod29]:Anyconnect-pod29 POST https://devnetsandbox-us-sjc.cisco.com:20129/ XML POST enabled Username:XXXXXXXXX Password: POST https://devnetsandbox-us-sjc.cisco.com:20129/ Got CONNECT response: HTTP/1.1 200 OK CSTP connected. DPD 60, Keepalive 300 Set up UDP failed; using SSL instead Connected as 192.168.29.1, using SSL, with DTLS disabled Continuing in background; pid 1072
ルーティングテーブルを表示すると、openconnectによって作成されたルーティングテーブルが存在する事が分かります。
[root@localhost ~]# ip route default via 192.168.9.2 dev ens33 proto static metric 100 10.10.10.0/24 dev tun0 scope link 10.10.20.0/24 dev tun0 scope link 10.10.20.100 dev tun0 scope link 172.16.30.0/24 dev tun0 scope link 192.168.9.0/24 dev ens33 proto kernel scope link src 192.168.9.70 metric 100 192.168.29.0/24 dev tun0 scope link
機器への接続
SSL VPN確立後の機器への接続情報はDevNetをブラウザで閲覧した時の画面に記載されています。
sshコマンド等で接続可能な事を確認します。
[root@localhost ~]# ssh 10.10.20.48 -l developer Warning: Permanently added '10.10.20.48' (RSA) to the list of known hosts. Password: Welcome to the DevNet Sandbox for CSR1000v and IOS XE The following programmability features are already enabled: - NETCONF - RESTCONF Thanks for stopping by. csr1000v-1#
OpenConnectの切断
OpenConnectによるSSL VPNを切断したい場合は、openconnectのプロセスに対してHUPシグナルを送ります。
[root@localhost ~]# ps aux | grep openconnect root 1072 0.0 0.6 336676 12504 pts/0 S 22:27 0:00 openconnect -b devnetsandbox-us-sjc.cisco.com:20129 root 1220 0.0 0.0 221900 1088 pts/0 S+ 22:35 0:00 grep --color=auto openconnect [root@localhost ~]# kill -HUP 1072 [root@localhost ~]# RTNETLINK answers: No such process User detached from session (SIGHUP); exiting. [root@localhost ~]#
検証の終了
検証が終わりましたら、Endボタンを押しましょう。