Есть машина Linux (A
) запуск pptpd в университетской сети за брандмауэром, но с реальным IP. У меня нет доступа или каких-либо знаний о распределении IP-адресов в этой сети, поэтому я не могу просто установить remoteip X.Y.Z.200-250
в конфигурации pptpd, так как это может вызвать конфликты. Интересно, можно ли создать виртуальный концентратор для всех подключенных клиентов VPN, который затем будет преобразован в реальную сеть с помощью NAT.
Вот несколько неуклюжих ascii grpaphics, иллюстрирующих то, чего я хочу достичь:
PPTP-client ---\ ________________ ________________________
\ | 10.0.0.0/24 | |10.0.0.0/24 real ip|
PPTP-client ----->| Virt. hub (A) |----|ethX A eth0|----- Outside world
/ |_______________| |_______________________|
PPTP-client ---/
Поиск в Google показывает, что PacketiX.NET и UT-VPN имеют такие встроенные возможности, но я понятия не имею, как это сделать с помощью обычного pptpd. Я попытался создать фиктивный интерфейс, настроить его со статическим IP-адресом, а затем передать pptp-клиенту IP-адреса из этой подсети интерфейса, но безуспешно.
Использование других vpn-серверов проблематично из-за довольно параноидальных настроек брандмауэра и мне приходится использовать мокрый ssh-сервер для любых операций на A
.
Вы можете использовать сервер PPTPd (если протокол GRE не фильтруется вашей сетью). PPTD создаст новый интерфейс ppp для каждого клиента на вашем сервере.
Например, вы указываете
localip 192.168.101.1-100
remoteip 192.168.101.101-200
Таким образом, каждый интерфейс ppp * получит новый IP-адрес из подсети 192.168.101. Наконец, вы можете преобразовать весь трафик из этой подсети в реальный IP-адрес (не забывайте о net.ipv4.ip_forward = 1)
# here could be full MASQUERADE or SNAT
iptables -t nat -I POSTROUTING -o real_interface0 -j MASQUERADE
# forward for all ppp + MSS tune, conntrack recommended
iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN -s 172.20.1.0/24 -j TCPMSS --clamp-mss-to-pmtu