Puncte:1

Dirijați tot traficul prin Wireguard peer

drapel gh

Am o configurație Wireguard VPN care arată, practic, așa:

P1 ---- S ---- P ---- LAN
Px -----|
  • S (ip 192.168.60.1) este un server WG care rulează pe Ubuntu 20.04 cu ufw activat, cu un IP public (folosind interfața wg0).
  • P (ip 192.168.60.2) este un WG peer care rulează în spatele CGNAT, fără IP public, conectat la propriul LAN.
  • P1..Px sunt alți colegi WG (ip 192.168.60.1x).

Ufw are următoarea configurație:

La Acțiune De la
-- ------ ----
22/tcp PERMITERE oriunde
51820/udp ALLOW Oriunde

Oriunde pe eth0 ALLOW FWD Oriunde pe wg0
Oriunde pe wg0 ALLOW FWD Oriunde pe eth0
Oriunde pe wg0 ALLOW FWD Oriunde pe wg0

Vreau să realizez ca tot traficul care provine de la egalii P1..Px să fie direcționat prin P.

Am încercat următoarele, dar fără succes:

  • Pe P1, am setat AllowedIPs pentru S la 0.0.0.0/0. Pe S am setat AllowedIPs pentru P la 0.0.0.0/0. - Această configurație face S inaccesibil prin eth0 (și tot nu direcționează nimic către P).

  • Pe P1, am setat AllowedIPs pentru S la 0.0.0.0/0. Pe S, am încercat să configurez rutarea bazată pe politici pe baza IP-ului sursă:

     sudo ip rule add from 192.168.60.0/24 lookup 200
     sudo ip route add default prin 192.168.60.2 dev wg0 table 200
    

    Acest lucru împiedică conectarea P1 la orice altceva decât 192.168.60.0/24.

Puncte:2
drapel in

Probabil ar trebui să începeți cu utilizarea Table=off în wg-quick conf atât pe S cât și pe P. Valoarea lui AllowedIPs= atunci nu va provoca modificări ale rutelor / regulilor de rutare a politicii asupra acestora.

EDIT: De fapt, ar trebui să fie bine să pleci Tabel= neatins pe P cu excepția cazului în care aveți nevoie AllowedIPs= de S pe ea să fie 0.0.0.0/0 în loc de 192.168.60.0/24 din anumite motive, de ex. nevoie de trafic provine de la sine pentru a fi direcționat S. Nu trebuie să vă încurcați singur cu rutele și regulile de rutare de pe P, deoarece chiar și prefixul din Adresa=192.168.60.2/24 ar trebui să configureze ruta necesară. Următorul paragraf probabil nu se aplică la ceea ce aveți nevoie -- deși vă poate oferi câteva informații suplimentare despre cum funcționează lucrurile.

Și probabil ar trebui să utilizați o subrețea IP suplimentară pentru S și ​​P, de exemplu. 192.168.59.0/30. Acest lucru vă va economisi bătălia de a avea nevoie de regulă IP suplimentară. Nu uitați să adăugați ruta de subrețea pentru 192.168.60.0/24 pe P totuși, ca și cu Table=off, numai rutele de prefix vor fi adăugate de nucleu pentru prefixul(ele) din Adresa= câmpuri). Folosește bine PostUp= (și PreDown=) la fel.

Presupun că nu doriți să direcționați traficul care provine din S în sine către P, așa că probabil că doriți următoarea regulă ip:

# regulă ip adăugați iif wg0 din 192.168.60.0/24 căutare 200

Dacă într-adevăr aveți nevoie să faceți ruta de ex. alte traficuri decât răspunsurile serverului ssh și wireguard la P, puteți avea în plus:

# regulă ip adăugați iif la căutare 200
# ip rule add iif lo iproto tcp sport 22 principal de căutare
# regulă ip add iif lo iproto udp sport 51820 căutare principală

Notă: nu vă puteți potrivi doar cu din 192.168.60.1 adăugată în prima regulă și omiteți celelalte două, deoarece pentru traficurile care nu răspund, adresa sursă este adesea (dacă nu întotdeauna) aleasă pe baza traseului decis -- nu este încă setată în acest moment.

Rețineți că ordinea comenzii determină în mod normal prioritatea, așa că asigurați-vă că adăugați regula „superset” înaintea regulilor „subset”, altfel acestea din urmă vor fi suprascrise de prima.

De asemenea, cel mai bine este să păstrați tabelul 200 gol până când toate regulile de dorință sunt în poziție, altfel accesul de la distanță al gazdei ar putea fi întrerupt.

În cele din urmă, nexthop nu are sens în drumul către un tunel L3:

# ip route add default dev wg0 table 200

P.S. Asigurați-vă că nu ați permis doar redirecționarea IP în firewall, ci ați activat-o și cu sysctl.

Andrija Kovačević avatar
drapel gh
Mulțumesc, pentru sfaturi - am reușit să-l fac să funcționeze cu următoarea configurație (totul făcut pe S): - adăugați Table = off la wg0.conf - setați AllowedIPs = 0.0.0.0/0, pentru P (nu sunt sigur dacă acest lucru a fost de fapt necesar) - adăugați următoarele în PostUp: ip rule add iif wg0 din 192.168.60.0/24 lookup 200; ip route add default prin 192.168.60.2 dev wg0 tabelul 200; - adăugați următoarele la PostDown: ip rule delete iif wg0 din 192.168.60.0/24 lookup 200; ip route delete default prin 192.168.60.2 dev wg0 tabelul 200;
Tom Yan avatar
drapel in
Am făcut câteva modificări la răspuns. Vezi dacă ți-a clarificat lucrurile.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.