Имеется OpenVNP AS сервер в AWS, и openvnp
клиент на Arch Linux (см.OpenVPN: настройка OpenVPN Access Server и AWS VPC peering).
Хочется добавить его загрузку и подключение при старте системы.
Используем systemd
, документация – тут>>>, подходит для любых Linux-систем.
Файлы настроек клиента располагаются в /etc/openvpn/client/
(см. WorkingDirectory
в содержимом юнит-файла ниже), пока тут пусто:
[simterm]
$ sudo ls -l /etc/openvpn/client/ total 0
[/simterm]
Копируем свой файл, сохраняем с расширением *.conf
(т.к.. --config %i.conf
там же):
[simterm]
$ sudo cp Dropbox/OpenVPN-AS/setevoy-client.ovpn /etc/openvpn/client/setevoy-ovnas.conf
[/simterm]
Проверяем статус клиента – используем openvpn-client@ + имя-файла-настроек без расширения:
[simterm]
$ systemctl status [email protected] ● [email protected] - OpenVPN tunnel for setevoy/ovnas Loaded: loaded (/usr/lib/systemd/system/[email protected]; disabled; vendor preset: disabled) Active: inactive (dead) Docs: man:openvpn(8) https://community.openvpn.net/openvpn/wiki/Openvpn24ManPage https://community.openvpn.net/openvpn/wiki/HOWTO
[/simterm]
И содержимое юнит-файла:
[simterm]
$ systemctl cat [email protected] # /usr/lib/systemd/system/[email protected] [Unit] Description=OpenVPN tunnel for %I After=syslog.target network-online.target Wants=network-online.target Documentation=man:openvpn(8) Documentation=https://community.openvpn.net/openvpn/wiki/Openvpn24ManPage Documentation=https://community.openvpn.net/openvpn/wiki/HOWTO [Service] Type=notify PrivateTmp=true WorkingDirectory=/etc/openvpn/client ExecStart=/usr/bin/openvpn --suppress-timestamps --nobind --config %i.conf CapabilityBoundingSet=CAP_IPC_LOCK CAP_NET_ADMIN CAP_NET_RAW CAP_SETGID CAP_SETUID CAP_SYS_CHROOT CAP_DAC_OVERRIDE LimitNPROC=10 DeviceAllow=/dev/null rw DeviceAllow=/dev/net/tun rw ProtectSystem=true ProtectHome=true KillMode=process [Install] WantedBy=multi-user.target
[/simterm]
Запускаем:
[simterm]
$ systemctl start [email protected] ==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ==== Authentication is required to start '[email protected]'. Authenticating as: setevoy Password: ==== AUTHENTICATION COMPLETE ====
[/simterm]
Проверяем:
[simterm]
20:23:12 [setevoy@setevoy-arch-pc ~] $ ps aux | grep vpn root 26477 0.1 0.0 24676 10732 ? Ss 20:23 0:00 /usr/bin/openvpn --suppress-timestamps --nobind --config setevoy-ovnas.conf
[/simterm]
Включаем в автозагрузку:
[simterm]
$ systemctl enable [email protected] ==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-unit-files ==== Authentication is required to manage system service or unit files. Authenticating as: setevoy Password: ==== AUTHENTICATION COMPLETE ==== Created symlink /etc/systemd/system/multi-user.target.wants/[email protected] → /usr/lib/systemd/system/[email protected].
[/simterm]
Проверяем DNS:
[simterm]
$ cat /etc/resolv.conf # Generated by resolvconf nameserver 172.31.26.29 nameserver 1.1.1.1
[/simterm]
Проверяем Yandex.ru (привет, Порошенко):
[simterm]
$ curl -LI ya.ru ... HTTP/1.1 200 Ok ...
[/simterm]
Готово.