Thứ năm, 24/05/2018 | 00:00 GMT+7

Cách thiết lập server OpenVPN trên Ubuntu 18.04

Bạn muốn truy cập Internet một cách an toàn và bảo mật từ điện thoại thông minh hoặc notebook của bạn khi được kết nối với mạng không tin cậy như WiFi của khách sạn hoặc quán cà phê? Mạng riêng ảo (VPN) cho phép bạn truy cập các mạng không tin cậy một cách riêng tư và an toàn như thể bạn đang sử dụng mạng riêng. Lưu lượng xuất phát từ server VPN và tiếp tục hành trình đến đích.

Khi được kết hợp với kết nối HTTPS , cài đặt này cho phép bạn bảo mật thông tin đăng nhập và giao dịch không dây của bạn . Bạn có thể vượt qua các hạn chế địa lý và kiểm duyệt, đồng thời che chắn vị trí của bạn và bất kỳ lưu lượng truy cập HTTP không được mã hóa nào khỏi mạng không tin cậy .

OpenVPN là một giải pháp VPN Lớp cổng bảo mật (SSL) open-souce , đầy đủ tính năng, có thể đáp ứng nhiều loại cấu hình. Trong hướng dẫn này, bạn sẽ cài đặt server OpenVPN trên server Ubuntu 18.04 và sau đó cấu hình quyền truy cập vào nó từ Windows, macOS, iOS và / hoặc Android. Hướng dẫn này sẽ giữ cho các bước cài đặt và cấu hình đơn giản nhất có thể cho từng cài đặt này.

Lưu ý: Nếu bạn định cài đặt server OpenVPN trên DigitalOcean Server, hãy lưu ý ta , giống như nhiều nhà cung cấp dịch vụ lưu trữ, tính phí băng thông trung bình. Vì lý do này, hãy lưu ý đến lượng lưu lượng truy cập mà server của bạn đang xử lý.

Xem trang này để biết thêm thông tin.

Yêu cầu

Để hoàn thành hướng dẫn này, bạn cần truy cập vào server Ubuntu 18.04 để lưu trữ dịch vụ OpenVPN của bạn . Bạn cần phải cấu hình user không phải root với các quyền sudo trước khi bắt đầu hướng dẫn này. Bạn có thể làm theo hướng dẫn cài đặt server ban đầu Ubuntu 18.04 của ta để cài đặt user có quyền thích hợp. Hướng dẫn được liên kết cũng sẽ cài đặt tường lửa , được giả định là ở trong suốt hướng dẫn này.

Ngoài ra, bạn cần một máy riêng biệt để làm tổ chức phát hành certificate (CA) của bạn . Mặc dù về mặt kỹ thuật, bạn có thể sử dụng server OpenVPN hoặc máy local làm CA của bạn , nhưng điều này không được khuyến khích vì nó khiến VPN của bạn mở ra một số lỗ hổng bảo mật. Theo tài liệu OpenVPN chính thức , bạn nên đặt CA của bạn trên một máy độc lập chuyên dùng để nhập và ký các certificate request . Vì lý do này, hướng dẫn này giả định CA của bạn nằm trên một server Ubuntu 18.04 riêng biệt cũng có user không phải root có quyền sudo và firewall cơ bản.

Xin lưu ý nếu bạn tắt xác thực password trong khi cấu hình các server này, bạn có thể gặp khó khăn khi chuyển file giữa chúng sau này trong hướng dẫn này. Để giải quyết vấn đề này, bạn có thể bật lại xác thực password trên mỗi server . Ngoài ra, bạn có thể tạo cặp SSH key cho mỗi server , sau đó thêm SSH key công khai của server OpenVPN vào file authorized_keys của máy CA và ngược lại. Xem Cách cài đặt SSH key trên Ubuntu 18.04 để biết hướng dẫn về cách thực hiện một trong các giải pháp này.

Khi bạn có những yêu cầu này, bạn có thể chuyển sang Bước 1 của hướng dẫn này.

Bước 1 - Cài đặt OpenVPN và EasyRSA

Để bắt đầu, hãy cập nhật index gói của server VPN của bạn và cài đặt OpenVPN. OpenVPN có sẵn trong repository lưu trữ mặc định của Ubuntu, vì vậy bạn có thể sử dụng apt để cài đặt:

  • sudo apt update
  • sudo apt install openvpn

OpenVPN là một VPN TLS / SSL. Điều này nghĩa là nó sử dụng các certificate để mã hóa lưu lượng giữa server và client . Để cấp certificate tin cậy , bạn sẽ cài đặt tổ chức phát hành certificate đơn giản (CA) của riêng mình. Để thực hiện điều này, ta sẽ download version EasyRSA mới nhất, version mà ta sẽ sử dụng để xây dựng cơ sở hạ tầng public key CA (PKI), từ repository GitHub chính thức của dự án.

Như đã đề cập trong yêu cầu , ta sẽ xây dựng CA trên một server độc lập. Lý do cho cách tiếp cận này là nếu kẻ tấn công có thể xâm nhập vào server của bạn, chúng sẽ có thể truy cập vào private key CA của bạn và sử dụng nó để ký các certificate mới, cấp cho họ quyền truy cập vào VPN của bạn. Theo đó, quản lý CA từ một máy độc lập giúp ngăn user lạ truy cập VPN của bạn. Cũng xin lưu ý bạn nên tắt server CA khi không được sử dụng để ký khóa như một biện pháp phòng ngừa khác.

Để bắt đầu xây dựng cơ sở hạ tầng CA và PKI, hãy sử dụng wget để download version EasyRSA mới nhất trên cả máy CA và server OpenVPN của bạn . Để tải version mới nhất, hãy truy cập trang Phát hành trên dự án EasyRSA GitHub chính thức , sao chép liên kết download cho file có đuôi .tgz , sau đó paste vào lệnh sau:

  • wget -P ~/ https://github.com/OpenVPN/easy-rsa/releases/download/v3.0.4/EasyRSA-3.0.4.tgz

Sau đó extract tarball:

  • cd ~
  • tar xvf EasyRSA-3.0.4.tgz

Bạn đã cài đặt thành công tất cả phần mềm cần thiết trên server và máy CA của bạn . Tiếp tục cấu hình các biến được EasyRSA sử dụng và cài đặt folder CA, từ đó bạn sẽ tạo các khóa và certificate cần thiết để server và client của bạn truy cập VPN.

Bước 2 - Cấu hình các biến EasyRSA và xây dựng CA

EasyRSA được cài đặt với một file cấu hình mà bạn có thể chỉnh sửa để xác định một số biến cho CA của bạn .

Trên máy CA của bạn, chuyển đến folder EasyRSA:

  • cd ~/EasyRSA-3.0.4/

Bên trong folder này là một file có tên vars.example . Tạo một bản sao của file này, và đặt tên cho bản sao vars mà không có một phần mở rộng file :

  • cp vars.example vars

Mở file mới này bằng editor bạn muốn :

  • nano vars

Tìm cài đặt đặt giá trị mặc định của trường cho certificate mới. Nó trông giống như sau :

~ / EasyRSA-3.0.4 / vars
. . .  #set_var EASYRSA_REQ_COUNTRY    "US" #set_var EASYRSA_REQ_PROVINCE   "California" #set_var EASYRSA_REQ_CITY       "San Francisco" #set_var EASYRSA_REQ_ORG        "Copyleft Certificate Co" #set_var EASYRSA_REQ_EMAIL      "me@example.net" #set_var EASYRSA_REQ_OU         "My Organizational Unit"  . . . 

