Î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).