Home » Archive by category 'Cisco'

【メモ書き】iPhone / iPad での VPN 接続

【メモ書き】 iPhone / iPad での VPN 接続

iOS にデフォルトで入っている IPsec VPN 用のクライアントって
実は、Cisco の VPN Client なんですよね。
そんな訳もあって、最近は iPhone や iPad からの
VPN 接続に関する案件が多くなっているような。

実際、VPN 終端装置である ASA に何が必要なのかと思いますが
特に何も必要なく、基本 PC 用の VPN Client と同様の設定
(同じ tunnel-group など)で接続できます。

構成例:

iPad/iPhone —–//Wi-Fi or 3G//—– [outside]ASA[inside] —– WebSV

—–
1.isakmp / ipsec の暗号化設定
transform-set の暗号化方式は環境に合わせるしか。
isakmp policy 内の Diffie-Hellman group は 2 で良いと思います。
※Specify the Diffie-Hellman group identifier. The default is Group 2.

crypto isakmp enable outside
crypto isakmp policy 10
authentication pre-share
encryption 3des
hash sha
group 2
lifetime 86400
crypto isakmp policy 65535
authentication pre-share
encryption 3des
hash sha
group 2
lifetime 86400

2.group-policy / tunnel-group の設定
group-policy は設定内容にもよりますが
vpn-tunnel-protocol は ipsec 指定、後は環境依存になります。
※DNS/Split-tunnel の設定とか含め

tunnel-group 設定についても
address-pool や authentication 方法、後は tunnel 用の
pre-shared-key 設定とか。

基本的に此処は割愛。
—–

というわけで、PC と同様の設定で簡単に iPhone からの VPN
接続はできたし、対抗先にも繋がりました。

何気に優秀で、証明書接続とかもサポートしている辺り
iPhone とかの Client は高性能だなぁ…と。

問題は、Webサーバ側でグループウェアとか使っている場合ですが
iPhone や iPad の Safari はたいした事できないので
Flash とか、複雑な javascript 等は動かない可能性も… なるべく簡易的な
コンテンツの方がよさそうですねー

あ、ちなみに
iOS に乗っかっている Client は Cisco 未サポートらしいですよ。
何かあれば直接 Apple に問い合わせるしかないみたいです。

後、ASA の推奨 OS は 8.0.x 以降ですが
今なら 8.2.x が一番安定している気がしますです。

最近検索ワードに多かったので、とりあえず簡易的にまとめてみました。

【メモ書き】Cisco ASA での Split Tunneling