Bỏ ghi chú những dòng này và cập nhật các giá trị được đánh dấu thành bất kỳ giá trị nào bạn muốn, nhưng đừng để trống:

~ / EasyRSA-3.0.4 / vars
. . .  set_var EASYRSA_REQ_COUNTRY    "US" set_var EASYRSA_REQ_PROVINCE   "NewYork" set_var EASYRSA_REQ_CITY       "New York City" set_var EASYRSA_REQ_ORG        "DigitalOcean" set_var EASYRSA_REQ_EMAIL      "admin@example.com" set_var EASYRSA_REQ_OU         "Community"  . . . 

Khi bạn hoàn tất, hãy lưu file .

Trong folder EasyRSA có một tập lệnh gọi là easyrsa được gọi để thực hiện nhiều nhiệm vụ liên quan đến việc xây dựng và quản lý CA. Chạy tập lệnh này với tùy chọn init-pki để khởi tạo cơ sở hạ tầng public key trên server CA:

  • ./easyrsa init-pki
Output
. . . init-pki complete; you may now create a CA or requests. Your newly created PKI dir is: /home/sammy/EasyRSA-3.0.4/pki

Sau đó, gọi lại script easyrsa , theo sau nó với tùy chọn build-ca . Điều này sẽ xây dựng CA và tạo hai file quan trọng - ca.crtca.key - tạo nên các mặt công khai và riêng tư của certificate SSL.

  • ca.crt là file public certificate của CA, trong ngữ cảnh của OpenVPN, server và client sử dụng để thông báo cho nhau rằng họ là một phần của cùng một web tin cậy và không phải ai đó thực hiện một cuộc tấn công man-in-the-middle . Vì lý do này, server của bạn và tất cả các client của bạn cần một bản sao của file ca.crt .
  • ca.key là private key mà máy CA sử dụng để ký các khóa và certificate cho server và client . Nếu kẻ tấn công giành được quyền truy cập vào CA của bạn và đến lượt nó, file ca.key của bạn, chúng sẽ có thể ký các certificate request và giành quyền truy cập vào VPN của bạn, cản trở tính bảo mật của nó. Đây là lý do tại sao file ca.key của bạn chỉ nên nằm trên máy CA của bạn và lý tưởng là máy CA của bạn nên được giữ offline khi không ký certificate request như một biện pháp bảo mật bổ sung.

Nếu bạn không muốn được yêu cầu nhập password mỗi khi tương tác với CA của bạn , bạn có thể chạy lệnh build-ca với tùy chọn nopass , như sau:

  • ./easyrsa build-ca nopass

Trong kết quả , bạn cần xác nhận tên chung cho CA của bạn :

Output
. . . Common Name (eg: your user, host, or server name) [Easy-RSA CA]:

Tên chung là tên được sử dụng để chỉ máy này trong ngữ cảnh của tổ chức phát hành certificate . Bạn có thể nhập bất kỳ chuỗi ký tự nào cho tên chung của CA nhưng để đơn giản hơn, hãy nhấn ENTER để chấp nhận tên mặc định.

Như vậy, CA của bạn đã sẵn sàng và nó sẵn sàng để bắt đầu ký các certificate request .

Bước 3 - Tạo certificate server , khóa và file mã hóa

Đến đây bạn đã có một CA sẵn sàng hoạt động, bạn có thể tạo private key và certificate request từ server của bạn rồi chuyển yêu cầu đến CA của bạn để được ký, tạo certificate cần thiết. Bạn cũng có thể tự do tạo một số file bổ sung được sử dụng trong quá trình mã hóa.

Bắt đầu bằng cách chuyển đến folder EasyRSA trên server OpenVPN của bạn:

  • cd EasyRSA-3.0.4/

Từ đó, chạy tập lệnh easyrsa với tùy chọn init-pki . Mặc dù bạn đã chạy lệnh này trên máy CA, bạn cần phải chạy lệnh này ở đây vì server và CA của bạn sẽ có các folder PKI riêng biệt:

  • ./easyrsa init-pki

Sau đó, gọi lại tập lệnh easyrsa , lần này với tùy chọn gen-req theo sau là tên chung cho máy. , đây có thể là bất cứ thứ gì bạn thích nhưng có thể hữu ích nếu biến nó thành một thứ gì đó mang tính mô tả. Trong suốt hướng dẫn này, tên chung của server OpenVPN sẽ chỉ đơn giản là “ server ”. Hãy chắc chắn bao gồm cả tùy chọn nopass . Không làm như vậy sẽ bảo vệ bằng password file yêu cầu, điều này có thể dẫn đến các vấn đề về quyền sau này:

Lưu ý : Nếu bạn chọn tên không phải là " server " ở đây, bạn sẽ phải điều chỉnh một số hướng dẫn bên dưới. Ví dụ: khi sao chép các file đã tạo vào folder /etc/openvpn , bạn sẽ phải thay thế các tên chính xác. Bạn cũng sẽ phải sửa đổi file /etc/openvpn/server.conf sau đó để trỏ đến các file .crt.key chính xác.

  • ./easyrsa gen-req server nopass

Thao tác này sẽ tạo private key cho server và file certificate request được gọi là server.req . Sao chép khóa server vào folder /etc/openvpn/ :

  • sudo cp ~/EasyRSA-3.0.4/pki/private/server.key /etc/openvpn/

Sử dụng một phương pháp bảo mật (như SCP, trong ví dụ dưới đây của ta ), chuyển file server.req sang máy CA của bạn:

  • scp ~/EasyRSA-3.0.4/pki/reqs/server.req sammy@your_CA_ip:/tmp

Tiếp theo, trên máy CA của bạn , chuyển đến folder EasyRSA:

  • cd EasyRSA-3.0.4/

Sử dụng lại tập lệnh easyrsa , nhập file server.req , theo đường dẫn file có tên chung của nó:

  • ./easyrsa import-req /tmp/server.req server

Sau đó, ký yêu cầu bằng cách chạy tập lệnh easyrsa với tùy chọn sign-req , theo sau là loại yêu cầu và tên thông thường. Loại yêu cầu có thể là client hoặc server , vì vậy đối với certificate request của server OpenVPN, hãy đảm bảo sử dụng loại yêu cầu server :

  • ./easyrsa sign-req server server

Trong kết quả , bạn cần xác minh yêu cầu đến từ một nguồn tin cậy . Nhập yes sau đó nhấn ENTER để xác nhận điều này:

You are about to sign the following certificate. Please check over the details shown below for accuracy. Note that this request has not been cryptographically verified. Please be sure it came from a trusted source or that you have verified the request checksum with the sender.  Request subject, to be signed as a server certificate for 3650 days:  subject=     commonName                = server   Type the word 'yes' to continue, or any other input to abort.   Confirm request details: yes 

Nếu bạn đã mã hóa khóa CA của bạn , bạn sẽ được yêu cầu nhập password của bạn tại thời điểm này.

Tiếp theo, chuyển certificate đã ký trở lại server VPN của bạn bằng phương pháp bảo mật:

  • scp pki/issued/server.crt sammy@your_server_ip:/tmp

Trước khi đăng xuất khỏi máy CA của bạn, hãy chuyển cả file ca.crt đến server của bạn:

  • scp pki/ca.crt sammy@your_server_ip:/tmp

Tiếp theo, đăng nhập lại vào server OpenVPN của bạn và sao chép các file server.crtca.crt vào folder /etc/openvpn/ :

  • sudo cp /tmp/{server.crt,ca.crt} /etc/openvpn/

