Ubuntu 14.04 및 OpenSSH에서 OpenVPN 서버를 실행하고 있습니다.
VPN 인터페이스의 IP 주소에 바인딩하도록 SSH 서버를 구성했습니다. 내 컴퓨터가 부팅되면 해당 IP에 대한 바인딩이 실패합니다.
로그인하면 내가 듣고 있지 않다는 것을 알 수 있습니다 netstat
. sshd
재부팅하면 sshd
컴퓨터가 정상적으로 듣기 시작합니다. 내 VPN의 IP는 sshd
내가 수신하도록 구성된 유일한 IP입니다.
시작에:
sshd[1016]: Set /proc/self/oom_score_adj from 0 to -1000
sshd[1016]: error: Bind to port 22 on 10.8.0.1 failed: Cannot assign requested address.
sshd[1016]: fatal: Cannot bind any address.
SSH를 다시 시작합니다.
sshd[3481]: Set /proc/self/oom_score_adj from 0 to -1000
sshd[3481]: Server listening on 10.8.0.1 port 22.
내 추측으로는 sshd
VPN이 실행되기 전에 이 일이 시작된 것 같습니다. sshd
올바르게 바인딩할 수 있도록 나중에 시작되도록 하는 방법이 있습니까 ?
해야 할 일이나 확인해야 할 사항에 대한 제안이 있으십니까?
답변1
해결책을 찾았습니다.
OpenVPN 구성 파일에서 /etc/openvpn/server.conf
실행할 스크립트를 지정할 수 있습니다위로. OpenVPN 매뉴얼 페이지를 보면 man openvpn
이해하게 될 것입니다 --up cmd
. /etc/openvpn/server.conf
구성 파일 에 다음 줄을 추가했습니다.
up "/etc/openvpn/up.sh"
이 파일은 제가 만든 것이며 VPN이 시작될 때 실행됩니다. 지금 내 모습은 다음과 같습니다.
#!/bin/sh
logger VPN is UP
service ssh restart
이제 OpenVPN 서버가 시작될 때마다 OpenSSH 서버도 다시 시작됩니다. 마찬가지로 --down cmd
서버가 종료될 때 스크립트를 실행하려면 서버 구성 파일에 있는 파일을 사용하고 지정할 수도 있습니다.
OpenVPN 매뉴얼 페이지에서 이에 대한 자세한 내용을 읽을 수 있습니다.man openvpn
답변2
ssh는 upstart를 사용하는 것처럼 보이지만 openvpn은 그렇지 않습니다. 이렇게 하면 ssh가 시작을 지연하도록 강제할 수 있지만 테스트되지 않았습니다(설치를 엉망으로 만들고 싶지 않습니다).
update-rc.d ssh defaults 99
테스트되지 않았기 때문에 :경고 사항