LINUX.ORG.RU

Сообщения SterhTG

 

External public IP forward

Форум — Admin

Всем привет!

Имею проблему - мой домашний роутер не имеет внешнего адреса. Хочу решить эту задачу пробросив соединения с внешнего хоста на внутренние.

Как решил сделать:

Роутер поднимает ВПН соединение с внешним хостом, входящие соединения на хосте подначивать в адрес внутренний принадлежащий VPN и назначенный Keenetic, а source в адрес WG туннеля принадлежащий внешнему хосту.

Пинги бегают есть соединение. А вот соединение не устанавливается.

Моя адресация WG - Ext 172.16.6.2, Keenetic 172.16.6.10

Проброс настраивал для портов tcp\16883, tcp\16884, udp\16885

table ip nat {
        chain prerouting {
                type nat hook prerouting priority -100;
                # DNAT BitTorrent TCP traffic
                iif ens18 tcp dport 16883 dnat to 172.16.63.10:16883

                # DNAT BitTorrent TCP traffic
                iif ens18 tcp dport 16884 dnat to 172.16.63.10:16884

                # DNAT BitTorrent UDP traffic
                iif ens18 udp dport 16885 dnat to 172.16.63.10:16885
        }

        chain postrouting {
                type nat hook postrouting priority 100;
                # SNAT For tunnel
                oif wg0 ip daddr 172.16.63.10 tcp dport 16883 snat to 172.16.63.2
                oif wg0 ip daddr 172.16.63.10 tcp dport 16884 snat to 172.16.63.2
                oif wg0 ip daddr 172.16.63.10 udp dport 16885 snat to 172.16.63.2
                # Masquerade traffic going through WireGuard
                #oif wg0 masquerade
                ip saddr 172.16.63.10 oif ens18 snat to <EXT_IP>
        }
}

На Keenetic настроил проброс портов и разрешил прохождение трафика. На внешнем хосте делаю захват пакетов вижу как пакеты отправляются на keenetic, вижу ответные пакеты, а дальше пакеты не разначиваются. Думал над вариантом отказаться от ната источника и оставить его как есть, но тогда на кинетике надо как-то маркировать пакеты и заворачивать обратно в туннель. Но это сложновато из-за наличия правил, пока решил пойти путём проще.

Подскажите что подкрутить?

 , , ,

SterhTG
()

NFTables работает через раз

Форум — Admin

Доброго дня господа!
Имеется Debian GNU/Linux 12. В котором я пытаюсь настроить своего рода port knoking.
Суть идеи мы ловим icmp пакеты, когда пакет равен заданному размеру мы перемещаем его в нужный сет, когда адрес пройдёт по всем сетам, мы разрешаем ему работать с заданным сервисом.
Суть проблемы - правила срабатывают периодически(те они чаще не работают чем работают).
Что пробовал - выделять в отдельную цепочку, использовать в инпуте, логировал пакеты, выставлял счётчики,для теста во втрором шаге вообще убирал размер не помогло, делал захват пакетов.
Размер пакетов проверял при помощи - tcpdump -n -i enp2s0 -vv icmp
Вот текущая реализация для ssh:

table inet filter {
        set ssh_step1 {
                type ipv4_addr
                timeout 5m
        }
        set ssh_allow {
                type ipv4_addr
                timeout 8h
                gc-interval 30s
        }

        chain input {
                type filter hook input priority filter; policy drop; # Drop packets
                # Allow established and related packets
                ct state invalid counter drop comment "early drop of invalid packets"
                ct state established,related accept
                # Loopback
                iif != lo ip daddr 127.0.0.1/8 counter drop comment "drop connections to loopback not coming from loopback"
                iifname lo accept
                #SSH knoking
                iifname "enp2s0" icmp type echo-request jump input_knock
                # ICMP
                iifname "enp2s0" icmp type echo-request limit rate 15/second accept     # Ping policy
                # Allow ssh
                iifname "enp2s0" ip saddr @ssh_allow tcp dport 22 ct state new accept
        }
        chain output {
                type filter hook output priority filter;
        }
        chain input_knock {
                ip saddr @ssh_step1 meta length 328 add @ssh_allow { ip saddr } counter
                meta length 428 add @ssh_step1 { ip saddr } counter
        }
}

Может кто-то подсказать, в чем может крыться проблема?

 ,

SterhTG
()

RSS подписка на новые темы