Sau đó chuyển đến folder EasyRSA của bạn:

  • cd EasyRSA-3.0.4/

Từ đó, tạo một khóa Diffie-Hellman mạnh mẽ để sử dụng trong quá trình trao đổi khóa bằng lệnh :

  • ./easyrsa gen-dh

Quá trình này có thể mất vài phút để hoàn thành. Sau khi làm như vậy, hãy tạo chữ ký HMAC để tăng cường khả năng xác minh tính toàn vẹn TLS của server :

  • openvpn --genkey --secret ta.key

Khi lệnh kết thúc, hãy sao chép hai file mới vào folder /etc/openvpn/ :

  • sudo cp ~/EasyRSA-3.0.4/ta.key /etc/openvpn/
  • sudo cp ~/EasyRSA-3.0.4/pki/dh.pem /etc/openvpn/

Cùng với đó, tất cả certificate và file khóa mà server của bạn cần đã được tạo. Bạn đã sẵn sàng tạo các certificate và khóa tương ứng mà client của bạn sẽ sử dụng để truy cập server OpenVPN của bạn.

Bước 4 - Tạo certificate ứng dụng client và cặp khóa

Mặc dù bạn có thể tạo private key và certificate request trên client của bạn và sau đó gửi đến CA để được ký, hướng dẫn này phác thảo quy trình tạo certificate request trên server . Lợi ích của việc này là ta có thể tạo một tập lệnh sẽ tự động tạo các file cấu hình client chứa tất cả các khóa và certificate cần thiết. Điều này cho phép bạn tránh phải chuyển khóa, certificate và file cấu hình cho client và hợp lý hóa quá trình tham gia VPN.

Ta sẽ tạo một cặp certificate và khóa ứng dụng cho hướng dẫn này. Nếu bạn có nhiều khách hàng, bạn có thể lặp lại quy trình này cho từng khách hàng. Tuy nhiên, xin lưu ý bạn cần chuyển một giá trị tên duy nhất cho tập lệnh cho mọi ứng dụng client . Trong suốt hướng dẫn này, cặp khóa / certificate đầu tiên được gọi là client1 .

Bắt đầu bằng cách tạo cấu trúc folder trong folder chính của bạn để lưu trữ certificate ứng dụng client và các file khóa:

  • mkdir -p ~/client-configs/keys

Vì bạn sẽ lưu trữ certificate / cặp khóa và file cấu hình của khách hàng trong folder này, bạn nên khóa các quyền của nó ngay bây giờ như một biện pháp bảo mật:

  • chmod -R 700 ~/client-configs

Tiếp theo, chuyển trở lại folder EasyRSA và chạy tập lệnh easyrsa với các tùy chọn gen-reqnopass , cùng với tên chung cho ứng dụng client :

  • cd ~/EasyRSA-3.0.4/
  • ./easyrsa gen-req client1 nopass

Nhấn ENTER để xác nhận tên thông thường. Sau đó, sao chép file client1.key vào folder /client-configs/keys/ mà bạn đã tạo trước đó:

  • cp pki/private/client1.key ~/client-configs/keys/

Tiếp theo, chuyển file client1.req sang máy CA của bạn bằng phương pháp bảo mật:

  • scp pki/reqs/client1.req sammy@your_CA_ip:/tmp

Đăng nhập vào máy CA của bạn, chuyển đến folder EasyRSA và nhập certificate request :

  • ssh sammy@your_CA_ip
  • cd EasyRSA-3.0.4/
  • ./easyrsa import-req /tmp/client1.req client1

Sau đó ký vào yêu cầu như bạn đã làm đối với server ở bước trước. Tuy nhiên, lần này, hãy nhớ chỉ định loại yêu cầu của client :

  • ./easyrsa sign-req client client1

Tại dấu nhắc , hãy nhập yes để xác nhận bạn định ký vào certificate request và nó đến từ một nguồn tin cậy :

Output
Type the word 'yes' to continue, or any other input to abort. Confirm request details: yes

, nếu bạn đã mã hóa khóa CA của bạn , bạn sẽ được yêu cầu nhập password của bạn tại đây.

Thao tác này sẽ tạo file certificate ứng dụng client có tên client1.crt . Chuyển file này trở lại server :

  • scp pki/issued/client1.crt sammy@your_server_ip:/tmp

SSH trở lại server OpenVPN của bạn và sao chép certificate ứng dụng client vào folder /client-configs/keys/ :

  • cp /tmp/client1.crt ~/client-configs/keys/

Tiếp theo, sao chép các file ca.crtta.key vào folder /client-configs/keys/ :

  • cp ~/EasyRSA-3.0.4/ta.key ~/client-configs/keys/
  • sudo cp /etc/openvpn/ca.crt ~/client-configs/keys/

Cùng với đó, các certificate và khóa của server và ứng dụng client của bạn đều đã được tạo và được lưu trữ trong các folder thích hợp trên server của bạn. Vẫn còn một số thao tác cần được thực hiện với các file này, nhưng chúng sẽ có ở bước sau. Hiện tại, bạn có thể chuyển sang cấu hình OpenVPN trên server của bạn .

Bước 5 - Cấu hình Dịch vụ OpenVPN

Bây giờ cả certificate và khóa của client và server của bạn đã được tạo, bạn có thể bắt đầu cấu hình dịch vụ OpenVPN để sử dụng các thông tin xác thực này.

Bắt đầu bằng cách sao chép file cấu hình OpenVPN mẫu vào folder cấu hình và sau đó extract để sử dụng nó làm cơ sở cho cài đặt của bạn:

  • sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/
  • sudo gzip -d /etc/openvpn/server.conf.gz

Mở file cấu hình server trong editor bạn muốn :

  • sudo nano /etc/openvpn/server.conf

Tìm phần HMAC bằng cách tìm chỉ thị tls-auth . Dòng này hẳn đã được bỏ ghi chú, nhưng nếu không, hãy xóa dấu “ ; ”Để bỏ ghi chú nó:

/etc/openvpn/server.conf
tls-auth ta.key 0 # This file is secret 

Tiếp theo, tìm phần về mật mã mật mã bằng cách tìm các dòng cipher comment . Mật mã AES-256-CBC cung cấp mức độ mã hóa tốt và được hỗ trợ tốt. , dòng này nên đã được bỏ ghi chú, nhưng nếu không có thì chỉ cần loại bỏ dấu “ ; ”Trước nó:

/etc/openvpn/server.conf
cipher AES-256-CBC 

Dưới đây, thêm chỉ thị auth thực để chọn thuật toán thông báo thông báo HMAC. Đối với điều này, SHA256 là một lựa chọn tốt:

/etc/openvpn/server.conf
auth SHA256 

Tiếp theo, tìm dòng chứa chỉ thị dh xác định các tham số Diffie-Hellman. Do một số thay đổi gần đây được thực hiện đối với EasyRSA, tên file cho khóa Diffie-Hellman có thể khác với tên được liệt kê trong file cấu hình server mẫu. Nếu cần, hãy thay đổi tên file được liệt kê ở đây bằng cách xóa 2048 để nó phù hợp với khóa bạn đã tạo ở bước trước:

/etc/openvpn/server.conf
dh dh.pem 

Cuối cùng, tìm cài đặt usergroup và xóa “ ; ”Ở đầu mỗi dòng để bỏ ghi chú những dòng này:

/etc/openvpn/server.conf
user nobody group nogroup 

Những thay đổi bạn đã thực hiện đối với file server.conf mẫu cho đến thời điểm này là cần thiết để OpenVPN hoạt động. Những thay đổi được nêu dưới đây là tùy chọn, mặc dù chúng cũng cần thiết cho nhiều trường hợp sử dụng phổ biến.

