Cách thiết lập server OpenVPN trên Debian 9
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 Debian 9 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  Debian 9 để 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 Debian 9 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  Debian 9 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 Debian 9 để biết hướng dẫn về cách thực hiện một trong hai 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 Debian, 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 việc này, ta sẽ download version EasyRSA mới nhất, ta sẽ sử dụng version này để 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 :
. . .  #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:
. . .  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.crt và ca.key - tạo nên các mặt công khai và riêng tư của certificate  SSL.
-  ca.crtlà 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 fileca.crt.
-  ca.keylà 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ó, fileca.keycủ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 fileca.keycủ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 và .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.crt và ca.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 :
- sudo 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-req và nopass , 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 :
OutputType 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.crt và ta.key vào folder  /client-configs/keys/ :
- sudo 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ó:
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ó:
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:
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:
dh dh.pem Cuối cùng, tìm cài đặt user và group và xóa “ ; ”Ở đầu mỗi dòng để bỏ ghi chú những dòng này:
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ú:
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:
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 .
# 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:
# 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:
# 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 và .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:
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:
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 
Outputnet.ipv4.ip_forward = 1 Nếu bạn đã làm theo hướng dẫn cài đặt server ban đầu Debian 9 được liệt kê trong yêu cầu , bạn phải có firewall UFW tại chỗ. 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 eth0 , được đánh dấu bên dưới:
Outputdefault via 203.0.113.1 dev eth0 onlink 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ế eth0 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:
# # 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 eth0 (change to the interface you discovered!) -A POSTROUTING -s 10.8.0.0/8 -o eth0 -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 :
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 :
Output4: 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:
. . . # 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 :
proto udp Tiếp theo, bỏ ghi chú user và chỉ thị group bằng cách xóa “ ; ”Ở đầu mỗi dòng:
# Downgrade privileges after initialization (non-Windows only) user nobody group nogroup Tìm các lệnh đặt ca , cert và key .  Comment  các chỉ thị này vì bạn sẽ sớm thêm certificate  và khóa trong chính file :
# 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 :
# 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 cipher và auth mà bạn đã đặt trong file  /etc/openvpn/server.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 :
key-direction 1 Cuối cùng, thêm một vài dòng  comment  . Mặc dù bạn có thể bao gồm các lệnh này trong mọi file  cấu hình client , bạn chỉ cần bật chúng cho các client  Linux có file  /etc/openvpn/update-resolv-conf . Tập lệnh này  sử dụng trình  resolvconf để cập nhật thông tin DNS cho các client  Linux.
# script-security 2 # up /etc/openvpn/update-resolv-conf # down /etc/openvpn/update-resolv-conf Nếu client  của bạn đang chạy Linux và có file  /etc/openvpn/update-resolv-conf , hãy bỏ ghi chú những dòng này khỏi file  cấu hình của client  sau khi nó được tạo.
Lưu file khi bạn hoàn tất.
 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, đảm bảo thay đổi sammy thành nội dung của account   user  không phải root  server  của bạn:
#!/bin/bash  # First argument: Client identifier  KEY_DIR=/home/sammy/client-configs/keys OUTPUT_DIR=/home/sammy/client-configs/files BASE_CONFIG=/home/sammy/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.crt và client1.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 
Outputclient1.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 :
- WinSCP
- Cách sử dụng SFTP để truyền file an toàn bằng server từ xa
- Cách sử dụng Filezilla để truyền và quản lý file an toàn trên VPS của bạn
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.
 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 Có . 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. Để đơn giản, hãy trả lời Không và để Tunnelblick kết thúc. 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 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 Kết nối để bắt đầu kết nối VPN. Chọn kết nối client1 .
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
 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 :
- ls /etc/openvpn 
Outputupdate-resolv-conf Tiếp theo, chỉnh sửa file cấu hình client OpenVPN mà bạn đã chuyển:
- nano client1.ovpn 
Nếu bạn có thể tìm thấy file  update-resolv-conf , hãy bỏ ghi chú ba dòng bạn đã thêm để điều chỉnh cài đặt DNS:
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:
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. 
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ó.
Đ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 .
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 .
 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. 
Đ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 .
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ờ kết nối ứng dụng client OpenVPN với VPN của server của bạn 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 :
OutputPlease 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:
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:
-  Thu hồi certificate  bằng lệnh ./easyrsa revoke client_name
- Tạo CRL mới
-  Chuyển file  crl.pemmớ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ũ.
- 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. Nếu tại thời điểm này, bạn không cần cấp certificate nữa, bạn nên tắt máy CA của bạn hoặc ngắt kết nối nó khỏi internet cho đến khi bạn cần thêm hoặc thu hồi certificate . Điều này sẽ giúp ngăn những kẻ tấn công truy cập vào VPN của bạn.
Để cấu hình nhiều client hơn, bạn chỉ cần làm theo các bước 4 và 9-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 .
Các tin liên quan
Cách thiết lập server OpenVPN trên Ubuntu 18.042018-05-24
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
 

