Опять-таки, не только у меня возникли проблемы с открытием туннельного трафика в firewall'е.
Как и ipip – самый простой туннель. Создаётся более чем просто:
Замечания
ipip туннели устанавливаются точно также.
Всё, туннель настроили. Теперь firewall.
Для начала надо разрешить трафик между <localip> и <peerip>. Разрешать можно не всё, а только gre протокол (в /etc/protocols он за номером 47). А затем трафик по на интерфейсе <tunnelname>. Правила будут выглядеть примерно так:
Кстати, в FORWARD в endpoint'ах обрабатывать протокол gre не надо Трафик вида <localip> <
> <peerip> будет приходить в только в INPUT.
Для ipip тоже самое. только лишь протокол будет 94 (если верить /etc/protocols)
И iptables и tcpdump понимают именование протокала как gre. То есть они спокойно проглотят tcpdump proto gre и iptables -p gre
Уфф. с этим на самом деле почти тоже самое. Одно но: на pptpd сервере надо разрешить подключения на 1723 порт, или что там слушает pptpd.
Как оказалось, pptpd аутентификацию и всё остальное проделывает по tcp протоколу: для этого и нужен 1723 порт. А вот сам трафик гуляет как ip_gre, только обрабатывает его не ядро, а pptpd. Так что обработка происходит точно также как и в случае ip_gre.
Замечание вот уж не знаю как, но в случае с pptpd у меня трафик прекрасно проходил через NAT. С ip_gre туннелем такое не прокатит. А значит на NAT box'ах в FORWARD имеет смысл регулировать gre протокол.
Ну тут просто: весь трафик болтается по ssh подключению. Так что если есть воможность залогинится на машину, то ничего больше открывать не надо.