(Tùy chọn) Đẩy các thay đổi DNS để chuyển hướng tất cả lưu lượng truy cập thông qua VPN

Cài đặt ở trên sẽ tạo kết nối VPN giữa hai máy, nhưng sẽ không buộc bất kỳ kết nối nào sử dụng tunnel . Nếu bạn muốn sử dụng VPN để định tuyến tất cả lưu lượng truy cập của bạn , bạn có thể cần đẩy cài đặt DNS cho các client .

Có một số lệnh trong file server.conf mà bạn phải thay đổi để kích hoạt chức năng này. Tìm phần redirect-gateway và xóa dấu chấm phẩy “ ; ”Từ đầu dòng redirect-gateway để bỏ ghi chú:

/etc/openvpn/server.conf
push "redirect-gateway def1 bypass-dhcp" 

Ngay bên dưới phần này, hãy tìm phần dhcp-option . , loại bỏ dấu “ ; ”Từ phía trước của cả hai dòng để bỏ ghi chú chúng:

/etc/openvpn/server.conf
push "dhcp-option DNS 208.67.222.222" push "dhcp-option DNS 208.67.220.220" 

Điều này sẽ hỗ trợ khách hàng cấu hình lại cài đặt DNS của họ để sử dụng tunnel VPN làm cổng mặc định.

(Tùy chọn) Điều chỉnh Cổng và Giao thức

Theo mặc định, server OpenVPN sử dụng cổng 1194 và giao thức UDP để chấp nhận các kết nối client . Nếu bạn cần sử dụng một cổng khác do môi trường mạng hạn chế mà client của bạn có thể ở trong, bạn có thể thay đổi tùy chọn port . Nếu bạn không lưu trữ nội dung web trên server OpenVPN của bạn , cổng 443 là một lựa chọn phổ biến vì nó thường được cho phép thông qua các luật firewall .

/etc/openvpn/server.conf
# Optional! port 443 

Thông thường, giao thức cũng bị hạn chế đối với cổng đó. Nếu vậy, hãy thay đổi proto từ UDP thành TCP:

/etc/openvpn/server.conf
# Optional! proto tcp 

Nếu bạn làm chuyển đổi giao thức TCP, bạn cần phải thay đổi explicit-exit-notify giá trị chỉ thị từ 1 đến 0 , như chỉ thị này chỉ được sử dụng bởi UDP. Không làm như vậy trong khi sử dụng TCP sẽ gây ra lỗi khi bạn khởi động dịch vụ OpenVPN:

/etc/openvpn/server.conf
# Optional! explicit-exit-notify 0 

Nếu bạn không có nhu cầu sử dụng cổng và giao thức khác, tốt nhất nên để hai cài đặt này làm mặc định.

(Tùy chọn) Trỏ đến thông tin đăng nhập không mặc định

Nếu bạn đã chọn một tên khác trong lệnh ./build-key-server trước đó, hãy sửa đổi cert và dòng key mà bạn thấy để trỏ đến các file .crt.key thích hợp. Nếu bạn sử dụng tên mặc định, " server ", tên này đã được đặt chính xác:

/etc/openvpn/server.conf
cert server.crt key server.key 

Khi bạn hoàn tất, hãy lưu file .

Sau khi hoàn thành và thực hiện bất kỳ thay đổi nào đối với cấu hình OpenVPN của server là bắt buộc đối với trường hợp sử dụng cụ thể của bạn, bạn có thể bắt đầu thực hiện một số thay đổi đối với mạng của server của bạn .

Bước 6 - Điều chỉnh cấu hình mạng server

Có một số khía cạnh của cấu hình mạng của server cần được tinh chỉnh để OpenVPN có thể định tuyến chính xác lưu lượng truy cập thông qua VPN. Đầu tiên trong số này là chuyển tiếp IP , một phương pháp để xác định nơi lưu lượng truy cập IP nên được định tuyến. Đây là điều cần thiết đối với chức năng VPN mà server của bạn sẽ cung cấp.

Điều chỉnh cài đặt chuyển tiếp IP mặc định của server của bạn bằng cách sửa đổi file /etc/sysctl.conf :

  • sudo nano /etc/sysctl.conf

Bên trong, hãy tìm dòng comment đặt net.ipv4.ip_forward . Xóa ký tự “ # ” ở đầu dòng để bỏ ghi chú cài đặt này:

/etc/sysctl.conf
net.ipv4.ip_forward=1 

Lưu file khi bạn hoàn tất.

Để đọc file và điều chỉnh các giá trị cho phiên hiện tại, hãy nhập:

  • sudo sysctl -p
Output
net.ipv4.ip_forward = 1

Nếu bạn đã làm theo hướng dẫn cài đặt server ban đầu Ubuntu 18.04 được liệt kê trong yêu cầu , bạn nên có firewall UFW. Dù bạn có sử dụng firewall để chặn lưu lượng truy cập không mong muốn hay không (điều mà bạn hầu như luôn làm), đối với hướng dẫn này, bạn cần có firewall để thao tác một số lưu lượng truy cập vào server . Một số luật firewall phải được sửa đổi để cho phép giả mạo, một khái niệm iptables cung cấp bản dịch địa chỉ mạng động (NAT) nhanh chóng để định tuyến chính xác các kết nối client .

Trước khi mở file cấu hình firewall để thêm các luật giả mạo, trước tiên bạn phải tìm network interface công cộng của máy mình. Để làm điều này, hãy nhập:

  • ip route | grep default

Giao diện công khai của bạn là chuỗi được tìm thấy trong kết quả của lệnh này theo sau từ “dev”. Ví dụ: kết quả này hiển thị giao diện có tên wlp11s0 , được đánh dấu bên dưới:

Output
default via 203.0.113.1 dev wlp11s0 proto static

Khi bạn có giao diện được liên kết với tuyến đường mặc định của bạn , hãy mở file /etc/ufw/before.rules để thêm cấu hình có liên quan:

  • sudo nano /etc/ufw/before.rules

Các luật UFW thường được thêm vào bằng lệnh ufw . Tuy nhiên, các luật được liệt kê trong file before.rules được đọc và đưa vào vị trí trước khi các luật UFW thông thường được tải. Về đầu file , thêm các dòng được đánh dấu bên dưới. Điều này sẽ đặt policy mặc định cho chuỗi POSTROUTING trong bảng nat và giả mạo bất kỳ lưu lượng nào đến từ VPN. Hãy nhớ thay thế wlp11s0 trong dòng -A POSTROUTING bên dưới bằng giao diện bạn tìm thấy trong lệnh trên:

/etc/ufw/before.rules
# # rules.before # # Rules that should be run before the ufw command line added rules. Custom # rules should be added to one of these chains: #   ufw-before-input #   ufw-before-output #   ufw-before-forward #  # START OPENVPN RULES # NAT table rules *nat :POSTROUTING ACCEPT [0:0]  # Allow traffic from OpenVPN client to wlp11s0 (change to the interface you discovered!) -A POSTROUTING -s 10.8.0.0/8 -o wlp11s0 -j MASQUERADE COMMIT # END OPENVPN RULES  # Don't delete these required lines, otherwise there will be errors *filter . . . 

Lưu file khi bạn hoàn tất.

Tiếp theo, bạn cần yêu cầu UFW cho phép các gói được chuyển tiếp theo mặc định. Để thực hiện việc này, hãy mở file /etc/default/ufw :

  • sudo nano /etc/default/ufw

