働き方改革やオリンピック時期の通勤経路混雑に備え、在宅勤務(テレワーク)環境を検討の企業様も多いと思います。そのためにはリモートアクセス環境(VPN環境)を準備することが一般的です。
リモートアクセス環境を検討中の方は下記のようなお悩みがありそうですので、 本記事が少しでもお役に立てればと思います。
- 何を用意したら良いかわからない
- SIerに見積もりを依頼するにあたり、最低限の知識は付けたい
- 自社で出来ることと出来ないことを見極めたい
- 予算があまりないので、最低限の設定で導入したい
今回はCiscoのASAを使用した構成を紹介します。 ASAの設定にフォーカスしたページは多いのですが、周辺の機器にどういう設定をすべきかを整理しているページは多くなさそうなので、自分なりに書いてみます。
AnyConnectで接続可能な最低限の設定を紹介します。 セキュリティ要件などを精査の上、ご利用は自己責任でお願い致します。 本格的に学習したい方は、下記の書籍を推奨します。
VPNを接続するとどうなるの?
セキュリティポリシーにもよるのですが、自宅PCやスマートフォンが社内LANに接続した同様になりますので、社内のイントラやファイルサーバなどにアクセスできます。 ASAで使用するVPNクライアントはAnyConnectです。
下記のようなアプリで接続先を入力して接続します。
用意するもの
AnyConnectをダウンロードするにはCiscoのパートナーアカウントが必要です。 ASAを購入するSier様またはベンダ様にご相談ください。 また、同時接続するユーザ数に応じてライセンス費用が変わります。
必須
任意
- 踏み台サーバ
(個人のPCから社内LANにアクセスOKな場合は不要)
構成例
インターネット経由でASAにAnyConnectでVPN接続し、 踏み台サーバにリモートデスクトップ(RDP)で接続後、社内LANへ業務通信を行う構成です。
周辺機器の設定
下記がポイントになります。
1. プールアドレスの範囲を決める
VPN接続済クライアントは、「プールアドレス」と呼ばれるアドレスを使って通信します。 VPN接続済クライアントによるアクセスは、送信元アドレスがプールアドレスの範囲内に見えます。
2.1 ASAをインターネットに公開するNAT設定
インターネットからのアクセスに応答できるようにするために、 グローバルアドレスに対応付けます。
2.2 インターネットからASAにアクセス許可
インターネットから、ASAにアクセスを許可します。 TCPとUDPの443を許可しているのは、デフォルトでTLSとDTLSを使用するためです。 DTLSは、VPN接続中の遅延を少なくします。
2.3 踏み台サーバから社内LANへアクセス許可
ルーティングやファイアウォールのポリシー次第では、 踏み台サーバを経由せずとも社内LANにアクセスできる構成も可能ですが、 個人の端末を全てチェックするのは難しいです。
なので、踏み台サーバが正しく社内ポリシー(セキュリティパッチやウイルス対策等)を満たしていることを前提とし、 踏み台サーバからのアクセスだけを許可しています。 ※プールアドレスで許可すれば、全ての端末から社内LANにアクセス可能になります。 その際、周辺のネットワーク機器にプールアドレス宛のルーティングを追加してください。
3 プールアドレス宛のルーティング設定
踏み台サーバから見ると、VPN接続済みクライアントの送信元アドレスがプールアドレスに見えるので、 戻りのルーティングをASA宛に設定します。
ASAの設定
4 社内からSSHするための設定
下記をコンソールから設定した後、ASAをネットワークに接続してください。 「nameif」を設定しないと、 インタフェースがアップしていても通信できないことに注意してください。
interface GigabitEthernet0/0 nameif outside security-level 0 ip address 10.1.1.1 255.255.255.0 no shutdown ! route outside 0.0.0.0 0.0.0.0 {ファイアウォールのIPaddr} 1 aaa authentication ssh console LOCAL username admin password hogehoge privilege 15 ssh 192.168.1.0 255.255.255.0 outside
5 VPN接続できるようにするための設定
この構成ではVPN接続を受け付けるインタフェースと、 社内LANに接続するインタフェースが同一のため、 同一インタフェースの通信を許可するように設定しています。
ip local pool pool_a 172.16.1.1-172.16.1.254 mask 255.255.255.0 group-policy group_a internal group-policy group_a attributes vpn-tunnel-protocol ssl-client address-pools value pool_a username user01 password user01pass username user01 attributes vpn-group-policy group_a webvpn enable outside same-security-traffic permit intra-interface
6 AnyConnectのダウンロード
AnyConnectは下記からダウンロード可能です。 ダウンロード権限が無い場合、ベンダー様に必要なクライアントを要望してください。
https://software.cisco.com/download/home/286281283/type/282364313/
Windowsであれば下記となります。
Pre-Deploymentは事前に端末へインストールするという意味です。
対してHeadend Deploy PackageはASAに格納しておくもので、 ブラウザでASAへアクセスがあった際、AnyConnectのダウンロード画面を表示させたり、 ASA格納バージョンの方が、接続端末のAnyConnectより新しかった場合は、 自動でバージョンアップさせたりもできます。今回こちらは扱いません。
VPN接続に使用するのは下記のファイルです。
デフォルトの状態でインストールしてください。
7 動作確認
デフォルトでAnyConnectは「信頼できない証明書」を拒否する設定になっており、 ASAは自己証明書が使用される状態ですので、接続が拒否されてしまいます。
警告が表示されますが、下記のチェックを外すことで接続できるようになります。
接続先(例では203.0.113.1)を入力し、[Connect]をクリックします。
警告が表示されるので[Connect Anyway]をクリックします。
ユーザ名とパスワード(例ではuser01 / user01pass)を入力して[OK]をクリックします。
踏み台サーバにリモートデスクトップや、社内LANへアクセスできるか確認してみてください。
補足
踏み台用のサーバは、仮想デスクトップ環境としてVMware Horizen が良く使われていますが、 小規模の場合は物理サーバへリモートデスクトップさせる形でも良いと思います。
今回はASAにユーザを作成して認証しましたが、RadiusやActive Directoryと連携して認証させることも可能です。
クライアント証明書を利用して認証することもできるのですが、 クライアント証明書がコピーされてしまった場合、任意の個人端末からアクセスできてしまいます。
アクセス元端末の状況をチェックし、ポリシー違反(例:ウイルス対策ソフトの稼働)であれば、 VPN接続を拒否するという機能(VPN posture)もあるのですが、追加ライセンスが必要なので費用が上がります。
予算との兼ね合いで、ある程度は下記のような運用ルール整備による対応も必要です。
- クライアント証明書を自宅端末、会社貸与端末以外にインストールすることは禁止
- ネットカフェなどの共用PCからVPN接続することを禁止