Cài đặt OPENVPN TRÊN CENTOS 8?

Cài đặt OPENVPN TRÊN CENTOS 8?

1. Cài đặt OPENVPN trên CENTOS 8?

Chuẩn bị:
  • Yêu cầu hướng dẫn
  • Yêu cầu CentOSLinux8
  • Quyền Root

Bước 1: Cập nhật hệ thống của bạn Chạy lệnh dnf hoặc lệnh yum để cài đặt các bản cập nhật bảo mật CentOS 8:

{vivek@centos8:~ }$ sudo dnf update

{vivek@centos8:~ }$ sudo yum update

{vivek@centos8:~ }$ sudo yum install tar wget

Bước 2: Tìm và ghi lại địa chỉ IPv4 hoặc IPv6 của máy chủ của bạn

Sử dụng lệnh ip như sau:
{vivek@centos8:~ }$ ip a
{vivek@centos8:~ }$ ip a show eth0

Chúng ta có thể thử lệnh dig / lệnh host sau đây để tìm ra địa chỉ IP công khai của bạn từ dòng lệnh Linux :

{vivek@centos8:~ }$ dig +short myip.opendns.com @resolver1.opendns.com
{vivek@centos8:~ }$ dig -4 TXT +short o-o.myaddr.l.google.com @ns1.google.com | awk -F'"' '{ print $2 }'

172.105.120.136

Vui lòng ghi lại địa chỉ IP 172.105.120.136. Bạn cần thay thế cái này bằng IPv4 thực tế của mình.

Lưu ý về địa chỉ IPv4 và IPv6 của bạn

Hầu hết các máy chủ đám mây có hai loại địa chỉ IP:

  1. Địa chỉ IP tĩnh công cộng được gán trực tiếp cho hộp của bạn và được định tuyến từ Internet. Ví dụ: Linode, Digital Ocean và các dịch vụ khác cung cấp cho bạn địa chỉ IPv4/IPv6 công khai trực tiếp.
  2. Địa chỉ IP tĩnh riêng được gắn trực tiếp vào máy chủ của bạn và máy chủ của bạn đứng sau NAT với địa chỉ IP công cộng . Ví dụ: AWS EC2/Lightsail, Google Cloud và những dịch vụ khác cung cấp cho bạn loại địa chỉ IP công cộng NAT này.

Tập lệnh sẽ tự động phát hiện thiết lập mạng của bạn. Tất cả những gì bạn phải làm là cung cấp địa chỉ IPv4 hoặc IPv6 chính xác khi được yêu cầu. Do đó, chúng tôi đã sử dụng lệnh trên để xác định trước địa chỉ IP của mình.

ớc 3 – Tải xuống và chạy tập lệnh centos-8-vpn.sh

Tôi sẽ sử dụng lệnh wget : Đảm bảo rằng bạn đã thiết lập quyền bằng lệnh chmod: Người ta cũng có thể xem tập lệnh bằng trình soạn thảo văn bản như vim/vi :
{vivek@centos8:~ }$ wget https://raw.githubusercontent.com/Angristan/openvpn-install/master/openvpn-install.sh -O centos-8-vpn.sh

{vivek@centos8:~ }$ chmod +x centos-8-vpn.sh

{vivek@centos8:~ }$ vim centos-8-vpn.sh
Đang tải xuống tập lệnh CentOS Linux 8 OpenVPN

Cài đặt máy chủ OpenVPN trên CentOS 8 Linux bằng Centos-8-vpn.sh

Bây giờ, tất cả những gì bạn phải làm là chạy tập lệnh shell trên Linux : Phiên mẫu từ máy chủ đám mây Linode của tôi với địa chỉ IPv4 công khai trực tiếp :
{vivek@centos8:~ }$ sudo ./centos-8-vpn.sh

CentOS 8 Thiết lập OpenVPN lệnh yum
Phiên mẫu từ AWS/Lightsail nơi máy chủ đám mây của tôi đứng sau NAT :
Máy chủ AWS CentOS Linux 8 có địa chỉ NAT IPv4

Cấu hình máy khách trên máy tính để bàn hoặc thiết bị di động

