VPN을 통해 모든 것을 라우팅합니다(포트 22의 SSH 제외).

VPN을 통해 모든 것을 라우팅합니다(포트 22의 SSH 제외).

모든 트래픽을 라우팅하기 위해 VPN을 설정하려는 서버가 있습니다.

물론 OpenVPN 연결을 설정할 때 나 자신을 제외하고 싶지는 않으므로(이미 그렇게 했습니다!) 포트 22가 영향을 받지 않고 평소처럼 액세스할 수 있기를 바랍니다.

가능합니까? 그렇다면 어떻게 설정합니까?

답변1

SSH 패킷이 VPN 대신 서버의 공용 IP를 통해 라우팅되도록 서버에 경로를 추가해야 합니다. 그렇게 하지 않으면 SSH 반환 패킷이 openvpn을 통해 라우팅됩니다. 이것이 openvpn 클라이언트 세션을 시작한 후 서버가 잠기는 이유입니다.

귀하의 서버를 가정해 보겠습니다.

  • 공개 IP는a.b.c.d
  • 공용 IP 서브넷은 다음과 같습니다.a.b.c.0/24
  • 기본 게이트웨이는x.x.x.1
  • eth0장치가 게이트웨이에 연결되어 있습니까?

iproute2당신의 친구인가요? 다음을 수행하십시오.

ip rule add table 128 from a.b.c.d
ip route add table 128 to a.b.c.0/24 dev eth0
ip route add table 128 default via x.x.x.1

route -n새 라우팅 테이블이 나타나는지 확인합니다 . 서버를 다시 시작하면 위 명령이 지속되지 않습니다. 네트워크 인터페이스 구성 파일에 추가해야 합니다.

그런 다음 openvpn 클라이언트 구성을 실행하십시오. openvpn --config youropenvpn-configfile.ovpn &

보너스 증가

또한 공용 IP의 트래픽을 ssh 및 ssh로만 제한하려면 iptables다음과 같은 필터링을 추가해야 합니다.

iptables -A INPUT -d a.b.c.d -p tcp --dport <*ssh port number*> -j ACCEPT
iptables -A INPUT -d a.b.c.d -j DROP

추신: Linode 포럼에서 이에 대해 처음 배웠던 것을 기억합니다. Google에서 이에 대한 게시물을 찾을 수 있을 것입니다.

답변2

VPS 서버 공용 IP가 1.2.3.4이고 VPN 공용 IP가 5.6.7.8이라고 가정합니다.

파일을 편집 /etc/ssh/sshd_config하고 다음 줄을 추가하겠습니다.

ListenAddress 1.2.3.4

따라서 VPN 연결 외부에서 SSHd에 액세스할 수 있습니다.

관련 정보