Rulez un „Server” Wireguard în rețeaua mea locală, la care ajung de la distanță prin IP-ul meu public static.
Vreau să pot limita accesul la colegii Wireguard la distanță la serviciile/mașinile din lan-ul meu, unde găzduiesc alt server.
Exemplu:
Server 1 (192.168.1.23 | 10.0.0.1) cu Wireguard instalat + Nextcloud + Jellyfin în aceeași mașină
Server 2 (192.168.1.62) cu Photoprism
Peer la distanță 1 (10.0.0.2 | ip dinamic)
Peer la distanță 2 (10.0.0.3 | ip dinamic)
Vreau sa:
1- Permiteți peer1 (10.0.0.2) să acceseze Server 1 Nextcloud + Jellyfin și să acceseze Server 2 la Photoprism.
2- Permiteți lui Peer2 (10.0.0.3) să acceseze numai Serverul 1 Nextcloud, dar nu Jellyfin și să blocheze accesul la Server 2
În acest moment, pot accesa toate mașinile din lanțul meu de la toți Peers.
Reguli Iptables:
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o enp0s7 -j MASQUERADE; iptables -t nat -A POSTROUTING -o wg0
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o enp0s7 -j MASQUERADE; iptables -t nat -D POSTROUTING -o wg0
Am urmat asta tutorial, din Justin Ludwig deoarece topologia Site to Point este foarte asemănătoare cu a mea.
Așa că am încercat să reproduc regulile Iptables cu aceste reguli:
# mascarada
PreUp = iptables -t mangle -A PREROUTING -i wg0 -j MARK --set-mark 0x200
PreUp = iptables -t nat -A POSTRUTING ! -o wg0 -m mark --mark 0x200 -j MASQUERADE
PostDown = iptables -t mangle -D PREROUTING -i wg0 -j MARK --set-mark 0x200
PostDown = iptables -t nat -D POSTROUTING ! -o wg0 -m mark --mark 0x200 -j MASQUERADE
# intrare wireguard
PreUp = iptables -I INPUT -p udp --dport 2332 -j ACCEPT
PostDown = iptables -D INTRARE -p udp --dport 2332 -j ACCEPT
# firewall de site
PreUp = iptables -N wg0-filter
PreUp = iptables -N la-fotoprismă
PreUp = iptables -N la-jellyfin
PreUp = iptables -N to-nextcloud
PreUp = iptables -I INPUT -i wg0 -j wg0-filtru
PreUp = iptables -I FORWARD -i wg0 -j wg0-filtru
PreUp = iptables -I FORWARD -o wg0 -j wg0-filter
PreUp = iptables -I OUTPUT -o wg0 -j wg0-filtru
PreUp = iptables -A wg0-filter -m state --state ESTABLISHED,RELATED -j ACCEPT
PreUp = iptables -A wg0-filter -d 192.168.1.63 -p tcp --dport 2342 -j to-photoprism
PreUp = iptables -A wg0-filter -d 192.168.1.23 -p tcp --dport 8096 -j to-jellyfin
PreUp = iptables -A wg0-filter -d 192.168.1.23 -p tcp --dport 80 -j to-nextcloud
PreUp = iptables -A wg0-filter -j REJECT
PreUp = iptables -A to-photoprism -s 10.0.0.2 -j ACCEPT
PreUp = iptables -A to-jellyfin -s 10.0.0.2 -j ACCEPT
PreUp = iptables -A to-jellyfin -s 10.0.0.3 -j ACCEPT
PreUp = iptables -A to-nextcloud -s 10.0.0.2 -j ACCEPT
PreUp = iptables -A to-nextcloud -s 10.0.0.3 -j ACCEPT
PostDown = iptables -D INPUT -i wg0 -j wg0-filtru
PostDown = iptables -D FORWARD -i wg0 -j wg0-filter
PostDown = iptables -D FORWARD -o wg0 -j wg0-filter
PostDown = iptables -D OUTPUT -o wg0 -j wg0-filter
PostDown = iptables -F to-photoprism
PostDown = iptables -F la-jellyfin
PostDown = iptables -F to-nextcloud
PostDown = iptables -X la-fotoprismă
PostDown = iptables -X la-jellyfin
PostDown = iptables -X to-nextcloud
Asta nu a funcționat,
Peer 1 și Peer 2 pot ajunge la Server 1, ambele servicii, dar nu și la Server 2.
Nu sunt atât de priceput să înțeleg ce trebuie să schimb pentru ca acest lucru să funcționeze, m-aș bucura dacă cineva poate interveni.
Mulțumesc anticipat