Доброго дня, уважаемое сообщество.
Столкнулся с проблемой в настройках gre туннеля. Есть шлюз на Ubuntu 16.04 и шлюз сборка ИКС на основе FreeBSD. Всё настроено и работает уже не первый день, но тут захотелось мне писать быкапы из сети за убунтой в сеть за фряхой. Поднял для теста простой GRE без шифрования - пакеты с фряхи в сеть за убунтой ходят, а наоборот нет. Начал грешить на маршрутизацию в убунте и ковырять что и куда.
На машине крутится dns+dhcp, unifi контрелер и ненастроеный squid
Итог - в цепочках iptables присутствуют адреса, которые не задавались. При этом пользователи всё так же ходят в интернет.
Что выгрузилось при iptables-save
# Generated by iptables-save v1.6.0 on Fri Nov 11 17:58:33 2016
*nat
:PREROUTING ACCEPT [2598:314486]
:INPUT ACCEPT [484:34087]
:OUTPUT ACCEPT [1310:83278]
:POSTROUTING ACCEPT [1310:83278]
-A POSTROUTING -s 192.168.8.0/21 -o enp2s0 -j MASQUERADE
COMMIT
# Completed on Fri Nov 11 17:58:33 2016
# Generated by iptables-save v1.6.0 on Fri Nov 11 17:58:33 2016
*filter
:INPUT DROP [1408:174292]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [8856:1493703]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -s 192.168.8.0/21 -i enp1s10 -j ACCEPT
-A INPUT -p gre -j ACCEPT
-A INPUT -p gre -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 0 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 3 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 11 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -s 192.168.8.0/21 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -s 192.168.8.0/21 -p udp -m state --state NEW -m udp --dport 123 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 25 -j ACCEPT
-A INPUT -p udp -m state --state NEW -m udp --dport 53 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 53 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 110 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 143 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 8443 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 8080 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 0 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A INPUT -p udp -m udp --sport 53 --dport 1024:65535 -j ACCEPT
-A INPUT -p udp -m udp --dport 1812 -j ACCEPT
-A FORWARD -s 192.168.8.0/21 -d 192.168.9.0/24 -i enp1s10 -o tun0 -j ACCEPT
-A FORWARD -s 192.168.9.0/24 -d 192.168.8.0/21 -i tun0 -o enp1s10 -j ACCEPT
-A FORWARD -s 192.168.8.0/21 -i enp1s10 -o enp2s0 -j ACCEPT
-A FORWARD -d 192.168.8.0/21 -i enp2s0 -o enp1s10 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -p gre -j ACCEPT
COMMIT
# Completed on Fri Nov 11 17:58:33 2016
192.168.8.0/21 вылез непонятно откуда
Скрипт iptables
# Внешний интерфейс
IF_EXT="enp2s0"
# Внутренний интерфейс
IF_INT="enp1s10"
# Интерфейс GRE-туннеля
IF_VPN="tun0"
# Локальная сеть 1
NET_INT="192.168.10.0/21"
# Локальная сеть 2
NET_REMOTE="192.168.9.0/24"
iptables -F
iptables -F -t nat
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i ${IF_INT} -s ${NET_INT} -j ACCEPT
iptables -A INPUT -p gre -j ACCEPT
iptables -A OUTPUT -p gre -j ACCEPT
iptables -A FORWARD -i ${IF_INT} -s ${NET_INT} -o ${IF_VPN} -d ${NET_REMOTE} -j ACCEPT
iptables -A FORWARD -i ${IF_VPN} -s ${NET_REMOTE} -o ${IF_INT} -d ${NET_INT} -j ACCEPT
iptables -t nat -A POSTROUTING -s ${NET_INT} -j MASQUERADE -o ${IF_EXT}
iptables -A FORWARD -i ${IF_INT} -o ${IF_EXT} -s ${NET_INT} -j ACCEPT
iptables -A FORWARD -i ${IF_EXT} -o ${IF_INT} -d ${NET_INT} -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT
iptables -A INPUT -p icmp --icmp-type destination-unreachable -j ACCEPT
iptables -A INPUT -p icmp --icmp-type time-exceeded -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -s ${NET_INT} -m state --state NEW -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -s ${NET_INT} -m state --state NEW -p udp --dport 123 -j ACCEPT
iptables -A INPUT -m state --state NEW -p tcp --dport 25 -j ACCEPT
iptables -A INPUT -m state --state NEW -p udp --dport 53 -j ACCEPT
iptables -A INPUT -m state --state NEW -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -m state --state NEW -p tcp --dport 110 -j ACCEPT
iptables -A INPUT -m state --state NEW -p tcp --dport 143 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 8443 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 8080 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
iptables -A INPUT -p icmp -m icmp --icmp-type 0 -j ACCEPT
iptables -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
iptables -A INPUT -p udp -m udp --sport 53 --dport 1024:65535 -j ACCEPT
iptables -A INPUT -p udp -m udp --dport 1812 -j ACCEPT
Интерфейсы
# The loopback network interface
auto lo
iface lo inet loopback
# WAN
auto enp2s0
iface enp2s0 inet static
address 85.*.*.212
netmask 255.255.255.240
gateway 85.*.*.209
dns-nameservers 195.14.*.* 195.14.*.*
# LAN
auto enp1s10
iface enp1s10 inet static
address 192.168.10.1
netmask 255.255.240.0
# GRE
auto tun0
iface tun0 inet static
address 192.168.1.2
netmask 255.255.0.0
broadcast 192.168.1.255
up ifconfig tun0 multicast
pre-up iptunnel add tun0 mode gre local 85.*.*.212 remote 85.*.*.216 ttl 225
pointopoint 192.168.1.1
post-down iptunnel del tun0
post-up ip route add 192.168.9.0/24 dev tun0
При прозвоне внешнего адреса наружу смотрит только 22 порт, остальные Connection refused
# netcat -v -w 4 -z 85.*.*.212 1-1023 | grep succeed
Connection to 85.*.*.212 22 port [tcp/ssh] succeeded!
Подскажите, с чего идёт подмена адреса в iptables?