Triển khai khái niệm truy cập từ xa có độ an toàn cao

Tiếp tục series bài viết về chủ đề tổ chức VPN truy cập từ xa truy cập Tôi không thể không chia sẻ kinh nghiệm triển khai thú vị của mình cấu hình VPN bảo mật cao. Một nhiệm vụ không hề nhỏ được một khách hàng đưa ra (có những nhà phát minh ở các ngôi làng ở Nga), nhưng Thử thách đã được chấp nhận và thực hiện một cách sáng tạo. Kết quả là một khái niệm thú vị với các đặc điểm sau:

  1. Một số yếu tố bảo vệ chống lại sự thay thế của thiết bị đầu cuối (có ràng buộc chặt chẽ với người dùng);
    • Đánh giá sự tuân thủ của PC người dùng với UDID được chỉ định của PC được phép trong cơ sở dữ liệu xác thực;
    • Với MFA sử dụng PC UDID từ chứng chỉ để xác thực phụ qua Cisco DUO (Bạn có thể đính kèm bất kỳ cái nào tương thích SAML/Bán kính);
  2. Xác thực đa yếu tố:
    • Chứng chỉ người dùng có xác minh trường và xác thực phụ đối với một trong số chúng;
    • Đăng nhập (không thể thay đổi, lấy từ chứng chỉ) và mật khẩu;
  3. Ước tính trạng thái của máy chủ kết nối (Tư thế)

Các thành phần giải pháp được sử dụng:

  • Cisco ASA (Cổng VPN);
  • Cisco ISE (Xác thực/Ủy quyền/Kế toán, Đánh giá Nhà nước, CA);
  • Cisco DUO (Xác thực đa yếu tố) (Bạn có thể đính kèm bất kỳ cái nào tương thích SAML/Bán kính);
  • Cisco AnyConnect (Tác nhân đa năng cho máy trạm và hệ điều hành di động);

Hãy bắt đầu với yêu cầu của khách hàng:

  1. Người dùng phải, thông qua xác thực Đăng nhập/Mật khẩu của mình, có thể tải xuống ứng dụng khách AnyConnect từ cổng VPN; tất cả các mô-đun AnyConnect cần thiết phải được cài đặt tự động theo chính sách của người dùng;
  2. Người dùng có thể tự động cấp chứng chỉ (đối với một trong các trường hợp, trường hợp chính là cấp thủ công và tải lên trên PC), nhưng tôi đã triển khai vấn đề tự động để trình diễn (không bao giờ là quá muộn để xóa nó).
  3. Xác thực cơ bản phải diễn ra theo nhiều giai đoạn, đầu tiên là xác thực chứng chỉ với phân tích các trường cần thiết và giá trị của chúng, sau đó đăng nhập/mật khẩu, chỉ lần này tên người dùng được chỉ định trong trường chứng chỉ phải được chèn vào cửa sổ đăng nhập Tên chủ đề (CN) không có khả năng chỉnh sửa.
  4. Bạn cần đảm bảo rằng thiết bị mà bạn đang đăng nhập là máy tính xách tay của công ty được cấp cho người dùng để truy cập từ xa chứ không phải thiết bị nào khác. (Một số lựa chọn đã được thực hiện để đáp ứng yêu cầu này)
  5. Trạng thái của thiết bị kết nối (ở giai đoạn này là PC) phải được đánh giá bằng cách kiểm tra toàn bộ bảng yêu cầu của khách hàng (tóm tắt):
    • Các tập tin và thuộc tính của chúng;
    • Mục đăng ký;
    • Các bản vá hệ điều hành từ danh sách được cung cấp (tích hợp SCCM sau này);
    • Tính sẵn có của phần mềm Chống vi-rút từ một nhà sản xuất cụ thể và mức độ liên quan của chữ ký;
    • Hoạt động của một số dịch vụ;
    • Sự sẵn có của một số chương trình được cài đặt;

Để bắt đầu, tôi khuyên bạn nên xem video trình diễn kết quả triển khai trên Youtube (5 phút).

Bây giờ tôi đề xuất xem xét các chi tiết triển khai không có trong video clip.

Hãy chuẩn bị hồ sơ AnyConnect:

Trước đây tôi đã đưa ra ví dụ về cách tạo hồ sơ (theo mục menu trong ASDM) trong bài viết về cài đặt Cụm cân bằng tải VPN. Bây giờ tôi muốn lưu ý riêng các tùy chọn mà chúng tôi sẽ cần:

Trong hồ sơ, chúng tôi sẽ chỉ ra cổng VPN và tên hồ sơ để kết nối với máy khách cuối:

Triển khai khái niệm truy cập từ xa có độ an toàn cao