【構成】
 Hosts —– Internet =====> ASA ===== SSL-VPN =====> Server
           |
        Other HP [ex:http://www.google.com/]
 
 Split Tunneling は VPN をやっていると
 結構使う設定なので、メモ書き。
 
 要件は以下の2点。
 
 - Hosts は ASA へアクセスし、SSL-VPN 接続をする
 - VPN Tunnel を使用するのは、あくまで ASA 内部ネットワークへの通信のみで
  それ以外は、Real Eth で通信をする
  
 SSL-VPN は此処では AnyConnect を使用。
 AnyConnect いいよね、iPhone アプリも Cisco は開発してくれたし。
 
 SA の Derault-GW は Internet 側です。
 設定でいえば、route outside 0.0.0.0 0.0.0.0 [GW-IP] ですね。
 pppoe であれば、setroute オプションでプロバイダから貰うケースもありそうです。
 
 ※もちろん、ASA 自身に内部ネットワークの routing も設定する必要ありますが。
 
 設定のポイントは
 
 1.SSL-VPN を適用したいネットワーク[ここでは ASA 内部のネットワーク]のみ
  VPN 接続を許可するための ACL を定義(Split Tunnelingの設定時に使います)
  
  access-list spt_acl standard permit [VPN Network] [Subnetmask]
 
 2.AnyConnet 接続時に割り当てた ip pools には NAT させないよう
  NAT除外を設定します
  
  access-list no_nat extended permit ip any [AnyConnect IP] [Subnetmask]
  nat (inside) 0 access-list no_nat
  
 3.AnyConnect の group-policy に、Split Tunnelingの設定をします
 
 group-policy AnyConnect internal
 group-policy AnyConnect attributes
  vpn-tunnel-protocol svc
  split-tunnel-policy tunnelspecified
  split-tunnel-network-list value spt_acl
  address-pools value POOL

 POOL は、AnyConnect 接続時に配布されるよう設定した pool です。
 
 ip local pool POOL xxx.xxx.xxx.1-xxx.xxx.xxx.100 mask 255.255.255.0

 これで、VPN 接続させたくない IP に対しては
 Hosts の Real Eth からパケットが出力され、VPN を利用する通信に関しては
 AnyConnect の Virtual Eth から出力されます。

【メモ】Cisco ASA 5500 において、AAAサーバ を設定する

完全に仕事ネタですみませぬ。
キーワード検索を見ると、「Cisco ASA Radius 設定」の内容が多かったので
メモ残しておきます。

【環境】
                                   Cisco ACS[Radius]
                                        |
                                       dmz
                                        |
VPN-Client —– //Internet// —– Cisco ASA —– Catalyst —inside— Internal-Server

【Radiusの設定】
——
aaa-server Radius-Cisco protocol radius
—–

AAA の指定するコマンドは、aaa-server コマンドを使用します。
Radius-Cisco というのは、AAA サーバグループ名です。
このサーバグループ内で、複数のサーバ指定が可能です。
※Protocol は TACACS+ 等もありますが、ここは Radius で。

実際にRadiusサーバの指定を行う設定は、以下のコマンドです。

—–
aaa-server Radius-Cisco (dmz) host ACS-1
key *****
authentication-port 1812
accounting-port 1813
—–

key は、Radius サーバとの secret key
認証ポート/アカウントポートは Radius サーバで使用している値を設定します。

(dmz) は、Radius サーバが置いている name-if インタフェース。
ACS-1 は、name で IP アドレスと紐付けています。
※name 192.168.xx.xx ACS-1

同じ aaa-server group に Radius サーバを2台以上登録した場合

—–
aaa-server Radius-Cisco protocol radius
aaa-server Radius-Cisco (dmz) host ACS-1
key *****
authentication-port 1812
accounting-port 1813
aaa-server Radius-Cisco (dmz) host ACS-2
key *****
authentication-port 1812
accounting-port 1813
—–

Active な Radius が落ちると、次に登録されているサーバが Active となります。
※落ちるというより、3回認証失敗した場合に切り替わります。

実際に、aaa-server の状態を見たい場合 show aaa-server protocol radius を
実行すると確認可能です。
この例では、ACS-1 へ認証が3回失敗したので FAILD のフラグを立て
ACS-2 が ACTIVEとして動いています。

—–show aaa-server protocol radius—–
asa(config)# show aaa-server protocol radius
Server Group: Radius-Cisco
Server Protocol: radius
Server Address: ACS-1
Server port: 1812(authentication), 1813(accounting)
Server status: FAILED, Server disabled at 14:52:29 JST Tue Dec 7 2010
Number of pending requests 0
Average round trip time 0ms
Number of authentication requests 3
Number of authorization requests 0
Number of accounting requests 0
Number of retransmissions 0
Number of accepts 0
Number of rejects 0
Number of challenges 0
Number of malformed responses 0
Number of bad authenticators 0
Number of timeouts 3
Number of unrecognized responses 0

Server Group: Radius-Cisco
Server Protocol: radius
Server Address: ACS-2
Server port: 1812(authentication), 1813(accounting)
Server status: ACTIVE, Last transaction at 13:42:36 JST Thu Dec 9 2010
Number of pending requests 0
Average round trip time 16ms
Number of authentication requests 7
Number of authorization requests 0
Number of accounting requests 0
Number of retransmissions 0
Number of accepts 7
Number of rejects 0
Number of challenges 0
Number of malformed responses 0
Number of bad authenticators 0
Number of timeouts 0
Number of unrecognized responses 0
—————————————————

ここまでで、Radius サーバの定義は完了しました。

【実際に VPN 接続などで使用するように設定】
IP-Sec VPN などに、設定した Radius サーバを使用するようにする場合
以下のように、tunnel-group へ設定した aaa-server group の指定を行います。

—–
tunnel-group DefaultRAGroup general-attributes
address-pool VPN-POOL
authentication-server-group Radius-Cisco
—–

ここでは、細かい VPN 設定は省きますが
他の設定も行えば、IP-Sec VPN 接続時に Radius サーバを使用するようになります。

【Cisco VPN Client を使用して接続】
実際に、VPN 接続を行ってみると log から aaa-server へ認証を
行っているのがわかります。(細かいログは割愛します)

—–show logging—–
609001: Built local-host inside:ACS-2
302015: Built outbound UDP connection 26500 for inside:ACS-2/1812 (ACS-2/1812) to identity:192.168.xx.xx/1025 (192.168.xx.xx/1025)
113004: AAA user authentication Successful : server = ACS-2 : user = mayupon
113009: AAA retrieved default group policy (DfltGrpPolicy) for user = mayupon
113008: AAA transaction status ACCEPT : user = mayupon
//省略//
734003: DAP: User mayupon, Addr xx.xx.xx.xx: Session Attribute aaa.radius["1"]["1"] = mayupon
734003: DAP: User mayupon, Addr xx.xx.xx.xx: Session Attribute aaa.radius["25"]["1"] = CACS:acs51-2/79270226/1607
734003: DAP: User mayupon, Addr xx.xx.xx.xx: Session Attribute aaa.cisco.grouppolicy = DfltGrpPolicy
734003: DAP: User mayupon, Addr xx.xx.xx.xx: Session Attribute aaa.cisco.username = mayupon
734003: DAP: User mayupon, Addr xx.xx.xx.xx: Session Attribute aaa.cisco.tunnelgroup = DefaultRAGroup
713052: Group = DefaultRAGroup, Username = mayupon, IP = xx.xx.xx.xx, User (mayupon) authenticated.
—————————

VPN の接続状態は、show vpn-sessiondb remote
[詳細:show vpn-sessiondb detail remote] にて確認可能です。

—–show vpn-sessiondb remote—–
asa(config)# show vpn-sessiondb remote

Session Type: IPsec

Username : mayupon Index : 8
Assigned IP : 192.168.xx.xx Public IP : xx.xx.xx.xx
Protocol : IKE IPsecOverUDP
License : IPsec
Encryption : 3DES AES256 Hashing : MD5 SHA1
Bytes Tx : 0 Bytes Rx : 0
Group Policy : DfltGrpPolicy Tunnel Group : DefaultRAGroup
Login Time :
Duration : 0h:07m:35s
Inactivity : 0h:00m:00s
NAC Result : Unknown
VLAN Mapping : N/A VLAN : none
———————————————-

メモ書きなので、あまり細かい事書いていないのですが参考にどうぞ。
また、キーワード検索で多そうな内容があればメモ書きしたいと思います。

Mandriva LinuxからASA5505へVPN接続

Cisco VPN Clientといえば、大抵動作環境がWindowsなのですが
LinuxでCisco VPN Clientの実行を試してみました。

使用LinuxはMandriva Linux 2010
インストールや環境設定は、@sariaさんのApribaseを参考に。

最初は通常通り、Cisco VPN Clientのファイルを
準備して、解凍→makeという流れにしようと思ったですが、如何せん上手くいかず…。
そもそも、GoogleとかみてもSolarisやVine Linuxの情報しかなく
Mandriva Linuxについて全く乗ってないんですよね…。

もそもそ試行錯誤していたら、実はパッケージがあったという(・ω・;)
Mandrivaのインストール関係は凄いっす…。

インストール後は、Cisco VPN コンセントレータがあるので選択して
必要なvpncをDownLoadしたら、VPNの接続設定。

終端装置はCisco ASA5505で、ユーザ認証はRadius使ってます。
設定後は、作成した設定名を使用して接続できます。

vpn-start vpnc <Setting Name>

それでは、接続(o゚∀゚o)キュンキュン!

[root@localhost ~]# vpn-start vpnc ASA5505-VPN
Starting VPN connection: VPNC started in background (pid: 8407)…
[ OK ]

VPN接続前のネットワーク状態は

[root@localhost ~]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0B:5D:2A:05:0D
inet addr:10.xx.xx.xx Bcast:10.xx.xx.255 Mask:255.255.255.0
inet6 addr: fe80::20b:5dff:fe2a:50d/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:14259 errors:112 dropped:121 overruns:112 frame:0
TX packets:8962 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:18004865 (17.1 MiB) TX bytes:819758 (800.5 KiB)
Interrupt:11 Base address:0×8000

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:8 errors:0 dropped:0 overruns:0 frame:0
TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:480 (480.0 b) TX bytes:480 (480.0 b)

[root@localhost ~]$

ですが、VPN接続後はVPN用のIP Address(tun0)が配布されます。

[root@localhost ~]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0B:5D:2A:05:0D
inet addr:10.xx.xx.xx Bcast:10.xx.xx.255 Mask:255.255.255.0
inet6 addr: fe80::20b:5dff:fe2a:50d/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:14327 errors:112 dropped:121 overruns:112 frame:0
TX packets:8974 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:18017156 (17.1 MiB) TX bytes:823468 (804.1 KiB)
Interrupt:11 Base address:0×8000

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:8 errors:0 dropped:0 overruns:0 frame:0
TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:480 (480.0 b) TX bytes:480 (480.0 b)

tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:192.168.20.210 P-t-P:192.168.20.210 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)