Khi hoàn tất cấu hình máy chủ VPN, chúng ta có thể tạo tệp cấu hình VPN máy tính để bàn/máy khách di động. Bạn sẽ được nhắc như sau:

Làm cách nào để bắt đầu/dừng/khởi động lại máy chủ OpenVPN trên CentOS 8?

#--- Stop the server ---#
{vivek@centos8:~ }$ sudo systemctl stop openvpn-server@server.service
#--- Start the server ---#
{vivek@centos8:~ }$ sudo systemctl start openvpn-server@server.service
#--- Restart the server ---#
{vivek@centos8:~ }$ sudo systemctl restart openvpn-server@server.service
#--- Get the server status ---#
{vivek@centos8:~ }$ sudo systemctl status openvpn-server@server.service

OpenVPN chạy trên CentOS 8

Bước 4 – Kết nối máy chủ OpenVPN bằng ứng dụng khách iOS/Android/Linux/MS-Windows

Trên máy chủ, bạn sẽ tìm thấy tệp cấu hình máy khách có tên ~/DesktopVPNClient.ovpn. Tất cả những gì bạn phải làm là sao chép tệp này vào máy tính để bàn cục bộ của mình bằng lệnh scp: Tiếp theo, cung cấp tệp này cho ứng dụng khách OpenVPN của bạn cho mục đích kết nối:
{vivek@centos8:~ }$ scp vivek@172.105.120.136:~/DesktopVPNClient.ovpn .

  1. Tải xuống ứng dụng khách Apple iOS từ Apple App store
  2. Lấy ứng dụng khách Android từ cửa hàng Google Play
  3. Máy khách Apple MacOS (OS X)
  4. Máy khách Microsoft Windows 8/10

Cấu hình máy khách máy tính để bàn OpenVPN Linux

Trước tiên, hãy cài đặt ứng dụng khách openvpn cho máy tính để bàn của bạn, nhập: Đối với Debian/Ubuntu Linux, hãy thử lệnh apt / lệnh apt-get : Tiếp theo, sao chép DesktopVPNClient.ovpn như sau: Kiểm tra kết nối từ CLI: Hệ thống máy tính để bàn Linux của chúng tôi sẽ tự động kết nối khi khởi động lại máy tính bằng tập lệnh/dịch vụ openvpn:
{vivek@centos8-client:~ }$ sudo yum install openvpn
{vivek@debian-client:~ }$ sudo apt install openvpn
{vivek@centos8-client:~ }$ sudo cp DesktopVPNClient.ovpn /etc/openvpn/client.conf
{vivek@centos8-client:~ }$ sudo openvpn --client --config /etc/openvpn/desktop.conf
{vivek@centos8-client:~ }$ sudo systemctl start openvpn@client

Bước 5 – Xác minh/kiểm tra kết nối

Thực hiện các lệnh sau sau khi kết nối với máy chủ OpenVPN từ máy khách máy tính để bàn Linux của bạn:
#Ping to the OpenVPN server gateway
{vivek@centos8-client:~ }$ ping 10.8.0.1
#Make sure routing setup working
{vivek@centos8-client:~ }$ ip route
#Must return public IP address of OpenVPN server
{vivek@centos8-client:~ }$ dig TXT +short o-o.myaddr.l.google.com @ns1.google.com

Bước 6 – Cách thêm hoặc xóa ứng dụng khách OpenVPN

Đăng nhập vào máy chủ Linux CentOS 8 của bạn và chạy lại tập lệnh: Bạn sẽ thấy tùy chọn như sau:
{vivek@centos8:~ }$ sudo ./centos-8-vpn.sh

Chào mừng bạn đến với OpenVPN-cài đặt!
Kho git có sẵn tại: https://github.com/angristan/openvpn-install

Có vẻ như OpenVPN đã được cài đặt.

Bạn muốn làm gì?
   1) Thêm người dùng mới
   2) Thu hồi người dùng hiện tại
   3) Xóa OpenVPN
   4) Thoát
Chọn một tùy chọn [1-4]:

Chọn một tùy chọn theo nhu cầu của bạn.

