OpenVPN 서버에 연결하려고 합니다. 루트를 사용하여 연결 명령을 실행하면 정상적으로 작동합니다.
openvpn /etc/openvpn/client.conf
하지만 일반 사용자의 경우 로그에 다음과 같은 오류 메시지가 표시됩니다.
Aug 15 18:01:43 a openvpn[4755]: OpenVPN 2.1.1 i686-redhat-linux-gnu [SSL] [LZO2] [EPOLL] [PKCS11] built on Jan 5 2010
Aug 15 18:01:43 a openvpn[4755]: WARNING: you are using user/group/chroot/setcon without persist-tun -- this may cause restarts to fail
Aug 15 18:01:43 a openvpn[4755]: WARNING: you are using user/group/chroot/setcon without persist-key -- this may cause restarts to fail
Aug 15 18:01:43 a openvpn[4755]: WARNING: No server certificate verification method has been enabled. See http://openvpn.net/howto.html#mitm for more info.
Aug 15 18:01:43 a openvpn[4755]: NOTE: OpenVPN 2.1 requires '--script-security 2' or higher to call user-defined scripts or executables
Aug 15 18:01:43 a openvpn[4755]: Control Channel Authentication: using '/home/MYUSERNAME/.cert/shared.key' as a OpenVPN static key file
Aug 15 18:01:43 a openvpn[4755]: LZO compression initialized
Aug 15 18:01:43 a openvpn[4756]: NOTE: UID/GID downgrade will be delayed because of --client, --pull, or --up-delay
Aug 15 18:01:43 a openvpn[4756]: UDPv4 link local: [undef]
Aug 15 18:01:43 a openvpn[4756]: UDPv4 link remote: 111.222.333.444:443
Aug 15 18:01:43 a openvpn[4756]: [vpnserver] Peer Connection Initiated with 192.168.1.1:443
Aug 15 18:01:46 a openvpn[4756]: Note: Cannot ioctl TUNSETIFF tun: Operation not permitted (errno=1)
Aug 15 18:01:46 a openvpn[4756]: Note: Attempting fallback to kernel 2.2 TUN/TAP interface
Aug 15 18:01:46 a openvpn[4756]: Cannot allocate TUN/TAP dev dynamically
Aug 15 18:01:46 a openvpn[4756]: Exiting
따라서 위 명령을 실행하려면 루트 권한이 필요한 것 같습니다.
내가 검색한 솔루션:
- setuid 비트:https://fedoraproject.org/wiki/Features/RemoveSETUID- 더 이상 좋지 않습니다.
- 루트로 "visudo"를 입력하고 다음을 파일에 추가합니다.
MYUSERNAME ALL = NOPASSWD: /usr/sbin/openvpn
그러면 "MYUSERNAME" 사용자는 루트 권한으로 "sudo /usr/sbin/openvpn" 바이너리를 시작할 수 있습니다.
PS1:
$ which openvpn
/usr/sbin/openvpn
ps2: Fedora 14/bash 사용.
질문:
- 일반 사용자로 OpenVPN 클라이언트를 시작하는 더 좋고 안전한 방법이 있습니까?
답변1
OpenVPN
새로 생성된 인터페이스에 IP 주소를 할당해야 하므로 루트 액세스가 필요합니다.
그래픽 모드에서 실행 중인 경우 NetworkManager
플러그인을 사용해 볼 수 있습니다 openvpn
. 이 플러그인은 훌륭하게 작동하며 단 한 번의 클릭으로 VPN을 얻을 수 있습니다. 일부 사용자는 이것이 NetworkManager
약간 방해가 된다고 생각합니다(그러나 이는 OFT입니다).
그 외에는 말씀하신 대로 가장 좋은 기회는 입니다 sudo
. IMHO는 setuid 비트를 사용하는 것보다 훨씬 낫습니다.