Hãy định cấu hình việc cấp chứng chỉ tự động từ phía hồ sơ, đặc biệt là các thông số chứng chỉ và đặc biệt là chú ý đến trường Chữ viết tắt (I), trong đó một giá trị cụ thể được nhập thủ công BẠN ĐÃ máy kiểm tra (Mã định danh thiết bị duy nhất được tạo bởi ứng dụng khách Cisco AnyConnect).

Triển khai khái niệm truy cập từ xa có độ an toàn cao

Ở đây tôi muốn thực hiện một sự lạc đề trữ tình, vì bài viết này mô tả khái niệm; với mục đích trình diễn, UDID để cấp chứng chỉ được nhập vào trường Tên viết tắt của cấu hình AnyConnect. Tất nhiên, trong cuộc sống thực, nếu bạn làm điều này, thì tất cả khách hàng sẽ nhận được chứng chỉ có cùng UDID trong trường này và sẽ không có gì hiệu quả với họ vì họ cần UDID của PC cụ thể của họ. Thật không may, AnyConnect vẫn chưa triển khai việc thay thế trường UDID vào hồ sơ yêu cầu chứng chỉ thông qua một biến môi trường, chẳng hạn như bằng một biến %NGƯỜI DÙNG%.

Điều đáng chú ý là ban đầu khách hàng (trong kịch bản này) có kế hoạch cấp độc lập các chứng chỉ có UDID nhất định ở chế độ thủ công cho các PC được bảo vệ đó, đây không phải là vấn đề đối với anh ta. Tuy nhiên, đối với hầu hết chúng ta, chúng ta đều muốn tự động hóa (à, đối với tôi điều đó đúng =)).

Và đây là những gì tôi có thể cung cấp về mặt tự động hóa. Nếu AnyConnect chưa thể tự động cấp chứng chỉ bằng cách thay thế động UDID, thì có một cách khác đòi hỏi một chút suy nghĩ sáng tạo và bàn tay khéo léo - Tôi sẽ cho bạn biết khái niệm này. Trước tiên, hãy xem cách UDID được tạo bởi tác nhân AnyConnect trên các hệ điều hành khác nhau:

  • Windows — Hàm băm SHA-256 của sự kết hợp giữa khóa đăng ký DigitalProductID và Machine SID
  • OSX — Nền tảng băm SHA-256UUID
  • Linux — Hàm băm SHA-256 của UUID của phân vùng gốc.
  • apple iOS — Nền tảng băm SHA-256UUID
  • Android – Xem tài liệu trên liên kết

Theo đó, chúng tôi tạo một tập lệnh cho HĐH Windows của công ty mình, với tập lệnh này, chúng tôi tính toán UDID cục bộ bằng cách sử dụng các đầu vào đã biết và tạo yêu cầu cấp chứng chỉ bằng cách nhập UDID này vào trường bắt buộc, nhân tiện, bạn cũng có thể sử dụng máy chứng chỉ do AD cấp (bằng cách thêm xác thực kép bằng chứng chỉ vào lược đồ Nhiều chứng chỉ).

Hãy chuẩn bị các cài đặt ở phía Cisco ASA:

Hãy tạo một TrustPoint cho máy chủ ISE CA, nó sẽ là nơi cấp chứng chỉ cho máy khách. Tôi sẽ không xem xét quy trình nhập Chuỗi khóa; một ví dụ được mô tả trong bài viết của tôi về thiết lập Cụm cân bằng tải VPN.

crypto ca trustpoint ISE-CA
 enrollment terminal
 crl configure

Chúng tôi định cấu hình phân phối theo Tunnel-Group dựa trên các quy tắc phù hợp với các trường trong chứng chỉ được sử dụng để xác thực. Cấu hình AnyConnect mà chúng tôi đã tạo ở giai đoạn trước cũng được định cấu hình ở đây. Xin lưu ý rằng tôi đang sử dụng giá trị SECUREBANK-RA, để chuyển người dùng có chứng chỉ được cấp sang nhóm đường hầm AN TOÀN-NGÂN HÀNG-VPN, xin lưu ý rằng tôi có trường này trong cột yêu cầu chứng chỉ hồ sơ AnyConnect.

tunnel-group-map enable rules
!
crypto ca certificate map OU-Map 6
 subject-name attr ou eq securebank-ra
!
webvpn
 anyconnect profiles SECUREBANK disk0:/securebank.xml
 certificate-group-map OU-Map 6 SECURE-BANK-VPN
!

Thiết lập máy chủ xác thực. Trong trường hợp của tôi, đây là ISE cho giai đoạn xác thực đầu tiên và DUO (Radius Proxy) là MFA.

! CISCO ISE
aaa-server ISE protocol radius
 authorize-only
 interim-accounting-update periodic 24
 dynamic-authorization
aaa-server ISE (inside) host 192.168.99.134
 key *****