[root@localhost ~]#

Internal Network内にもpingが通ります。

[root@localhost ~]# ping 192.168.10.50
PING 192.168.10.50 (192.168.10.50) 56(84) bytes of data.
64 bytes from 192.168.10.50: icmp_seq=1 ttl=127 time=1.93 ms
64 bytes from 192.168.10.50: icmp_seq=2 ttl=128 time=0.882 ms
64 bytes from 192.168.10.50: icmp_seq=3 ttl=128 time=1.00 ms
64 bytes from 192.168.10.50: icmp_seq=4 ttl=128 time=0.991 ms
^C
— 192.168.10.50 ping statistics —
4 packets transmitted, 4 received, 0% packet loss, time 3348ms
rtt min/avg/max/mdev = 0.882/1.202/1.931/0.424 ms
[root@localhost ~]#

ASA5505では以下の表示です。
ちゃんとOSがLinuxになっていました(Linuxの種類まで表示されるといいのにね)

ASA5505# show vpn-sessiondb detail remote

Session Type: IPsec Detailed

Username : mayupon Index : 77
Assigned IP : 192.168.20.210 Public IP : 10.xx.xx.xx
Protocol : IKE IPsec
License : IPsec
Encryption : 3DES AES256 Hashing : MD5 SHA1
Bytes Tx : 252 Bytes Rx : 252
Pkts Tx : 3 Pkts Rx : 3
Pkts Tx Drop : 0 Pkts Rx Drop : 0
Group Policy : DfltGrpPolicy Tunnel Group : DefaultRAGroup
Login Time : 15:02:08 JST Thu Apr 8 2010
Duration : 0h:02m:22s
Inactivity : 0h:00m:00s
NAC Result : Unknown
VLAN Mapping : N/A VLAN : none