Bên trong, tìm chỉ thị DEFAULT_FORWARD_POLICY và thay đổi giá trị từ DROP thành ACCEPT :

/ etc / default / ufw
DEFAULT_FORWARD_POLICY="ACCEPT" 

Lưu file khi bạn hoàn tất.

Tiếp theo, điều chỉnh chính firewall để cho phép lưu lượng truy cập vào OpenVPN. Nếu bạn không thay đổi cổng và giao thức trong file /etc/openvpn/server.conf , bạn cần mở lưu lượng UDP đến cổng 1194 . Nếu bạn đã sửa đổi cổng và / hoặc giao thức, hãy thay thế các giá trị bạn đã chọn ở đây.

Trong trường hợp bạn quên thêm cổng SSH khi làm theo hướng dẫn yêu cầu , hãy thêm nó vào đây:

  • sudo ufw allow 1194/udp
  • sudo ufw allow OpenSSH

Sau khi thêm các luật đó, hãy tắt và bật lại UFW để khởi động lại nó và tải các thay đổi từ tất cả các file bạn đã sửa đổi:

  • sudo ufw disable
  • sudo ufw enable

Server của bạn hiện đã được cấu hình để xử lý chính xác lưu lượng OpenVPN.

Bước 7 - Khởi động và kích hoạt dịch vụ OpenVPN

Cuối cùng, bạn đã sẵn sàng để bắt đầu dịch vụ OpenVPN trên server của bạn . Điều này được thực hiện bằng cách sử dụng trình systemd systemctl .

Khởi động server OpenVPN bằng cách chỉ định tên file cấu hình của bạn dưới dạng biến version sau tên file đơn vị systemd. Tệp cấu hình cho server của bạn được gọi là /etc/openvpn/ server .conf , vì vậy hãy thêm @server vào cuối file đơn vị của bạn khi gọi nó:

  • sudo systemctl start openvpn@server

Kiểm tra kỹ xem dịch vụ đã chạy hay chưa bằng lệnh :

  • sudo systemctl status openvpn@server

Nếu mọi thứ diễn ra tốt đẹp, kết quả của bạn sẽ giống như sau:

Output
● openvpn@server.service - OpenVPN connection to server Loaded: loaded (/lib/systemd/system/openvpn@.service; disabled; vendor preset: enabled) Active: active (running) since Tue 2016-05-03 15:30:05 EDT; 47s ago Docs: man:openvpn(8) https://community.openvpn.net/openvpn/wiki/Openvpn23ManPage https://community.openvpn.net/openvpn/wiki/HOWTO Process: 5852 ExecStart=/usr/sbin/openvpn --daemon ovpn-%i --status /run/openvpn/%i.status 10 --cd /etc/openvpn --script-security 2 --config /etc/openvpn/%i.conf --writepid /run/openvpn/%i.pid (code=exited, sta Main PID: 5856 (openvpn) Tasks: 1 (limit: 512) CGroup: /system.slice/system-openvpn.slice/openvpn@server.service └─5856 /usr/sbin/openvpn --daemon ovpn-server --status /run/openvpn/server.status 10 --cd /etc/openvpn --script-security 2 --config /etc/openvpn/server.conf --writepid /run/openvpn/server.pid

Bạn cũng có thể kiểm tra xem giao diện OpenVPN tun0 có khả dụng không bằng lệnh :

  • ip addr show tun0

Điều này sẽ xuất ra một giao diện được cấu hình :

Output
4: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default qlen 100 link/none inet 10.8.0.1 peer 10.8.0.2/32 scope global tun0 valid_lft forever preferred_lft forever

Sau khi khởi động dịch vụ, hãy kích hoạt nó để nó tự động khởi động khi server khởi động :

  • sudo systemctl enable openvpn@server

Dịch vụ OpenVPN của bạn hiện đã hoạt động. Tuy nhiên, trước khi bạn có thể bắt đầu sử dụng nó, trước tiên bạn phải tạo một file cấu hình cho client . Hướng dẫn này đã trình bày về cách tạo các cặp khóa / certificate cho client và trong bước tiếp theo, ta sẽ trình bày cách tạo cơ sở hạ tầng sẽ dễ dàng tạo các file cấu hình client .

Bước 8 - Tạo cơ sở hạ tầng cấu hình client

Việc tạo file cấu hình cho client OpenVPN có thể hơi liên quan, vì mỗi client phải có cấu hình riêng và mỗi máy phải phù hợp với cài đặt được nêu trong file cấu hình của server . Thay vì viết một file cấu hình duy nhất chỉ được dùng trên một client , bước này phác thảo quy trình xây dựng cơ sở hạ tầng cấu hình client mà bạn có thể sử dụng để tạo file cấu hình một cách nhanh chóng. Trước tiên, bạn sẽ tạo một file cấu hình “cơ sở” sau đó xây dựng một tập lệnh cho phép bạn tạo các file , certificate và khóa cấu hình ứng dụng client duy nhất nếu cần.

Bắt đầu bằng cách tạo một folder mới, nơi bạn sẽ lưu trữ các file cấu hình client trong folder cấu hình client-configs mà bạn đã tạo trước đó:

  • mkdir -p ~/client-configs/files

Tiếp theo, sao chép file cấu hình client mẫu vào folder cấu hình client-configs để sử dụng làm cấu hình cơ sở của bạn:

  • cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf ~/client-configs/base.conf

Mở file mới này trong editor của bạn:

  • nano ~/client-configs/base.conf

Bên trong, xác định vị trí chỉ thị remote . Điều này trỏ client đến địa chỉ server OpenVPN của bạn - địa chỉ IP công cộng của server OpenVPN của bạn. Nếu bạn quyết định thay đổi cổng mà server OpenVPN đang nghe, bạn cũng cần thay đổi 1194 thành cổng bạn đã chọn:

~ / client-configs / base.conf
. . . # The hostname/IP and port of the server. # You can have multiple remote entries # to load balance between the servers. remote your_server_ip 1194 . . . 

Đảm bảo rằng giao thức trùng với giá trị bạn đang sử dụng trong cấu hình server :

~ / client-configs / base.conf
proto udp 

Tiếp theo, bỏ ghi chú user và chỉ thị group bằng cách xóa “ ; ”Ở đầu mỗi dòng:

~ / client-configs / base.conf
# Downgrade privileges after initialization (non-Windows only) user nobody group nogroup 

Tìm các lệnh đặt ca , certkey . Comment các chỉ thị này vì bạn sẽ sớm thêm certificate và khóa trong chính file :

~ / client-configs / base.conf
# SSL/TLS parms. # See the server config file for more # description.  It's best to use # a separate .crt/.key file pair # for each client.  A single ca # file can be used for all clients. #ca ca.crt #cert client.crt #key client.key 

Tương tự, hãy comment chỉ thị ta.key tls-auth , vì bạn sẽ thêm ta.key trực tiếp vào file cấu hình client :

~ / client-configs / base.conf
# If a tls-auth key is used on the server # then every client must also have the key. #tls-auth ta.key 1 

Phản chiếu cài đặt cipherauth mà bạn đã đặt trong file /etc/openvpn/server.conf :

~ / client-configs / base.conf
cipher AES-256-CBC auth SHA256 

Tiếp theo, thêm chỉ thị key-direction ở đâu đó trong file . Bạn phải đặt giá trị này thành “1” để VPN hoạt động chính xác trên client :

~ / client-configs / base.conf
key-direction 1 

