PPPD를 사용하여 SSH를 통해 VPN을 설정하려고 합니다(아래).아치스 위키). 주어진 명령은 다음과 같습니다:
/usr/sbin/pppd updetach noauth silent nodeflate pty \
"/usr/bin/ssh root@remote-gw /usr/sbin/pppd nodetach notty noauth" \
ipparam vpn 10.0.8.1:10.0.8.2
위 명령을 적절하게 수정하여 성공적으로 설정했습니다. 서버 측에서 내부 네트워크에 연결하려면 iptables
서버 측에서 설정 전달을 사용해야 합니다.이번 SF 포스팅):
iptables -A FORWARD -i ppp0 -o eth0 -j ACCEPT
iptables -A FORWARD -i eth0 -o ppp0 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
나는 이것을 자동화하고 싶다. 현재로서는 eth0
수정되었지만 ppp0
변경될 수 있습니다(예: 다른 사람이 유사한 설정을 시작함). pppd
서버 측 명령이 어떤 인터페이스를 생성했는지 감지하는 방법은 무엇입니까 ? 분석 ? 출력을 비교 하시겠습니까 dmesg
ip -o a
? pppd
나에게 신고 할 수 있나요 ?
- 클라이언트는 최신 Arch Linux입니다.
- 서버는 최신 Ubuntu 14.04입니다.
dmesg
작동하지 않는 것 같습니다.
$ dmesg | grep -i ppp
[ 0.803033] PPP generic driver version 2.4.2
[135747.442807] PPP BSD Compression module registered
[135747.459013] PPP Deflate Compression module registered
장치가 생성된다는 언급이 없습니다. syslog
더 유용해 보입니다.
Apr 26 13:52:15 server pppd[12725]: pppd 2.4.5 started by muru, uid 0
Apr 26 13:52:15 server pppd[12725]: Using interface ppp0
Apr 26 13:52:15 server pppd[12725]: Connect: ppp0 <--> /dev/pts/7
Apr 26 13:52:15 server pppd[12725]: BSD-Compress (15) compression enabled
이 Using interface ppp0
라인이 제가 원하는 것 같습니다. 나는 다음과 같이 얻을 수 있다고 생각합니다 :
awk '/started by muru/{getline; pppdev=$NF} END {print pppdev}'
pppd의 출력을 신뢰할 수 있습니까?
답변1
아마도 /etc/ppp/ip-up.d
당신이 찾고 있는 곳이 바로 그 곳일 것이다.
내 예는 Gentoo Linux에서 작동하지만 동일한 디렉터리 구조가 Arch에도 존재하는 것 같습니다.
VPN 연결이 설정될 때마다 일반적으로 순차적으로 /etc/ppp/ip-up
실행됩니다 /etc/ppp/ip-up.d/*
. 첫 번째 매개변수는 연결된 pppn
장치입니다.
/etc/ppp/ip-up.d/90-local
예를 들어 다음 스크립트를 아래에 입력하세요.
#!/bin/sh
# Optional trace:
# logger -t "ppp" "$6: $1 (${2:--}, $3) $4 --> $5"
iptables -A FORWARD -i $1 -o eth0 -j ACCEPT
iptables -A FORWARD -i eth0 -o $1 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
pppd
스크립트를 실행하기 전에 환경 변수 세트를 사용할 수 있습니다 . 당신이 찾고 있는 사람은 입니다 $DEVICE
. 위 스크립트를 $1
다음으로 바꾸십시오.$DEVICE
iptables -A FORWARD -i $DEVICE -o eth0 -j ACCEPT
iptables -A FORWARD -i eth0 -o $DEVICE -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
연결이 설정되면 어떤 일이 발생하는지에 대한 자세한 내용은 man pppd
리소스를 참조하세요.pppd