Lưu ý về sự cố xử lý sự cố máy chủ và máy khách OpenVPN

Kiểm tra máy chủ OpenVPN để tìm lỗi bằng lệnh journalctl{vivek@centos8:~ }$ journalctl --identifier openvpn

Tệp nhật ký máy chủ OpenVPN

Nhấp để phóng to

Quy tắc tường lửa có được thiết lập chính xác trên máy chủ của bạn không? Sử dụng lệnh cat để xem các quy tắc: Đây là các quy tắc NAT:
{vivek@centos8:~ }$ sudo cat /etc/iptables/add-openvpn-rules.sh

#!/bin/sh 
iptables -t nat -I POSTROUTING 1  -s 10.8.0.0 / 24  -o eth0 -j MASQUERADE
iptables -I INPUT 1  -i tun0 -j CHẤP NHẬN
iptables -I FORWARD 1  -i eth0 -o tun0 -j CHẤP NHẬN
iptables -I FORWARD 1  -i tun0 -o eth0 -j CHẤP NHẬN
iptables -I INPUT 1  -i eth0 -p udp --dport  1194  -j CHẤP NHẬN
 thoát  0

Đây là tập lệnh iptables mẫu để xóa các quy tắc OpenVPN: Kết quả:
{vivek@centos8:~ }$ sudo cat /etc/iptables/rm-openvpn-rules.sh

#!/ bin / sh 
iptables -t nat -D POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE 
iptables -D INPUT -i tun0 -j CHẤP NHẬN
iptables -D FORWARD -i eth0 -o tun0 -j CHẤP NHẬN
iptables -D FORWARD -i tun0 -o eth0 -j CHẤP NHẬN
iptables -D INPUT -i eth0 -p udp --dport  1194  -j CHẤP NHẬN

Một tùy chọn khác là chạy lệnh iptables và lệnh lệnh sysctl để xác minh thiết lập quy tắc NAT trên máy chủ của bạn:
{vivek@centos8:~ }$ sudo iptables -t nat -L -n -v
{vivek@centos8:~ }$ sysctl net.ipv4.ip_forward


Chèn các quy tắc nếu không được chèn từ /etc/rc.local Máy chủ OpenVPN có đang chạy và cổng đang mở không? Sử dụng lệnh ss hoặc lệnh netstat và lệnh pidof / lệnh ps cùng với lệnh grep như sau:
{vivek@centos8:~ }$ sudo sh /etc/iptables/add-openvpn-rules.sh
{vivek@centos8:~ }$ sudo sysctl -w net.ipv4.ip_forward=1

{vivek@centos8:~ }$ netstat -tulpn | grep :1194 #1194 is the openvpn server port
{vivek@centos8:~ }$ ss -tulpn | grep :1194 #1194 is the openvpn server port
{vivek@centos8:~ }$ ps aux | grep openvpn #Is the openvpn server running?
{vivek@centos8:~ }$ ps -C openvpn #Is the openvpn server running?
{vivek@centos8:~ }$ pidof openvpn #Find the openvpn server PID

Xác minh rằng máy chủ OpenVPN đang chạy và cổng UDP 1194 đang mở
Nếu không chạy, hãy khởi động lại máy chủ OpenVPN: Tìm lỗi: Tương tự, hãy đảm bảo dịch vụ openvpn-iptables cũng đang chạy và nếu quy tắc tải không chạy: Tường lửa của tôi đang chạy:
{vivek@centos8:~ }$ sudo systemctl restart openvpn-server@server.service

{vivek@centos8:~ }$ sudo systemctl status openvpn-server@server.service

{vivek@centos8:~ }$ sudo systemctl status iptables-openvpn.service
{vivek@centos8:~ }$ sudo systemctl restart iptables-openvpn.service
{vivek@centos8:~ }$ sudo systemctl status iptables-openvpn.service

