![OpenVPN: dhclient не работает](https://rvso.com/image/1539566/OpenVPN%3A%20dhclient%20%D0%BD%D0%B5%20%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%D0%B5%D1%82.png)
Если я запускаю клиент OpenVPN, а затем пытаюсь dhclient tap0
получить IP-адрес, то все работает нормально.
Когда эта же команда вызывается openvpn из скрипта ( up
опция):
#!/bin/sh
/sbin/dhclient tap0 || exit 1
exit 0
Это не удается:
dhclient[30524]: Sending on LPF/tap0/aa:aa:aa:12:23:e9
dhclient[30524]: Can't bind to dhcp address: Permission denied
dhclient[30524]: Please make sure there is no other dhcp server
dhclient[30524]: running and that there's no entry for dhcp or
dhclient[30524]: bootp in /etc/inetd.conf. Also make sure you
dhclient[30524]: are not running HP JetAdmin software, which
openvpn[30517]: WARNING: Failed running command (--up/--down): external program exited with error status: 1
openvpn[30517]: Exiting due to fatal error
dhclient[30524]: includes a bootp server.
dhclient[30524]:
dhclient[30524]: If you think you have received this message due to a bug rather
dhclient[30524]: than a configuration issue please read the section on submitting
dhclient[30524]: bugs on either our web page at www.isc.org or in the README file
dhclient[30524]: before submitting a bug. These pages explain the proper
dhclient[30524]: process and the information we find helpful for debugging..
dhclient[30524]:
dhclient[30524]: exiting.
systemd[1]: openvpn-client.service: Main process exited, code=exited, status=1/FAILURE
Все запускается от имени пользователя root, поэтому проблем с правами доступа быть не должно.
решение1
Попробуйте добавить «sudo» в свой скрипт... и разрешите dhclient из sudoers без пароля для пользователя, от имени которого запущен openvpn.
Кроме того, вы указали «script-security 2» в своей конфигурации?
--script-security level [method]
This directive offers policy-level control over OpenVPN’s usage
of external programs and scripts. Lower level values are more
restrictive, higher values are more permissive. Settings for
level:
0 -- Strictly no calling of external programs.
1 -- (Default) Only call built-in executables such as ifconfig,
ip, route, or netsh.
2 -- Allow calling of built-in executables and user-defined
scripts.
3 -- Allow passwords to be passed to scripts via environmental
variables (potentially unsafe).`