2013年08月23日

Cisco VPN Client の代わりに vpnc を使って CISCO VPN ネットワークへ接続する方法

企業、教育機関で VPN ソリューションとして利用されることが多い Cisco VPN Client 。 これ Linux 系 OS で動かそうとするとソース( vpnclient-linux-x86 )のビルドで結構ハマります。 僕も Ubuntu  12.04 にアップグレードしてからは使って無かったんですがやっぱり不便。
今日は vpnc パッケージ(Mac OS X 対応)を使った CISCO VPN ネットワークへの簡単接続方法をご紹介します。

 cisco vpn client under ubuntu


vpnc クライアントのインストールと設定


vpnc パッケージのプロジェクト・ホームはこちら。

vpnc - client for cisco vpn concentrator


Linux 系 OS 全般、 Mac OS X 、 Free/OpenBSD と幅広いプラットフォームをサポートしています。

僕は次のコマンドで Ubuntu へインストール。

$ sudo apt-get install vpnc resolvconf


インストールが終わったら適当なディレクトリを作り PCF ファイル -> vpnc 設定変換を行う Perl スクリプトもダウンロードします。

$ mkdir ~/Downloads/vpnc
$ cd ~/Downloads/vpnc
$ wget http://svn.unix-ag.uni-kl.de/vpnc/trunk/pcf2vpnc


ここに Cisco VPN Client で使っていた PCF ファイル(ここでは my.pcf )を置いて、

$ ls
my.pcf  pcf2vpnc

pcf2vpnc スクリプトで変換してみましょう。

$ perl pcf2vpnc my.pcf 
## generated by pcf2vpnc
IPSec ID hoge-group
IPSec gateway 221.2x.1x.126
IPSec secret your-vpn-password

Xauth username your-username
IKE Authmode psk


無事変換結果が出力されたら、これを vpnc 設定ファイルとして保存(ここでは my.conf )、 vpnc
 のホーム・ディレクトリ( /etc/vpnc/ )にコピーします。

$ perl pcf2vpnc my.pcf > my.conf
$ ls
my.conf  my.pcf  pcf2vpnc
$ sudo cp my.conf /etc/vpnc/


これで準備はおしまい。


vpnc を使った CISCO VPN ネットワークへの接続と切断


接続は vpnc コマンドの引数として用意した定義ファイルの名前( 拡張子 .conf は省略すること)を指定します。

$ sudo vpnc my
Enter password for your-username@221.2x.1x.126:******* 
VPNC started in background (pid: 3784)...


VPN セッションが確立すると tun デバイス(仮想ネットワーク・インタフェース)が作成されますよ。

$ ifconfig
tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:172.16.255.100  P-t-P:172.16.255.100  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1412  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:500 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)


お、僕の環境でも無事 VPN 接続出来たようです。

$ ping 172.16.255.8
PING 172.16.255.8 (172.16.255.8) 56(84) bytes of data.
64 bytes from 172.16.255.8: icmp_req=1 ttl=63 time=12.9 ms
64 bytes from 172.16.255.8: icmp_req=2 ttl=63 time=11.8 ms
64 bytes from 172.16.255.8: icmp_req=3 ttl=63 time=11.4 ms


切断は vpnc-disconnect コマンド。

$ sudo vpnc-disconnect
Terminating vpnc daemon (pid: 3784)


場合によっては別の VPN クライアント・アプリケーションが動いており、既に tun0 デバイスが作成されている、というケースもあるかもしれませんね。

そんな場合には定義ファイルへ Interface name パラメータを追記、別のデバイス名を宣言しておきましょう。

$ sudo vi /etc/vpnc/my.conf
--- snip ---
Interface name tun1


無事 tun デバイスのインタフェース名が変わりました。

tun1      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:172.16.255.100  P-t-P:172.16.255.100  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1412  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:500 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)


VPN セッションの確立に失敗、" no response from target "と出力される場合はファイヤーウォールで ISAKMPメッセージのやり取りに関わるポート( 500 番)がフィルタされていないかを確認した方が良さそうです

$ sudo vpnc my
Enter password for hoge@x.x.x.x: 
vpnc: no response from target


クライアント側で NAT トラバーサルへの対応が必要な場合は、定義ファイルに NAT Traversal Mode cisco-udp 行を追加しましょう。


それでは、より良い CISCO VPN ライフを。



OpenVPNで構築する超簡単VPN入門―Windows/Mac OS X/Linux対応
ケイズプロダクション
ラトルズ
売り上げランキング: 384,619

Posted by netbuffalo at 19:29│Comments(0)TrackBack(0)Linux | ネットワーク


この記事へのトラックバックURL

http://trackback.blogsys.jp/livedoor/netbuffalo/4561169

コメントする

名前
URL
 
  絵文字