Puncte:0

Firewalld Blocarea SSH între clienți pe WireGuard LAN

drapel gb

Ce trebuie permis în firewalld pentru ca clienții WireGuard să se poată conecta între ei prin SSH?


Pregatirea

Am doi clienți și un server pe o rețea WireGuard VPN. Toate rulează Debian 11.

CLIENT A -------- SERVER -------- CLIENT B
10.0.1.2 10.0.1.1 10.0.1.3

Ce se poate face

  • Pot SSH de la oricare client la server.
  • Pot SSH de la server la oricare dintre client.

Problemă: Dar când încerc să fac SSH client la client, primesc „ssh: connect to host 10.0.1.2 port 22: No route to host”


Depanare

  1. Calea dintre mașini este sus pentru că pot da ping...
    • client la server,
    • server la client,
    • si client la client.
  2. Porturile sunt accesibile pentru că pot telnet...
    • de la server la oricare client pe portul 22.
    • de la oricare client la server de pe portul 22.

Problemă: Dar când încerc să conectez clientul telnet la client, primesc „telnet: Imposibil de conectat la gazda de la distanță: nicio rută către gazdă”


Ce a fost confirmat

  • SSH este un serviciu listat pe firewalld: firewall-cmd --list-services se intoarce ssh
  • ip-foward este setat pe nucleu: sysctl -a se intoarce net.ipv4.ip_forward = 1
  • Redirecționarea este setată pe iptables: iptables-salvare se intoarce -A FORWARD -i wg0 -o wg0 -j ACCEPT
  • Dezactivarea firewalld pe server permite o conexiune SSH între cei doi clienți WireGuard.

Mulțumesc pentru ajutor și indicații.

drapel fr
Arată-ne rezultatul „ip route show” de la clienți.
Puncte:1
drapel cn

În timp ce firewalld este în general un instrument excelent pentru configurarea firewall-ului pe o cutie Linux, pentru acest caz particular de utilizare -- redirecționarea traficului pentru alte gazde -- este un fel de durere de folosit. Aș sugera să îl dezactivați pe serverul dvs. și să utilizați direct iptables (sau nftables).

Dacă chiar doriți să utilizați firewalld, încercați acest lucru (ca root):

1. Creați o zonă personalizată pentru interfața WireGuard care acceptă tot traficul:
firewall-cmd --permanent --new-zone=mywg
firewall-cmd --permanent --zone=mywg --set-target=ACCEPT
firewall-cmd --reîncărcare
2. Adăugați reguli „bogate” în zonă pentru a respinge conexiunile de intrare de la WireGuard la serverul însuși:
firewall-cmd --zone=mywg --add-rich-rule='rule family="ipv4" priority="30001" protocol value="tcp" reject'
firewall-cmd --zone=mywg --add-rich-rule='rule family="ipv4" priority="30002" protocol value="udp" reject'
firewall-cmd --zone=mywg --add-rich-rule='rule family="ipv6" priority="30003" protocol value="tcp" reject'
firewall-cmd --zone=mywg --add-rich-rule='rule family="ipv6" priority="30004" protocol value="udp" reject'
3. Adăugați reguli „directe” pentru a permite redirecționarea conexiunilor SSH IPv4 între alte gazde WireGuard și respingeți orice altceva:
firewall-cmd --direct --add-rule ipv4 filter FORWARD 0 -i wg0 -m stare --state ESTABLISHED,RELATED -j ACCEPT
firewall-cmd --direct --add-rule ipv4 filter FORWARD 1 -i wg0 -o wg0 -m stare --state NOU -p tcp --dport 22 -j ACCEPT
firewall-cmd --direct --add-rule filtru ipv4 FORWARD 2 -i wg0 -j REJECT
firewall-cmd --direct --add-rule filtru ipv6 FORWARD 0 -i wg0 -j REJECT
4. Leagă zona la interfața WireGuard și salvează modificările:
firewall-cmd --zone=mywg --add-interface=wg0
firewall-cmd --runtime-to-permanent

Puteți adăuga mai multe reguli directe IPv4 între 0 și 2 (renumerotând codul RESPINGE regula să fie ultimul) dacă doriți să permiteți alte tipuri de trafic între gazdele dvs. WireGuard (sau pur și simplu înlocuiți regulile 0 și 1 cu o singură regulă, cum ar fi -i wg0 -o wg0 -J ACCEPT dacă doriți să permiteți serverului să redirecționeze orice și tot traficul între gazdele dvs. WireGuard).

Consultați secțiunea Hub și Spoke din aceasta Cum să utilizați WireGuard cu Firewalld articol pentru o explicație completă (Gazda C este serverul dvs. în acest articol).

user371793 avatar
drapel gb
Vă mulțumim pentru ajutor @JustinLudwig

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.