ASA VPN ロヌドバランシング クラスタの展開

この蚘事では、珟時点で最もスケヌラブルなスキヌムを迅速に導入する方法に぀いお段階的に説明したいず思いたす。 リモヌトアクセスVPN アクセスベヌス AnyConnect ず Cisco ASA – VPN ロヌド バランシング クラスタヌ.

ВвеЎеМОе 新型コロナりむルス感染症の珟圚の状況を鑑み、䞖界䞭の倚くの䌁業が埓業員のリモヌトワヌクぞの移行に取り組んでいたす。 リモヌトワヌクぞの倧芏暡な移行により、䌁業の既存の VPN ゲヌトりェむの負荷が倧幅に増加しおおり、それらを迅速に拡匵する胜力が必芁ずされおいたす。 䞀方で、倚くの䌁業はリモヌトワヌクの抂念を䞀から習埗するこずを急いでいる。

䌁業が埓業員に䟿利で安党か぀スケヌラブルな VPN アクセスをできるだけ短期間で実珟できるようにするために、シスコは AnyConnect 機胜が豊富な SSL VPN クラむアントを最長 13 週間ラむセンスしたす。 たた、認定パヌトナヌから、たたは協力するシスコの担圓者に連絡しお、ASAv のテストVMWare/Hyper-V/KVM ハむパヌバむザおよび AWS/Azure クラりド プラットフォヌム甚の仮想 ASAを受隓するこずもできたす。.

AnyConnect 新型コロナりむルス感染症 (COVID-19) ラむセンスを発行する手順に぀いおは、ここで説明したす。.

最もスケヌラブルな VPN テクノロゞヌずしお VPN 負荷分散クラスタヌを簡単に導入するためのステップバむステップ ガむドを甚意したした。

以䞋の䟋は、䜿甚される認蚌および認可アルゎリズムの点では非垞に単玔ですが、展開䞭にニヌズに培底的に適応できる可胜性があり、クむック スタヌト (珟時点では倚くの人にずっお十分ではありたせん) ずしおは良いオプションになりたす。プロセス。

簡単な情報: VPN ロヌド バランシング クラスタ テクノロゞは、ネむティブな意味でのフェヌルオヌバヌやクラスタリング機胜ではありたせん。このテクノロゞは、リモヌト アクセス VPN 接続のロヌド バランシングを行うために、完党に異なる ASA モデルを特定の制限付きで組み合わせるこずができたす。 このようなクラスタヌのノヌド間ではセッションず構成の同期は行われたせんが、クラスタヌ内に少なくずも XNUMX ぀のアクティブなノヌドが残るたで、VPN 接続の負荷を自動的に分散し、VPN 接続のフォヌルト トレランスを確保するこずができたす。 クラスタ内の負荷は、VPN セッションの数によるノヌドのワヌクロヌドに応じお自動的にバランスされたす。

クラスタヌの特定のノヌドのフェむルオヌバヌ (必芁な堎合) には、ファむラヌを䜿甚できるため、アクティブな接続はファむラヌのプラむマリ ノヌドによっお凊理されたす。 ファむルオヌバヌは、ロヌド バランシング クラスタヌ内のフォヌルト トレランスを確保するために必芁な条件ではありたせん。クラスタヌ自䜓は、ノヌド障害が発生した堎合、ナヌザヌ セッションを別のラむブ ノヌドに転送したすが、接続ステヌタスは保存されたせん。ファむラヌによっお提䟛されたす。 したがっお、必芁に応じお、これら XNUMX ぀の技術を組み合わせるこずも可胜です。

VPN 負荷分散クラスタヌには XNUMX ぀以䞊のノヌドを含めるこずができたす。

VPN ロヌドバランシング クラスタは、ASA 5512-X 以降でサポヌトされおいたす。

VPN ロヌドバランシング クラスタ内の各 ASA は蚭定の点で独立したナニットであるため、すべおの蚭定手順を個々のデバむスで個別に実行したす。

技術詳现はこちら

指定された䟋の論理トポロゞは次のずおりです。

ASA VPN ロヌドバランシング クラスタの展開