IKE Tunnels: 1
IPsec Tunnels: 1

IKE:
Tunnel ID : 77.1
UDP Src Port : 500 UDP Dst Port : 500
IKE Neg Mode : Aggressive Auth Mode : preSharedKeys
Encryption : 3DES Hashing : SHA1
Rekey Int (T): 86400 Seconds Rekey Left(T): 86260 Seconds
D/H Group : 2
Filter Name :
Client OS : Linux Client OS Ver: 0.5.3

IPsec:
Tunnel ID : 77.2
Local Addr : 0.0.0.0/0.0.0.0/0/0
Remote Addr : 192.168.20.210/255.255.255.255/0/0
Encryption : AES256 Hashing : MD5
Encapsulation: Tunnel
Rekey Int (T): 28800 Seconds Rekey Left(T): 28658 Seconds
Idle Time Out: 30 Minutes Idle TO Left : 27 Minutes
Conn Time Out: 5 Minutes Conn TO Left : 2 Minutes
Bytes Tx : 252 Bytes Rx : 252
Pkts Tx : 3 Pkts Rx : 3

NAC:
Reval Int (T): 0 Seconds Reval Left(T): 0 Seconds
SQ Int (T) : 0 Seconds EoU Age(T) : 142 Seconds
Hold Left (T): 0 Seconds Posture Token:
Redirect URL :

ASA5505#

以下のコマンドでVPN接続終了

[root@localhost ~]# vpn-stop vpnc ASA5505-VPN
Stopping VPN connection: [ OK ]

終端側の設定がちゃんとされていれば、Mandriva LinuxとのVPN 接続は問題なかったです。
むしろ、SolarisやVine Linuxに比べて簡単にインストールできるので楽でしたー。

Linuxも弄ると楽しいなヽ(・∀・ )ノ

Page 2 of 212