Как оказывается, просто включить NAT недостаточно. Более того, недостаточно даже подключить helper через sysctl:
net.netfilter.nf_conntrack_helper=1
В сети пишут, что нужно подгрузить модули (некоторые ещё уточняют, что это нужно было до версии 8.Х включитель, а с 9-ой достаточно просто подключить helper через sysctl, но как оказывается, недостаточно)
nf_nat_pptp nf_nat_proto_gre nf_conntrack_pptp nf_conntrack_proto_gre nf_nat nf_conntrack
Ну что, давайте попробуем модгрузить:
insmod /lib/modules/4.19.0-16-amd64/kernel/net/ipv4/netfilter/nf_nat_pptp.ko insmod: ERROR: could not insert module /lib/modules/4.19.0-16-amd64/kernel/net/ipv4/netfilter/nf_nat_pptp.ko: Unknown symbol in module
при этом в логе будут похожие сообщения:
ip_gre: Unknown symbol ip_tunnel_rcv (err -2)
Можно подумать, что мы подгрузили модули не в том порядке, но перепоробовав все возможные варианты убеждаемся, что дело в чём-то другом. Методом дедукции, решил попробовать поставить на шлюзе пакет pptpd (да, он не стоял, да и зачем ему стоять, когда нужно просто NAT‘ить pptp подключения из локалки в мир?). После установки, модули подгрузились:
lsmod | grep pptp nf_nat_pptp 16384 0 nf_nat_proto_gre 16384 1 nf_nat_pptp nf_conntrack_pptp 16384 1 nf_nat_pptp nf_conntrack_proto_gre 16384 1 nf_conntrack_pptp nf_nat 36864 4 nf_nat_ipv4,xt_nat,nf_nat_pptp,nf_nat_proto_gre nf_conntrack 172032 10 xt_conntrack,nf_nat,xt_state,nf_conntrack_pptp,ipt_MASQUERADE,nf_nat_ipv4,xt_nat,nf_nat_pptp,nf_conntrack_netlink,nf_conntrack_proto_gre
Посмотрим заодно, нормально ли NAT‘ится gre/pptp:
conntrack -L | egrep -i "gre|pptp"
gre 47 18000 src=192.168.13.21 dst=X.X.X.X srckey=0x100 dstkey=0xde5 src=X.X.X.X dst=Y.Y.Y.Y srckey=0xde5 dstkey=0xd83f [ASSURED] mark=0 use=2
gre 47 17999 src=192.168.13.166 dst=X.X.X.X srckey=0x7ddd dstkey=0xde6 src=X.X.X.X dst=Y.Y.Y.Y srckey=0xde6 dstkey=0xed7d [ASSURED] mark=0 use=1
tcp 6 431953 ESTABLISHED src=192.168.13.166 dst=X.X.X.X sport=60797 dport=1723 src=X.X.X.X dst=Y.Y.Y.Y sport=1723 dport=60797 [ASSURED] mark=0 helper=pptp use=2
tcp 6 431986 ESTABLISHED src=192.168.13.21 dst=X.X.X.X sport=55359 dport=1723 src=X.X.X.X dst=Y.Y.Y.Y sport=1723 dport=55359 [ASSURED] mark=0 helper=pptp use=2
Подытожим: для успешного достижения цели на пустом сервере нужно:
1) включить helper, если не включён
2) поставить пакет pptpd, если не установлен.