!
! DUO RADIUS PROXY
aaa-server DUO protocol radius
aaa-server DUO (inside) host 192.168.99.136
 timeout 60
 key *****
 authentication-port 1812
 accounting-port 1813
 no mschapv2-capable
!

Chúng tôi tạo các chính sách nhóm, nhóm đường hầm và các thành phần phụ trợ của chúng:

Nhóm đường hầm Mặc địnhWEBVPNNhóm sẽ được sử dụng chủ yếu để tải xuống ứng dụng khách AnyConnect VPN và cấp chứng chỉ người dùng bằng chức năng SCEP-Proxy của ASA; để làm được điều này, chúng tôi có các tùy chọn tương ứng được kích hoạt cả trên chính nhóm đường hầm và trên chính sách nhóm được liên kết Tải xuống ACvà trên hồ sơ AnyConnect đã tải (các trường để cấp chứng chỉ, v.v.). Cũng trong chính sách nhóm này, chúng tôi chỉ ra sự cần thiết phải tải xuống Mô-đun tư thế ISE.

Nhóm đường hầm AN TOÀN-NGÂN HÀNG-VPN sẽ được khách hàng tự động sử dụng khi xác thực bằng chứng chỉ đã cấp ở giai đoạn trước, vì theo Bản đồ chứng chỉ, kết nối sẽ đặc biệt rơi vào nhóm đường hầm này. Tôi sẽ cho bạn biết về các lựa chọn thú vị ở đây:

  • DUO nhóm máy chủ xác thực thứ cấp # Đặt xác thực phụ trên máy chủ DUO (Proxy bán kính)
  • tên người dùng từ chứng chỉCN # Để xác thực chính, chúng tôi sử dụng trường CN của chứng chỉ để kế thừa thông tin đăng nhập của người dùng
  • tên người dùng phụ-từ-chứng chỉ tôi # Để xác thực phụ trên máy chủ DUO, chúng tôi sử dụng tên người dùng được trích xuất và các trường Tên viết tắt (I) của chứng chỉ.
  • khách hàng điền trước tên người dùng # điền sẵn tên người dùng vào cửa sổ xác thực mà không có khả năng thay đổi
  • ứng dụng khách tên người dùng điền trước ẩn ẩn đẩy mật khẩu sử dụng chung # Chúng tôi ẩn cửa sổ nhập thông tin đăng nhập/mật khẩu để xác thực phụ DUO và sử dụng phương thức thông báo (sms/push/điện thoại) - dock để yêu cầu xác thực thay vì trường mật khẩu đây

!
access-list posture-redirect extended permit tcp any host 72.163.1.80 
access-list posture-redirect extended deny ip any any
!
access-list VPN-Filter extended permit ip any any
!
ip local pool vpn-pool 192.168.100.33-192.168.100.63 mask 255.255.255.224
!
group-policy SECURE-BANK-VPN internal
group-policy SECURE-BANK-VPN attributes
 dns-server value 192.168.99.155 192.168.99.130
 vpn-filter value VPN-Filter
 vpn-tunnel-protocol ssl-client 
 split-tunnel-policy tunnelall
 default-domain value ashes.cc
 address-pools value vpn-pool
 webvpn
  anyconnect ssl dtls enable
  anyconnect mtu 1300
  anyconnect keep-installer installed
  anyconnect ssl keepalive 20
  anyconnect ssl rekey time none
  anyconnect ssl rekey method ssl
  anyconnect dpd-interval client 30
  anyconnect dpd-interval gateway 30
  anyconnect ssl compression lzs
  anyconnect dtls compression lzs
  anyconnect modules value iseposture
  anyconnect profiles value SECUREBANK type user
!
group-policy AC-DOWNLOAD internal
group-policy AC-DOWNLOAD attributes
 dns-server value 192.168.99.155 192.168.99.130
 vpn-filter value VPN-Filter
 vpn-tunnel-protocol ssl-client 
 split-tunnel-policy tunnelall
 default-domain value ashes.cc
 address-pools value vpn-pool
 scep-forwarding-url value http://ise.ashes.cc:9090/auth/caservice/pkiclient.exe
 webvpn
  anyconnect ssl dtls enable
  anyconnect mtu 1300
  anyconnect keep-installer installed
  anyconnect ssl keepalive 20
  anyconnect ssl rekey time none
  anyconnect ssl rekey method ssl
  anyconnect dpd-interval client 30
  anyconnect dpd-interval gateway 30
  anyconnect ssl compression lzs
  anyconnect dtls compression lzs
  anyconnect modules value iseposture
  anyconnect profiles value SECUREBANK type user
!
tunnel-group DefaultWEBVPNGroup general-attributes
 address-pool vpn-pool
 authentication-server-group ISE
 accounting-server-group ISE
 default-group-policy AC-DOWNLOAD
 scep-enrollment enable
tunnel-group DefaultWEBVPNGroup webvpn-attributes
 authentication aaa certificate