Cuối cùng, thêm một vài dòng đã comment để xử lý các phương pháp khác nhau mà các client VPN dựa trên Linux sẽ sử dụng để phân giải DNS. Bạn sẽ thêm hai tập hợp các dòng chú thích giống nhau, nhưng riêng biệt. Bộ đầu tiên dành cho các client không sử dụng systemd-resolved để quản lý DNS. Các client này dựa vào tiện ích resolvconf để cập nhật thông tin DNS cho các client Linux.

~ / client-configs / base.conf
; script-security 2 ; up /etc/openvpn/update-resolv-conf ; down /etc/openvpn/update-resolv-conf 

Bây giờ, hãy thêm một tập hợp các dòng khác cho các client sử dụng systemd-resolved để phân giải DNS:

~ / client-configs / base.conf
; script-security 2 ; up /etc/openvpn/update-systemd-resolved ; down /etc/openvpn/update-systemd-resolved ; down-pre ; dhcp-option DOMAIN-ROUTE . 

Lưu file khi bạn hoàn tất.

Sau đó trong Bước 10 - Cài đặt bước Cấu hình Máy khách của hướng dẫn này, bạn sẽ học cách xác định cách phân giải DNS hoạt động trên các client Linux và phần nào cần bỏ ghi chú.

Tiếp theo, tạo một tập lệnh đơn giản sẽ biên dịch cấu hình cơ sở của bạn với các file certificate , khóa và mã hóa có liên quan, sau đó đặt cấu hình đã tạo vào folder ~/client-configs/files . Mở một file mới có tên make_config.sh trong folder ~/client-configs :

  • nano ~/client-configs/make_config.sh

Bên trong, thêm nội dung sau:

~ / client-configs / make_config.sh
#!/bin/bash  # First argument: Client identifier  KEY_DIR=~/client-configs/keys OUTPUT_DIR=~/client-configs/files BASE_CONFIG=~/client-configs/base.conf  cat ${BASE_CONFIG} \     <(echo -e '<ca>') \     ${KEY_DIR}/ca.crt \     <(echo -e '</ca>\n<cert>') \     ${KEY_DIR}/${1}.crt \     <(echo -e '</cert>\n<key>') \     ${KEY_DIR}/${1}.key \     <(echo -e '</key>\n<tls-auth>') \     ${KEY_DIR}/ta.key \     <(echo -e '</tls-auth>') \     > ${OUTPUT_DIR}/${1}.ovpn 

Lưu file khi bạn hoàn tất.

Trước khi tiếp tục, hãy nhớ đánh dấu file này là file thực thi bằng lệnh :

  • chmod 700 ~/client-configs/make_config.sh

Tập lệnh này sẽ tạo một bản sao của file base.conf mà bạn đã tạo, thu thập tất cả certificate và file khóa mà bạn đã tạo cho ứng dụng client của bạn , extract nội dung của chúng, nối chúng vào bản sao của file cấu hình cơ sở và xuất tất cả những thứ này nội dung vào file cấu hình client mới. Điều này nghĩa là thay vì phải quản lý các file cấu hình, certificate và khóa của khách hàng một cách riêng biệt, tất cả thông tin cần thiết được lưu trữ ở một nơi. Lợi ích của việc này là nếu bạn cần thêm client trong tương lai, bạn có thể chỉ cần chạy tập lệnh này để nhanh chóng tạo file cấu hình và đảm bảo tất cả thông tin quan trọng được lưu trữ ở một vị trí dễ truy cập.

Xin lưu ý bất kỳ khi nào bạn thêm một ứng dụng client mới, bạn cần tạo khóa và certificate mới cho nó trước khi bạn có thể chạy tập lệnh này và tạo file cấu hình của nó. Bạn sẽ thực hành một số cách sử dụng script này trong bước tiếp theo.

Bước 9 - Tạo cấu hình client

Nếu bạn làm theo hướng dẫn, bạn đã tạo certificate ứng dụng client và khóa có tên client1.crtclient1.key , tương ứng, ở Bước 4. Bạn có thể tạo file cấu hình cho các thông tin đăng nhập này bằng cách chuyển vào folder ~/client-configs và chạy tập lệnh bạn đã thực hiện ở cuối bước trước:

  • cd ~/client-configs
  • sudo ./make_config.sh client1

Thao tác này sẽ tạo một file có tên client1.ovpn trong folder ~/client-configs/files :

  • ls ~/client-configs/files
Output
client1.ovpn

Bạn cần chuyển file này sang thiết bị bạn định sử dụng làm ứng dụng client . Ví dụ: đây có thể là máy tính local của bạn hoặc thiết bị di động.

Mặc dù các ứng dụng chính xác được sử dụng để thực hiện quá trình chuyển này sẽ phụ thuộc vào hệ điều hành của thiết bị và sở thích cá nhân của bạn, nhưng một phương pháp tin cậy và an toàn là sử dụng SFTP (giao thức truyền file SSH) hoặc SCP (Bản sao bảo mật) trên chương trình backend . Điều này sẽ vận chuyển các file xác thực VPN của khách hàng của bạn qua một kết nối được mã hóa.

Đây là một ví dụ về lệnh SFTP sử dụng ví dụ client1.ovpn mà bạn có thể chạy từ máy tính local của bạn (macOS hoặc Linux). Nó đặt file .ovpn vào folder chính của bạn:

  • sftp sammy@your_server_ip:client-configs/files/client1.ovpn ~/

Dưới đây là một số công cụ và hướng dẫn để truyền file an toàn từ server sang máy tính local :

Bước 10 - Cài đặt cấu hình client

Phần này trình bày cách cài đặt cấu hình VPN ứng dụng client trên Windows, macOS, Linux, iOS và Android. Không có hướng dẫn ứng dụng nào trong số này phụ thuộc vào nhau, vì vậy, vui lòng bỏ qua phần nào áp dụng cho thiết bị của bạn.

Kết nối OpenVPN sẽ có cùng tên với bất kỳ tên nào bạn đã gọi là file .ovpn . Liên quan đến hướng dẫn này, điều này nghĩa là kết nối được đặt tên là client1.ovpn , phù hợp với file khách hàng đầu tiên bạn đã tạo.

các cửa sổ

Đang cài đặt

Download ứng dụng client OpenVPN dành cho Windows từ trang Download của OpenVPN . Chọn version trình cài đặt thích hợp cho version Windows của bạn.

Ghi chú
OpenVPN cần có quyền quản trị để cài đặt.

Sau khi cài đặt OpenVPN, hãy sao chép file .ovpn vào:

C:\Program Files\OpenVPN\config 

Khi bạn chạy OpenVPN, nó sẽ tự động xem profile và cung cấp profile .

Bạn phải chạy OpenVPN với quyền administrator mỗi khi nó được sử dụng, ngay cả bằng account quản trị. Để thực hiện việc này mà không cần phải nhấp chuột phải và chọn Chạy với quyền administrator mỗi khi sử dụng VPN, bạn phải đặt trước điều này từ account quản trị. Điều này cũng nghĩa là user tiêu chuẩn cần nhập password của administrator để sử dụng OpenVPN. Mặt khác, user tiêu chuẩn không thể kết nối đúng cách với server trừ khi ứng dụng OpenVPN trên client có quyền quản trị, do đó, các quyền nâng cao là cần thiết.

Để đặt ứng dụng OpenVPN luôn chạy với quyền administrator , hãy nhấp chuột phải vào biểu tượng lối tắt của nó và đi tới Thuộc tính . Ở cuối tab Tương thích , nhấp vào nút để Thay đổi cài đặt cho tất cả user . Trong cửa sổ mới, chọn Chạy chương trình này với quyền administrator .

Đang kết nối

