OpenConnect VPN hay còn gọi là ocserv là giải pháp VPN miễn phí mã nguồn mở với hiệu suất và tính năng cấp doanh nghiệp. Giải pháp này dựa trên giao thức VPN Cisco AnyConnect được sử dụng rộng rãi trong ngành công nghiệp doanh nghiệp. Trong hướng dẫn này, bạn sẽ tìm hiểu cách cài đặt máy chủ VPN OpenConnect trên máy Ubuntu 22.04. Bạn cũng sẽ học cách sử dụng máy khách OpenConnect để kết nối với máy chủ.
[*]
Một số gói mà hệ thống của bạn cần.
Một số gói này có thể đã được cài đặt trên hệ thống của bạn.
Kiểm tra xem tường lửa có đang chạy không.
Bạn sẽ nhận được kết quả sau.
Cho phép cổng SSH để tường lửa không làm gián đoạn kết nối hiện tại khi bật nó.
Cũng cho phép các cổng HTTP và HTTPS.
Bật Tường lửa
Kiểm tra trạng thái của tường lửa một lần nữa.
Bạn sẽ thấy một đầu ra tương tự.
Tuy nhiên, đối với hướng dẫn này, chúng tôi sẽ cài đặt phiên bản mới nhất (1.1.6) của OpenConnect. Để thực hiện điều này, chúng ta sẽ cần xây dựng nó từ nguồn.
Cài đặt các phụ thuộc cần thiết để xây dựng nguồn.
Sao chép kho lưu trữ Git ocserv.
Chuyển sang kho lưu trữ đã sao chép thư mục.
Tạo tập lệnh cấu hình.
Biên dịch mã nguồn. Bỏ qua bất kỳ cảnh báo nào đã lỗi thời.
Cài đặt ocserv.
Các tệp sẽ được cài đặt vào
Mở tệp dịch vụ để chỉnh sửa.
Thay đổi đường dẫn đến tệp nhị phân ocserv theo lệnh sau dòng
đến dòng sau.
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Tải lại hệ thống daemon.
Ubuntu 22.04 đi kèm với Snapd được cài đặt theo mặc định. Chạy các lệnh sau để đảm bảo rằng phiên bản Snapd của bạn được cập nhật.
Cài đặt Certbot.
Sử dụng lệnh sau để đảm bảo rằng lệnh Certbot có thể chạy được bằng cách tạo liên kết tượng trưng đến
Có hai khả năng khi tạo chứng chỉ SSL. Nếu bạn không có máy chủ web đang chạy trên hệ thống của mình, bạn có thể sử dụng phương pháp độc lập để tạo chứng chỉ. Chạy lệnh sau để tạo chứng chỉ bằng plugin độc lập cho Certbot.
Lệnh trên sẽ tải chứng chỉ xuống thư mục
Tiếp theo, nếu bạn có máy chủ đang chạy trên hệ thống của mình, bạn có thể sử dụng plugin webroot hoặc plugin Nginx hoặc Apache nếu bạn đang sử dụng chúng. Đối với máy chủ Nginx hoặc Apache, bạn chỉ cần chạy lệnh bên dưới.
hoặc
Nếu bạn có máy chủ khác, thì chúng ta sẽ cần sử dụng plugin webroot. Để thực hiện điều đó, hãy tạo thư mục gốc của web.
Đặt máy chủ làm chủ sở hữu của thư mục gốc của web. Trong trường hợp của chúng tôi, chúng tôi đang sử dụng
Tiếp theo, hãy cấu hình máy chủ của bạn để phục vụ miền
Kiểm tra dịch vụ lập lịch gia hạn Certbot.
Bạn sẽ tìm thấy
Thực hiện chạy thử quy trình để kiểm tra xem việc gia hạn SSL có hoạt động không tốt.
Nếu bạn không thấy lỗi nào, bạn đã hoàn tất. Chứng chỉ của bạn sẽ tự động gia hạn.
Tạo thư mục cho tệp cấu hình.
Sao chép tệp cấu hình.
Mở tệp để chỉnh sửa.
Thay đổi giá trị tham số
Theo mặc định, OpenConnect sử dụng 443 cổng TCP và UDP. Chúng tôi sẽ chỉ sử dụng cổng TCP để kết nối, do đó, hãy tắt cổng UDP bằng cách bình luận nó.
Nếu bạn có máy chủ web đang chạy trên cổng 443, hãy thay đổi giá trị của cổng TCP bằng cách thay đổi giá trị.
Tiếp theo, tìm các biến
Đặt số lượng máy khách tối đa được phép. Giá trị mặc định là 16. Đặt thành 0 để không giới hạn.
Đặt số lượng thiết bị mà người dùng có thể sử dụng cùng lúc. Giá trị mặc định là 2. Đặt thành 0 để không giới hạn.
Theo mặc định, OpenConnect gửi các gói tin duy trì trạng thái kết nối sau mỗi 9 giờ (32400 giây). Giá trị này quá cao. Đặt thành 60 giây để giảm khả năng mất kết nối VPN.
Thay đổi giá trị của
Cấu hình thời gian mà máy khách được phép ở chế độ chờ trước khi ngắt kết nối bằng cách bỏ chú thích các biến sau. Nếu bạn muốn máy khách duy trì kết nối vô thời hạn, hãy để nguyên như vậy.
Đặt tên miền mặc định cho OpenConnect VPN.
Thay đổi cấu hình IPv4 mặc định để tránh xung đột địa chỉ IP. Chúng tôi sẽ sử dụng
Bỏ chú thích dòng sau để tạo đường hầm cho tất cả các truy vấn DNS qua VPN.
Thay đổi trình phân giải DNS thành Google DNS. Thêm mục nhập thứ hai nữa.
Bình luận tất cả các tham số tuyến đường bằng cách thêm ký hiệu thăng (#) vào trước chúng.
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Kiểm tra trạng thái của dịch vụ.
Bạn sẽ nhận được thông báo tương tự đầu ra.
Nếu bạn thấy lỗi liên quan đến kết nối đến
Mật khẩu sẽ được lưu vào tệp
Chạy các lệnh sau để bật thuật toán TCP BBR nhằm tăng tốc độ TCP.
Thực hiện các thay đổi vĩnh viễn bằng cách sử dụng lệnh sau lệnh.
Bạn sẽ nhận được kết quả tương tự.
Trong trường hợp của chúng tôi,
Thêm các dòng sau vào cuối tệp. Thay thế
Tìm các dòng sau trong tập tin.
Dán các dòng sau vào sau nó.
Lưu tập tin bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Khởi động lại tường lửa.
Bạn có thể kiểm tra quy tắc Masquerade bằng lệnh sau.
Bạn sẽ nhận được thông báo sau output.
Tiếp theo, kết nối với máy chủ VPN bằng lệnh sau. Cờ
Bạn sẽ được yêu cầu nhập tên người dùng và mật khẩu VPN. Nhập thông tin xác thực đã tạo ở bước 7.
Bạn sẽ thấy đầu ra sau khi kết nối thành công. DTLS bị vô hiệu hóa vì chúng tôi đã vô hiệu hóa UDP.
Chạy lệnh sau để dừng kết nối.
Chúng ta hãy tạo một số tập lệnh systemd cho OpenConnect. Tập lệnh đầu tiên là để máy khách tự động kết nối khi khởi động hệ thống.
Tạo và mở tệp dịch vụ để chỉnh sửa.
Dán mã sau vào đó.
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Kích hoạt dịch vụ.
Khởi động dịch vụ.
Để tự động khởi động lại kết nối VPN khi PC của bạn tiếp tục từ trạng thái tạm dừng, bạn cần tạo một tập lệnh systemd khác.
Tạo và mở tập lệnh khởi động lại cho chỉnh sửa.
Dán mã sau vào đó.
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Bật dịch vụ.
Chúng ta cũng có thể tạo một dịch vụ để tự động khởi động lại kết nối VPN khi nó bị ngắt. Tạo và mở dịch vụ kiểm tra VPN để chỉnh sửa.
Dán mã sau vào đó.
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Bật và bắt đầu dịch vụ.
Điều này sẽ chạy lệnh ping mãi mãi để kiểm tra kết nối VPN. Nếu nó bị rớt, nó sẽ tự động khởi động lại OpenConnect.
Bạn có thể tải xuống OpenConnect GUI Clients nếu bạn muốn. Tuy nhiên, chúng đã không được cập nhật trong một thời gian khá dài. Nếu bạn muốn có một máy khách GUI được cập nhật, bạn có thể truy cập Kho lưu trữ GitLab GUI OpenConnect và tự biên dịch nó.
Điều kiện tiên quyết
-
Máy chủ chạy Ubuntu 22.04.
-
Người dùng không phải root có quyền sudo.
-
Tên miền đủ điều kiện (FQDN) nhưvpn.example.com
.
-
Đảm bảo mọi thứ đều đã cập nhật.
Mã:
$ sudo apt update
$ sudo apt upgrade
Một số gói mà hệ thống của bạn cần.
Mã:
$ sudo apt install wget curl nano software-properties-common dirmngr apt-transport-https gnupg2 ca-certificates lsb-release ubuntu-keyring unzip -y
Bước 1 - Cấu hình Tường lửa
Bước đầu tiên là cấu hình tường lửa. Ubuntu đi kèm với ufw (Uncomplicated Firewall) theo mặc định.Kiểm tra xem tường lửa có đang chạy không.
Mã:
$ sudo ufw status
Mã:
Status: inactive
Mã:
$ sudo ufw allow OpenSSH
Mã:
$ sudo ufw allow http
$ sudo ufw allow https
Mã:
$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
Mã:
$ sudo ufw status
Mã:
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
80/tcp ALLOW Anywhere
443 ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
80/tcp (v6) ALLOW Anywhere (v6)
443 (v6) ALLOW Anywhere (v6)
Bước 2 - Cài đặt Git
Bước 3 - Cài đặt OpenConnect
Ubuntu 22.04 đi kèm với phiên bản cũ hơn (1.1.3) của OpenConnect. Nếu bạn hài lòng với điều đó, bạn có thể cài đặt nó bằng lệnh sau.
Mã:
$ sudo apt install ocserv
Cài đặt các phụ thuộc cần thiết để xây dựng nguồn.
Mã:
$ sudo apt install -y libgnutls28-dev libev-dev libpam0g-dev liblz4-dev libseccomp-dev \ libreadline-dev libnl-route-3-dev libkrb5-dev libradcli-dev \ libcurl4-gnutls-dev libcjose-dev libjansson-dev libprotobuf-c-dev \ libtalloc-dev libhttp-parser-dev protobuf-c-compiler gperf \ nuttcp lcov libuid-wrapper libpam-wrapper libnss-wrapper \ libsocket-wrapper gss-ntlmssp haproxy iputils-ping freeradius \ gawk gnutls-bin iproute2 yajl-tools tcpdump autoconf automake
Mã:
$ git clone https://gitlab.com/openconnect/ocserv.git
Mã:
$ cd ocserv
Mã:
$ autoreconf -fvi
Mã:
$ ./configure && make
Mã:
$ sudo make install
/usr/local/bin
và /usr/local/sbin
thư mục. Sao chép tệp dịch vụ systemd.
Mã:
$ sudo cp doc/systemd/standalone/ocserv.service /etc/systemd/system/ocserv.service
Mã:
$ sudo nano /etc/systemd/system/ocserv.service
Mã:
$ ExecStart=/usr/sbin/ocserv --foreground --pid-file /run/ocserv.pid --config /etc/ocserv/ocserv.conf
Mã:
$ ExecStart=/usr/local/sbin/ocserv --foreground --pid-file /run/ocserv.pid --config /etc/ocserv/ocserv.conf
Tải lại hệ thống daemon.
Mã:
$ sudo systemctl daemon-reload
Bước 4 - Tạo chứng chỉ SSL
Chúng ta cần cài đặt Certbot để tạo chứng chỉ SSL. Bạn có thể cài đặt Certbot bằng kho lưu trữ của Ubuntu hoặc lấy phiên bản mới nhất bằng công cụ Snapd. Chúng ta sẽ sử dụng phiên bản Snapd.Ubuntu 22.04 đi kèm với Snapd được cài đặt theo mặc định. Chạy các lệnh sau để đảm bảo rằng phiên bản Snapd của bạn được cập nhật.
Mã:
$ sudo snap install core && sudo snap refresh core
Mã:
$ sudo snap install --classic certbot
/usr/bin
thư mục.
Mã:
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
Mã:
$ sudo certbot certonly --standalone --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [emailprotected] -d vpn.example.com
/etc/letsencrypt/live/vpn.example.com
trên máy chủ của bạn.Tiếp theo, nếu bạn có máy chủ đang chạy trên hệ thống của mình, bạn có thể sử dụng plugin webroot hoặc plugin Nginx hoặc Apache nếu bạn đang sử dụng chúng. Đối với máy chủ Nginx hoặc Apache, bạn chỉ cần chạy lệnh bên dưới.
Mã:
$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [emailprotected] -d vpn.example.com
Mã:
$ sudo certbot certonly --apache --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [emailprotected] -d vpn.example.com
Mã:
$ sudo mkdir -p /var/www/ocserv
www-data
làm người dùng máy chủ.
Mã:
$ sudo chown www-data:www-data /var/www/ocserv -R
vpn.example.com
tại thư mục /var/www/ocserv
. Khởi động lại máy chủ. Tiếp theo, tạo chứng chỉ bằng lệnh sau.
Mã:
$ sudo certbot certonly --webroot --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [emailprotected] -d vpn.example.com
Mã:
$ sudo systemctl list-timers
snap.certbot.renew.service
là một trong những dịch vụ được lên lịch chạy.
Mã:
NEXT LEFT LAST PASSED UNIT ACTIVATES
Wed 2023-04-19 10:31:47 UTC 2h 55min left Wed 2023-04-19 03:31:58 UTC 4h 3min ago ua-timer.timer ua-timer.service
Wed 2023-04-19 12:02:42 UTC 4h 26min left Wed 2023-04-19 03:19:20 UTC 4h 16min ago motd-news.timer motd-news.service
Wed 2023-04-19 18:19:56 UTC 10h left Wed 2023-04-19 07:19:52 UTC 16min ago apt-daily.timer apt-daily.service
Wed 2023-04-19 22:51:00 UTC 15h left n/a n/a snap.certbot.renew.timer snap.certbot.renew.service
Mã:
$ sudo certbot renew --dry-run
Bước 5 - Cấu hình OpenConnect
Nếu bạn đã cài đặt ocserv bằng APT, thì tệp cấu hình sẽ có sẵn tại vị trí/etc/ocserv/ocserv.conf
. Nhưng nếu bạn xây dựng gói từ nguồn, chúng ta cần sao chép tệp cấu hình.Tạo thư mục cho tệp cấu hình.
Mã:
$ sudo mkdir /etc/ocserv
Mã:
$ sudo cp /home/username/ocserv/doc/sample.config /etc/ocserv/ocserv.conf
Mã:
$ sudo nano /etc/ocserv/ocserv.conf
auth
thành giá trị sau. Điều này sẽ cho phép người dùng sử dụng các tài khoản VPN riêng biệt.
Mã:
auth = "plain[passwd=/etc/ocserv/ocpasswd]"
Mã:
tcp-port = 443
#udp-port = 443
Mã:
tcp-port = 8443
server-crt
và server-key
và thay đổi giá trị của chúng thành sau.
Mã:
server-cert = /etc/letsencrypt/live/vpn.example.com/fullchain.pem
server-key = /etc/letsencrypt/live/vpn.example.com/privkey.pem
Mã:
max-clients = 16
Mã:
max-same-clients = 2
Mã:
keepalive = 60
try-mtu-discovery
thành true
để bật chức năng khám phá MTU. Chức năng này có thể tối ưu hóa hiệu suất VPN.
Mã:
try-mtu-discovery = true
Mã:
idle-timeout=1200
mobile-idle-timeout=1800
Mã:
default-domain = vpn.example.com
10.10.10.0
làm giá trị.
Mã:
ipv4-network = 10.10.10.0
Mã:
tunnel-all-dns = true
Mã:
dns = 8.8.8.8
dns = 8.8.4.4
Mã:
#route = 10.10.10.0/255.255.255.0
#route = 192.168.0.0/255.255.0.0
#route = fef4:db8:1000:1001::/64
#route = default
# Subsets of the routes above that will not be routed by
# the server.
#no-route = 192.168.5.0/255.255.255.0
Bước 6 - Khởi động Máy chủ OpenConnect
Khởi động máy chủ VPN OpenConnect.
Mã:
$ sudo systemctl start ocserv
Mã:
$ sudo systemctl status ocserv
Mã:
? ocserv.service - OpenConnect SSL VPN server Loaded: loaded (/etc/systemd/system/ocserv.service; disabled; vendor preset: enabled) Active: active (running) since Thu 2023-04-20 08:52:18 UTC; 2s ago Docs: man:ocserv(8) Main PID: 19965 (ocserv-main) Tasks: 2 (limit: 1026) Memory: 1.4M CPU: 9ms CGroup: /system.slice/ocserv.service ??19965 ocserv-main ??19966 ocserv-sm
Apr 20 08:52:18 openconnect ocserv[19965]: note: skipping 'pid-file' config option
Apr 20 08:52:18 openconnect ocserv[19965]: note: vhost:default: setting 'plain' as primary authentication method
Apr 20 08:52:18 openconnect ocserv[19965]: error connecting to sec-mod socket '/var/run/ocserv-socket.a4413bc9': No such file or directory
Apr 20 08:52:18 openconnect ocserv[19965]: note: setting 'file' as supplemental config option
Apr 20 08:52:18 openconnect ocserv[19965]: listening (TCP) on 0.0.0.0:443...
Apr 20 08:52:18 openconnect ocserv[19965]: listening (TCP) on [::]:443...
Apr 20 08:52:18 openconnect ocserv[19966]: ocserv[19966]: sec-mod: reading supplemental config from files
Apr 20 08:52:18 openconnect ocserv[19966]: sec-mod: reading supplemental config from files
Apr 20 08:52:18 openconnect ocserv[19966]: ocserv[19966]: sec-mod: sec-mod initialized (socket: /var/run/ocserv-socket.a4413bc9.0)
Apr 20 08:52:18 openconnect ocserv[19966]: sec-mod: sec-mod initialized (socket: /var/run/ocserv-socket.a4413bc9.0)
sec-mod socket
, hãy bỏ qua. Điều đó là bình thường. Nó sẽ khởi tạo tệp nếu không tìm thấy tệp đó.Bước 7 - Tạo tài khoản VPN
Bạn có thể tạo tài khoản VPN bằng tiện íchocpasswd
. Chạy lệnh sau để tạo tài khoản VPN mới.
Mã:
$ sudo ocpasswd -c /etc/ocserv/ocpasswd username
Enter password:
Re-enter password:
/etc/ocserv/ocpasswd
. Để đặt lại mật khẩu cho username
, hãy chạy lại lệnh trên. Chạy lệnh trên với một người dùng khác để tạo một tài khoản khác.Bước 8 - Bật Chuyển tiếp IP
Để máy chủ VPN định tuyến các gói tin giữa máy khách và Internet, bạn cần bật chuyển tiếp IP bằng cách chạy lệnh sau.
Mã:
$ echo "net.ipv4.ip_forward = 1" | sudo tee /etc/sysctl.d/60-custom.conf
Mã:
$ echo "net.core.default_qdisc=fq" | sudo tee -a /etc/sysctl.d/60-custom.conf
$ echo "net.ipv4.tcp_congestion_control=bbr" | sudo tee -a /etc/sysctl.d/60-custom.conf
Mã:
$ sudo sysctl -p /etc/sysctl.d/60-custom.conf
Bước 9 - Cấu hình ngụy trang IP
Bước tiếp theo là thiết lập ngụy trang IP trong tường lửa để máy chủ VPN có thể hoạt động như một bộ định tuyến ảo cho các máy khách. Tìm tên giao diện mạng chính của máy chủ.
Mã:
$ ip addr
Mã:
1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: enp1s0: mtu 1500 qdisc fq state UP group default qlen 1000 link/ether 56:00:04:67:7e:79 brd ff:ff:ff:ff:ff:ff inet 95.179.138.135/23 metric 100 brd 95.179.139.255 scope global dynamic enp1s0 valid_lft 66999sec preferred_lft 66999sec inet6 2a05:f480:1400:2381:5400:4ff:fe67:7e79/64 scope global dynamic mngtmpaddr noprefixroute valid_lft 2591657sec preferred_lft 604457sec inet6 fe80::5400:4ff:fe67:7e79/64 scope link valid_lft forever preferred_lft forever
enp1s0
là tên của giao diện. Thêm lệnh iptables vào tệp cấu hình UFW bằng cách mở tệp đó để chỉnh sửa.
Mã:
$ sudo nano /etc/ufw/before.rules
enp1s0
trong mã bằng giao diện mạng của bạn.
Mã:
# NAT table rules
*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 10.10.10.0/24 -o enp1s0 -j MASQUERADE
# End each table with the 'COMMIT' line or these rules won't be processed
COMMIT
Mã:
# ok icmp code for FORWARD
-A ufw-before-forward -p icmp --icmp-type destination-unreachable -j ACCEPT
-A ufw-before-forward -p icmp --icmp-type time-exceeded -j ACCEPT
-A ufw-before-forward -p icmp --icmp-type parameter-problem -j ACCEPT
-A ufw-before-forward -p icmp --icmp-type echo-request -j ACCEPT
Mã:
# allow forwarding for trusted network
-A ufw-before-forward -s 10.10.10.0/24 -j ACCEPT
-A ufw-before-forward -d 10.10.10.0/24 -j ACCEPT

Lưu tập tin bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Khởi động lại tường lửa.
Mã:
$ sudo systemctl restart ufw
Mã:
$ sudo iptables -t nat -L POSTROUTING
Mã:
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE all -- 10.10.10.0/24 anywhere
Bước 10 - Kết nối bằng OpenConnect Client
Chúng tôi sẽ cài đặt OpenConnect Client trên máy Ubuntu 22.04. Chạy lệnh sau để cài đặt máy khách.
Mã:
$ sudo apt install openconnect
-b
khiến máy khách chạy ở chế độ nền sau khi kết nối được thiết lập.
Mã:
$ sudo openconnect -b vpn.example.com:443
Mã:
POST https://vpn.example.com/
Connected to 95.179.138.135:443
SSL negotiation with vpn.example.com
Connected to HTTPS on vpn.example.com with ciphersuite (TLS1.3)-(ECDHE-SECP256R1)-(ECDSA-SECP256R1-SHA256)-(AES-256-GCM)
XML POST enabled
Please enter your username.
Username:navjot
POST https://vpn.example.com/auth
Please enter your password.
Password:
POST https://vpn.example.com/auth
Mã:
Got CONNECT response: HTTP/1.1 200 CONNECTED
CSTP connected. DPD 90, Keepalive 60
No DTLS address
Set up UDP failed; using SSL instead
Configured as 192.168.1.13, with SSL connected and DTLS disabled
Continuing in background; pid 1650
Mã:
$ sudo pkill openconnect
Tạo và mở tệp dịch vụ để chỉnh sửa.
Mã:
$ sudo nano /etc/systemd/system/openconnect.service
Mã:
[Unit] Description=OpenConnect VPN Client After=network-online.target systemd-resolved.service Wants=network-online.target
[Service] Type=simple ExecStart=/bin/bash -c '/bin/echo -n password | /usr/sbin/openconnect vpn.example.com -u username --passwd-on-stdin' KillSignal=SIGINT Restart=always RestartSec=2
[Install] WantedBy=multi-user.target
Kích hoạt dịch vụ.
Mã:
$ sudo systemctl enable openconnect.service
Mã:
$ sudo systemctl start openconnect.service
Tạo và mở tập lệnh khởi động lại cho chỉnh sửa.
Mã:
$ sudo nano /etc/systemd/system/openconnect-restart.service
Mã:
[Unit]
Description=Restart OpenConnect client when resuming from suspend
After=suspend.target
[Service]
Type=simple
ExecStart=/bin/systemctl --no-block restart openconnect.service
[Install]
WantedBy=suspend.target
Bật dịch vụ.
Mã:
$ sudo systemctl enable openconnect-restart.service
Mã:
$ sudo nano /etc/systemd/system/openconnect-check.service
Mã:
[Unit]
Description=OpenConnect VPN Connectivity Checker
After=openconnect.service
[Service]
Type=simple
ExecStart=/bin/bash -c 'for ((; ; )) do (ping -c9 10.10.10.1 || systemctl restart openconnect) done'
[Install]
WantedBy=multi-user.target
Bật và bắt đầu dịch vụ.
Mã:
$ sudo systemctl enable enable openconnect-check.service --now
Bạn có thể tải xuống OpenConnect GUI Clients nếu bạn muốn. Tuy nhiên, chúng đã không được cập nhật trong một thời gian khá dài. Nếu bạn muốn có một máy khách GUI được cập nhật, bạn có thể truy cập Kho lưu trữ GitLab GUI OpenConnect và tự biên dịch nó.