プラむマリ展開:

  1. 必芁なテンプレヌトASAv5/10/30/50の ASAv むンスタンスをむメヌゞから展開したす。

  2. INSIDE / OUTSIDE むンタヌフェむスを同じ VLAN に割り圓おたす (倖郚は独自の VLAN、INSIDE は独自の VLAN に割り圓おたすが、通垞はクラスタヌ内にありたす。トポロゞを参照)。同じタむプのむンタヌフェむスが同じ L2 セグメントにあるこずが重芁です。

  3. ラむセンス:

    • 珟時点では、ASAv むンストヌルにはラむセンスがなく、制限は 100kbps に制限されたす。
    • ラむセンスをむンストヌルするには、スマヌト アカりントでトヌクンを生成する必芁がありたす。 https://software.cisco.com/ -> スマヌトな゜フトりェアラむセンス
    • 開いたりィンドりで ボタンをクリックしたす 新しいトヌクン

    ASA VPN ロヌドバランシング クラスタの展開

    • 開いたりィンドりにアクティブなフィヌルドがあり、チェックマヌクがオンになっおいるこずを確認したす。 茞出芏制機胜を蚱可する  このフィヌルドをアクティブにしないず、匷力な暗号化の機胜、およびそれに応じお VPN の機胜を䜿甚できなくなりたす。 このフィヌルドがアクティブでない堎合は、アカりント チヌムにアクティベヌション リク゚ストを送信しおください。

    ASA VPN ロヌドバランシング クラスタの展開

    • ボタンを抌した埌 Create Token、ASAv のラむセンスを取埗するために䜿甚するトヌクンが䜜成されたす。それをコピヌしたす。

    ASA VPN ロヌドバランシング クラスタの展開

    • 導入された ASAv ごずに手順 C、D、E を繰り返したす。
    • トヌクンのコピヌを容易にするために、䞀時的に Telnet を蚱可したしょう。 各 ASA を蚭定したしょう以䞋の䟋は ASA-1 の蚭定を瀺しおいたす。 Telnet は倖郚ずは機胜したせん。本圓に必芁な堎合は、セキュリティ レベルを倖郚に察しお 100 に倉曎しおから元に戻しおください。

    !
    ciscoasa(config)# int gi0/0
    ciscoasa(config)# nameif outside
    ciscoasa(config)# ip address 192.168.31.30 255.255.255.0
    ciscoasa(config)# no shut
    !
    ciscoasa(config)# int gi0/1
    ciscoasa(config)# nameif inside
    ciscoasa(config)# ip address 192.168.255.2 255.255.255.0
    ciscoasa(config)# no shut
    !
    ciscoasa(config)# telnet 0 0 inside
    ciscoasa(config)# username admin password cisco priv 15
    ciscoasa(config)# ena password cisco
    ciscoasa(config)# aaa authentication telnet console LOCAL
    !
    ciscoasa(config)# route outside 0 0 192.168.31.1
    !
    ciscoasa(config)# wr
    !

    • スマヌト アカりント クラりドにトヌクンを登録するには、ASA にむンタヌネット アクセスを提䟛する必芁がありたす。 詳现はこちら.

    ぀たり、ASA が必芁です。

    • HTTPS 経由でむンタヌネットにアクセスしたす。
    • 時刻同期 (より正確には、NTP 経由);
    • 登録されたDNSサヌバヌ。
      • ASA に Telnet で接続し、スマヌト アカりント経由でラむセンスをアクティブ化する蚭定を行いたす。

    !
    ciscoasa(config)# clock set 19:21:00 Mar 18 2020
    ciscoasa(config)# clock timezone MSK 3
    ciscoasa(config)# ntp server 192.168.99.136
    !
    ciscoasa(config)# dns domain-lookup outside
    ciscoasa(config)# DNS server-group DefaultDNS
    ciscoasa(config-dns-server-group)# name-server 192.168.99.132 
    !
    ! ПрПверОЌ рабПту DNS:
    !
    ciscoasa(config-dns-server-group)# ping ya.ru
    Type escape sequence to abort.
    Sending 5, 100-byte ICMP Echos to 87.250.250.242, timeout is 2 seconds:
    !!!!!
    !
    ! ПрПверОЌ сОМхрПМОзацОю NTP:
    !
    ciscoasa(config)# show ntp associations 
      address         ref clock     st  when  poll reach  delay  offset    disp
    *~192.168.99.136   91.189.94.4       3    63    64    1    36.7    1.85    17.5
    * master (synced), # master (unsynced), + selected, - candidate, ~ configured
    !
    ! УстаМПвОЌ кПМфОгурацОю Машей ASAv Ўля Smart-Licensing (в сППтветствОО с ВашОЌ прПфОлеЌ, в ЌПеЌ случае 100М Ўля прОЌера)
    !
    ciscoasa(config)# license smart
    ciscoasa(config-smart-lic)# feature tier standard
    ciscoasa(config-smart-lic)# throughput level 100M
    !
    ! В случае МеПбхПЎОЌПстО ЌПжМП МастрПОть ЎПступ в ИМтерМет через прПксО ОспПльзуйте слеЎующОй блПк кПЌаМЎ:
    !call-home
    !  http-proxy ip_address port port
    !
    ! Далее Ќы вставляеЌ скПпОрПваММый Оз пПртала Smart-Account тПкеМ (<token>) О регОстрОруеЌ лОцеМзОю
    !
    ciscoasa(config)# end
    ciscoasa# license smart register idtoken <token>

    • デバむスがラむセンスを正垞に登録し、暗号化オプションが利甚可胜であるこずを確認したす。

    ASA VPN ロヌドバランシング クラスタの展開

    ASA VPN ロヌドバランシング クラスタの展開

  4. 各ゲヌトりェむで基本的な SSL-VPN をセットアップする

    • 次に、SSH および ASDM 経由のアクセスを蚭定したす。

    ciscoasa(config)# ssh ver 2
    ciscoasa(config)# aaa authentication ssh console LOCAL
    ciscoasa(config)# aaa authentication http console LOCAL
    ciscoasa(config)# hostname vpn-demo-1
    vpn-demo-1(config)# domain-name ashes.cc
    vpn-demo-1(config)# cry key gen rsa general-keys modulus 4096 
    vpn-demo-1(config)# ssh 0 0 inside  
    vpn-demo-1(config)# http 0 0 inside
    !
    ! ППЎМОЌеЌ сервер HTTPS Ўля ASDM Ма пПрту 445 чтПбы Ме пересекаться с SSL-VPN пПрталПЌ
    !
    vpn-demo-1(config)# http server enable 445 
    !

    • ASDM が機胜するには、たず cisco.com Web サむトから ASDM をダりンロヌドする必芁がありたす。私の堎合は次のファむルです。

    ASA VPN ロヌドバランシング クラスタの展開

    • AnyConnect クラむアントが機胜するには、䜿甚する各デスクトップ クラむアント OSLinux/Windows/MAC を䜿甚する予定のむメヌゞを各 ASA にアップロヌドする必芁がありたす。 ヘッド゚ンド展開パッケヌゞ タむトルで:

    ASA VPN ロヌドバランシング クラスタの展開

    • ダりンロヌドしたファむルは、たずえば FTP サヌバにアップロヌドしたり、個々の ASA にアップロヌドしたりできたす。

    ASA VPN ロヌドバランシング クラスタの展開

    • ASDM ず SSL-VPN 甚の自己眲名蚌明曞を蚭定したす運甚環境では信頌できる蚌明曞を䜿甚するこずをお勧めしたす。 仮想クラスタヌ アドレス (vpn-demo.ashes.cc) の蚭定された FQDN、および各クラスタヌ ノヌドの倖郚アドレスに関連付けられた各 FQDN は、倖郚 DNS ゟヌンで OUTSIDE むンタヌフェむス (たたはポヌト転送 udp/443 (DTLS) および tcp/443(TLS) が䜿甚されおいる堎合は、マップされたアドレスに。 蚌明曞の芁件に関する詳现情報は、セクションに蚘茉されおいたす。 蚌明曞の怜蚌 ドキュメンテヌション。

    !
    vpn-demo-1(config)# crypto ca trustpoint SELF
    vpn-demo-1(config-ca-trustpoint)# enrollment self
    vpn-demo-1(config-ca-trustpoint)# fqdn vpn-demo.ashes.cc
    vpn-demo-1(config-ca-trustpoint)# subject-name cn=*.ashes.cc, ou=ashes-lab, o=ashes, c=ru
    vpn-demo-1(config-ca-trustpoint)# serial-number             
    vpn-demo-1(config-ca-trustpoint)# crl configure
    vpn-demo-1(config-ca-crl)# cry ca enroll SELF
    % The fully-qualified domain name in the certificate will be: vpn-demo.ashes.cc
    Generate Self-Signed Certificate? [yes/no]: yes
    vpn-demo-1(config)# 
    !
    vpn-demo-1(config)# sh cry ca certificates 
    Certificate
    Status: Available
    Certificate Serial Number: 4d43725e
    Certificate Usage: General Purpose
    Public Key Type: RSA (4096 bits)
    Signature Algorithm: SHA256 with RSA Encryption
    Issuer Name: 
    serialNumber=9A439T02F95
    hostname=vpn-demo.ashes.cc
    cn=*.ashes.cc
    ou=ashes-lab
    o=ashes
    c=ru
    Subject Name:
    serialNumber=9A439T02F95
    hostname=vpn-demo.ashes.cc
    cn=*.ashes.cc
    ou=ashes-lab
    o=ashes
    c=ru
    Validity Date: 
    start date: 00:16:17 MSK Mar 19 2020
    end   date: 00:16:17 MSK Mar 17 2030
    Storage: config
    Associated Trustpoints: SELF 
    
    CA Certificate
    Status: Available
    Certificate Serial Number: 0509
    Certificate Usage: General Purpose
    Public Key Type: RSA (4096 bits)
    Signature Algorithm: SHA1 with RSA Encryption
    Issuer Name: 
    cn=QuoVadis Root CA 2
    o=QuoVadis Limited
    c=BM
    Subject Name: 
    cn=QuoVadis Root CA 2
    o=QuoVadis Limited
    c=BM
    Validity Date: 
    start date: 21:27:00 MSK Nov 24 2006
    end   date: 21:23:33 MSK Nov 24 2031
    Storage: config
    Associated Trustpoints: _SmartCallHome_ServerCA               

    • ASDM が動䜜しおいるこずを確認するには、次のようにポヌトを指定するこずを忘れないでください。

    ASA VPN ロヌドバランシング クラスタの展開

    • トンネルの基本蚭定を実行しおみたしょう。
    • 䌁業ネットワヌクをトンネル経由で利甚できるようにし、むンタヌネットを盎接接続したしょう (接続ホストに保護がない堎合、最も安党な方法ではありたせん。感染したホストを通過しお䌁業デヌタを衚瀺する可胜性がありたす。オプション) スプリットトンネルポリシヌトンネルオヌル すべおのホスト トラフィックがトンネルに入るようにしたす。 それでもないし スプリットトンネル VPN ゲヌトりェむをオフロヌドし、ホストのむンタヌネット トラフィックを凊理しないようにするこずができたす)
    • 192.168.20.0/24 サブネットからトンネル内のホストにアドレスを発行したしょう (10  30 個のアドレスのプヌル (ノヌド #1))。 VPN クラスタヌの各ノヌドには独自のプヌルが必芁です。
    • ASA 䞊でロヌカルに䜜成されたナヌザを䜿甚しお基本認蚌を実行したすこれは掚奚されたせん。これが最も簡単な方法です。 LDAP/RADIUS、あるいはさらに良いのは、ネクタむです。 倚芁玠認蚌(MFA)䟋えば シスコ デュオ.

    !
    vpn-demo-1(config)# ip local pool vpn-pool 192.168.20.10-192.168.20.30 mask 255.255.255.0
    !
    vpn-demo-1(config)# access-list split-tunnel standard permit 192.168.0.0 255.255.0.0
    !
    vpn-demo-1(config)# group-policy SSL-VPN-GROUP-POLICY internal
    vpn-demo-1(config)# group-policy SSL-VPN-GROUP-POLICY attributes
    vpn-demo-1(config-group-policy)# vpn-tunnel-protocol ssl-client 
    vpn-demo-1(config-group-policy)# split-tunnel-policy tunnelspecified
    vpn-demo-1(config-group-policy)# split-tunnel-network-list value split-tunnel
    vpn-demo-1(config-group-policy)# dns-server value 192.168.99.132
    vpn-demo-1(config-group-policy)# default-domain value ashes.cc
    vpn-demo-1(config)# tunnel-group DefaultWEBVPNGroup general-attributes
    vpn-demo-1(config-tunnel-general)#  default-group-policy SSL-VPN-GROUP-POLICY
    vpn-demo-1(config-tunnel-general)#  address-pool vpn-pool
    !
    vpn-demo-1(config)# username dkazakov password cisco
    vpn-demo-1(config)# username dkazakov attributes
    vpn-demo-1(config-username)# service-type remote-access
    !
    vpn-demo-1(config)# ssl trust-point SELF
    vpn-demo-1(config)# webvpn
    vpn-demo-1(config-webvpn)#  enable outside
    vpn-demo-1(config-webvpn)#  anyconnect image disk0:/anyconnect-win-4.8.03036-webdeploy-k9.pkg
    vpn-demo-1(config-webvpn)#  anyconnect enable
    !

    • (オプション): 䞊蚘の䟋では、ITU のロヌカル ナヌザヌを䜿甚しおリモヌト ナヌザヌを認蚌したしたが、もちろん、これは研究宀を陀いおあたり適甚できたせん。 認蚌の蚭定をすばやく適応させる方法の䟋を瀺したす。 半埄 サヌバヌ、たずえば䜿甚 Cisco アむデンティティ サヌビス ゚ンゞン:

    vpn-demo-1(config-aaa-server-group)# dynamic-authorization
    vpn-demo-1(config-aaa-server-group)# interim-accounting-update
    vpn-demo-1(config-aaa-server-group)# aaa-server RADIUS (outside) host 192.168.99.134
    vpn-demo-1(config-aaa-server-host)# key cisco
    vpn-demo-1(config-aaa-server-host)# exit
    vpn-demo-1(config)# tunnel-group DefaultWEBVPNGroup general-attributes
    vpn-demo-1(config-tunnel-general)# authentication-server-group  RADIUS 
    !

    この統合により、AD ディレクトリ サヌビスずの認蚌手順を迅速に統合できるだけでなく、接続されたコンピュヌタが AD に属しおいるかどうかを区別し、このデバむスが法人か個人かを把握し、接続されたデバむスの状態を把握するこずが可胜になりたした。 。

    ASA VPN ロヌドバランシング クラスタの展開

    ASA VPN ロヌドバランシング クラスタの展開

    • クラむアントず䌁業ネットワヌクのリ゜ヌス間のトラフィックが萜曞きされないように、透過 NAT を構成したしょう。

    vpn-demo-1(config-network-object)#  subnet 192.168.20.0 255.255.255.0
    !
    vpn-demo-1(config)# nat (inside,outside) source static any any destination static vpn-users vpn-users no-proxy-arp

    • (オプション): ASA を介しおクラむアントをむンタヌネットに公開するため䜿甚時 トンネルオヌル オプションPAT を䜿甚する堎合、および接続元ず同じ OUTSIDE むンタヌフェむスを介しお終了する堎合は、次の蚭定を行う必芁がありたす。

    vpn-demo-1(config-network-object)# nat (outside,outside) source dynamic vpn-users interface
    vpn-demo-1(config)# nat (inside,outside) source dynamic any interface
    vpn-demo-1(config)# same-security-traffic permit intra-interface 
    !

    • クラスタを䜿甚する堎合、内郚ネットワヌクがどの ASA にリタヌン トラフィックをルヌティングするかを認識できるようにするこずが非垞に重芁です。そのためには、クラむアントに発行されたルヌト / 32 個のアドレスを再配垃する必芁がありたす。
      珟時点ではただクラスタヌを構成しおいたせんが、FQDN たたは IP 経由で個別に接続できる VPN ゲヌトりェむがすでに機胜しおいたす。

    ASA VPN ロヌドバランシング クラスタの展開

    最初の ASA のルヌティング テヌブルに接続されたクラむアントが衚瀺されたす。

    ASA VPN ロヌドバランシング クラスタの展開

    VPN クラスタヌ党䜓ず䌁業ネットワヌク党䜓がクラむアントぞのルヌトを認識できるようにするために、クラむアント プレフィックスを動的ルヌティング プロトコル (OSPF など) に再配垃したす。

    !
    vpn-demo-1(config)# route-map RMAP-VPN-REDISTRIBUTE permit 1
    vpn-demo-1(config-route-map)#  match ip address VPN-REDISTRIBUTE
    !
    vpn-demo-1(config)# router ospf 1
    vpn-demo-1(config-router)#  network 192.168.255.0 255.255.255.0 area 0
    vpn-demo-1(config-router)#  log-adj-changes
    vpn-demo-1(config-router)#  redistribute static metric 5000 subnets route-map RMAP-VPN-REDISTRIBUTE

    これで、2 番目の ASA-XNUMX ゲヌトりェむからクラむアントぞのルヌトが確立され、クラスタ内の別の VPN ゲヌトりェむに接続しおいるナヌザは、たずえば䌁業の゜フトフォンを介しお盎接通信できるほか、ナヌザが芁求したリ゜ヌスからトラフィックを返すこずもできたす。目的の VPN ゲヌトりェむに到達したす。

    ASA VPN ロヌドバランシング クラスタの展開

  5. 負荷分散クラスタヌの構成に進みたしょう。

    アドレス 192.168.31.40 は仮想 IP (VIP - すべおの VPN クラむアントが最初に接続したす) ずしお䜿甚され、マスタヌ クラスタヌはこのアドレスから負荷の䜎いクラスタヌ ノヌドぞのリダむレクトを行いたす。 忘れずに曞いおください 順方向および逆方向の DNS レコヌド クラスタヌの各ノヌドの各倖郚アドレス/FQDN ず VIP の䞡方。

    vpn-demo-1(config)# vpn load-balancing
    vpn-demo-1(config-load-balancing)# interface lbpublic outside
    vpn-demo-1(config-load-balancing)# interface lbprivate inside
    vpn-demo-1(config-load-balancing)# priority 10
    vpn-demo-1(config-load-balancing)# cluster ip address 192.168.31.40
    vpn-demo-1(config-load-balancing)# cluster port 4000
    vpn-demo-1(config-load-balancing)# redirect-fqdn enable
    vpn-demo-1(config-load-balancing)# cluster key cisco
    vpn-demo-1(config-load-balancing)# cluster encryption
    vpn-demo-1(config-load-balancing)# cluster port 9023
    vpn-demo-1(config-load-balancing)# participate
    vpn-demo-1(config-load-balancing)#

    • XNUMX ぀のクラむアントが接続されおいるクラスタヌの動䜜を確認したす。

    ASA VPN ロヌドバランシング クラスタの展開

    • ASDM 経由で自動的にロヌドされる AnyConnect プロファむルを䜿甚しお、カスタマヌ ゚クスペリ゚ンスをさらに䟿利にしおみたしょう。

    ASA VPN ロヌドバランシング クラスタの展開

    プロファむルにわかりやすい名前を付け、グルヌプ ポリシヌをそれに関連付けたす。

    ASA VPN ロヌドバランシング クラスタの展開

    クラむアントの次回の接続埌、このプロファむルは自動的にダりンロヌドされ、AnyConnect クラむアントにむンストヌルされるため、接続する必芁がある堎合は、リストから遞択するだけです。

    ASA VPN ロヌドバランシング クラスタの展開

    このプロファむルは ASDM を䜿甚しお XNUMX ぀の ASA にのみ䜜成したため、クラスタ内の他の ASA に察しおも忘れずに手順を繰り返しおください。

結論 そこで、自動負荷分散を備えた耇数の VPN ゲヌトりェむのクラスタヌを迅速に展開したした。 クラスタぞの新しいノヌドの远加は簡単で、新しい ASAv 仮想マシンを導入するか、ハヌドりェア ASA を䜿甚するこずで簡単に氎平スケヌリングを行うこずができたす。 機胜が豊富な AnyConnect クラむアントは、 姿勢状態掚定集䞭制埡およびアクセス アカりンティングのシステムず組み合わせお䜿甚​​するず最も効果的です。 アむデンティティサヌビス゚ンゞン.

出所 habr.com

コメントを远加したす