Triển khai cụm cân bằng tải ASA VPN

Trong bài viết này, tôi xin hướng dẫn từng bước để bạn có thể nhanh chóng triển khai sơ đồ có quy mô lớn nhất tại thời điểm hiện tại. VPN truy cập từ xa truy cập dựa trên AnyConnect và Cisco ASACụm cân bằng tải VPN.

Giới thiệu: Nhiều công ty trên khắp thế giới, trước tình hình hiện tại của COVID-19, đang nỗ lực chuyển nhân viên của họ sang làm việc từ xa. Do quá trình chuyển đổi hàng loạt sang làm việc từ xa, tải trọng trên các cổng VPN hiện tại của các công ty đang tăng lên nghiêm trọng và cần phải có khả năng mở rộng quy mô rất nhanh. Mặt khác, nhiều công ty buộc phải vội vàng làm chủ khái niệm làm việc từ xa ngay từ đầu.

Để giúp các doanh nghiệp đạt được quyền truy cập VPN thuận tiện, an toàn và có thể mở rộng cho nhân viên trong thời gian ngắn nhất có thể, Cisco sẽ cấp phép cho ứng dụng khách SSL VPN giàu tính năng AnyConnect trong tối đa 13 tuần. Bạn cũng có thể dùng thử ASAv (ASA ảo cho trình ảo hóa VMWare/Hyper-V/KVM và nền tảng đám mây AWS/Azure) từ các đối tác được ủy quyền hoặc bằng cách liên hệ với đại diện của Cisco làm việc với bạn.

Quy trình cấp giấy phép AnyConnect COVID-19 được mô tả tại đây.

Tôi đã chuẩn bị hướng dẫn từng bước để triển khai đơn giản Cụm cân bằng tải VPN là công nghệ VPN có khả năng mở rộng nhất.

Ví dụ dưới đây sẽ khá đơn giản về thuật toán xác thực và ủy quyền được sử dụng, nhưng sẽ là một lựa chọn tốt để bắt đầu nhanh (hiện tại không đủ cho nhiều người) với khả năng thích ứng chuyên sâu với nhu cầu của bạn trong quá trình triển khai quá trình.

Thông tin tóm tắt: Công nghệ VPN Load Balancing Cluster không phải là chuyển đổi dự phòng và không phải là chức năng phân cụm theo nghĩa gốc của nó, công nghệ này có thể kết hợp các mô hình ASA hoàn toàn khác nhau (với một số hạn chế nhất định) để cân bằng tải cho các kết nối VPN Truy cập Từ xa. Không có sự đồng bộ hóa phiên và cấu hình giữa các nút của một cụm như vậy, nhưng có thể tự động cân bằng tải các kết nối VPN và đảm bảo khả năng chịu lỗi của các kết nối VPN cho đến khi ít nhất một nút hoạt động vẫn còn trong cụm. Tải trong cụm được tự động cân bằng tùy thuộc vào khối lượng công việc của các nút theo số phiên VPN.

Để chuyển đổi dự phòng các nút cụ thể của cụm (nếu được yêu cầu), có thể sử dụng một trình quay phim, do đó, kết nối hoạt động sẽ được xử lý bởi nút Chính của trình quay phim. Fileover không phải là điều kiện cần thiết để đảm bảo khả năng chịu lỗi trong cụm Cân bằng tải, trong trường hợp xảy ra lỗi nút, chính cụm đó sẽ chuyển phiên người dùng sang một nút trực tiếp khác, nhưng không lưu trạng thái kết nối, chính xác là do người làm hồ sơ cung cấp. Theo đó, nếu cần thiết, có thể kết hợp hai công nghệ này.

Một cụm Cân bằng tải VPN có thể chứa nhiều hơn hai nút.

Cụm cân bằng tải VPN được hỗ trợ trên ASA 5512-X trở lên.

Vì mỗi ASA trong cụm Cân bằng tải VPN là một đơn vị độc lập về mặt cài đặt nên chúng tôi thực hiện tất cả các bước cấu hình riêng lẻ trên từng thiết bị riêng lẻ.

