CiscoASAでSSL-VPNを構築します。
最近はリモートアクセスIPSecVPNではなくSSL-VPNでアクセスするのが主流だと思われます。IPSecだと専用のクライアントアプリケーショ ンが必要なのに対しSSL-VPNではブラウザがあれば利用可能という手軽さがあるのかもしれません。
一言でSSL-VPNといっても2種類あります。一つはクライアントレス方式、もう一つがクライアント ( AnyConnect ) 方式です。クライアントレス方式とはASAがいわばproxyのような動きをし、ASAを介してブラウザベースで操作する方式です。対してAnyConnect方式はログインのときのみブラウザを使用し、最初のログイン時に専用ソフトがインストールされ仮想IPアドレスが割り当てられる方式で、接続後はあたかも内部LANにいるかのように操作できる方式です。
ここで取り上げるのはAnyConnect方式です。
AnyConnectはバージョンにより同様の設定を行なっていても細かな挙動が異なることがあり、また設定内容も異なってきます。以下ではVer8.0と8.6の設定例を記載致しますので参考にし て頂ければと思います。
< Ver8.0の場合 >
※PAT処理をしている場合、SSL-VPNで割り当てるIPを対象外にする必要があります access-list no_nat extended permit ip any 192.168.200.0 255.255.255.128 nat (inside) 0 access-list no_nat nat (dmz) 0 access-list no_nat ※outsideインターフェイスでSSL-VPNを有効としイメージファイルを指定します。 webvpn enable outside svc image disk0:/anyconnect-win-2.3.0254-k9.pkg 1 svc enable ※SSL-VPNでログインした際の仮想IPアドレスの範囲を設定します。 ip local pool remote-client 192.168.200.1-192.168.200.127 ※SSL-VPN経由で通信する対象IPアドレス( SplitTunnel )を設定します。 access-list split standard permit 10.0.0.0 255.0.0.0 access-list split standard permit 192.168.0.0 255.255.0.0 access-list split standard permit 172.16.0.0 255.240.0.0 ※グループポリシーを設定します。グループポリシーとはユーザに割り当てる属性値です。 上記で設定したsplitおよびremote-clientはここで紐付けます。 group-policy Grp-Policy internal group-policy Grp-Policy attributes dns-server value yy.zz.yy.zz vpn-tunnel-protocol svc split-tunnel-policy tunnelspecified split-tunnel-network-list value split address-pools value remote-client ※トンネルグループを設定します。トンネルグループはグループポリシーと紐付きます。 tunnel-group ASA type remote-access tunnel-group ASA general-attributes default-group-policy Grp-Policy tunnel-group ASA webvpn-attributes group-url https://xx.yy.xx.yy/remote-access/ enable ※ログイン用のユーザIDとパスを登録し、その際Tunnel-Groupも指定することで 特定URLからのみのログインが可能となります。 username user1 password password username user1 attributes group-lock value ASA |
< Ver8.6の場合 >
8.6の場合ですとまずNATの記載方法が異なります。その他、AnyConnectでも一部記載の仕方が異なる部分があるので注意してください。
※PAT処理をしている場合、SSL-VPNで割り当てるIPを対象外にする必要があります object network vpnpool subnet 192.168.250.0 255.255.255.128 nat (any,outside) 1 source static any any destination static vpnpool vpnpool ※outsideインターフェイスでSSL-VPNを有効としイメージファイルを指定します。 webvpn enable outside anyconnect-essentials anyconnect image disk0:/anyconnect-win-3.0.08057-k9.pkg 1 anyconnect enable ※SSL-VPNでログインした際の仮想IPアドレスの範囲を設定します。 ip local pool remote-client 192.168.200.1-192.168.200.127 ※SSL-VPN経由で通信する対象IPアドレス( SplitTunnel )を設定します。 access-list split standard permit 10.0.0.0 255.0.0.0 access-list split standard permit 192.168.0.0 255.255.0.0 access-list split standard permit 172.16.0.0 255.240.0.0 ※グループポリシーを設定します。グループポリシーとはユーザに割り当てる属性値です。 上記で設定したsplitおよびremote-clientはここで紐付けます。 group-policy Grp-Policy internal group-policy Grp-Policy attributes dns-server value yy.zz.yy.zz vpn-tunnel-protocol ssl-client split-tunnel-policy tunnelspecified split-tunnel-network-list value SPLIT address-pools value remote-client ※トンネルグループを設定します。トンネルグループはグループポリシーと紐付きます。 tunnel-group ASA type remote-access tunnel-group ASA general-attributes default-group-policy Grp-Policy tunnel-group ASA webvpn-attributes group-url https://xx.yy.xx.yy/remote-access/ enable ※ログイン用のユーザIDとパスを登録し、その際Tunnel-Groupも指定することで 特定URLからのみのログインが可能となります。 username user1 password password username user1 attributes group-lock value ASA |
上記の設定でブラウザからSSL-VPNでログインすることが可能となります。
上で設定したID/PASSでログイン可能です。ログインに成功すればanyconnectソフトウェアが自動的にダウンロードされインストールされます。その後、仮想IPアドレスが割り当てられあたかもLAN内部にいるかのように操作できます。
SSL-VPNを設定を実施してブラウザでアクセスしてもログイン画面すら表示されないということを経験しました。その場合、以下のコンフィグが設定されているか確認してみます。
ssl encryption des-sha1 |
設定されている場合、次のコンフィグを適用することでログイン画面は正常に表示されるようになります。
no ssl encryption des-sha1 ssl encryption rc4-sha1 aes128-sha1 aes256-sha1 3des-sha1 |