![systemd와 함께 OpenVPN 사용](https://linux55.com/image/41292/systemd%EC%99%80%20%ED%95%A8%EA%BB%98%20OpenVPN%20%EC%82%AC%EC%9A%A9.png)
좋아요, 그래서 저는 이 문제에 대한 해결책을 온라인에서 검색해 봤지만 답이 없는 것 같습니다. 누군가가 나를 도울 수 있기를 바랍니다. OpenVPN 클라이언트를 구성하고 싶습니다.
실행 중이고 CrunchBang Linux 3.2.0-4-amd64 Debian 3.2.60-1+deb7u1 x86_64 GNU/Linux
방금 systemd
.
- http://fedoraproject.org/wiki/Openvpn
- http://d.stavrovski.net/blog/how-to-install-and-set-up-openvpn-in-debian-7-wheezy
- 그리고 다른 여러 가이드를 살펴보았습니다.
명령줄을 사용하여 명령줄에서 터널을 시작할 수 있습니다 openvpn /etc/openvpn/vpn.conf
. 그래서 나는 구성 파일이 괜찮고 sysvinit에서도 잘 작동한다는 것을 알고 있으므로 놀라지 않습니다. 그런 다음 하나의 상태만 수행하려고 시도했으며 결과는 다음과 같습니다.systemctl status [email protected]
$ sudo systemctl status [email protected]
[email protected]
Loaded: error (Reason: No such file or directory)
Active: inactive (dead)
서비스에 대한 몇 가지 설정이 필요하다는 것을 깨달았습니다. 비밀번호를 묻는 메시지가 표시되기를 원했기 때문에 이 가이드에 따라 .NET [email protected]
에서 비밀번호를 만들었습니다 /etc/systemd/system/
. 하지만 OpenVPN 서비스를 다시 시작해도 비밀번호를 묻는 메시지가 표시되지 않았습니다.
$ sudo service openvpn restart
[ ok ] Restarting openvpn (via systemctl): openvpn.service.
Fedora 튜토리얼에서는 심볼릭 링크를 생성하는 단계를 다루지만 연습에서는 .service 파일을 생성하지 않습니다.
내가 놓친 부분은 무엇입니까? 나는[이메일 보호됨]? 그렇다면 정확히 어디에 넣어야 할까요? 이렇게 어렵지는 않을 것 같지만 나에게 맞는 솔루션을 찾을 수 없는 것 같습니다. 추가 정보가 요청되면 기꺼이 제공해 드리겠습니다.
해결책
-rw-r--r-- 1 root root 319 Aug 7 10:42 [email protected]
[Unit]
Description=OpenVPN connection to %i
After=network.target
[Service]
Type=forking
ExecStart=/usr/sbin/openvpn --daemon ovpn-%i --status /run/openvpn/%i.status 10 --cd /etc/openvpn --config /etc/openvpn/%i.conf
ExecReload=/bin/kill -HUP $MAINPID
WorkingDirectory=/etc/openvpn
[Install]
WantedBy=multi-user.target
[email protected] (END)
심볼릭 링크:
lrwxrwxrwx 1 root root 36 Aug 7 10:47 [email protected] -> /lib/systemd/system/[email protected]
비밀번호를 묻는 메시지
이제 연결 시 비밀번호를 묻는 메시지를 제외하고는 모든 것이 잘 작동합니다. 나는 전에 시도했다이 솔루션. 위의 파일을 일부 조정하고 추가했습니다.대본이 기대된다예와 같습니다. 매력처럼 작동합니다! 내 파일은 다음과 같습니다.
위 줄을 수정하세요./lib/systemd/system/[email protected]
ExecStart=/usr/sbin/openvpn --daemon ovpn-%i --status /run/openvpn/%i.status 10 --cd /etc/openvpn --management localhost 5559 --management-query-passwords --management-forget-disconnect --config /etc/openvpn/%i.conf
ExecStartPost=/usr/bin/expect /lib/systemd/system/openvpn_pw.exp
대본이 기대됩니다 /lib/systemd/system/openvpn_pw.exp
. 다음을 수행하십시오.
chmod +x
대본에서.telnet
설치
예상 스크립트 코드:
#!/usr/bin/expect
set pass [exec /bin/systemd-ask-password "Please insert Private Key password: "]
spawn telnet 127.0.0.1 5559
expect "Enter Private Key Password:"
send "password 'Private Key' $pass\r"
expect "SUCCESS: 'Private Key' password entered, but not yet verified"
send "exit\r"
expect eof
위의 솔루션은 다음 로그인 시 일반 텍스트로 입력한 /var/log/syslog
비밀번호를 기록한다는 점에 유의하는 것이 중요합니다./var/log/daemon.log
답변1
현재 systemd를 사용한 Debian OpenVPN 설정이 약간 손상된 것 같습니다. 내 컴퓨터에서 작동하게 하려면 다음을 수행해야 했습니다.
(디렉토리)를 만들고 그 안에 새 파일을 배치합니다.
/etc/systemd/system/[email protected]
[단위] 요구=networking.service 애프터=네트워킹.서비스
내 파일 이름을local-after-ifup.conf
. 로 끝나야 합니다.conf
. (지금 이게 좀 문제네요.)다음 내용을 포함하는 파일
/etc/tmpfiles.d
(내 파일이라고 부르겠습니다 )을 만듭니다.local-openvpn.conf
# 경로 패턴 UID GID 연령 매개변수 입력 d /run/openvpn 0755 루트 - -
이것은데비안 버그 741938(2.3.3-1에서 수정됨)multi-user.target.wants
(가장 쉬운 방법은 )systemctl enable openvpn@CONF_NAME.service
당신이 가지고 있다면/etc/openvpn/foo.conf
사용할 예제 에 대한 심볼릭 링크를 만듭니다[email protected]
.SysV init 스크립트가 systemd에도 있으면 비활성화하십시오. 이것은데비안 오류 700888(2.3.3-1에서 수정됨)
참고: 2.3.3-1 이상아직 테스트되지 않음, 비록 불안정한 상태이지만.
답변2
이 유형의 단위 파일은 인스턴스화된 서비스입니다. 자세한 내용이 제공됩니다.여기
다음은 openvpn
CentOS 7의 단위 파일입니다.
[Unit]
Description=OpenVPN Robust And Highly Flexible Tunneling Application On %I
After=syslog.target network.target
[Service]
PrivateTmp=true
Type=forking
PIDFile=/var/run/openvpn/%i.pid
ExecStart=/usr/sbin/openvpn --daemon --writepid /var/run/openvpn/%i.pid --cd /etc/openvpn/ --config %i.conf
[Install]
WantedBy=multi-user.target
/usr/lib/systemd/system/openvpn@service
이는 장치 이름에서 %i
다음 문자열 로 대체되는 .file 에 있습니다 .@
구성 파일을 찾으면 서비스가 시작됩니다 /etc/openvpn/myopenvpn.conf
.
systemctl start [email protected]
답변3
이를 활성화하여 서비스 파일을 생성해야 합니다 openvpn@<configuration>.service
.
예를 들어 구성 파일이 이면 /etc/openvpn/client.conf
서비스 이름은 입니다 [email protected]
.
답변4
올바른 해결책은 systemd systemd-ask-password
/" 를 활용하는 것입니다.비밀번호 프록시”는 비밀번호/암호 문구를 서비스로 전송하는 시스템 내장 방법을 제공합니다.
당신은해야합니다OpenVPN 2.3.0 이상가서 이것을 해보세요.