Chi tiết công nghệ tại đây

Cấu trúc liên kết logic của ví dụ đã cho:

Triển khai cụm cân bằng tải ASA VPN

Triển khai chính:

  1. Chúng tôi triển khai các phiên bản ASAv của các mẫu chúng tôi cần (ASAv5/10/30/50) từ hình ảnh.

  2. Chúng tôi chỉ định các giao diện INSIDE / OUTSIDE cho cùng một Vlan (Bên ngoài trong Vlan riêng của nó, BÊN TRONG riêng của nó, nhưng nói chung là trong cụm, xem cấu trúc liên kết), điều quan trọng là các giao diện cùng loại nằm trong cùng một phân đoạn L2.

  3. giấy phép:

    • Hiện tại, cài đặt ASAv sẽ không có bất kỳ giấy phép nào và sẽ bị giới hạn ở 100kbps.
    • Để cài đặt giấy phép, bạn cần tạo mã thông báo trong Tài khoản thông minh của mình: https://software.cisco.com/ -> Cấp phép phần mềm thông minh
    • Trong cửa sổ mở ra, nhấp vào nút Mã thông báo mới

    Triển khai cụm cân bằng tải ASA VPN

    • Đảm bảo rằng trong cửa sổ mở ra có trường đang hoạt động và dấu kiểm được chọn Cho phép chức năng kiểm soát xuất… Nếu không có trường này hoạt động, bạn sẽ không thể sử dụng các chức năng mã hóa mạnh và theo đó là VPN. Nếu trường này không hoạt động, vui lòng liên hệ với nhóm tài khoản của bạn để yêu cầu kích hoạt.

    Triển khai cụm cân bằng tải ASA VPN

    • Sau khi nhấn nút Tạo mã thông báo, một mã thông báo sẽ được tạo mà chúng tôi sẽ sử dụng để lấy giấy phép cho ASAv, hãy sao chép mã thông báo đó:

    Triển khai cụm cân bằng tải ASA VPN

    • Lặp lại các bước C, D, E cho mỗi ASAv đã triển khai.
    • Để sao chép mã thông báo dễ dàng hơn, hãy tạm thời cho phép telnet. Hãy định cấu hình từng ASA (ví dụ bên dưới minh họa các cài đặt trên ASA-1). telnet không hoạt động với bên ngoài, nếu bạn thực sự cần nó, hãy thay đổi mức bảo mật thành 100 thành bên ngoài, sau đó trả lại.

    !
    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
    !

    • Để đăng ký mã thông báo trong đám mây Tài khoản thông minh, bạn phải cung cấp quyền truy cập Internet cho ASA, chi tiết ở đây.

    Nói tóm lại, ASA là cần thiết:

    • truy cập qua HTTPS vào Internet;
    • đồng bộ thời gian (chính xác hơn là qua NTP);
    • máy chủ DNS đã đăng ký;
      • Chúng tôi kết nối với ASA của mình và thực hiện cài đặt để kích hoạt giấy phép thông qua Tài khoản thông minh.

    !
    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>

    • Chúng tôi kiểm tra xem thiết bị đã đăng ký giấy phép thành công chưa và có sẵn các tùy chọn mã hóa:

    Triển khai cụm cân bằng tải ASA VPN

    Triển khai cụm cân bằng tải ASA VPN

  4. Thiết lập SSL-VPN cơ bản trên mỗi cổng

    • Tiếp theo, định cấu hình quyền truy cập qua SSH và 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 hoạt động, trước tiên bạn phải tải xuống từ trang web cisco.com, trong trường hợp của tôi, đó là tệp sau:

    Triển khai cụm cân bằng tải ASA VPN

    • Để ứng dụng khách AnyConnect hoạt động, bạn cần tải hình ảnh lên từng ASA cho mỗi HĐH máy tính để bàn của máy khách đã sử dụng (dự định sử dụng Linux / Windows / MAC), bạn sẽ cần một tệp có Gói triển khai Headend Trong tiêu đề:

    Triển khai cụm cân bằng tải ASA VPN

    • Ví dụ, các tệp đã tải xuống có thể được tải lên máy chủ FTP và tải lên từng ASA riêng lẻ:

    Triển khai cụm cân bằng tải ASA VPN

    • Chúng tôi định cấu hình chứng chỉ ASDM và Tự ký cho SSL-VPN (nên sử dụng chứng chỉ đáng tin cậy trong sản xuất). FQDN đã đặt của Địa chỉ cụm ảo (vpn-demo.ashes.cc), cũng như từng FQDN được liên kết với địa chỉ bên ngoài của từng nút cụm, phải phân giải trong vùng DNS bên ngoài thành địa chỉ IP của giao diện OUTSIDE (hoặc đến địa chỉ được ánh xạ nếu chuyển tiếp cổng udp/443 được sử dụng (DTLS) và tcp/443(TLS)). Thông tin chi tiết về các yêu cầu đối với chứng chỉ được nêu trong phần Xác minh chứng chỉ tài liệu.

    !
    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               

    • Đừng quên chỉ định cổng để kiểm tra ASDM có hoạt động không, ví dụ:

    Triển khai cụm cân bằng tải ASA VPN

    • Hãy thực hiện các cài đặt cơ bản của đường hầm:
    • Hãy cung cấp mạng công ty thông qua đường hầm và để Internet truy cập trực tiếp (không phải là phương pháp an toàn nhất nếu không có biện pháp bảo vệ nào trên máy chủ kết nối, có thể xâm nhập qua máy chủ bị nhiễm và hiển thị dữ liệu công ty, tùy chọn đường hầm chính sách chia đường hầm sẽ cho phép tất cả lưu lượng máy chủ vào đường hầm. Tuy nhiên đường hầm chia đôi cho phép giảm tải cổng VPN và không xử lý lưu lượng truy cập Internet của máy chủ)
    • Hãy cấp địa chỉ từ mạng con 192.168.20.0/24 cho các máy chủ trong đường hầm (nhóm từ 10 đến 30 địa chỉ (đối với nút #1)). Mỗi nút của cụm VPN phải có nhóm riêng.
    • Chúng tôi sẽ thực hiện xác thực cơ bản với người dùng được tạo cục bộ trên ASA (Điều này không được khuyến nghị, đây là phương pháp dễ nhất), tốt hơn là thực hiện xác thực thông qua LDAP/BÁN KÍNH, hoặc tốt hơn nữa, buộc Xác thực đa yếu tố (MFA), Ví dụ: Bộ đôi Cisco.

    !
    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
    !

    • (KHÔNG BẮT BUỘC): Trong ví dụ trên, chúng tôi đã sử dụng một người dùng cục bộ trên ITU để xác thực người dùng từ xa, tất nhiên, điều này rất khó áp dụng, ngoại trừ trong phòng thí nghiệm. Tôi sẽ đưa ra một ví dụ về cách nhanh chóng điều chỉnh cài đặt để xác thực thành RADIUS máy chủ, ví dụ được sử dụng Công cụ Dịch vụ Nhận dạng của 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 
    !

    Sự tích hợp này không chỉ giúp tích hợp nhanh chóng quy trình xác thực với dịch vụ thư mục AD mà còn phân biệt xem máy tính được kết nối có thuộc về AD hay không, để hiểu thiết bị này là của công ty hay cá nhân và để đánh giá trạng thái của thiết bị được kết nối .

    Triển khai cụm cân bằng tải ASA VPN

    Triển khai cụm cân bằng tải ASA VPN

    • Hãy định cấu hình NAT trong suốt để lưu lượng giữa máy khách và tài nguyên của mạng mạng công ty không bị viết nguệch ngoạc:

    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

    • (KHÔNG BẮT BUỘC): Để hiển thị khách hàng của chúng tôi với Internet thông qua ASA (khi sử dụng đường hầm tùy chọn) bằng cách sử dụng PAT, cũng như thoát qua cùng một giao diện BÊN NGOÀI mà chúng được kết nối từ đó, bạn cần thực hiện các cài đặt sau

    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 
    !

    • Khi sử dụng một cụm, điều cực kỳ quan trọng là phải cho phép mạng nội bộ hiểu ASA nào sẽ định tuyến lưu lượng trả về cho người dùng, vì điều này, bạn cần phân phối lại các tuyến / 32 địa chỉ được cấp cho khách hàng.
      Hiện tại, chúng tôi chưa định cấu hình cụm, nhưng chúng tôi đã có các cổng VPN đang hoạt động có thể được kết nối riêng lẻ qua FQDN hoặc IP.

    Triển khai cụm cân bằng tải ASA VPN

    Chúng tôi thấy máy khách được kết nối trong bảng định tuyến của ASA đầu tiên:

    Triển khai cụm cân bằng tải ASA VPN

    Để toàn bộ cụm VPN của chúng tôi và toàn bộ mạng công ty biết tuyến đường đến máy khách của chúng tôi, chúng tôi sẽ phân phối lại tiền tố máy khách thành một giao thức định tuyến động, ví dụ 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

    Bây giờ chúng tôi có một tuyến đến máy khách từ cổng ASA-2 thứ hai và người dùng được kết nối với các cổng VPN khác nhau trong cụm có thể, ví dụ, giao tiếp trực tiếp qua điện thoại mềm của công ty, cũng như trả lại lưu lượng truy cập từ các tài nguyên mà người dùng yêu cầu sẽ đến cổng VPN mong muốn:

    Triển khai cụm cân bằng tải ASA VPN

  5. Hãy chuyển sang cấu hình cụm Cân bằng tải.

    Địa chỉ 192.168.31.40 sẽ được sử dụng làm IP ảo (VIP - tất cả các máy khách VPN ban đầu sẽ kết nối với nó), từ địa chỉ này, cụm Chính sẽ chuyển hướng sang nút cụm ít tải hơn. Đừng quên viết chuyển tiếp và đảo ngược bản ghi DNS cả cho từng địa chỉ bên ngoài/FQDN của từng nút của cụm và cho 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)#

    • Chúng tôi kiểm tra hoạt động của cụm với hai máy khách được kết nối:

    Triển khai cụm cân bằng tải ASA VPN

    • Hãy làm cho trải nghiệm của khách hàng thuận tiện hơn với cấu hình AnyConnect được tải tự động qua ASDM.

    Triển khai cụm cân bằng tải ASA VPN

    Chúng tôi đặt tên cho hồ sơ theo cách thuận tiện và liên kết chính sách nhóm của chúng tôi với nó:

    Triển khai cụm cân bằng tải ASA VPN

    Sau lần kết nối tiếp theo của ứng dụng khách, cấu hình này sẽ tự động được tải xuống và cài đặt trong ứng dụng khách AnyConnect, vì vậy nếu bạn cần kết nối, chỉ cần chọn nó từ danh sách:

    Triển khai cụm cân bằng tải ASA VPN

    Vì chúng tôi đã tạo cấu hình này chỉ trên một ASA bằng ASDM, đừng quên lặp lại các bước trên các ASA khác trong cụm.

Kết luận: Do đó, chúng tôi đã nhanh chóng triển khai một cụm gồm một số cổng VPN có cân bằng tải tự động. Việc thêm các nút mới vào cụm rất dễ dàng, với quy mô ngang đơn giản bằng cách triển khai các máy ảo ASAv mới hoặc sử dụng ASA phần cứng. Ứng dụng khách AnyConnect giàu tính năng có thể tăng cường đáng kể kết nối từ xa an toàn bằng cách sử dụng Tư thế (ước tính nhà nước), sử dụng hiệu quả nhất khi kết hợp với hệ thống kiểm soát tập trung và kế toán truy cập Công cụ dịch vụ nhận dạng.

Nguồn: www.habr.com

Thêm một lời nhận xét