!
tunnel-group SECURE-BANK-VPN type remote-access
tunnel-group SECURE-BANK-VPN general-attributes
 address-pool vpn-pool
 authentication-server-group ISE
 secondary-authentication-server-group DUO
 accounting-server-group ISE
 default-group-policy SECURE-BANK-VPN
 username-from-certificate CN
 secondary-username-from-certificate I
tunnel-group SECURE-BANK-VPN webvpn-attributes
 authentication aaa certificate
 pre-fill-username client
 secondary-pre-fill-username client hide use-common-password push
 group-alias SECURE-BANK-VPN enable
 dns-group ASHES-DNS
!

Tiếp theo chúng ta chuyển sang ISE:

Chúng tôi định cấu hình người dùng cục bộ (bạn có thể sử dụng AD/LDAP/ODBC, v.v.), để đơn giản, tôi đã tạo một người dùng cục bộ trong chính ISE và gán nó vào trường Mô tả máy tính UDID từ đó anh ta được phép đăng nhập qua VPN. Nếu tôi sử dụng xác thực cục bộ trên ISE, tôi sẽ chỉ bị giới hạn ở một thiết bị vì không có nhiều trường, nhưng trong cơ sở dữ liệu xác thực của bên thứ ba, tôi sẽ không có những hạn chế như vậy.

Triển khai khái niệm truy cập từ xa có độ an toàn cao

Hãy xem chính sách ủy quyền, nó được chia thành bốn giai đoạn kết nối:

  • giai đoạn 1 — Chính sách tải xuống tác nhân AnyConnect và cấp chứng chỉ
  • giai đoạn 2 — Chính sách xác thực chính Đăng nhập (từ chứng chỉ)/Mật khẩu + Chứng chỉ có xác thực UDID
  • giai đoạn 3 — Xác thực thứ cấp qua Cisco DUO (MFA) sử dụng UDID làm tên người dùng + Đánh giá trạng thái
  • giai đoạn 4 — Sự cho phép cuối cùng ở trạng thái:
    • Tuân thủ;
    • Xác thực UDID (từ chứng chỉ + ràng buộc đăng nhập),
    • Cisco DUO MFA;
    • Xác thực bằng cách đăng nhập;
    • Xác thực chứng chỉ;

Triển khai khái niệm truy cập từ xa có độ an toàn cao

Hãy xem xét một điều kiện thú vị UUID_VALIDATED, có vẻ như người dùng xác thực thực sự đến từ một PC có UDID được phép liên kết trong trường Mô tả tài khoản, các điều kiện trông như thế này:

Triển khai khái niệm truy cập từ xa có độ an toàn cao

Hồ sơ ủy quyền được sử dụng ở các giai đoạn 1,2,3 như sau:

Triển khai khái niệm truy cập từ xa có độ an toàn cao

Bạn có thể kiểm tra chính xác cách UDID từ ứng dụng khách AnyConnect đến với chúng tôi bằng cách xem chi tiết phiên ứng dụng khách trong ISE. Cụ thể chúng ta sẽ thấy AnyConnect thông qua cơ chế AXIT không chỉ gửi thông tin về nền tảng mà còn cả UDID của thiết bị dưới dạng Cisco-AV-PAIR:

Triển khai khái niệm truy cập từ xa có độ an toàn cao

Hãy chú ý đến chứng chỉ được cấp cho người dùng và trường Chữ viết tắt (I), được sử dụng để lấy nó làm thông tin đăng nhập cho xác thực MFA thứ cấp trên Cisco DUO:

Triển khai khái niệm truy cập từ xa có độ an toàn cao

Về phía DUO Radius Proxy trong nhật ký, chúng ta có thể thấy rõ yêu cầu xác thực được thực hiện như thế nào, nó sử dụng UDID làm tên người dùng:

Triển khai khái niệm truy cập từ xa có độ an toàn cao

Từ cổng DUO, chúng tôi thấy một sự kiện xác thực thành công:

Triển khai khái niệm truy cập từ xa có độ an toàn cao

Và trong thuộc tính người dùng tôi đã đặt nó ALIAS, mà tôi đã sử dụng để đăng nhập, đây là UDID của PC được phép đăng nhập:

Triển khai khái niệm truy cập từ xa có độ an toàn cao

Kết quả là chúng tôi đã nhận được:

  • Xác thực người dùng và thiết bị đa yếu tố;
  • Bảo vệ chống giả mạo thiết bị của người dùng;
  • Đánh giá tình trạng của thiết bị;
  • Tiềm năng tăng cường kiểm soát với chứng chỉ máy miền, v.v.;
  • Bảo vệ toàn diện nơi làm việc từ xa với các mô-đun bảo mật được triển khai tự động;

Liên kết tới các bài viết trong loạt bài Cisco VPN:

Nguồn: www.habr.com

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