Mỗi lần bạn chạy OpenVPN GUI, Windows sẽ hỏi bạn có muốn cho phép chương trình áp dụng các thay đổi đối với máy tính của bạn hay không. Nhấp vào . Chạy ứng dụng client OpenVPN chỉ đặt applet vào khay hệ thống để bạn có thể kết nối và ngắt kết nối VPN khi cần; nó không tạo kết nối VPN.

Sau khi OpenVPN được khởi động, hãy bắt đầu kết nối bằng cách vào applet khay hệ thống và nhấp chuột phải vào biểu tượng applet OpenVPN. Thao tác này sẽ mở menu ngữ cảnh. Chọn client1 ở đầu menu (đó là profile client1.ovpn của bạn) và chọn Connect .

Một cửa sổ trạng thái sẽ mở ra hiển thị kết quả log trong khi kết nối được cài đặt và một thông báo sẽ hiển thị khi client được kết nối.

Ngắt kết nối khỏi VPN theo cách tương tự: Vào applet khay hệ thống, nhấp chuột phải vào biểu tượng applet OpenVPN, chọn cấu hình client và nhấp vào Ngắt kết nối .

hệ điều hành Mac

Đang cài đặt

Tunnelblick là một ứng dụng OpenVPN open-souce miễn phí dành cho macOS. Bạn có thể download hình ảnh đĩa mới nhất từ trang Download của Tunnelblick . Nhấp đúp vào file .dmg download và làm theo dấu nhắc để cài đặt.

Vào cuối quá trình cài đặt, Tunnelblick sẽ hỏi bạn có file cấu hình nào không. Trả lời Tôi có các file cấu hình và hãy để Tunnelblick hoàn tất. Mở cửa sổ Finder và nhấp đúp vào client1.ovpn . Tunnelblick sẽ cài đặt profile khách hàng. Đặc quyền quản trị là bắt buộc.

Đang kết nối

Chạy Tunnelblick bằng cách nhấp đúp vào biểu tượng Tunnelblick trong folder Ứng dụng . Khi Tunnelblick đã được chạy , sẽ có biểu tượng Tunnelblick trong thanh menu ở trên cùng bên phải của màn hình để kiểm soát các kết nối. Nhấp vào biểu tượng, sau đó nhấp vào mục menu Connect client1 để bắt đầu kết nối VPN.

Linux

Đang cài đặt

Nếu bạn đang sử dụng Linux, có rất nhiều công cụ mà bạn có thể sử dụng tùy thuộc vào bản phân phối của bạn . Môi trường máy tính để bàn hoặc trình quản lý cửa sổ của bạn cũng có thể bao gồm các tiện ích kết nối.

Tuy nhiên, cách kết nối phổ biến nhất là chỉ sử dụng phần mềm OpenVPN.

Trên Ubuntu hoặc Debian, bạn có thể cài đặt nó giống như bạn đã làm trên server bằng lệnh :

  • sudo apt update
  • sudo apt install openvpn

Trên CentOS, bạn có thể kích hoạt kho EPEL và sau đó cài đặt nó bằng lệnh :

  • sudo yum install epel-release
  • sudo yum install openvpn

Cấu hình khách hàng sử dụng systemd-resolved

Trước tiên, hãy xác định xem hệ thống của bạn có đang sử dụng systemd-resolved để xử lý độ phân giải DNS hay không bằng cách kiểm tra file /etc/resolv.conf :

  • cat /etc/resolv.conf
Output
# This file is managed by man:systemd-resolved(8). Do not edit. . . . nameserver 127.0.0.53 options edns0

Nếu hệ thống của bạn được cấu hình để sử dụng systemd-resolved phân giải DNS để phân giải DNS, thì địa chỉ IP sau tùy chọn nameserver sẽ là 127.0.0.53 . Cũng nên có các comment trong file như kết quả được hiển thị giải thích cách systemd-resolved đang quản lý file . Nếu bạn có địa chỉ IP khác với 127.0.0.53 thì rất có thể hệ thống của bạn không sử dụng systemd-resolved và bạn có thể chuyển đến phần tiếp theo về cấu hình các client Linux có tập lệnh update-resolv-conf .

Để hỗ trợ những client này, trước tiên hãy cài đặt gói openvpn-systemd-resolved . Nó cung cấp các tập lệnh sẽ buộc systemd-resolved sử dụng server VPN để phân giải DNS.

  • sudo apt install openvpn-systemd-resolved

Một gói đó được cài đặt, cấu hình client để sử dụng nó và gửi tất cả các truy vấn DNS qua giao diện VPN. Mở file VPN của khách hàng:

  • nano client1.ovpn

Bây giờ bỏ ghi chú những dòng sau mà bạn đã thêm trước đó:

client1.ovpn
script-security 2 up /etc/openvpn/update-systemd-resolved down /etc/openvpn/update-systemd-resolved down-pre dhcp-option DOMAIN-ROUTE . 

Cấu hình client sử dụng update-resolv-conf

Nếu hệ thống của bạn không sử dụng systemd-resolved để quản lý DNS, hãy kiểm tra xem bản phân phối của bạn có bao gồm tập lệnh /etc/openvpn/update-resolv-conf thay thế hay không:

  • ls /etc/openvpn
Output
update-resolv-conf

Nếu client của bạn bao gồm file update-resolv-conf , thì hãy chỉnh sửa file cấu hình client OpenVPN mà bạn đã chuyển trước đó:

  • nano client1.ovpn

Bỏ ghi chú ba dòng bạn đã thêm để điều chỉnh cài đặt DNS:

client1.ovpn
script-security 2 up /etc/openvpn/update-resolv-conf down /etc/openvpn/update-resolv-conf 

Nếu bạn đang sử dụng CentOS, hãy thay đổi chỉ thị group từ không nogroup thành nobody để phù hợp với các group có sẵn của phân phối:

client1.ovpn
group nobody 

Lưu và đóng file .

Bây giờ, bạn có thể kết nối với VPN chỉ bằng cách trỏ lệnh openvpn vào file cấu hình client :

  • sudo openvpn --config client1.ovpn

Điều này sẽ kết nối bạn với VPN của bạn.

iOS

Đang cài đặt

Từ iTunes App Store, tìm kiếm và cài đặt OpenVPN Connect , ứng dụng client OpenVPN chính thức của iOS. Để chuyển cấu hình ứng dụng client iOS của bạn vào thiết bị, hãy kết nối trực tiếp với máy tính.

Quá trình hoàn tất quá trình chuyển bằng iTunes được nêu ở đây. Mở iTunes trên máy tính và nhấp vào iPhone > ứng dụng . Cuộn xuống dưới cùng đến phần Chia sẻ file và nhấp vào ứng dụng OpenVPN. Cửa sổ trống ở bên phải, Tài liệu OpenVPN , là để chia sẻ file . Kéo file .ovpn vào cửa sổ Tài liệu OpenVPN.

iTunes hiển thị cấu hình VPN đã sẵn sàng để tải trên iPhone

Bây giờ chạy ứng dụng OpenVPN trên iPhone. Bạn sẽ nhận được thông báo rằng một cấu hình mới đã sẵn sàng để nhập. Nhấn vào dấu cộng màu xanh lục để nhập nó.

Ứng dụng OpenVPN iOS hiển thị cấu hình mới đã sẵn sàng để nhập

Đang kết nối

OpenVPN hiện đã sẵn sàng để sử dụng với cấu hình mới. Bắt đầu kết nối bằng cách trượt nút Kết nối sang vị trí Bật . Ngắt kết nối bằng cách trượt nút tương tự sang Tắt .