● iptables-openvpn.service - quy tắc iptables cho OpenVPN
   Đã tải: đã tải (/etc/systemd/system/iptables-openvpn.service; đã bật; giá trị đặt trước của nhà cung cấp: đã tắt)
   Hoạt động: hoạt động (đã thoát) kể từ Chủ Nhật 2020-12-27 10:18:17 UTC; 21 phút trước
 PID chính: 654 (mã=đã thoát, trạng thái=0/THÀNH CÔNG)
    Nhiệm vụ: 0 (giới hạn: 4947)
   Bộ nhớ: 0B
   Nhóm C: /system.slice/iptables-openvpn.service

Ngày 27 tháng 12 10:18:16 centos-8-nixcraft systemd[1]: Bắt đầu quy tắc iptables cho OpenVPN...
Ngày 27 tháng 12 10:18:17 centos-8-nixcraft systemd[1]: Đã bắt đầu quy tắc iptables cho OpenVPN.

Máy khách để bàn Linux có thể kết nối với máy chủ OpenVPN không? Trước tiên, bạn cần chạy một thử nghiệm đơn giản để xem cổng máy chủ OpenVPN (UDP 1194) có chấp nhận kết nối bằng lệnh nc hoặc lệnh nmap hay không : Đầu ra sau cho biết cổng UDP 1194 đang mở:
{vivek@centos8:~ }$ sudo nmap -sU -p 1194 172.105.120.136

Bắt đầu từ Nmap 7.80 ( https://nmap.org ) lúc 27-12-2020 16:07 IST
Báo cáo quét Nmap cho lixyz-328.members.linode.com (172.105.120.136)
Máy chủ đang hoạt động (độ trễ 0,32 giây).

DỊCH VỤ NHÀ NƯỚC CẢNG
1194/udp mở |openvpn đã lọc

Nmap đã hoàn thành: 1 địa chỉ IP (1 máy chủ lưu trữ) được quét trong 3,68 giây

Nếu không được kết nối, điều đó có nghĩa là tường lửa máy tính để bàn Linux hoặc bộ định tuyến tại nhà/văn phòng của bạn đang chặn quyền truy cập vào máy chủ. Đảm bảo cả máy khách và máy chủ sử dụng cùng một giao thức và cổng. Ví dụ: cổng UDP 1194.

Lưu ý về FirewallD trên CentOS 8

Theo mặc định, FirewallD sẽ chặn quyền truy cập vào UDP/1194 và tập lệnh trên không tương thích với các quy tắc iptables trên máy chủ OpenVPN của bạn. Trước tiên, hãy tìm hiểu xem tường lửa có hoạt động hay không trên máy chủ, hãy chạy:

{vivek@centos8:~ }$ sudo systemctl is-enabled firewalld.service
enabled
## [-- eth0 is server interface with IPv4/IPv6 --] ##
## [-- tun0 is OpenVPN interface ##
## [-- 10.8.0.0/24 sub/net for OpenVPN --] ##
## [-- ADJUST VALUES AS PER YOUR SET UP WHEN TYPING THE FOLLOWING COMMANDS --] ##
{vivek@centos8:~ }$ sudo firewall-cmd --get-active-zones
{vivek@centos8:~ }$ sudo firewall-cmd --zone=trusted --add-interface=tun0
{vivek@centos8:~ }$ sudo firewall-cmd --permanent --zone=trusted --add-interface=tun0
{vivek@centos8:~ }$ sudo firewall-cmd --permanent --add-service openvpn
{vivek@centos8:~ }$ sudo firewall-cmd --permanent --zone=trusted --add-service openvpn
{vivek@centos8:~ }$ sudo firewall-cmd --reload
{vivek@centos8:~ }$ sudo firewall-cmd --list-services --zone=trusted
{vivek@centos8:~ }$ sudo firewall-cmd --add-masquerade
{vivek@centos8:~ }$ sudo firewall-cmd --add-masquerade --permanent
{vivek@centos8:~ }$ sudo firewall-cmd --query-masquerade
# note eth0 is where servers public ipv4/ipv6 assinged #
{vivek@centos8:~ }$ sudo firewall-cmd --permanent --direct --passthrough ipv4 -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

>>> Thiết lập và cấu hình máy chủ OPENVPN trên CENTOS 7.2

Be the first to comment

Leave a Reply

Your email address will not be published.


*