LINUX.ORG.RU

Настроить wireguard на роутере

 , ,


0

2

Приветствую. Запарился, не знаю в чем дело, при аналогичных настройках десктоп работает как шлюз для других устройств.

Настроил на роутере wireguard, туннуль, разрешен forwarding echo "1" > /proc/sys/net/ipv4/ip_forward, nat. Далее на роутере меняю дефолтный путь с wan на wireguard:

# ip route delete default
# ip route add ${server_ip} dev wan
# ip route add default via ${wg_ip} dev wg0

На роутере все хорошо, условный 1.1.1.1 пингуется через сервер (это видно по времени пинга), но с других девайсов, которые используют роутер как шлюз - доступа к инету нет.

В чем может быть дело? Повторю, что при подобных настройках десктоп работал шлюзом для других устройств, а тут никак не удается завести



Последнее исправление: kvpfs_2 (всего исправлений: 1)

Ответ на: комментарий от NyXzOr

Я натил и вг интерфейс, и wan. Точно такая же конфигурация работает на десктопе без проблем, а тут вот. Похоже, что пакеты не могут пройти из лан на вг, какие-то дела с фаерволом. Ещё обратил внимание на то что опенврт навернул доп слой конфигов в /etc/config/…, где настраивается и вг, и фаервол. Вот интересно - зачем? Почему не звать iptables и писать напрямую в конфиг вг? А нужно навернуть доп слой говна, которое нужно изучать дополнительно конечному юзеру? Я тупо создал свой сервис и оттуда настраиваю вг и фаервол, зачем мне этот доп костыль?

kvpfs_2
() автор топика
Последнее исправление: kvpfs_2 (всего исправлений: 2)

Ещё не понял чего все так восхищаются shadowsocks, на деле распиаренный базворд, какая-то говнина с ужаснейшей документацией. Решил заморочиться, так как была в репе опенврт, за пол дня еле как поднял туннель на нём (оказалось, что разные версии этой поделки несовместимы - …rust, …libev, …). Сразу выяснилось, что РКН это блочит спокойно и нужно вкорячивать ещё обфускацию, видимо v2ray он про это (хз, внятного описания этого shadowsocks зоопарка я не нашел), на второй раунд этого квеста я не пошёл, взял что-то поадекватнее

kvpfs_2
() автор топика

Ребята, буду копать правила фаервола, там netfilter, я с ним вообще никак. Ниже список правил. Если кто рабирается, то было бы супер, если бы меня ткнули в то, что может запрещать прохождение трафика между интерфейсом lag и wg0. А дальше я прицельно разберусь

