Openvpn

未呼叫 Openvpn 的客戶端連接腳本

  • January 6, 2019

我希望 OpenVPN 在客戶端連接時執行腳本,但它似乎忽略了我的客戶端連接指令。

我在 Raspbian 上執行 OpenVPN 2.4.0。在我的 server.conf 中,我有

...
script-security 3
# this is the "up" directive but the issue is the same as with client-connect
up /etc/openvpn/up.sh
...

/etc/openvpn/up.sh 由 root 擁有,由 world-executable ( rwxr-xr-x) 擁有,它很簡單

#!/bin/sh
whoami >> /tmp/connect.txt
exit 0

我可以成功連接到我的伺服器,/var/log/daemon.log即使狀態 ovpn-server[2050]: /etc/openvpn/up.sh tun0 1500 1621 10.100.0.1 10.100.0.2 init沒有說明任何錯誤,但 /tmp 上什麼也沒有出現,就好像我的腳本沒有被呼叫一樣。

出了什麼問題?

我最終會回復自己。

OpenVPN 是作為 systemd 服務(目標?)啟動的,其配置文件聲明為PrivateTmp=true. 所以它確實有效並且腳本實際上執行了,但它沒有寫入實際的 /tmp 文件夾。

順便說一句,還應該使用二進製文件的完整路徑(例如/usr/bin/whoami),因為$PATH執行腳本的路徑可能與正常 shell 的路徑不同。

引用自:https://unix.stackexchange.com/questions/492827