Ghi chú
Không thể sử dụng lựa chọn VPN trong Cài đặt để kết nối với VPN. Nếu cố gắng, bạn sẽ nhận được thông báo chỉ kết nối bằng ứng dụng OpenVPN.

Ứng dụng OpenVPN iOS được kết nối với VPN

Android

Đang cài đặt

Mở Cửa hàng Google Play. Tìm kiếm và cài đặt Android OpenVPN Connect , ứng dụng client Android OpenVPN chính thức.

Bạn có thể chuyển profile .ovpn bằng cách kết nối thiết bị Android với máy tính bằng USB và sao chép file . Ngoài ra, nếu bạn có đầu đọc thẻ SD, bạn có thể tháo thẻ SD của thiết bị, sao chép profile vào nó và sau đó lắp thẻ trở lại thiết bị Android.

Khởi động ứng dụng OpenVPN và nhấn vào menu để nhập profile .

Lựa chọn menu nhập cấu hình ứng dụng OpenVPN Android

Sau đó chuyển đến vị trí của profile đã lưu (ảnh chụp màn hình sử dụng /sdcard/Download/ ) và chọn file . Ứng dụng sẽ ghi chú rằng profile đã được nhập.

Ứng dụng OpenVPN Android chọn cấu hình VPN để nhập

Đang kết nối

Để kết nối, chỉ cần nhấn vào nút Kết nối . Bạn sẽ được hỏi liệu bạn có tin tưởng ứng dụng OpenVPN hay không. Chọn OK để bắt đầu kết nối. Để ngắt kết nối khỏi VPN, hãy quay lại ứng dụng OpenVPN và chọn Ngắt kết nối .

Ứng dụng OpenVPN Android đã sẵn sàng kết nối với VPN

Bước 11 - Kiểm tra kết nối VPN của bạn (Tùy chọn)

Lưu ý: Phương pháp này để kiểm tra kết nối VPN của bạn sẽ chỉ hoạt động nếu bạn đã chọn định tuyến tất cả lưu lượng của bạn thông qua VPN ở Bước 5.

Khi mọi thứ đã được cài đặt, một kiểm tra đơn giản xác nhận mọi thứ đang hoạt động bình thường. Nếu không bật kết nối VPN, hãy mở trình duyệt và truy cập DNSLeakTest .

Trang web sẽ trả lại địa chỉ IP được chỉ định bởi nhà cung cấp dịch vụ internet của bạn và khi bạn xuất hiện với phần còn lại của thế giới. Để kiểm tra cài đặt DNS của bạn thông qua cùng một trang web, hãy nhấp vào Kiểm tra mở rộng và nó sẽ cho bạn biết bạn đang sử dụng server DNS nào.

Bây giờ, hãy kết nối ứng dụng OpenVPN với VPN của Server và làm mới trình duyệt. Một địa chỉ IP hoàn toàn khác (của server VPN của bạn) bây giờ sẽ xuất hiện và đây là cách bạn xuất hiện với thế giới. , Kiểm tra mở rộng của DNSLeakTest sẽ kiểm tra cài đặt DNS của bạn và xác nhận bạn hiện đang sử dụng trình phân giải DNS do VPN của bạn đẩy.

Bước 12 - Thu hồi Chứng chỉ Khách hàng

Đôi khi, bạn có thể cần phải thu hồi certificate ứng dụng client để ngăn truy cập thêm vào server OpenVPN.

Để làm như vậy, hãy chuyển đến folder EasyRSA trên máy CA của bạn:

  • cd EasyRSA-3.0.4/

Tiếp theo, chạy tập lệnh easyrsa với tùy chọn revoke , theo sau là tên khách hàng mà bạn muốn thu hồi:

  • ./easyrsa revoke client2

Thao tác này sẽ yêu cầu bạn xác nhận việc thu hồi bằng lệnh yes :

Output
Please confirm you wish to revoke the certificate with the following subject: subject= commonName = client2 Type the word 'yes' to continue, or any other input to abort. Continue with revocation: yes

Sau khi xác nhận hành động, CA sẽ thu hồi hoàn toàn certificate của khách hàng. Tuy nhiên, server OpenVPN của bạn hiện không có cách nào để kiểm tra xem có bất kỳ certificate nào của client đã bị thu hồi hay không và client vẫn có quyền truy cập vào VPN. Để sửa lỗi này, hãy tạo danh sách thu hồi certificate (CRL) trên máy CA của bạn:

  • ./easyrsa gen-crl

Điều này sẽ tạo ra một file có tên là crl.pem . Chuyển file này sang server OpenVPN của bạn một cách an toàn:

  • scp ~/EasyRSA-3.0.4/pki/crl.pem sammy@your_server_ip:/tmp

Trên server OpenVPN của bạn, sao chép file này vào folder /etc/openvpn/ :

  • sudo cp /tmp/crl.pem /etc/openvpn

Tiếp theo, mở file cấu hình server OpenVPN:

  • sudo nano /etc/openvpn/server.conf

Ở cuối file , hãy thêm tùy chọn crl-verify , tùy chọn này sẽ hướng dẫn server OpenVPN kiểm tra danh sách thu hồi certificate mà ta đã tạo mỗi lần cố gắng kết nối:

/etc/openvpn/server.conf
crl-verify crl.pem 

Lưu và đóng file .

Cuối cùng, khởi động lại OpenVPN để thực hiện việc thu hồi certificate :

  • sudo systemctl restart openvpn@server

Máy khách sẽ không thể kết nối thành công với server bằng thông tin đăng nhập cũ.

Để thu hồi khách hàng bổ sung, hãy làm theo quy trình sau:

  1. Thu hồi certificate bằng lệnh ./easyrsa revoke client_name
  2. Tạo CRL mới
  3. Chuyển file crl.pem mới sang server OpenVPN của bạn và sao chép nó vào folder /etc/openvpn để overrides lên danh sách cũ.
  4. Khởi động lại dịch vụ OpenVPN.

Bạn có thể sử dụng quy trình này để thu hồi bất kỳ certificate nào mà bạn đã cấp trước đó cho server của bạn .

Kết luận

Như vậy, bạn đang duyệt qua internet một cách an toàn, bảo vệ danh tính, vị trí và lưu lượng truy cập của bạn khỏi những kẻ rình mò và kiểm duyệt.

Để cấu hình nhiều client hơn, bạn chỉ cần làm theo các bước 49-11 cho từng thiết bị bổ sung. Để thu hồi quyền truy cập vào client , chỉ cần làm theo bước 12 .


Tags:

Các tin trước

Cách thiết lập và cấu hình server OpenVPN trên CentOS 7 2018-03-19
Cách thiết lập và cấu hình server OpenVPN trên CentOS 7 2018-03-19
Cách chặn quảng cáo ở cấp DNS bằng Pi-hole và OpenVPN trên Ubuntu 16.04 2017-12-04
Cách tạo mạng nội bộ với OpenVPN trên Ubuntu 16.04 2016-09-23
Cách thiết lập server OpenVPN trên Ubuntu 16.04 2016-05-04
3 cách duyệt Internet an toàn với OpenVPN trên Debian 8 2015-08-31
Cách thiết lập server OpenVPN trên Debian 8 2015-08-10
Cách cấu hình và kết nối với server OpenVPN riêng trên FreeBSD 10.1 2015-04-14
Cách chạy OpenVPN trong Docker Container trên Ubuntu 14.04 2015-02-02
Cách thiết lập server OpenVPN trên Ubuntu 14.04 2015-01-28