nft list ruleset
table inet fw4 {
...
   chain input {
      type filter hook input priority filter; policy drop;
      iifname "lo" accept comment "!fw4: Accept traffic from loopback"
      ct state established,related accept comment "!fw4: Allow inbound established and related flows"
      tcp flags syn / fin,syn,rst,ack jump syn_flood comment "!fw4: Rate limit TCP syn packets"
      iifname "br-lan" jump input_lan comment "!fw4: Handle lan IPv4/IPv6 input traffic"
      iifname "wan" jump input_wan comment "!fw4: Handle wan IPv4/IPv6 input traffic"
      jump handle_reject
   }

   chain forward {
      type filter hook forward priority filter; policy drop;
      ct state established,related accept comment "!fw4: Allow forwarded established and related flows"
      iifname "br-lan" jump forward_lan comment "!fw4: Handle lan IPv4/IPv6 forward traffic"
      iifname "wan" jump forward_wan comment "!fw4: Handle wan IPv4/IPv6 forward traffic"
      jump handle_reject
   }

   chain output {
      type filter hook output priority filter; policy accept;
      meta mark & 0x00008000 == 0x00008000 counter packets 36 bytes 22666 accept
      oifname "lo" accept comment "!fw4: Accept traffic towards loopback"
      ct state established,related accept comment "!fw4: Allow outbound established and related flows"
      oifname "br-lan" jump output_lan comment "!fw4: Handle lan IPv4/IPv6 output traffic"
      oifname "wan" jump output_wan comment "!fw4: Handle wan IPv4/IPv6 output traffic"
   }

   chain prerouting {
      type filter hook prerouting priority filter; policy accept;
      iifname "br-lan" jump helper_lan comment "!fw4: Handle lan IPv4/IPv6 helper assignment"
   }

   chain handle_reject {
      meta l4proto tcp reject with tcp reset comment "!fw4: Reject TCP traffic"
      reject comment "!fw4: Reject any other traffic"
   }

   chain syn_flood {
      limit rate 25/second burst 50 packets return comment "!fw4: Accept SYN packets below rate-limit"
      drop comment "!fw4: Drop excess packets"
   }

   chain input_lan {
      jump accept_from_lan
   }

   chain output_lan {
      jump accept_to_lan
   }

   chain forward_lan {
      jump accept_to_wan comment "!fw4: Accept lan to wan forwarding"
      jump accept_to_wg comment "!fw4: Accept lan to wg forwarding"
      jump accept_to_lan
   }

   chain helper_lan {
      udp dport 10080 ct helper set "amanda" comment "!fw4: Amanda backup and archiving proto"
      udp dport 1719 ct helper set "RAS" comment "!fw4: RAS proto tracking"
      tcp dport 1720 ct helper set "Q.931" comment "!fw4: Q.931 proto tracking"
      meta nfproto ipv4 tcp dport 6667 ct helper set "irc" comment "!fw4: IRC DCC connection tracking"
      meta nfproto ipv4 tcp dport 1723 ct helper set "pptp" comment "!fw4: PPTP VPN connection tracking"
      udp dport 5060 ct helper set "sip" comment "!fw4: SIP VoIP connection tracking"
      meta nfproto ipv4 udp dport 161 ct helper set "snmp" comment "!fw4: SNMP monitoring connection tracking"
      udp dport 69 ct helper set "tftp" comment "!fw4: TFTP connection tracking"
   }

   chain accept_from_lan {
      iifname "br-lan" counter packets 11 bytes 721 accept comment "!fw4: accept lan IPv4/IPv6 traffic"
   }

   chain accept_to_lan {
      oifname "br-lan" counter packets 0 bytes 0 accept comment "!fw4: accept lan IPv4/IPv6 traffic"
   }

   chain input_wan {
      meta nfproto ipv4 udp dport 68 counter packets 0 bytes 0 accept comment "!fw4: Allow-DHCP-Renew"
      icmp type echo-request counter packets 0 bytes 0 accept comment "!fw4: Allow-Ping"
      meta nfproto ipv4 meta l4proto igmp counter packets 7 bytes 224 accept comment "!fw4: Allow-IGMP"
      meta nfproto ipv6 udp dport 546 counter packets 0 bytes 0 accept comment "!fw4: Allow-DHCPv6"
      ip6 saddr fe80::/10 icmpv6 type . icmpv6 code { mld-listener-query . no-route, mld-listener-report . no-route, mld-listener-done . no-route, mld2-listener-report . no-route } counter packets 0 bytes 0 accept comment "!fw4: Allow-MLD"
      icmpv6 type { destination-unreachable, time-exceeded, echo-request, echo-reply, nd-router-solicit, nd-router-advert } limit rate 1000/second counter packets 0 bytes 0 accept comment "!fw4: Allow-ICMPv6-Input"
      icmpv6 type . icmpv6 code { packet-too-big . no-route, parameter-problem . no-route, nd-neighbor-solicit . no-route, nd-neighbor-advert . no-route, parameter-problem . admin-prohibited } limit rate 1000/second counter packets 0 bytes 0 accept comment "!fw4: Allow-ICMPv6-Input"
      jump reject_from_wan
   }

   chain output_wan {
      jump accept_to_wan
   }

   chain forward_wan {
      icmpv6 type { destination-unreachable, time-exceeded, echo-request, echo-reply } limit rate 1000/second counter packets 0 bytes 0 accept comment "!fw4: Allow-ICMPv6-Forward"
      icmpv6 type . icmpv6 code { packet-too-big . no-route, parameter-problem . no-route, parameter-problem . admin-prohibited } limit rate 1000/second counter packets 0 bytes 0 accept comment "!fw4: Allow-ICMPv6-Forward"
      meta l4proto esp counter packets 0 bytes 0 jump accept_to_lan comment "!fw4: Allow-IPSec-ESP"
      udp dport 500 counter packets 0 bytes 0 jump accept_to_lan comment "!fw4: Allow-ISAKMP"
      jump reject_to_wan
   }

   chain accept_to_wan {
      meta nfproto ipv4 oifname "wan" ct state invalid counter packets 25 bytes 1778 drop comment "!fw4: Prevent NAT leakage"
      oifname "wan" counter packets 162 bytes 13871 accept comment "!fw4: accept wan IPv4/IPv6 traffic"
   }

   chain reject_from_wan {
      iifname "wan" counter packets 2 bytes 152 jump handle_reject comment "!fw4: reject wan IPv4/IPv6 traffic"
   }

   chain reject_to_wan {
      oifname "wan" counter packets 0 bytes 0 jump handle_reject comment "!fw4: reject wan IPv4/IPv6 traffic"
   }

   chain input_wg {
      jump accept_from_wg
   }

   chain output_wg {
      jump accept_to_wg
   }

   chain forward_wg {
      jump accept_to_wg
   }

   chain accept_from_wg {
   }

   chain accept_to_wg {
   }

   chain dstnat {
      type nat hook prerouting priority dstnat; policy accept;
   }

   chain srcnat {
      type nat hook postrouting priority srcnat; policy accept;
      oifname "wan" jump srcnat_wan comment "!fw4: Handle wan IPv4/IPv6 srcnat traffic"
   }

   chain srcnat_wan {
      meta nfproto ipv4 masquerade comment "!fw4: Masquerade IPv4 wan traffic"
   }

   chain srcnat_wg {
      meta nfproto ipv4 masquerade comment "!fw4: Masquerade IPv4 wg traffic"
   }

   chain raw_prerouting {
      type filter hook prerouting priority raw; policy accept;
   }

   chain raw_output {
      type filter hook output priority raw; policy accept;
   }

   chain mangle_prerouting {
      type filter hook prerouting priority mangle; policy accept;
   }

   chain mangle_postrouting {
      type filter hook postrouting priority mangle; policy accept;
   }

   chain mangle_input {
      type filter hook input priority mangle; policy accept;
   }

   chain mangle_output {
      type route hook output priority mangle; policy accept;
   }

   chain mangle_forward {
      type filter hook forward priority mangle; policy accept;
      iifname "br-lan" tcp flags syn tcp option maxseg size set rt mtu comment "!fw4: Zone lan IPv4/IPv6 ingress MTU fixing"
      oifname "br-lan" tcp flags syn tcp option maxseg size set rt mtu comment "!fw4: Zone lan IPv4/IPv6 egress MTU fixing"
      iifname "wan" tcp flags syn tcp option maxseg size set rt mtu comment "!fw4: Zone wan IPv4/IPv6 ingress MTU fixing"
      oifname "wan" tcp flags syn tcp option maxseg size set rt mtu comment "!fw4: Zone wan IPv4/IPv6 egress MTU fixing"
   }
}

kvpfs_2
() автор топика
Последнее исправление: kvpfs_2 (всего исправлений: 1)