Сегодня вот столкнулся с ситуацией, когда пришлось поднимать VPN через сервер с NAT. Долго я мучался и рыл доки, пока не нашел модули ядра к iptables, чем все и закончилось. Все просто. Дописываем в автозагрузку сервера с NAT (файл rc.local) загрузку этих модулей:
modprobe ip_gre
modprobe ip_nat_pptp
modprobe ip_conntrack_pptp
Ну и естессно запускаем эти же команды в консоли от рута, чтоб не перезагружать сервер. После этих манипуляций VPN бегает на “Ура”.
Вот за это мне и нравится Linux: подгрузил модуль – и сложные протоколы вроде FTP или GRE ходят через NAT. Начинал с FreeBSD, там для таких проблем нет решений в принципе, во вторых, могу предположить, что если бы они были, были бы они не столь удобными.
>Дописываем в автозагрузку сервера с NAT (файл rc.local) загрузку этих модулей.
А вот это лучше делать рекомендуемым для дистрибутива способом, а не прописыванием в автозагрузку.