Cách cấu hình máy chủ tập tin Client

Trong kiến ​​trúc máy khách/máy chủ, một cụm máy chủ tương đối nhỏ quản lý dữ liệu được lưu trong bộ nhớ cache và truy cập vào cùng một dữ liệu cho nhiều ứng dụng máy khách. Máy khách có thể cập nhật và truy cập dữ liệu một cách hiệu quả, để máy chủ quản lý phân phối dữ liệu cho các máy khách khác và bất kỳ đồng bộ hóa nào với các kho lưu trữ dữ liệu bên ngoài

Show
  • Triển khai máy khách/máy chủ tiêu chuẩn

    Trong cấu trúc liên kết máy khách/máy chủ phổ biến nhất, một nhóm máy chủ bộ đệm cung cấp dịch vụ bộ đệm cho nhiều máy khách. Các máy chủ bộ đệm có một kho lưu trữ dữ liệu đồng nhất trong các vùng dữ liệu được sao chép hoặc phân vùng trên cụm máy chủ

  • Cách thức hoạt động của Server Discovery

    Bộ định vị VMware Tanzu GemFire ​​cung cấp dịch vụ khám phá máy chủ linh hoạt và đáng tin cậy cho khách hàng của bạn. Bạn có thể sử dụng tất cả các máy chủ cho tất cả các yêu cầu của khách hàng hoặc nhóm các máy chủ theo chức năng, với bộ định vị hướng từng yêu cầu của khách hàng đến đúng nhóm máy chủ

  • Cách kết nối máy khách/máy chủ hoạt động

    Nhóm máy chủ trong quy trình máy khách VMware Tanzu GemFire ​​của bạn quản lý tất cả các yêu cầu kết nối máy khách đến tầng máy chủ. Để sử dụng tốt nhất chức năng nhóm, bạn nên hiểu cách nhóm quản lý các kết nối máy chủ

  • Định cấu hình hệ thống máy khách/máy chủ

    Định cấu hình quy trình máy chủ và máy khách cũng như vùng dữ liệu để chạy hệ thống máy khách/máy chủ của bạn

  • Sắp xếp máy chủ thành các nhóm thành viên hợp lý

    Trong cấu hình máy khách/máy chủ, bằng cách đặt máy chủ vào các nhóm thành viên hợp lý, bạn có thể kiểm soát máy chủ nào máy khách của bạn sử dụng và nhắm mục tiêu máy chủ cụ thể cho dữ liệu hoặc tác vụ cụ thể. Bạn có thể định cấu hình máy chủ để quản lý các tập dữ liệu khác nhau hoặc hướng lưu lượng truy cập máy khách cụ thể đến một tập hợp con các máy chủ, chẳng hạn như những máy chủ được kết nối trực tiếp với cơ sở dữ liệu phía sau

  • Cấu hình ví dụ máy khách/máy chủ

    Để cấu hình dễ dàng, bạn có thể bắt đầu với các cấu hình máy khách/máy chủ ví dụ này và sửa đổi cho hệ thống của mình

  • Tinh chỉnh Cấu hình Máy khách/Máy chủ của bạn

    Bạn có thể tinh chỉnh hệ thống máy khách/máy chủ của mình bằng cân bằng tải máy chủ. Ví dụ: bạn có thể định cấu hình tần suất máy chủ kiểm tra tải của chúng bằng thuộc tính máy chủ bộ nhớ cache

    vars
    clean-all
    build-ca
    
    0 hoặc định cấu hình số liệu tải máy chủ của riêng bạn bằng cách triển khai gói
    vars
    clean-all
    build-ca
    
    1

    OpenVPN là một SSL VPN đầy đủ tính năng triển khai phần mở rộng mạng bảo mật OSI lớp 2 hoặc 3 bằng cách sử dụng giao thức SSL/TLS tiêu chuẩn của ngành, hỗ trợ các phương thức xác thực ứng dụng khách linh hoạt dựa trên chứng chỉ, thẻ thông minh và/hoặc thông tin đăng nhập tên người dùng/mật khẩu và cho phép người dùng . OpenVPN không phải là proxy ứng dụng web và không hoạt động thông qua trình duyệt web

    OpenVPN 2. 0 mở rộng khả năng của OpenVPN 1. x bằng cách cung cấp chế độ máy khách/máy chủ có thể mở rộng, cho phép nhiều máy khách kết nối với một quy trình máy chủ OpenVPN duy nhất qua một cổng TCP hoặc UDP. OpenVPN 2. 3 bao gồm một số lượng lớn các cải tiến, bao gồm hỗ trợ IPv6 đầy đủ và hỗ trợ PolarSSL

    Tài liệu này cung cấp hướng dẫn từng bước để định cấu hình OpenVPN 2. x máy khách/máy chủ VPN, bao gồm

    • .
    • .
    • .
    • .
    • .
    • .
    • .
    • .
    • .
    • .
    • .
    • .
    • .
    • .
    • .
    • .
    • .
    • .
    • .
    • .
    • .
    • .

    Người thiếu kiên nhẫn có thể muốn chuyển thẳng đến các tệp cấu hình mẫu

    • Tập tin cấu hình máy chủ

    • Tập tin cấu hình máy khách

     

    Đối tượng dự định

    HOWTO này giả định rằng người đọc đã có hiểu biết trước về các khái niệm mạng cơ bản như địa chỉ IP, tên DNS, mặt nạ mạng, mạng con, định tuyến IP, bộ định tuyến, giao diện mạng, mạng LAN, cổng và quy tắc tường lửa

    Tài liệu bổ sung

    Sách OpenVPN

    Xin hãy nhìn vào

    OpenVPN 1. x HƯỚNG DẪN

    Bản gốc OpenVPN 1. x HOWTO vẫn khả dụng và vẫn phù hợp với cấu hình điểm-điểm hoặc khóa tĩnh

    Các bài viết về OpenVPN

    Để biết thêm tài liệu, hãy xem và OpenVPN wiki

    Khởi động nhanh OpenVPN

    Mặc dù HOWTO này sẽ hướng dẫn bạn thiết lập VPN máy khách/máy chủ có khả năng mở rộng bằng cách sử dụng X509 PKI (cơ sở hạ tầng khóa công khai sử dụng chứng chỉ và khóa riêng tư), điều này có thể là quá mức cần thiết nếu bạn chỉ đang tìm kiếm một thiết lập VPN đơn giản với một máy chủ có thể xử lý

    Nếu muốn một VPN chạy nhanh với cấu hình tối thiểu, bạn có thể xem CÁCH MỎNG Khóa Tĩnh

    Ưu điểm của khóa tĩnh

    • Thiết lập đơn giản
    • Không có X509 PKI (Cơ sở hạ tầng khóa công khai) để duy trì

    Nhược điểm của khóa tĩnh

    • Khả năng mở rộng hạn chế -- một máy khách, một máy chủ
    • Thiếu bí mật chuyển tiếp hoàn hảo --sự thỏa hiệp chính dẫn đến việc tiết lộ toàn bộ các phiên trước đó
    • Khóa bí mật phải tồn tại ở dạng bản rõ trên mỗi VPN ngang hàng
    • Khóa bí mật phải được trao đổi bằng kênh bảo mật có sẵn

    Cài đặt OpenVPN

    Bạn có thể tải xuống mã nguồn OpenVPN và trình cài đặt Windows tại đây. Bản phát hành gần đây (2. 2 trở lên) cũng có sẵn dưới dạng các gói Debian và RPM;

    Để bảo mật, bạn nên kiểm tra chữ ký phát hành tệp sau khi tải xuống

    Tệp thực thi OpenVPN phải được cài đặt trên cả máy chủ và máy khách, vì tệp thực thi duy nhất cung cấp cả chức năng máy khách và máy chủ

    Ghi chú Linux (sử dụng gói RPM)

    Nếu bạn đang sử dụng bản phân phối Linux hỗ trợ các gói RPM (SuSE, Fedora, Redhat, v.v. ), tốt nhất là cài đặt theo cơ chế này. Phương pháp đơn giản nhất là tìm tệp RPM nhị phân hiện có cho bản phân phối của bạn. Bạn cũng có thể tạo tệp RPM nhị phân của riêng mình

    rpmbuild -tb openvpn-[version].tar.gz

    Một khi bạn có. rpm, bạn có thể cài đặt nó với thông thường

    rpm -ivh openvpn-[details].rpm

    hoặc nâng cấp cài đặt hiện có với

    rpm -Uvh openvpn-[details].rpm

    Cài đặt OpenVPN từ gói RPM nhị phân có các phụ thuộc này

    • opensl
    • lzo
    • chiều

    Hơn nữa, nếu bạn đang xây dựng gói RPM nhị phân của riêng mình, thì có một số phụ thuộc bổ sung

    • mởssl-devel
    • lzo-devel
    • pam-devel

    Xem openvpn. spec để biết các ghi chú bổ sung về việc xây dựng gói RPM cho Red Hat Linux 9 hoặc xây dựng với các phụ thuộc giảm

    Ghi chú Linux (không có RPM)

    Nếu bạn đang sử dụng Debian, Gentoo hoặc bản phân phối Linux không dựa trên RPM, hãy sử dụng cơ chế đóng gói dành riêng cho bản phân phối của bạn, chẳng hạn như apt-get trên Debian hoặc emerge trên Gentoo

    Cũng có thể cài đặt OpenVPN trên Linux bằng cách sử dụng phổ quát. /configure phương thức. Đầu tiên mở rộng. hắc ín. tập tin gz

    tar xfz openvpn-[version].tar.gz

    Sau đó cd vào thư mục cấp cao nhất và gõ

    ./configure
    make
    make install

    Ghi chú Windows

    Có thể cài đặt OpenVPN cho Windows từ tệp exe tự cài đặt trên trang tải xuống OpenVPN. Hãy nhớ rằng OpenVPN sẽ chỉ chạy trên Windows XP trở lên. Cũng lưu ý rằng OpenVPN phải được cài đặt và chạy bởi người dùng có đặc quyền quản trị (hạn chế này do Windows áp đặt, không phải OpenVPN). Hạn chế có thể được khắc phục bằng cách chạy OpenVPN trong nền dưới dạng dịch vụ, trong trường hợp đó, ngay cả người dùng không phải quản trị viên cũng có thể truy cập VPN sau khi được cài đặt. Thảo luận thêm về các vấn đề đặc quyền của OpenVPN + Windows

    Trình cài đặt OpenVPN chính thức dành cho Windows bao gồm OpenVPN-GUI, cho phép quản lý các kết nối OpenVPN từ một tiểu dụng trên khay hệ thống. Các ứng dụng GUI khác cũng có sẵn

    Sau khi bạn chạy trình cài đặt Windows, OpenVPN đã sẵn sàng để sử dụng và sẽ tự liên kết với các tệp có. tiện ích ovpn. Để chạy OpenVPN, bạn có thể

    • Nhấp chuột phải vào tệp cấu hình OpenVPN (. ovpn) và chọn Bắt đầu OpenVPN trên tệp cấu hình này. Sau khi chạy, bạn có thể sử dụng phím F4 để thoát
    • Chạy OpenVPN từ Cửa sổ nhắc lệnh bằng lệnh chẳng hạn như.
      ______5

      Sau khi chạy trong cửa sổ nhắc lệnh, OpenVPN có thể bị dừng bằng phím F4

    • Chạy OpenVPN như một dịch vụ bằng cách đặt một hoặc nhiều. ovpn trong \Program Files\OpenVPN\config và bắt đầu Dịch vụ OpenVPN, dịch vụ này có thể được kiểm soát từ Menu Bắt đầu -> Bảng Điều khiển -> Công cụ Quản trị -> Dịch vụ

    Ghi chú cài đặt Windows bổ sung

    Ghi chú Mac OS X

    Angelo Laub và Dirk Theisen đã phát triển GUI OpenVPN cho OS X

    hệ điều hành khác

    Một số lưu ý có sẵn trong tệp CÀI ĐẶT cho các hệ điều hành cụ thể. Nói chung, các

    ./configure
    make
    make install

    phương pháp này có thể được sử dụng hoặc bạn có thể tìm kiếm một cổng hoặc gói OpenVPN dành riêng cho hệ điều hành/bản phân phối của bạn


    Xác định nên sử dụng VPN định tuyến hay bắc cầu

    Xem  để biết tổng quan về Định tuyến so với. Cầu nối Ethernet. Xem thêm trang Kết nối Ethernet của OpenVPN để biết thêm ghi chú và chi tiết về kết nối

    Nhìn chung, định tuyến có lẽ là lựa chọn tốt hơn cho hầu hết mọi người, vì nó hiệu quả hơn và dễ thiết lập hơn (đối với bản thân cấu hình OpenVPN) so với bắc cầu. Định tuyến cũng cung cấp khả năng lớn hơn để kiểm soát có chọn lọc quyền truy cập trên cơ sở khách hàng cụ thể

    Tôi khuyên bạn nên sử dụng định tuyến trừ khi bạn cần một tính năng cụ thể yêu cầu bắc cầu, chẳng hạn như

    • VPN cần có khả năng xử lý các giao thức không phải IP như IPX,
    • bạn đang chạy các ứng dụng qua VPN dựa trên truyền phát mạng (chẳng hạn như trò chơi LAN) hoặc
    • bạn muốn cho phép duyệt chia sẻ tệp Windows qua VPN mà không cần thiết lập máy chủ Samba hoặc WINS

    Đánh số mạng con riêng

    Việc thiết lập VPN thường đòi hỏi phải liên kết các mạng con riêng từ các vị trí khác nhau với nhau

    Cơ quan cấp số được gán Internet (IANA) đã dành riêng ba khối không gian địa chỉ IP sau đây cho các mạng riêng (được mã hóa trong RFC 1918)

    10. 0. 0. 010. 255. 255. 255(10/8 tiền tố)172. 16. 0. 0172. 31. 255. 255(172. tiền tố 16/12)192. 168. 0. 0192. 168. 255. 255(192. tiền tố 168/16)

    Mặc dù các địa chỉ từ các khối mạng này thường được sử dụng trong cấu hình VPN, nhưng điều quan trọng là phải chọn các địa chỉ giảm thiểu khả năng xảy ra xung đột địa chỉ IP hoặc mạng con. Các loại xung đột cần phải tránh là

    • xung đột từ các trang web khác nhau trên VPN sử dụng cùng một mạng con LAN, hoặc
    • kết nối truy cập từ xa từ các trang web đang sử dụng mạng con riêng xung đột với mạng con VPN của bạn

    Ví dụ: giả sử bạn sử dụng 192 phổ biến. 168. 0. Mạng con 0/24 làm mạng con LAN riêng của bạn. Bây giờ bạn đang cố gắng kết nối với VPN từ một quán cà phê internet đang sử dụng cùng một mạng con cho mạng LAN WiFi của nó. Bạn sẽ gặp xung đột định tuyến vì máy của bạn sẽ không biết nếu 192. 168. 0. 1 đề cập đến cổng WiFi cục bộ hoặc cùng một địa chỉ trên VPN

    Một ví dụ khác, giả sử bạn muốn liên kết nhiều trang web với nhau bằng VPN, nhưng mỗi trang web đang sử dụng 192. 168. 0. 0/24 làm mạng con LAN của nó. Điều này sẽ không hoạt động nếu không thêm một lớp dịch NAT phức tạp, vì VPN sẽ không biết cách định tuyến các gói giữa nhiều trang nếu các trang đó không sử dụng mạng con nhận dạng duy nhất chúng

    Giải pháp tốt nhất là tránh sử dụng 10. 0. 0. 0/24 hoặc 192. 168. 0. 0/24 làm địa chỉ mạng LAN riêng. Thay vào đó, hãy sử dụng thứ gì đó có xác suất thấp hơn được sử dụng trong quán cà phê WiFi, sân bay hoặc khách sạn nơi bạn có thể muốn kết nối từ xa. Các ứng cử viên tốt nhất là các mạng con ở giữa 10. 0. 0. 0/8 netblock (ví dụ 10. 66. 77. 0/24)

    Và để tránh xung đột đánh số IP giữa các trang, hãy luôn sử dụng cách đánh số duy nhất cho các mạng con LAN của bạn


    Thiết lập Cơ quan cấp chứng chỉ (CA) của riêng bạn và tạo chứng chỉ cũng như khóa cho máy chủ OpenVPN và nhiều máy khách

    Tổng quan

    Bước đầu tiên trong việc xây dựng OpenVPN 2. x là thiết lập PKI (cơ sở hạ tầng khóa công khai). PKI bao gồm

    • một chứng chỉ riêng (còn được gọi là khóa chung) và khóa riêng cho máy chủ và từng máy khách, và
    • chứng chỉ và khóa của Tổ chức phát hành chứng chỉ (CA) chính được sử dụng để ký từng chứng chỉ máy chủ và máy khách

    OpenVPN hỗ trợ xác thực hai chiều dựa trên chứng chỉ, nghĩa là máy khách phải xác thực chứng chỉ máy chủ và máy chủ phải xác thực chứng chỉ máy khách trước khi thiết lập niềm tin lẫn nhau

    Cả máy chủ và máy khách sẽ xác thực máy chủ kia bằng cách trước tiên xác minh rằng chứng chỉ xuất trình đã được ký bởi cơ quan cấp chứng chỉ chính (CA), sau đó bằng cách kiểm tra thông tin trong tiêu đề chứng chỉ hiện được xác thực, chẳng hạn như tên chung của chứng chỉ hoặc loại chứng chỉ (máy khách

    Mô hình bảo mật này có một số tính năng mong muốn từ góc độ VPN

    • Máy chủ chỉ cần chứng chỉ/khóa của chính nó -- nó không cần biết từng chứng chỉ của từng máy khách có thể kết nối với nó
    • Máy chủ sẽ chỉ chấp nhận các máy khách có chứng chỉ được ký bởi chứng chỉ CA chính (mà chúng tôi sẽ tạo bên dưới). Và bởi vì máy chủ có thể thực hiện xác minh chữ ký này mà không cần quyền truy cập vào khóa riêng của CA, nên khóa CA (khóa nhạy cảm nhất trong toàn bộ PKI) có thể nằm trên một máy hoàn toàn khác, ngay cả khi không có kết nối mạng
    • Nếu khóa riêng tư bị xâm phạm, nó có thể bị vô hiệu hóa bằng cách thêm chứng chỉ của nó vào CRL (danh sách thu hồi chứng chỉ). CRL cho phép từ chối có chọn lọc các chứng chỉ bị xâm phạm mà không yêu cầu xây dựng lại toàn bộ PKI
    • Máy chủ có thể thực thi các quyền truy cập dành riêng cho máy khách dựa trên các trường chứng chỉ được nhúng, chẳng hạn như Tên chung

    Lưu ý rằng đồng hồ của máy chủ và máy khách cần phải gần như đồng bộ, nếu không chứng chỉ có thể không hoạt động bình thường

    Tạo khóa & chứng chỉ của Tổ chức phát hành chứng chỉ (CA) chính

    Trong phần này, chúng tôi sẽ tạo chứng chỉ/khóa CA chính, chứng chỉ/khóa máy chủ và chứng chỉ/khóa cho 3 máy khách riêng biệt

    Để quản lý PKI, chúng tôi sẽ sử dụng easy-rsa 2, một bộ tập lệnh đi kèm với OpenVPN 2. 2. x trở về trước. Nếu bạn đang sử dụng OpenVPN 2. 3. x, bạn cần tải xuống easy-rsa 2 riêng biệt từ đây

    Để quản lý PKI, chúng tôi sẽ sử dụng easy-rsa 2, một bộ tập lệnh đi kèm với OpenVPN 2. 2. x trở về trước. Nếu bạn đang sử dụng OpenVPN 2. 3. x, bạn có thể cần tải xuống easy-rsa 2 riêng biệt từ trang dự án easy-rsa-old. Thay vào đó, trên các nền tảng *NIX, bạn nên xem xét sử dụng easy-rsa 3;

    Nếu bạn đang sử dụng Linux, BSD hoặc HĐH tương tự unix, hãy mở shell và cd vào thư mục con easy-rsa . Nếu bạn đã cài đặt OpenVPN từ tệp RPM hoặc DEB, thư mục easy-rsa thường có trong /usr/share/doc/packages/openvpn hoặc /usr/share/doc/openvpn(tốt nhất bạn nên sao chép thư mục này sang một vị trí khác . Nếu bạn đã cài đặt từ một. hắc ín. gz, thư mục easy-rsa sẽ nằm trong thư mục cấp cao nhất của cây nguồn mở rộng

    Nếu bạn đang sử dụng Windows, hãy mở cửa sổ Dấu nhắc Lệnh và cd vào \Program Files\OpenVPN\easy-rsa. Chạy tệp bó sau để sao chép các tệp cấu hình vào vị trí (tệp này sẽ ghi đè lên bất kỳ tệp vars nào có sẵn. bat và openssl. tập tin cnf)

    init-config

    Bây giờ hãy chỉnh sửa tệp vars (được gọi là vars. bat trên Windows) và đặt các tham số KEY_COUNTRY, KEY_PROVINCE, KEY_CITY, KEY_ORG và KEY_EMAIL. Đừng để trống bất kỳ tham số nào trong số này

    Tiếp theo, khởi tạo PKI. Trên Linux/BSD/Unix

    ________số 8

    Trên Windows

    vars
    clean-all
    build-ca
    

    Lệnh cuối cùng (build-ca) sẽ tạo khóa và chứng chỉ của tổ chức phát hành chứng chỉ (CA) bằng cách gọi lệnh opensslcommand tương tác

    rpm -ivh openvpn-[details].rpm
    0

    Lưu ý rằng trong trình tự trên, hầu hết các tham số được truy vấn đều được đặt mặc định thành các giá trị được đặt trong varsor vars. tệp dơi. Tham số duy nhất phải được nhập rõ ràng là Tên chung. Trong ví dụ trên, tôi đã sử dụng "OpenVPN-CA"

    Tạo chứng chỉ & khóa cho máy chủ

    Tiếp theo, chúng tôi sẽ tạo chứng chỉ và khóa riêng cho máy chủ. Trên Linux/BSD/Unix

    rpm -ivh openvpn-[details].rpm
    1

    Trên Windows

    rpm -ivh openvpn-[details].rpm
    2

    Như trong bước trước, hầu hết các tham số có thể được mặc định. Khi Tên chung được truy vấn, hãy nhập "máy chủ". Hai truy vấn khác yêu cầu phản hồi tích cực, "Ký chứng chỉ? [y/n]" và "1 trong 1 yêu cầu chứng chỉ được chứng nhận, cam kết? [y/n]"

    Tạo chứng chỉ và khóa cho 3 khách hàng

    Tạo chứng chỉ ứng dụng khách rất giống với bước trước. Trên Linux/BSD/Unix

    rpm -ivh openvpn-[details].rpm
    3

    Trên Windows

    rpm -ivh openvpn-[details].rpm
    4

    Nếu bạn muốn bảo vệ các khóa máy khách của mình bằng mật khẩu, hãy thay thế tập lệnh build-key-pass 

    Hãy nhớ rằng đối với mỗi khách hàng, hãy đảm bảo nhập Tên chung thích hợp khi được nhắc, tôi. e. "khách hàng1", "khách hàng2" hoặc "khách hàng3". Luôn sử dụng một tên chung duy nhất cho mỗi khách hàng

    Tạo tham số Diffie Hellman

    Các tham số Diffie Hellman phải được tạo cho máy chủ OpenVPN. Trên Linux/BSD/Unix

    rpm -ivh openvpn-[details].rpm
    5

    Trên Windows

    rpm -ivh openvpn-[details].rpm
    6

    đầu ra

    rpm -ivh openvpn-[details].rpm
    7

    Tập tin chính

    Bây giờ, chúng ta sẽ tìm thấy các khóa và chứng chỉ mới được tạo trong thư mục con keys. Dưới đây là giải thích về các tệp có liên quan

    Tên tệp cần theo mục đíchSecretca. máy chủ crt + tất cả máy kháchChứng chỉ CA gốcNOca. chỉ máy ký keyKeyRoot CA keyYESdh{n}. chỉ máy chủ pemThông số Diffie HellmanNOserver. crtserver onlyChứng chỉ máy chủNOserver. chỉ máy chủ khóaKhóa máy chủYESclient1. chỉ crtclient1Client1 Chứng chỉNOclient1. chỉ keyclient1Client1 KeyYESclient2. chỉ crtclient2Client2 Chứng chỉNOclient2. chỉ keyclient2Client2 KeyYESclient3. chỉ crtclient3Client3 Chứng chỉNOclient3. keyclient3 onlyClient3 KeyYES

    Bước cuối cùng trong quy trình tạo khóa là sao chép tất cả các tệp vào máy cần chúng, lưu ý sao chép các tệp bí mật qua một kênh an toàn

    Bây giờ chờ đợi, bạn có thể nói. Có thể thiết lập PKI mà không cần kênh bảo mật có sẵn không?

     

    Câu trả lời bề ngoài là có. Trong ví dụ trên, để cho ngắn gọn, chúng tôi đã tạo tất cả các khóa riêng ở cùng một nơi. Với một chút nỗ lực hơn, chúng ta có thể đã làm điều này khác đi. Ví dụ: thay vì tạo chứng chỉ ứng dụng khách và khóa trên máy chủ, chúng tôi có thể yêu cầu ứng dụng khách tạo khóa riêng của chính nó cục bộ, sau đó gửi Yêu cầu ký chứng chỉ (CSR) tới máy ký khóa. Đổi lại, máy ký khóa có thể đã xử lý CSR và trả lại chứng chỉ đã ký cho khách hàng. Điều này có thể đã được thực hiện mà không bao giờ yêu cầu một bí mật. tệp key rời khỏi ổ cứng của máy mà tệp được tạo


    Tạo tập tin cấu hình cho máy chủ và máy khách

    Lấy các tập tin cấu hình mẫu

    Tốt nhất là sử dụng các tệp cấu hình mẫu OpenVPN làm điểm bắt đầu cho cấu hình của riêng bạn. Những tập tin này cũng có thể được tìm thấy trong

    • thư mục sample-config-files của phân phối nguồn OpenVPN
    • thư mục sample-config-files trong /usr/share/doc/packages/openvpn hoặc /usr/share/doc/openvpn nếu bạn đã cài đặt từ gói RPM hoặc DEB
    • Menu Bắt đầu -> Tất cả Chương trình -> OpenVPN -> Tệp Cấu hình Mẫu OpenVPN trên Windows

    Xin lưu ý rằng trên Linux, BSD hoặc các hệ điều hành tương tự unix, các tệp cấu hình mẫu được đặt tên là máy chủ. conf và ứng dụng khách. conf. Trên Windows, chúng được đặt tên là máy chủ. ovpn và ứng dụng khách. ovpn

    Chỉnh sửa tệp cấu hình máy chủ

    Tệp cấu hình máy chủ mẫu là điểm khởi đầu lý tưởng cho cấu hình máy chủ OpenVPN. Nó sẽ tạo một VPN bằng giao diện mạng TUN ảo (để định tuyến), sẽ lắng nghe các kết nối máy khách trên cổng UDP 1194 (số cổng chính thức của OpenVPN) và phân phối địa chỉ ảo cho các máy khách kết nối từ 10. 8. 0. 0/24 mạng con

    Trước khi sử dụng tệp cấu hình mẫu, trước tiên bạn nên chỉnh sửa các thông số ca, cert, key và dh để trỏ đến các tệp bạn đã tạo trong phần ở trên

    Đến đây, file cấu hình máy chủ đã có thể sử dụng được, tuy nhiên bạn vẫn có thể tùy chỉnh thêm

    • Nếu đang sử dụng cầu nối Ethernet, bạn phải sử dụng cầu nối máy chủ và nhấn nhà phát triển thay vì máy chủ và điều chỉnh nhà phát triển
    • Nếu bạn muốn máy chủ OpenVPN của mình lắng nghe trên cổng TCP thay vì cổng UDP, hãy sử dụng proto tcpinthay vì proto udp (Nếu muốn OpenVPN lắng nghe trên cả cổng UDP và TCP, bạn phải chạy hai phiên bản OpenVPN riêng biệt)
    • Nếu bạn muốn sử dụng dải địa chỉ IP ảo khác với 10. 8. 0. 0/24, bạn nên sửa đổi chỉ thị máy chủ. Hãy nhớ rằng dải địa chỉ IP ảo này phải là dải riêng tư hiện không được sử dụng trên mạng của bạn
    • Bỏ ghi chú lệnh client-to-client nếu bạn muốn kết nối các máy khách để có thể liên lạc với nhau qua VPN. Theo mặc định, khách hàng sẽ chỉ có thể truy cập máy chủ
    • Nếu đang sử dụng Linux, BSD hoặc HĐH tương tự Unix, thì bạn có thể cải thiện tính bảo mật bằng cách bỏ ghi chú chỉ thị không người dùng nào và nhóm không ai cả

    Nếu bạn muốn chạy nhiều phiên bản OpenVPN trên cùng một máy, mỗi phiên bản sử dụng một tệp cấu hình khác nhau, điều đó là có thể nếu bạn

    • Sử dụng số cổng khác nhau cho mỗi phiên bản (giao thức UDP và TCP sử dụng các không gian cổng khác nhau để bạn có thể chạy một trình nền lắng nghe trên UDP-1194 và một trình nền khác trên TCP-1194)
    • Nếu bạn đang sử dụng Windows, mỗi cấu hình OpenVPN cần có bộ điều hợp TAP-Windows riêng. Bạn có thể thêm bộ điều hợp bổ sung bằng cách đi tới Menu Bắt đầu -> Tất cả Chương trình -> TAP-Windows -> Thêm bộ điều hợp ethernet ảo TAP-Windows mới
    • Nếu bạn đang chạy nhiều phiên bản OpenVPN trong cùng một thư mục, hãy đảm bảo chỉnh sửa các lệnh tạo tệp đầu ra để nhiều phiên bản không ghi đè lên các tệp đầu ra của nhau. Các lệnh này bao gồm log, log-append, status và ifconfig-pool-persist

    Chỉnh sửa tệp cấu hình máy khách

    Tệp cấu hình máy khách mẫu (máy khách. conf trên Linux/BSD/Unix hoặc ứng dụng khách. ovpn trên Windows) phản ánh các lệnh mặc định được đặt trong tệp cấu hình máy chủ mẫu

    • Giống như tệp cấu hình máy chủ, trước tiên, hãy chỉnh sửa các thông số ca, cert và key để trỏ đến các tệp bạn đã tạo trong phần ở trên. Lưu ý rằng mỗi khách hàng phải có cặp chứng chỉ/khóa riêng. Chỉ cafile là phổ biến trên máy chủ OpenVPN và tất cả các máy khách
    • Tiếp theo, chỉnh sửa điều khiển từ xa để trỏ đến tên máy chủ/địa chỉ IP và số cổng của máy chủ OpenVPN (nếu máy chủ OpenVPN của bạn sẽ chạy trên một máy có NIC đơn phía sau tường lửa/cổng NAT, hãy sử dụng địa chỉ IP công cộng của cổng
    • Cuối cùng, đảm bảo rằng tệp cấu hình máy khách phù hợp với các lệnh được sử dụng trong cấu hình máy chủ. Điều quan trọng cần kiểm tra là các lệnh dev (tun hoặc tap) và proto (udp hoặc tcp) có nhất quán không. Ngoài ra, hãy đảm bảo rằng comp-lzo và đoạn, nếu được sử dụng, có trong cả tệp cấu hình máy khách và máy chủ

    Khởi động VPN và kiểm tra kết nối ban đầu

    Khởi động máy chủ

    Trước tiên, hãy đảm bảo rằng máy chủ OpenVPN sẽ có thể truy cập được từ internet. Điều đó có nghĩa là

    • mở cổng UDP 1194 trên tường lửa (hoặc bất kỳ cổng TCP/UDP nào bạn đã định cấu hình) hoặc
    • thiết lập quy tắc chuyển tiếp cổng để chuyển tiếp cổng UDP 1194 từ tường lửa/cổng tới máy chạy máy chủ OpenVPN

    Tiếp theo, hãy đảm bảo rằng giao diện TUN/TAP không có tường lửa

    Để đơn giản hóa việc khắc phục sự cố, tốt nhất ban đầu bạn nên khởi động máy chủ OpenVPN từ dòng lệnh (hoặc nhấp chuột phải vào. ovpn trên Windows), thay vì khởi động nó dưới dạng daemon hoặc dịch vụ

    rpm -ivh openvpn-[details].rpm
    8

    Khởi động máy chủ bình thường sẽ trông như thế này (đầu ra sẽ khác nhau giữa các nền tảng)

    rpm -ivh openvpn-[details].rpm
    9

    Bắt đầu khách hàng

    Như trong phần cấu hình máy chủ, tốt nhất ban đầu bạn nên khởi động máy chủ OpenVPN từ dòng lệnh (hoặc trên Windows, bằng cách nhấp chuột phải vào ứng dụng khách. ovpn), thay vì khởi động nó dưới dạng daemon hoặc dịch vụ

    rpm -Uvh openvpn-[details].rpm
    0

    Quá trình khởi động máy khách thông thường trên Windows sẽ trông giống như kết quả đầu ra của máy chủ ở trên và sẽ kết thúc bằng thông báo Đã hoàn thành trình tự khởi tạo 

    Bây giờ, hãy thử ping qua VPN từ máy khách. Nếu bạn đang sử dụng định tuyến (i. e. dev tun trong tệp cấu hình máy chủ), hãy thử

    rpm -Uvh openvpn-[details].rpm
    1

    Nếu bạn đang sử dụng bắc cầu (i. e. dev nhấn trong tệp cấu hình máy chủ), hãy thử ping địa chỉ IP của máy trên mạng con ethernet của máy chủ

    Nếu ping thành công, xin chúc mừng. Bây giờ bạn có một VPN đang hoạt động

    Xử lý sự cố

    Nếu ping không thành công hoặc quá trình khởi tạo ứng dụng khách OpenVPN không hoàn tất, đây là danh sách kiểm tra các triệu chứng phổ biến và giải pháp của chúng

    • Bạn nhận được thông báo lỗi. Lỗi TLS. Đàm phán khóa TLS không xảy ra trong vòng 60 giây (hãy kiểm tra kết nối mạng của bạn). Lỗi này chỉ ra rằng máy khách không thể thiết lập kết nối mạng với máy chủ. Các giải pháp
      • Đảm bảo máy khách đang sử dụng đúng tên máy chủ/địa chỉ IP và số cổng sẽ cho phép máy khách truy cập máy chủ OpenVPN
      • Nếu máy chủ OpenVPN là một hộp NIC đơn bên trong mạng LAN được bảo vệ, hãy đảm bảo rằng bạn đang sử dụng đúng quy tắc chuyển tiếp cổng trên tường lửa cổng của máy chủ. Ví dụ: giả sử hộp OpenVPN của bạn là 192. 168. 4. 4 bên trong tường lửa, lắng nghe kết nối máy khách trên cổng UDP 1194. Cổng NAT phục vụ 192. 168. 4. x phải có quy tắc chuyển tiếp cổng cho biết chuyển tiếp cổng UDP 1194 từ địa chỉ IP công khai của tôi sang 192. 168. 4. 4
      • Mở tường lửa của máy chủ để cho phép các kết nối đến cổng UDP 1194 (hoặc bất kỳ cổng TCP/UDP nào bạn đã định cấu hình trong tệp cấu hình máy chủ)
    • Bạn nhận được thông báo lỗi. Trình tự Khởi tạo Đã hoàn thành có lỗi-- Lỗi này có thể xảy ra trên Windows nếu (a) Bạn không chạy dịch vụ máy khách DHCP hoặc (b) Bạn đang sử dụng một số tường lửa cá nhân của bên thứ ba trên XP SP2. Dung dịch. Khởi động máy chủ máy khách DHCP và đảm bảo rằng bạn đang sử dụng tường lửa cá nhân được biết là hoạt động chính xác trên XP SP2
    • Bạn nhận được thông báo Đã hoàn thành trình tự khởi tạo nhưng kiểm tra ping không thành công -- Điều này thường chỉ ra rằng tường lửa trên máy chủ hoặc máy khách đang chặn lưu lượng truy cập mạng VPN bằng cách lọc trên giao diện TUN/TAP. Dung dịch. Vô hiệu hóa tường lửa máy khách (nếu có) khỏi lọc giao diện TUN/TAP trên máy khách. Ví dụ: trên Windows XP SP2, bạn có thể thực hiện việc này bằng cách truy cập Trung tâm bảo mật Windows -> Tường lửa Windows -> Nâng cao và bỏ chọn hộp tương ứng với bộ điều hợp TAP-Windows (việc vô hiệu hóa tường lửa máy khách khỏi việc lọc bộ điều hợp TUN/TAP thường là . Ngoài ra, hãy đảm bảo rằng giao diện TUN/TAP trên máy chủ không bị tường lửa lọc (đã nói rằng, lưu ý rằng tường lửa có chọn lọc của giao diện TUN/TAP ở phía máy chủ có thể mang lại một số lợi ích bảo mật nhất định. Xem phần bên dưới)
    • Kết nối ngừng hoạt động khi khởi động khi sử dụng proto udpconfiguration, tệp nhật ký máy chủ hiển thị dòng này.
      ______22

      tuy nhiên nhật ký máy khách không hiển thị dòng tương đương

      Dung dịch. Bạn có kết nối một chiều từ máy khách đến máy chủ. Hướng máy chủ đến máy khách bị chặn bởi tường lửa, thường là ở phía máy khách. Tường lửa có thể là (a) tường lửa phần mềm cá nhân chạy trên máy khách hoặc (b) cổng bộ định tuyến NAT cho máy khách. Sửa đổi tường lửa để cho phép trả lại các gói UDP từ máy chủ để đến máy khách

    Xem để biết thêm thông tin khắc phục sự cố


    Định cấu hình OpenVPN để chạy tự động khi khởi động hệ thống

    Việc thiếu các tiêu chuẩn trong lĩnh vực này có nghĩa là hầu hết các hệ điều hành đều có cách định cấu hình daemon/dịch vụ khác nhau để tự khởi động khi khởi động. Cách tốt nhất để cấu hình chức năng này theo mặc định là cài đặt OpenVPN dưới dạng gói, chẳng hạn như qua RPM trên Linux hoặc sử dụng trình cài đặt Windows

    Linux

    Nếu bạn cài đặt OpenVPN qua gói RPM hoặc DEB trên Linux, thì trình cài đặt sẽ thiết lập một bản initscript. Khi được thực thi, initscript sẽ quét tìm. conf các tệp cấu hình trong /etc/openvpn và nếu được tìm thấy, sẽ khởi động một trình nền OpenVPN riêng cho từng tệp

    các cửa sổ

    Bộ cài đặt Windows sẽ thiết lập Service Wrapper, nhưng để mặc định tắt nó đi. Để kích hoạt nó, hãy vào Control Panel/Administrative Tools/Services, chọn dịch vụ OpenVPN, nhấp chuột phải vào thuộc tính và đặt Startup Type thành Automatic. Điều này sẽ định cấu hình dịch vụ để bắt đầu tự động trong lần khởi động lại tiếp theo

    Khi bắt đầu, OpenVPN Service Wrapper sẽ quét thư mục \Program Files\OpenVPN\config để tìm. ovpn tệp cấu hình, bắt đầu quy trình OpenVPN riêng biệt trên mỗi tệp


    Kiểm soát quy trình OpenVPN đang chạy

    Chạy trên Linux/BSD/Unix

    OpenVPN chấp nhận một số tín hiệu

    • SIGUSR1 -- Khởi động lại có điều kiện, được thiết kế để khởi động lại mà không cần quyền root
    • SIGHUP -- Khởi động lại khó khăn
    • SIGUSR2 -- Xuất số liệu thống kê kết nối vào tệp nhật ký hoặc nhật ký hệ thống
    • SIGTERM, SIGINT -- Thoát

    Sử dụng lệnh writepid để ghi PID của daemon OpenVPN vào một tệp, để bạn biết nơi gửi tín hiệu (nếu bạn đang bắt đầu openvpn với một initscript, tập lệnh có thể đã chuyển một lệnh --writepid trên dòng lệnh openvpn)

    Chạy trên Windows dưới dạng GUI

    Xem trang OpenVPN GUI

    Chạy trong cửa sổ nhắc lệnh của Windows

    Trên Windows, bạn có thể khởi động OpenVPN bằng cách nhấp chuột phải vào tệp cấu hình OpenVPN (. ovpn) và chọn "Bắt đầu OpenVPN trên tệp cấu hình này"

    Khi chạy theo cách này, một số lệnh bàn phím có sẵn

    • F1 -- Khởi động lại có điều kiện (không đóng/mở lại bộ điều hợp TAP)
    • F2 -- Hiển thị thống kê kết nối
    • F3 -- Khởi động lại khó khăn
    • F4 -- Thoát

    Chạy dưới dạng Dịch vụ Windows

    Khi OpenVPN được bắt đầu như một dịch vụ trên Windows, cách duy nhất để kiểm soát nó là

    • Thông qua trình quản lý kiểm soát dịch vụ (Bảng điều khiển/Công cụ quản trị/Dịch vụ) cho phép kiểm soát bắt đầu/dừng
    • Qua giao diện quản lý (xem bên dưới)

    Sửa đổi cấu hình máy chủ trực tiếp

    Mặc dù hầu hết các thay đổi về cấu hình đều yêu cầu bạn phải khởi động lại máy chủ, nhưng có hai lệnh cụ thể đề cập đến các tệp có thể được cập nhật động khi đang di chuyển và sẽ có hiệu lực ngay lập tức trên máy chủ mà không cần phải khởi động lại quy trình máy chủ

    client-config-dir -- Lệnh này thiết lập một thư mục cấu hình máy khách mà máy chủ OpenVPN sẽ quét trên mọi kết nối đến, tìm kiếm tệp cấu hình dành riêng cho máy khách (xem trang hướng dẫn để biết thêm thông tin). Các tệp trong thư mục này có thể được cập nhật nhanh chóng mà không cần khởi động lại máy chủ. Lưu ý rằng những thay đổi trong thư mục này sẽ chỉ có hiệu lực đối với các kết nối mới, không phải các kết nối hiện có. Nếu bạn muốn thay đổi tệp cấu hình dành riêng cho ứng dụng khách có hiệu lực ngay lập tức đối với ứng dụng khách hiện được kết nối (hoặc ứng dụng khách đã ngắt kết nối, nhưng ở đó máy chủ chưa hết thời gian chờ đối tượng phiên bản của nó), hãy tắt đối tượng phiên bản ứng dụng khách bằng cách sử dụng lệnh quản lý . Thao tác này sẽ khiến ứng dụng khách kết nối lại và sử dụng tệp client-config-dir mới

    crl-verify -- Chỉ thị này đặt tên cho tệp Danh sách thu hồi chứng chỉ, được mô tả bên dưới trong phần. Tệp CRL có thể được sửa đổi nhanh chóng và các thay đổi sẽ có hiệu lực ngay lập tức đối với các kết nối mới hoặc các kết nối hiện tại đang thương lượng lại kênh SSL/TLS của họ (xảy ra một lần mỗi giờ theo mặc định). Nếu bạn muốn hủy ứng dụng khách hiện đang kết nối có chứng chỉ vừa được thêm vào CRL, hãy sử dụng giao diện quản lý (được mô tả bên dưới)

    Tệp trạng thái

    Tệp mặc định có một dòng

    rpm -Uvh openvpn-[details].rpm
    3

    sẽ xuất danh sách các kết nối máy khách hiện tại vào tệp openvpn-status. đăng nhập một lần mỗi phút

    Sử dụng giao diện quản lý

    Giao diện quản lý OpenVPN cho phép kiểm soát rất nhiều quy trình OpenVPN đang chạy. Bạn có thể sử dụng giao diện quản lý một cách trực tiếp, bằng cách nối mạng tới cổng giao diện quản lý hoặc gián tiếp bằng cách sử dụng GUI OpenVPN chính kết nối này với giao diện quản lý

    Để bật giao diện quản lý trên máy chủ hoặc máy khách OpenVPN, hãy thêm giao diện này vào tệp cấu hình

    rpm -Uvh openvpn-[details].rpm
    4

    Điều này yêu cầu OpenVPN lắng nghe trên cổng TCP 7505 cho các máy khách giao diện quản lý (cổng 7505 là một lựa chọn tùy ý -- bạn có thể sử dụng bất kỳ cổng miễn phí nào)

    Sau khi OpenVPN đang chạy, bạn có thể kết nối với giao diện quản lý bằng ứng dụng khách telnet. Ví dụ

    rpm -Uvh openvpn-[details].rpm
    5

    Để biết thêm thông tin, hãy xem Tài liệu giao diện quản lý OpenVPN


    Mở rộng phạm vi của VPN để bao gồm các máy bổ sung trên mạng con của máy khách hoặc máy chủ

    Bao gồm nhiều máy ở phía máy chủ khi sử dụng VPN được định tuyến (dev tun)

    Khi VPN hoạt động theo khả năng điểm-điểm giữa máy khách và máy chủ, có thể mong muốn mở rộng phạm vi của VPN để máy khách có thể tiếp cận nhiều máy trên mạng máy chủ, thay vì chỉ máy chủ.

    Vì mục đích của ví dụ này, chúng tôi sẽ giả định rằng mạng LAN phía máy chủ sử dụng mạng con gồm 10. 66. 0. 0/24và nhóm địa chỉ IP VPN sử dụng 10. 8. 0. 0/24 như được trích dẫn trong chỉ thị máy chủ trong tệp cấu hình máy chủ OpenVPN

    Trước tiên, bạn phải quảng cáo 10. 66. 0. 0/24 mạng con tới máy khách VPN có thể truy cập thông qua VPN. Điều này có thể dễ dàng được thực hiện với chỉ thị tệp cấu hình phía máy chủ sau

    rpm -Uvh openvpn-[details].rpm
    6

    Tiếp theo, bạn phải thiết lập một tuyến trên cổng LAN phía máy chủ để định tuyến mạng con máy khách VPN (10. 8. 0. 0/24) đến máy chủ OpenVPN (điều này chỉ cần thiết nếu máy chủ OpenVPN và cổng LAN là các máy khác nhau)

    Đảm bảo rằng bạn đã bật chuyển tiếp IP và TUN/TAP trên máy chủ OpenVPN

    Bao gồm nhiều máy ở phía máy chủ khi sử dụng VPN bắc cầu (dev tap)

    Một trong những lợi ích của việc sử dụng cầu nối ethernet là bạn nhận được dịch vụ này miễn phí mà không cần bất kỳ cấu hình bổ sung nào

    Bao gồm nhiều máy ở phía máy khách khi sử dụng VPN được định tuyến (dev tun)

    Trong kịch bản truy cập từ xa hoặc chiến binh đường bộ điển hình, máy khách kết nối với VPN dưới dạng một máy duy nhất. Nhưng giả sử máy khách là một cổng vào mạng LAN cục bộ (chẳng hạn như văn phòng tại nhà) và bạn muốn mỗi máy trong mạng LAN khách có thể định tuyến qua VPN

    Đối với ví dụ này, chúng tôi sẽ giả định rằng mạng LAN của máy khách đang sử dụng 192. 168. 4. 0/24 và ứng dụng VPN đó đang sử dụng chứng chỉ có tên chung là client2. Mục tiêu của chúng tôi là thiết lập VPN để mọi máy trong mạng LAN của máy khách có thể giao tiếp với bất kỳ máy nào trong mạng LAN của máy chủ thông qua VPN

    Trước khi thiết lập, có một số điều kiện tiên quyết cơ bản phải được tuân theo

    • Mạng con LAN của máy khách (192. 168. 4. 0/24 trong ví dụ của chúng tôi) không được xuất sang VPN bởi máy chủ hoặc bất kỳ trang web máy khách nào khác đang sử dụng cùng một mạng con. Mỗi mạng con được kết nối với VPN thông qua định tuyến phải là duy nhất
    • Ứng dụng khách phải có một Tên chung duy nhất trong chứng chỉ của nó ("client2" trong ví dụ của chúng tôi) và không được sử dụng cờ trùng lặp-cn trong tệp cấu hình máy chủ OpenVPN

    Trước tiên, hãy đảm bảo rằng chuyển tiếp IP và TUN/TAP được bật trên máy khách

    Tiếp theo, chúng tôi sẽ xử lý các thay đổi cấu hình cần thiết ở phía máy chủ. Nếu tệp cấu hình máy chủ hiện không tham chiếu thư mục cấu hình máy khách, hãy thêm một thư mục ngay bây giờ

    rpm -Uvh openvpn-[details].rpm
    7

    Trong lệnh trên, ccd phải là tên của thư mục đã được tạo trước trong thư mục mặc định nơi trình nền máy chủ OpenVPN chạy. Trên Linux, mục này có xu hướng là /etc/openvpn và trên Windows, mục này thường là \Program Files\OpenVPN\config. Khi một máy khách mới kết nối với máy chủ OpenVPN, trình nền sẽ kiểm tra thư mục này để tìm tệp khớp với tên chung của máy khách đang kết nối. Nếu tìm thấy một tệp phù hợp, nó sẽ được đọc và xử lý để áp dụng các chỉ thị tệp cấu hình bổ sung cho máy khách được đặt tên

    Bước tiếp theo là tạo một tệp có tên client2 trong thư mục ccd. Tập tin này phải chứa dòng

    rpm -Uvh openvpn-[details].rpm
    8

    Điều này sẽ cho máy chủ OpenVPN biết rằng 192. 168. 4. Mạng con 0/24 phải được định tuyến đến client2

    Tiếp theo, thêm dòng sau vào tệp cấu hình máy chủ chính (không phải tệp ccd/client2)

    rpm -Uvh openvpn-[details].rpm
    9

    Bạn có thể thắc mắc tại sao các câu lệnh route và iroute dư thừa? . Cả hai đều cần thiết

    Tiếp theo, hãy tự hỏi xem bạn có muốn cho phép lưu lượng mạng giữa mạng con của client2 (192. 168. 4. 0/24) và các máy khách khác của máy chủ OpenVPN. Nếu vậy, hãy thêm phần sau vào tệp cấu hình máy chủ

    tar xfz openvpn-[version].tar.gz
    0

    Thao tác này sẽ khiến máy chủ OpenVPN quảng cáo mạng con của client2 tới các ứng dụng khách đang kết nối khác

    Bước cuối cùng, và cũng là bước thường bị lãng quên, là thêm một tuyến đến cổng LAN của máy chủ để hướng 192. 168. 4. 0/24 vào hộp máy chủ OpenVPN (bạn sẽ không cần điều này nếu hộp máy chủ OpenVPN là cổng cho mạng LAN của máy chủ). Giả sử bạn đã bỏ lỡ bước này và bạn đã cố ping một máy (không phải chính máy chủ OpenVPN) trên mạng LAN của máy chủ từ 192. 168. 4. số 8? . 168. 4. 0/24. Quy tắc ngón tay cái để sử dụng là khi định tuyến toàn bộ mạng LAN thông qua VPN (khi máy chủ VPN không cùng máy với cổng LAN), hãy đảm bảo rằng cổng cho mạng LAN định tuyến tất cả các mạng con VPN đến máy chủ VPN.

    Tương tự, nếu máy khách chạy OpenVPN không phải là cổng cho mạng LAN máy khách, thì cổng cho mạng LAN máy khách phải có một tuyến hướng tất cả các mạng con có thể truy cập thông qua VPN đến máy khách OpenVPN

    Bao gồm nhiều máy ở phía máy khách khi sử dụng VPN bắc cầu (dev tap)

    Điều này đòi hỏi một thiết lập phức tạp hơn (có thể không phức tạp hơn trong thực tế, nhưng phức tạp hơn để giải thích chi tiết)

    • Bạn phải kết nối giao diện TAP của máy khách với NIC được kết nối mạng LAN trên máy khách
    • Bạn phải đặt IP/mặt nạ mạng của giao diện TAP trên máy khách theo cách thủ công
    • Bạn phải định cấu hình các máy phía máy khách để sử dụng IP/mặt nạ mạng bên trong mạng con bắc cầu, có thể bằng cách truy vấn máy chủ DHCP ở phía máy chủ OpenVPN của VPN

    Đẩy các tùy chọn DHCP cho khách hàng

    Máy chủ OpenVPN có thể đẩy các tùy chọn DHCP như địa chỉ máy chủ DNS và WINS cho máy khách (cần lưu ý một số cảnh báo). Máy khách Windows có thể chấp nhận các tùy chọn DHCP được đẩy nguyên bản, trong khi máy khách không chạy Windows có thể chấp nhận chúng bằng cách sử dụng tập lệnh phía máy khách để phân tích cú pháp danh sách biến môi trường foreign_option_nen. Xem trang hướng dẫn để biết các ví dụ về tập lệnh và tài liệu foreign_option_n không phải Windows

    Ví dụ: giả sử bạn muốn kết nối máy khách sử dụng máy chủ DNS nội bộ ở 10. 66. 0. 4 hoặc 10. 66. 0. 5 và một máy chủ WINS ở 10. 66. 0. 8. Thêm phần này vào cấu hình máy chủ OpenVPN

    tar xfz openvpn-[version].tar.gz
    1

    Để kiểm tra tính năng này trên Windows, hãy chạy lệnh sau từ cửa sổ nhắc lệnh sau khi máy đã kết nối với máy chủ OpenVPN

    tar xfz openvpn-[version].tar.gz
    2

    Mục nhập cho bộ điều hợp TAP-Windows sẽ hiển thị các tùy chọn DHCP do máy chủ đẩy


     

    Định cấu hình các quy tắc dành riêng cho khách hàng và chính sách truy cập

    Giả sử chúng tôi đang thiết lập VPN công ty và chúng tôi muốn thiết lập các chính sách truy cập riêng cho 3 lớp người dùng khác nhau

    • Quản trị viên hệ thống -- toàn quyền truy cập vào tất cả các máy trên mạng
    • Nhân viên -- chỉ truy cập vào máy chủ Samba/email
    • Nhà thầu -- chỉ truy cập vào một máy chủ đặc biệt

    Cách tiếp cận cơ bản mà chúng tôi sẽ thực hiện là (a) tách riêng từng lớp người dùng thành dải địa chỉ IP ảo của riêng mình và (b) kiểm soát quyền truy cập vào các máy bằng cách thiết lập quy tắc tường lửa khóa địa chỉ IP ảo của máy khách

    Trong ví dụ của chúng tôi, giả sử rằng chúng tôi có số lượng nhân viên thay đổi, nhưng chỉ có một quản trị viên hệ thống và hai nhà thầu. Phương pháp phân bổ IP của chúng tôi sẽ là đưa tất cả nhân viên vào nhóm địa chỉ IP, sau đó phân bổ địa chỉ IP cố định cho quản trị viên hệ thống và nhà thầu

    Lưu ý rằng một trong những điều kiện tiên quyết của ví dụ này là bạn có tường lửa phần mềm chạy trên máy chủ OpenVPN cung cấp cho bạn khả năng xác định các quy tắc tường lửa cụ thể. Ví dụ của chúng tôi, chúng tôi sẽ giả sử tường lửa là Linux iptables

    Đầu tiên, hãy tạo một bản đồ địa chỉ IP ảo theo lớp người dùng

    LớpDải IP ảoTruy cập mạng LAN được phépTên thông dụngNhân viên10. 8. 0. 0/24Samba/máy chủ email lúc 10. 66. 4. 4[biến]Quản trị viên hệ thống10. 8. 1. 0/24Toàn bộ 10. 66. 4. 0/24 mạng consysadmin1Contractors10. 8. 2. 0/24Máy chủ nhà thầu lúc 10. 66. 4. 12nhà thầu1, nhà thầu2

    Tiếp theo, hãy dịch bản đồ này thành cấu hình máy chủ OpenVPN. Trước hết, hãy đảm bảo rằng bạn đã làm theo các bước  để tạo 10. 66. 4. Mạng con 0/24 có sẵn cho tất cả các máy khách (trong khi chúng tôi sẽ định cấu hình định tuyến để cho phép máy khách truy cập vào toàn bộ 10. 66. 4. 0/24, sau đó chúng tôi sẽ áp đặt các hạn chế truy cập bằng cách sử dụng các quy tắc tường lửa để thực hiện bảng chính sách trên)

    Trước tiên, hãy xác định số đơn vị tĩnh cho giao diện tun của chúng tôi để sau này chúng tôi có thể tham khảo mã đó trong các quy tắc tường lửa của mình

    tar xfz openvpn-[version].tar.gz
    3

    Trong tệp cấu hình máy chủ, hãy xác định nhóm địa chỉ IP của Nhân viên

    tar xfz openvpn-[version].tar.gz
    4

    Thêm các tuyến cho dải IP của Quản trị viên Hệ thống và Nhà thầu

    tar xfz openvpn-[version].tar.gz
    5

    Vì chúng tôi sẽ chỉ định các địa chỉ IP cố định cho các Nhà thầu và Quản trị viên Hệ thống cụ thể nên chúng tôi sẽ sử dụng thư mục cấu hình máy khách

    rpm -Uvh openvpn-[details].rpm
    7

    Giờ hãy đặt các tệp cấu hình đặc biệt vào thư mục con ccd để xác định địa chỉ IP cố định cho từng máy khách VPN không phải là Nhân viên

    ccd/sysadmin1

    tar xfz openvpn-[version].tar.gz
    7

    ccd/nhà thầu1

    tar xfz openvpn-[version].tar.gz
    8

    ccd/nhà thầu2

    tar xfz openvpn-[version].tar.gz
    9

    Mỗi cặp địa chỉ ifconfig-push đại diện cho điểm cuối IP của máy khách và máy chủ ảo. Chúng phải được lấy từ /30 mạng con liên tiếp để tương thích với máy khách Windows và trình điều khiển TAP-Windows. Cụ thể, octet cuối cùng trong địa chỉ IP của mỗi cặp điểm cuối phải được lấy từ bộ này

    ./configure
    make
    make install
    0

    Điều này hoàn thành cấu hình OpenVPN. Bước cuối cùng là thêm quy tắc tường lửa để hoàn thiện chính sách truy cập. Đối với ví dụ này, chúng tôi sẽ sử dụng các quy tắc tường lửa trong cú pháp iptables của Linux

    ./configure
    make
    make install
    1

    Sử dụng các phương thức xác thực thay thế

    OpenVPN 2. 0 trở lên bao gồm một tính năng cho phép máy chủ OpenVPN lấy tên người dùng và mật khẩu một cách an toàn từ máy khách đang kết nối và sử dụng thông tin đó làm cơ sở để xác thực máy khách

    Để sử dụng phương thức xác thực này, trước tiên hãy thêm chỉ thị auth-user-pass vào cấu hình máy khách. Nó sẽ hướng ứng dụng khách OpenVPN truy vấn người dùng về tên người dùng/mật khẩu, chuyển nó tới máy chủ qua kênh TLS an toàn

    Tiếp theo, định cấu hình máy chủ để sử dụng plugin xác thực, có thể là tập lệnh, đối tượng dùng chung hoặc DLL. Máy chủ OpenVPN sẽ gọi plugin mỗi khi máy khách VPN cố gắng kết nối, chuyển cho nó tên người dùng/mật khẩu đã nhập trên máy khách. Plugin xác thực có thể kiểm soát việc máy chủ OpenVPN có cho phép máy khách kết nối hay không bằng cách trả về giá trị thất bại (1) hoặc thành công (0)

    Sử dụng Plugin tập lệnh

    Có thể sử dụng plugin tập lệnh bằng cách thêm chỉ thị auth-user-pass-verify vào tệp cấu hình phía máy chủ. Ví dụ

    ./configure
    make
    make install
    2

    sẽ sử dụng auth-pam. pl perl script để xác thực tên người dùng/mật khẩu của các máy khách đang kết nối. Xem mô tả về auth-user-pass-verify trong trang thủ công để biết thêm thông tin

    Auth-pam. pl script được đưa vào phân phối tệp nguồn OpenVPN trong thư mục con sample-scripts. Nó sẽ xác thực người dùng trên máy chủ Linux bằng mô-đun xác thực PAM, từ đó có thể triển khai xác thực mật khẩu bóng, RADIUS hoặc LDAP. auth-pam. pl chủ yếu dành cho mục đích trình diễn. Để xác thực PAM trong thế giới thực, hãy sử dụng plugin đối tượng openvpn-auth-pamshared được mô tả bên dưới

    Sử dụng đối tượng được chia sẻ hoặc plugin DLL

    Đối tượng dùng chung hoặc plugin DLL thường là các mô-đun C được biên dịch và được tải bởi máy chủ OpenVPN trong thời gian chạy. Ví dụ: nếu bạn đang sử dụng gói OpenVPN dựa trên RPM trên Linux, plugin openvpn-auth-pam phải được tạo sẵn. Để sử dụng nó, hãy thêm phần này vào tệp cấu hình phía máy chủ

    ./configure
    make
    make install
    3

    Thao tác này sẽ yêu cầu máy chủ OpenVPN xác thực tên người dùng/mật khẩu do khách hàng nhập bằng mô-đun loginPAM

    Để sử dụng sản xuất trong thế giới thực, tốt hơn nên sử dụng plugin openvpn-auth-pam vì nó có một số lợi thế so với auth-pam. làm ơn viết kịch bản

    • Đối tượng được chia sẻ plugin openvpn-auth-pam sử dụng mô hình thực thi phân chia đặc quyền để bảo mật tốt hơn. Điều này có nghĩa là máy chủ OpenVPN có thể chạy với các đặc quyền bị giảm bớt bằng cách sử dụng lệnh người dùng không ai, nhóm không ai và chroot, đồng thời sẽ vẫn có thể xác thực đối với tệp mật khẩu ẩn chỉ có thể đọc gốc
    • OpenVPN có thể chuyển tên người dùng/mật khẩu cho plugin qua bộ nhớ ảo, thay vì qua tệp hoặc môi trường, điều này tốt hơn cho bảo mật cục bộ trên máy chủ
    • Các mô-đun plugin được biên dịch bằng C thường chạy nhanh hơn các tập lệnh

    Nếu bạn muốn biết thêm thông tin về cách phát triển plugin của riêng mình để sử dụng với OpenVPN, hãy xem các tệp README trong thư mục con plugin của phân phối nguồn OpenVPN

    Để tạo plugin openvpn-auth-pam trên Linux, hãy cd vào thư mục plugin/auth-pam trong bản phân phối nguồn OpenVPN và chạy make

    Sử dụng xác thực tên người dùng/mật khẩu làm hình thức xác thực ứng dụng khách duy nhất

    Theo mặc định, việc sử dụng auth-user-pass-verify hoặc plugin kiểm tra tên người dùng/mật khẩu trên máy chủ sẽ bật xác thực kép, yêu cầu cả xác thực chứng chỉ ứng dụng khách và tên người dùng/mật khẩu đều thành công để ứng dụng được xác thực

    Mặc dù không được khuyến khích từ góc độ bảo mật, nhưng cũng có thể vô hiệu hóa việc sử dụng chứng chỉ ứng dụng khách và chỉ buộc xác thực tên người dùng/mật khẩu. trên máy chủ

    ./configure
    make
    make install
    4

    Các cấu hình như vậy thường cũng nên đặt

    ./configure
    make
    make install
    5

    sẽ yêu cầu máy chủ sử dụng tên người dùng cho mục đích lập chỉ mục vì nó sẽ sử dụng Tên chung của ứng dụng khách đang xác thực thông qua chứng chỉ ứng dụng khách

    Xin lưu ý rằng client-cert-not-required sẽ không loại bỏ nhu cầu về chứng chỉ máy chủ, vì vậy, ứng dụng khách kết nối với máy chủ sử dụng client-cert-not-required có thể xóa chỉ thị chứng chỉ và key khỏi tệp cấu hình ứng dụng khách, nhưng không được


    Cách thêm xác thực hai yếu tố vào cấu hình OpenVPN bằng thẻ thông minh phía máy khách

    • .
      • .
      • .
      • .
      • .
    • .

    Giới thiệu về xác thực hai yếu tố

    Xác thực hai yếu tố là phương thức xác thực kết hợp hai yếu tố. một cái gì đó bạn có và một cái gì đó bạn biết

    Một cái gì đó bạn có phải là một thiết bị không thể sao chép; . Khóa riêng này được tạo bên trong thiết bị và không bao giờ rời khỏi thiết bị. Nếu người dùng sở hữu mã thông báo này cố gắng truy cập các dịch vụ được bảo vệ trên mạng từ xa, quy trình ủy quyền cấp hoặc từ chối quyền truy cập mạng có thể thiết lập, với mức độ chắc chắn cao, rằng người dùng đang tìm kiếm quyền truy cập đang sở hữu vật lý một mã thông báo được chứng nhận đã biết

    Thứ bạn biết có thể là mật khẩu được hiển thị cho thiết bị mật mã. Nếu không xuất trình mật khẩu thích hợp, bạn không thể truy cập khóa bí mật riêng tư. Một tính năng khác của thiết bị mật mã là cấm sử dụng khóa bí mật riêng nếu nhập sai mật khẩu nhiều hơn số lần cho phép. Hành vi này đảm bảo rằng nếu người dùng bị mất thiết bị của mình thì người khác sẽ không thể sử dụng thiết bị đó

    Các thiết bị mật mã thường được gọi là "thẻ thông minh" hoặc "mã thông báo" và được sử dụng cùng với PKI (Cơ sở hạ tầng khóa công khai). Máy chủ VPN có thể kiểm tra một X. 509 và xác minh rằng người dùng nắm giữ khóa bí mật riêng tư tương ứng. Vì thiết bị không thể bị sao chép và yêu cầu mật khẩu hợp lệ nên máy chủ có thể xác thực người dùng với độ tin cậy cao

    Xác thực yếu tố kép mạnh hơn nhiều so với xác thực dựa trên mật khẩu, bởi vì trong trường hợp xấu nhất, mỗi lần chỉ có một người có thể sử dụng mã thông báo mật mã. Mật khẩu có thể bị đoán và có thể bị lộ cho những người dùng khác, do đó, trong trường hợp xấu nhất, vô số người có thể cố gắng truy cập trái phép khi tài nguyên được bảo vệ bằng cách sử dụng xác thực chỉ bằng mật khẩu

    Nếu bạn lưu trữ khóa riêng bí mật trong một tệp, khóa này thường được mã hóa bằng mật khẩu. Vấn đề với phương pháp này là khóa được mã hóa dễ bị tấn công giải mã hoặc phần mềm gián điệp/phần mềm độc hại chạy trên máy khách. Không giống như khi sử dụng thiết bị mật mã, tệp không thể tự động xóa sau nhiều lần giải mã không thành công

    PKCS#11 là gì?

    Tiêu chuẩn này chỉ định một API, được gọi là Cryptoki, cho các thiết bị chứa thông tin mã hóa và thực hiện các chức năng mã hóa. Cryptoki, phát âm là "crypto-key" và viết tắt của giao diện mã thông báo mã hóa, tuân theo cách tiếp cận dựa trên đối tượng đơn giản, giải quyết các mục tiêu độc lập về công nghệ (bất kỳ loại thiết bị nào) và chia sẻ tài nguyên (nhiều ứng dụng truy cập nhiều thiết bị), trình bày cho các ứng dụng một

    Nguồn. Công ty bảo mật RSA. https. //www. emc. com/emc-plus/rsa-labs/standards-initiatives/pkcs-11-cryptographic-token-interface-standard. htm

    Tóm lại, PKCS#11 là một tiêu chuẩn có thể được phần mềm ứng dụng sử dụng để truy cập các mã thông báo mật mã như thẻ thông minh và các thiết bị khác. Hầu hết các nhà cung cấp thiết bị đều cung cấp một thư viện triển khai giao diện nhà cung cấp PKCS#11 -- thư viện này có thể được các ứng dụng sử dụng để truy cập các thiết bị này. PKCS#11 là tiêu chuẩn miễn phí đa nền tảng, độc lập với nhà cung cấp

    Tìm thư viện nhà cung cấp PKCS#11

    Điều đầu tiên bạn cần làm là tìm thư viện nhà cung cấp, nó sẽ được cài đặt cùng với trình điều khiển thiết bị. Mỗi nhà cung cấp có thư viện riêng. Ví dụ: nhà cung cấp OpenSC PKCS#11 được đặt tại /usr/lib/pkcs11/opensc-pkcs11. như vậy trên Unix hoặc tại opensc-pkcs11. dll trên Windows

    Cách định cấu hình mã thông báo mật mã

    Bạn nên làm theo thủ tục ghi danh

    • Khởi tạo mã thông báo PKCS#11
    • Tạo cặp khóa RSA trên mã thông báo PKCS#11
    • Tạo yêu cầu chứng chỉ dựa trên cặp khóa, bạn có thể sử dụng OpenSC và OpenSSL để làm điều đó
    • Gửi yêu cầu chứng chỉ tới cơ quan cấp chứng chỉ và nhận chứng chỉ
    • Tải chứng chỉ vào mã thông báo, đồng thời lưu ý rằng thuộc tính id và nhãn của chứng chỉ phải khớp với thuộc tính của khóa riêng

    Mã thông báo được định cấu hình là mã thông báo có đối tượng khóa riêng và đối tượng chứng chỉ, cả hai đều có chung thuộc tính id và nhãn

    Một tiện ích đăng ký đơn giản là Easy-RSA 2. 0 là một phần của OpenVPN 2. 1 loạt. Thực hiện theo các hướng dẫn được chỉ định trong tệp README, sau đó sử dụng pkitool để đăng ký

    Khởi tạo mã thông báo bằng lệnh sau

    ./configure
    make
    make install
    6

    Đăng ký chứng chỉ bằng lệnh sau

    ./configure
    make
    make install
    7

    Cách sửa đổi cấu hình OpenVPN để sử dụng mã thông báo mật mã

    Bạn nên có OpenVPN 2. 1 trở lên để sử dụng các tính năng PKCS#11

    Xác định đúng đối tượng

    Mỗi nhà cung cấp PKCS#11 có thể hỗ trợ nhiều thiết bị. Để xem danh sách đối tượng có sẵn, bạn có thể sử dụng lệnh sau

    ./configure
    make
    make install
    8

    Mỗi cặp chứng chỉ/khóa riêng có chuỗi "id được tuần tự hóa" duy nhất. Chuỗi id được đánh số tự động của chứng chỉ được yêu cầu phải được chỉ định cho tùy chọn pkcs11-id bằng cách sử dụng dấu ngoặc kép

    ./configure
    make
    make install
    9

    Sử dụng OpenVPN với PKCS#11

    Một bộ tùy chọn OpenVPN điển hình cho PKCS#11
    openvpn myconfig.ovpn
    0

    Thao tác này sẽ chọn đối tượng khớp với chuỗi pkcs11-id

    Tùy chọn OpenVPN nâng cao cho PKCS#11
    openvpn myconfig.ovpn
    1

    Thao tác này sẽ tải hai nhà cung cấp vào OpenVPN, sử dụng chứng chỉ được chỉ định trên tùy chọn pkcs11-id và sử dụng giao diện quản lý để truy vấn mật khẩu. Trình nền sẽ tiếp tục ở trạng thái giữ trong trường hợp không thể truy cập mã thông báo. Mã thông báo sẽ được sử dụng trong 300 giây, sau đó mật khẩu sẽ được truy vấn lại, phiên sẽ ngắt kết nối nếu phiên quản lý ngắt kết nối

    Cân nhắc triển khai PKCS#11

    Nhiều nhà cung cấp PKCS#11 sử dụng các luồng, để tránh các sự cố gây ra do triển khai LinuxThreads (setuid, chroot), bạn nên nâng cấp lên glibc hỗ trợ Thư viện chủ đề POSIX gốc (NPTL) nếu bạn định sử dụng PKCS#11

    Nhà cung cấp OpenSC PKCS#11

    Nhà cung cấp OpenSC PKCS#11 được đặt tại /usr/lib/pkcs11/opensc-pkcs11. như vậy trên Unix hoặc tại opensc-pkcs11. dll trên Windows

    Sự khác biệt giữa PKCS#11 và Microsoft Cryptographic API (CryptoAPI)

    PKCS#11 là một tiêu chuẩn độc lập với nhà cung cấp đa nền tảng, miễn phí. CryptoAPI là một API cụ thể của Microsoft. Hầu hết các nhà cung cấp thẻ thông minh cung cấp hỗ trợ cho cả hai giao diện. Trong môi trường Windows, người dùng nên chọn giao diện nào sẽ sử dụng

    Việc triển khai OpenVPN hiện tại sử dụng MS CryptoAPI (tùy chọn cryptoapicert) hoạt động tốt miễn là bạn không chạy OpenVPN dưới dạng dịch vụ. Nếu bạn muốn chạy OpenVPN trong môi trường quản trị bằng dịch vụ, việc triển khai sẽ không hoạt động với hầu hết các thẻ thông minh vì những lý do sau

    • Hầu hết các nhà cung cấp thẻ thông minh không tải chứng chỉ vào kho lưu trữ máy cục bộ, vì vậy việc triển khai sẽ không thể truy cập chứng chỉ người dùng
    • Nếu ứng dụng khách OpenVPN đang chạy dưới dạng dịch vụ mà không có tương tác trực tiếp với người dùng cuối, thì dịch vụ không thể truy vấn người dùng để cung cấp mật khẩu cho thẻ thông minh, khiến quá trình xác minh mật khẩu trên thẻ thông minh không thành công

    Sử dụng giao diện PKCS#11, bạn có thể sử dụng thẻ thông minh với OpenVPN trong bất kỳ triển khai nào, vì PKCS#11 không truy cập các cửa hàng của Microsoft và không nhất thiết yêu cầu tương tác trực tiếp với người dùng cuối


    Định tuyến tất cả lưu lượng máy khách (bao gồm cả lưu lượng truy cập web) thông qua VPN

    Tổng quan

    Theo mặc định, khi máy khách OpenVPN đang hoạt động, chỉ lưu lượng truy cập mạng đến và đi từ trang web của máy chủ OpenVPN mới đi qua VPN. Ví dụ: trình duyệt web chung sẽ được thực hiện với các kết nối trực tiếp bỏ qua VPN

    Trong một số trường hợp nhất định, hành vi này có thể không được mong muốn -- bạn có thể muốn một máy khách VPN tạo đường hầm cho tất cả lưu lượng truy cập mạng thông qua VPN, bao gồm cả trình duyệt web nói chung trên internet. Mặc dù loại cấu hình VPN này sẽ áp dụng chính xác hình phạt hiệu suất trên máy khách, nhưng nó giúp quản trị viên VPN kiểm soát nhiều hơn các chính sách bảo mật khi máy khách được kết nối đồng thời với cả internet công cộng và VPN cùng một lúc

    Thực hiện

    Thêm lệnh sau vào tệp cấu hình máy chủ

    openvpn myconfig.ovpn
    2

    Nếu thiết lập VPN của bạn qua mạng không dây, trong đó tất cả máy khách và máy chủ nằm trên cùng một mạng con không dây, hãy thêm cờ cục bộ

    openvpn myconfig.ovpn
    3

    Đẩy tùy chọn cổng chuyển hướng cho máy khách sẽ khiến tất cả lưu lượng truy cập mạng IP bắt nguồn từ máy khách đi qua máy chủ OpenVPN. Máy chủ sẽ cần được định cấu hình để xử lý lưu lượng truy cập này bằng cách nào đó, chẳng hạn như bằng cách NAT nó với internet hoặc định tuyến nó thông qua proxy HTTP của trang web máy chủ

    Trên Linux, bạn có thể sử dụng một lệnh như thế này để NAT lưu lượng máy khách VPN tới internet

    openvpn myconfig.ovpn
    4

    Lệnh này giả định rằng mạng con VPN là 10. 8. 0. 0/24 (được lấy từ chỉ thị máy chủ trong cấu hình máy chủ OpenVPN) và giao diện ethernet cục bộ là eth0

    Khi cổng chuyển hướng được sử dụng, máy khách OpenVPN sẽ định tuyến các truy vấn DNS thông qua VPN và máy chủ VPN sẽ cần xử lý chúng. Điều này có thể được thực hiện bằng cách đẩy địa chỉ máy chủ DNS để kết nối các máy khách sẽ thay thế cài đặt máy chủ DNS thông thường của họ trong thời gian VPN hoạt động. Ví dụ

    openvpn myconfig.ovpn
    5

    sẽ định cấu hình máy khách Windows (hoặc máy khách không phải Windows với một số tập lệnh phía máy chủ bổ sung) để sử dụng 10. 8. 0. 1 làm máy chủ DNS của họ. Bất kỳ địa chỉ nào có thể truy cập từ máy khách đều có thể được sử dụng làm địa chỉ máy chủ DNS

    Hãy cẩn thận

    Chuyển hướng tất cả lưu lượng truy cập mạng thông qua VPN không hoàn toàn là một đề xuất không có vấn đề. Dưới đây là một số vấn đề điển hình cần lưu ý

    • Nhiều máy khách OpenVPN kết nối với internet sẽ tương tác định kỳ với máy chủ DHCP để gia hạn hợp đồng thuê địa chỉ IP của chúng. Tùy chọn cổng chuyển hướng có thể ngăn máy khách truy cập máy chủ DHCP cục bộ (vì các thông báo DHCP sẽ được định tuyến qua VPN), khiến máy khách mất hợp đồng thuê địa chỉ IP
    • Các vấn đề tồn tại liên quan đến việc đẩy địa chỉ DNS tới máy khách Windows
    • Hiệu suất duyệt web trên máy khách sẽ chậm hơn đáng kể

    Để biết thêm thông tin về cơ chế của lệnh redirect-gateway, hãy xem trang hướng dẫn


    Chạy máy chủ OpenVPN trên địa chỉ IP động

    Mặc dù các máy khách OpenVPN có thể dễ dàng truy cập máy chủ thông qua địa chỉ IP động mà không cần bất kỳ cấu hình đặc biệt nào, nhưng mọi thứ trở nên thú vị hơn khi chính máy chủ nằm trên một địa chỉ động. Mặc dù OpenVPN không gặp khó khăn khi xử lý tình huống của một máy chủ động, nhưng cần phải có một số cấu hình bổ sung

    Bước đầu tiên là lấy một địa chỉ DNS động có thể được cấu hình để "theo dõi" máy chủ mỗi khi địa chỉ IP của máy chủ thay đổi. Hiện có một số nhà cung cấp dịch vụ DNS động, chẳng hạn như dyndns. tổ chức

    Bước tiếp theo là thiết lập cơ chế để mỗi khi địa chỉ IP của máy chủ thay đổi, tên DNS động sẽ nhanh chóng được cập nhật địa chỉ IP mới, cho phép các máy khách tìm thấy máy chủ tại địa chỉ IP mới của nó. Có hai cách cơ bản để thực hiện điều này

    • Sử dụng thiết bị bộ định tuyến NAT có hỗ trợ DNS động (chẳng hạn như Linksys BEFSR41). Hầu hết các thiết bị bộ định tuyến NAT rẻ tiền được phổ biến rộng rãi đều có khả năng cập nhật tên DNS động mỗi khi nhận được hợp đồng thuê DHCP mới từ ISP. Thiết lập này lý tưởng khi hộp máy chủ OpenVPN là một máy có một NIC bên trong tường lửa
    • Sử dụng ứng dụng máy khách DNS động, chẳng hạn như ddclient để cập nhật địa chỉ DNS động bất cứ khi nào địa chỉ IP của máy chủ thay đổi. Thiết lập này lý tưởng khi máy chạy OpenVPN có nhiều NIC và đang hoạt động như một cổng/tường lửa toàn trang. Để thực hiện thiết lập này, bạn cần thiết lập một tập lệnh để phần mềm máy khách DHCP của bạn chạy mỗi khi xảy ra thay đổi địa chỉ IP. Tập lệnh này sẽ (a) chạy ddclient để thông báo cho nhà cung cấp DNS động về địa chỉ IP mới của bạn và (b) khởi động lại trình nền máy chủ OpenVPN

    Theo mặc định, ứng dụng khách OpenVPN sẽ nhận biết khi nào địa chỉ IP của máy chủ đã thay đổi, nếu cấu hình ứng dụng khách đang sử dụng một chỉ thị từ xa tham chiếu tên DNS động. Chuỗi sự kiện thông thường là (a) ứng dụng khách OpenVPN không nhận được tin nhắn keepalive kịp thời từ địa chỉ IP cũ của máy chủ, dẫn đến việc khởi động lại và (b) việc khởi động lại khiến tên DNS trong chỉ thị từ xa được giải quyết lại,

    Bạn có thể tìm thêm thông tin trong Câu hỏi thường gặp


    Kết nối với máy chủ OpenVPN qua proxy HTTP

    OpenVPN hỗ trợ các kết nối thông qua proxy HTTP, với các chế độ xác thực sau

    • Không có xác thực proxy
    • Xác thực proxy cơ bản
    • Xác thực proxy NTLM

    Trước hết, việc sử dụng proxy HTTP yêu cầu bạn sử dụng TCP làm giao thức vận chuyển đường hầm. Vì vậy, hãy thêm phần sau vào cả cấu hình máy khách và máy chủ

    openvpn myconfig.ovpn
    6

    Đảm bảo rằng mọi dòng proto udp trong tệp cấu hình đều bị xóa

    Tiếp theo, thêm chỉ thị http-proxy vào tệp cấu hình máy khách (xem trang hướng dẫn để biết mô tả đầy đủ về chỉ thị này)

    Ví dụ: giả sử bạn có một máy chủ proxy HTTP trên mạng LAN của máy khách tại 192. 168. 4. 1 đang lắng nghe kết nối trên cổng 1080. Thêm phần này vào cấu hình máy khách

    openvpn myconfig.ovpn
    7

    Giả sử proxy HTTP yêu cầu xác thực Cơ bản

    openvpn myconfig.ovpn
    8

    Giả sử proxy HTTP yêu cầu xác thực NTLM

    openvpn myconfig.ovpn
    9

    Hai ví dụ xác thực ở trên sẽ khiến OpenVPN nhắc nhập tên người dùng/mật khẩu từ đầu vào tiêu chuẩn. Thay vào đó, nếu bạn muốn đặt các thông tin đăng nhập này vào một tệp, hãy thay thế stdin bằng tên tệp và đặt tên người dùng vào dòng 1 của tệp này và đặt mật khẩu vào dòng 2


    Kết nối với chia sẻ Samba qua OpenVPN

    Ví dụ này nhằm mục đích cho thấy cách ứng dụng khách OpenVPN có thể kết nối với chia sẻ Samba qua đường hầm nhà phát triển được định tuyến. Nếu bạn đang bắc cầu ethernet (dev tap), có thể bạn không cần làm theo các hướng dẫn này, vì các máy khách OpenVPN sẽ thấy các máy phía máy chủ trong vùng lân cận mạng của chúng

    Đối với ví dụ này, chúng tôi sẽ giả sử rằng

    • mạng LAN phía máy chủ sử dụng mạng con gồm 10. 66. 0. 24/0,
    • nhóm địa chỉ IP VPN sử dụng 10. 8. 0. 0/24 (như được trích dẫn trong chỉ thị máy chủ trong tệp cấu hình máy chủ OpenVPN),
    • máy chủ Samba có địa chỉ IP là 10. 66. 0. 4 và
    • máy chủ Samba đã được cấu hình và có thể truy cập được từ mạng LAN cục bộ

    Nếu máy chủ Samba và OpenVPN đang chạy trên các máy khác nhau, hãy đảm bảo bạn đã theo dõi phần trên

    Tiếp theo, chỉnh sửa tệp cấu hình Samba của bạn (smb. conf). Đảm bảo rằng chỉ thị cho phép máy chủ sẽ cho phép ứng dụng khách OpenVPN đến từ 10. 8. 0. 0/24 mạng con để kết nối. Ví dụ

    ./configure
    make
    make install
    0

    Nếu bạn đang chạy máy chủ Samba và OpenVPN trên cùng một máy, bạn có thể muốn chỉnh sửa chỉ thị giao diện trong smb. conf để nghe trên mạng con giao diện TUN của 10. 8. 0. 0/24

    ./configure
    make
    make install
    1

    Nếu bạn đang chạy máy chủ Samba và OpenVPN trên cùng một máy, hãy kết nối từ máy khách OpenVPN với chia sẻ Samba bằng tên thư mục

    ./configure
    make
    make install
    2

    Nếu máy chủ Samba và OpenVPN nằm trên các máy khác nhau, hãy sử dụng tên thư mục

    ./configure
    make
    make install
    3

    Ví dụ: từ cửa sổ nhắc lệnh

    ./configure
    make
    make install
    4

    Triển khai cấu hình cân bằng tải/chuyển đổi dự phòng

    Khách hàng

    Cấu hình máy khách OpenVPN có thể tham khảo nhiều máy chủ để cân bằng tải và chuyển đổi dự phòng. Ví dụ

    ./configure
    make
    make install
    5

    sẽ hướng dẫn máy khách OpenVPN thử kết nối với máy chủ1, máy chủ2 và máy chủ3 theo thứ tự đó. Nếu một kết nối hiện có bị hỏng, ứng dụng khách OpenVPN sẽ thử lại máy chủ được kết nối gần đây nhất và nếu không thành công, sẽ chuyển sang máy chủ tiếp theo trong danh sách. Bạn cũng có thể chỉ đạo ứng dụng khách OpenVPN ngẫu nhiên hóa danh sách máy chủ của nó khi khởi động, để tải của ứng dụng khách sẽ được trải rộng theo xác suất trên nhóm máy chủ

    ./configure
    make
    make install
    6

    Nếu bạn cũng muốn lỗi phân giải DNS khiến ứng dụng khách OpenVPN chuyển sang máy chủ tiếp theo trong danh sách, hãy thêm phần sau

    ./configure
    make
    make install
    7

    Tham số 60 yêu cầu ứng dụng khách OpenVPN thử phân giải từng tên DNS từ xa trong 60 giây trước khi chuyển sang máy chủ tiếp theo trong danh sách

    Danh sách máy chủ cũng có thể đề cập đến nhiều daemon máy chủ OpenVPN chạy trên cùng một máy, mỗi máy nghe các kết nối trên một cổng khác nhau, chẳng hạn

    ./configure
    make
    make install
    8

    Nếu máy chủ của bạn là máy đa bộ xử lý, việc chạy nhiều trình nền OpenVPN trên mỗi máy chủ có thể thuận lợi từ quan điểm hiệu suất

    OpenVPN cũng hỗ trợ chỉ thị từ xa đề cập đến một tên DNS có nhiều bản ghi A trong cấu hình vùng cho miền. Trong trường hợp này, ứng dụng khách OpenVPN sẽ chọn ngẫu nhiên một trong các bản ghi A mỗi khi miền được giải quyết

    Người phục vụ

    Cách tiếp cận đơn giản nhất đối với cấu hình cân bằng tải/chuyển đổi dự phòng trên máy chủ là sử dụng các tệp cấu hình tương đương trên mỗi máy chủ trong cụm, ngoại trừ việc sử dụng nhóm địa chỉ IP ảo khác nhau cho mỗi máy chủ. Ví dụ

    máy chủ 1

    tar xfz openvpn-[version].tar.gz
    4

    máy chủ2

    init-config
    0

    máy chủ3

    init-config
    1

    Tăng cường bảo mật OpenVPN

    Một trong những câu châm ngôn thường được lặp đi lặp lại về an ninh mạng là không bao giờ nên đặt quá nhiều niềm tin vào một thành phần bảo mật duy nhất đến nỗi sự cố của nó gây ra một vụ vi phạm an ninh thảm khốc. OpenVPN cung cấp một số cơ chế để thêm các lớp bảo mật bổ sung để phòng ngừa kết quả như vậy

    tls-auth

    Lệnh tls-auth thêm một chữ ký HMAC bổ sung vào tất cả các gói bắt tay SSL/TLS để xác minh tính toàn vẹn. Bất kỳ gói UDP nào không mang chữ ký HMAC chính xác đều có thể bị loại bỏ mà không cần xử lý thêm. Chữ ký tls-auth HMAC cung cấp mức độ bảo mật bổ sung cao hơn và vượt xa mức độ bảo mật do SSL/TLS cung cấp. Nó có thể bảo vệ chống lại

    • Các cuộc tấn công DoS hoặc tràn cổng trên cổng OpenVPN UDP
    • Quét cổng để xác định cổng UDP của máy chủ nào đang ở trạng thái lắng nghe
    • Lỗ hổng tràn bộ đệm trong triển khai SSL/TLS
    • Bắt đầu bắt tay SSL/TLS từ các máy trái phép (mặc dù những lần bắt tay như vậy cuối cùng sẽ không xác thực được, nhưng tls-auth có thể ngắt chúng sớm hơn nhiều)

    Việc sử dụng tls-auth yêu cầu bạn tạo khóa chia sẻ bí mật được sử dụng cùng với chứng chỉ/khóa RSA tiêu chuẩn

    init-config
    2

    Lệnh này sẽ tạo khóa tĩnh OpenVPN và ghi khóa đó vào tệp ta. Chìa khóa. Khóa này phải được sao chép qua kênh bảo mật có sẵn tới máy chủ và tất cả các máy khách. Nó có thể được đặt trong cùng thư mục với RSA. phím và. tệp crt

    Trong cấu hình máy chủ, thêm

    init-config
    3

    Trong cấu hình máy khách, thêm

    init-config
    4

    proto udp

    Mặc dù OpenVPN cho phép sử dụng giao thức TCP hoặc UDP làm kết nối nhà cung cấp dịch vụ VPN, giao thức UDP sẽ cung cấp khả năng bảo vệ chống lại các cuộc tấn công DoS và quét cổng tốt hơn so với TCP

    init-config
    5

    người dùng/nhóm (chỉ ngoài Windows)

    OpenVPN đã được thiết kế rất cẩn thận để cho phép loại bỏ các đặc quyền gốc sau khi khởi chạy và tính năng này phải luôn được sử dụng trên Linux/BSD/Solaris. Không có quyền root, trình nền máy chủ OpenVPN đang chạy cung cấp mục tiêu ít hấp dẫn hơn nhiều cho kẻ tấn công

    init-config
    6

    Chế độ không có đặc quyền (chỉ dành cho Linux)

    Trên Linux OpenVPN có thể chạy hoàn toàn không có đặc quyền. Cấu hình này phức tạp hơn một chút, nhưng cung cấp khả năng bảo mật tốt nhất

    Để làm việc với cấu hình này, OpenVPN phải được cấu hình để sử dụng giao diện iproute, điều này được thực hiện bằng cách chỉ định --enable-iproute2 để cấu hình tập lệnh. gói sudo cũng nên có sẵn trên hệ thống của bạn

    Cấu hình này sử dụng khả năng của Linux để thay đổi quyền của thiết bị điều chỉnh, để người dùng không có đặc quyền có thể truy cập thiết bị. Nó cũng sử dụng sudo để thực thi iproute để có thể sửa đổi các thuộc tính giao diện và bảng định tuyến

    Cấu hình OpenVPN

      • Viết đoạn script sau và đặt nó tại. /usr/local/sbin/unpriv-ip
    init-config
    7
      • Thực thi visudo và thêm các mục sau để cho phép người dùng 'user1' thực thi/sbin/ip
    init-config
    8
      • Bạn cũng có thể kích hoạt một nhóm người dùng bằng lệnh sau
    init-config
    9
      • Thêm phần sau vào cấu hình OpenVPN của bạn
    . ./vars
    ./clean-all
    ./build-ca
    
    0
      • Xin lưu ý rằng bạn phải chọn hằng số X và chỉ định điều chỉnh hoặc nhấn chứ không phải cả hai
      • Khi tuyến đường thêm giao diện liên tục và cho phép người dùng và/hoặc nhóm quản lý giao diện đó, phần sau đây sẽ tạo tunX (thay thế bằng giao diện của riêng bạn) và cho phép người dùng 1 và nhóm người dùng truy cập vào giao diện đó
    . ./vars
    ./clean-all
    ./build-ca
    
    1
    • Chạy OpenVPN trong bối cảnh người dùng không có đặc quyền

    Các ràng buộc bảo mật khác có thể được thêm vào bằng cách kiểm tra các tham số tại tập lệnh /usr/local/sbin/unpriv-ip

    chroot (không chỉ dành cho Windows)

    Lệnh chroot cho phép bạn khóa trình nền OpenVPN vào cái gọi là nhà tù chroot, trong đó trình nền sẽ không thể truy cập vào bất kỳ phần nào trong hệ thống tệp của hệ thống máy chủ ngoại trừ thư mục cụ thể được cung cấp làm tham số cho lệnh. Ví dụ,

    . ./vars
    ./clean-all
    ./build-ca
    
    2

    sẽ khiến trình nền OpenVPN cd vào thư mục con jail khi khởi chạy, sau đó sẽ định hướng lại hệ thống tệp gốc của nó sang thư mục này để sau đó trình nền không thể truy cập bất kỳ tệp nào bên ngoài jail và cây thư mục con của nó. Điều này rất quan trọng từ góc độ bảo mật, bởi vì ngay cả khi kẻ tấn công có thể xâm phạm máy chủ bằng khai thác chèn mã, khai thác sẽ bị khóa khỏi hầu hết hệ thống tệp của máy chủ

    Hãy cẩn thận. vì chroot định hướng lại hệ thống tệp (chỉ từ phối cảnh của trình nền), nên cần phải đặt bất kỳ tệp nào mà OpenVPN có thể cần sau khi khởi tạo vào thư mục jail, chẳng hạn như

    • tệp crl-verify hoặc
    • thư mục client-config-dir 

    Khóa RSA lớn hơn

    Kích thước khóa RSA được kiểm soát bởi biến KEY_SIZE trong tệp easy-rsa/vars. Biến này phải được đặt trước khi tạo bất kỳ khóa nào. Hiện được đặt thành 1024 theo mặc định, giá trị này có thể tăng lên 2048 một cách hợp lý mà không có tác động tiêu cực đến hiệu suất đường hầm VPN, ngoại trừ quá trình bắt tay đàm phán lại SSL/TLS chậm hơn một chút xảy ra một lần cho mỗi khách hàng mỗi giờ và Diffie một lần chậm hơn nhiều

    Các phím đối xứng lớn hơn

    Theo mặc định, OpenVPN sử dụng Blowfish, một mật mã đối xứng 128 bit

    OpenVPN tự động hỗ trợ bất kỳ mật mã nào được thư viện OpenSSL hỗ trợ và do đó có thể hỗ trợ các mật mã sử dụng kích thước khóa lớn. Ví dụ: phiên bản 256 bit của AES (Tiêu chuẩn mã hóa nâng cao) có thể được sử dụng bằng cách thêm phần sau vào cả tệp cấu hình máy chủ và máy khách

    . ./vars
    ./clean-all
    ./build-ca
    
    3

    Giữ khóa gốc (ca. key) trên một máy độc lập không có kết nối mạng

    Một trong những lợi ích bảo mật của việc sử dụng X509 PKI (giống như OpenVPN) là khóa CA gốc (ca. key) không cần phải có trên máy chủ OpenVPN. Trong môi trường bảo mật cao, bạn có thể muốn chỉ định đặc biệt một máy cho mục đích ký khóa, giữ cho máy được bảo vệ tốt về mặt vật lý và ngắt kết nối máy khỏi tất cả các mạng. Đĩa mềm có thể được sử dụng để di chuyển các tệp chính qua lại, nếu cần. Các biện pháp như vậy khiến kẻ tấn công rất khó đánh cắp khóa gốc, nếu không đánh cắp vật lý máy ký khóa


    Thu hồi Giấy chứng nhận

    Thu hồi chứng chỉ có nghĩa là làm mất hiệu lực chứng chỉ đã ký trước đó để chứng chỉ đó không còn được sử dụng cho mục đích xác thực

    Các lý do điển hình cho việc muốn thu hồi chứng chỉ bao gồm

    • Khóa riêng được liên kết với chứng chỉ bị xâm phạm hoặc bị đánh cắp
    • Người dùng khóa riêng được mã hóa quên mật khẩu trên khóa
    • Bạn muốn chấm dứt quyền truy cập của người dùng VPN

    Ví dụ

    Ví dụ: chúng tôi sẽ thu hồi chứng chỉ client2 mà chúng tôi đã tạo ở trên trong phần "tạo khóa" của HOWTO

    Trước tiên, hãy mở cửa sổ dấu nhắc lệnh hoặc shell và cd vào thư mục easy-rsa như bạn đã làm trong phần "tạo khóa" ở trên. Trên Linux/BSD/Unix

    . ./vars
    ./clean-all
    ./build-ca
    
    4

    Trên Windows

    . ./vars
    ./clean-all
    ./build-ca
    
    5

    Bạn sẽ thấy đầu ra tương tự như thế này

    . ./vars
    ./clean-all
    ./build-ca
    
    6

    Lưu ý "lỗi 23" ở dòng cuối cùng. Đó là những gì bạn muốn thấy, vì nó chỉ ra rằng xác minh chứng chỉ của chứng chỉ bị thu hồi không thành công

    Tập lệnh thu hồi đầy đủ sẽ tạo tệp CRL (danh sách thu hồi chứng chỉ) có tên là crl. pem trong thư mục con keys. Tệp phải được sao chép vào thư mục nơi máy chủ OpenVPN có thể truy cập tệp, sau đó xác minh CRL sẽ được bật trong cấu hình máy chủ

    . ./vars
    ./clean-all
    ./build-ca
    
    7

    Giờ đây, tất cả các ứng dụng khách đang kết nối sẽ được xác minh chứng chỉ ứng dụng khách của họ đối với CRL và bất kỳ kết quả trùng khớp tích cực nào cũng sẽ dẫn đến kết nối bị ngắt

    Ghi chú CRL

    • Khi tùy chọn crl-verify được sử dụng trong OpenVPN, tệp CRL sẽ được đọc lại bất cứ khi nào một ứng dụng khách mới kết nối hoặc một ứng dụng khách hiện tại thương lượng lại kết nối SSL/TLS (theo mặc định một lần mỗi giờ). Điều này có nghĩa là bạn có thể cập nhật tệp CRL trong khi daemon máy chủ OpenVPN đang chạy và CRL mới có hiệu lực ngay lập tức đối với các máy khách mới kết nối. Nếu ứng dụng khách có chứng chỉ mà bạn đang thu hồi đã được kết nối, bạn có thể khởi động lại máy chủ thông qua tín hiệu (SIGUSR1 hoặc SIGHUP) và xóa tất cả ứng dụng hoặc bạn có thể telnet tới giao diện quản lý và hủy rõ ràng đối tượng phiên bản ứng dụng khách cụ thể trên máy chủ mà không làm phiền
    • Mặc dù lệnh crl-verify có thể được sử dụng trên cả máy chủ OpenVPN và máy khách, nhưng nhìn chung không cần thiết phải phân phối tệp CRL cho máy khách trừ khi chứng chỉ máy chủ đã bị thu hồi. Khách hàng không cần biết về các chứng chỉ ứng dụng khách khác đã bị thu hồi bởi vì ngay từ đầu
    • Tệp CRL không phải là bí mật và phải được đặt ở chế độ có thể đọc được trên toàn thế giới để trình nền OpenVPN có thể đọc được sau khi quyền root bị hủy
    • Nếu bạn đang sử dụng chrootdirective, hãy đảm bảo đặt một bản sao của tệp CRL vào thư mục chroot, vì không giống như hầu hết các tệp khác mà OpenVPN đọc, tệp CRL sẽ được đọc sau khi lệnh gọi chroot được thực hiện, chứ không phải trước đó.
    • Một lý do phổ biến khiến chứng chỉ cần bị thu hồi là người dùng mã hóa khóa riêng của họ bằng mật khẩu, sau đó quên mật khẩu. Bằng cách thu hồi chứng chỉ gốc, có thể tạo cặp chứng chỉ/khóa mới với tên chung ban đầu của người dùng

    Lưu ý quan trọng về khả năng tấn công "Man-in-the-Middle" nếu khách hàng không xác minh chứng chỉ của máy chủ mà họ đang kết nối tới

    Để tránh một cuộc tấn công Man-in-the-Middle có thể xảy ra khi một máy khách được ủy quyền cố gắng kết nối với một máy khách khác bằng cách mạo danh máy chủ, hãy đảm bảo thực thi một số loại xác minh chứng chỉ máy chủ của máy khách. Hiện tại có năm cách khác nhau để thực hiện việc này, được liệt kê theo thứ tự ưu tiên

    • [OpenVPN 2. 1 trở lên]Tạo chứng chỉ máy chủ của bạn với cách sử dụng khóa cụ thể và cách sử dụng khóa mở rộng. RFC3280 xác định rằng các thuộc tính sau sẽ được cung cấp cho các kết nối TLS.
      Sử dụng ModeKey Sử dụng khóa mở rộngClientdigitalSignatureTLS Web Client AuthenticationkeyAgreementdigitalSignature, keyAgreementServerdigitalSignature, keyEnciphermentTLS Web Server AuthenticationdigitalSignature, keyAgreement

      Bạn có thể tạo chứng chỉ máy chủ của mình bằng tập lệnh build-key-server (xem tài liệu easy-rsa để biết thêm thông tin). Điều này sẽ chỉ định chứng chỉ là chứng chỉ chỉ dành cho máy chủ bằng cách đặt đúng thuộc tính. Bây giờ hãy thêm dòng sau vào cấu hình máy khách của bạn

      . ./vars
      ./clean-all
      ./build-ca
      
      8
    • [OpenVPN 2. 0 trở xuống] Tạo chứng chỉ máy chủ của bạn bằng tập lệnh build-key-server (xem tài liệu easy-rsa để biết thêm thông tin). Thao tác này sẽ chỉ định chứng chỉ là chứng chỉ chỉ dành cho máy chủ bằng cách đặt nsCertType=server. Bây giờ hãy thêm dòng sau vào cấu hình máy khách của bạn.
      ______89

      Thao tác này sẽ chặn máy khách kết nối với bất kỳ máy chủ nào thiếu nsCertType=chỉ định máy chủ trong chứng chỉ của nó, ngay cả khi chứng chỉ đã được ký bởi tệp ca trong tệp cấu hình OpenVPN