Dacă îmi amintesc corect, „fluxul” pentru un pachet care vine ar fi:
Am testat acest lucru pe unele instanțe EC2: una publică și una privată. Ambele rulează apache cu o pagină web simplă, unul spunând „gateway” și unul spunând „nod”.
Înainte de a adăuga reguli pentru tabele IP, pot curba o pagină web simplă și arată corect că este de la instanța mea de „gateway”. Apoi fac următoarele pe gateway:
echo 'net.ipv4.ip_forward = 1' | sudo tee /etc/sysctl.d/10-forwarding.conf
sudo sysctl -w net.ipv4.ip_forward=1
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination 10.0.100.154
sudo iptables -A FORWARD -i eth0 -p tcp --dport 80 -j ACCEPT
sudo iptables -t nat -A POSTROUTING -p tcp --dport 80 -j SNAT --la 10.0.0.160
Acest lucru îmi permite să curl IP-ul public, unde este NAT la VM-ul intern țintă și redirecționat/NAT corect pentru răspuns. Am configurat subrețeaua privată fără nicio rutare externă, așa că, dacă nu este direcționată către intervalul intern, nu merge nicăieri. Funcționează așa cum s-a sperat!
Dacă aveți mai multe interfețe, atunci ar trebui să puteți bloca REDIRECŢIONA
regula un pic mai bine cu adaosuri de -i eth0 -o wg0
la unele reguli, iar POSTOUTARE
regula cu a -o wg0
.
Deci, cred că regulile tale ar trebui să fie:
#Â dnat pentru a viza VM VPN
iptables -t nat -A PREROUTING -i eth0 -p tcp -m multiport --dports 80,443 -j DNAT --to-destination $WIREGUARD_CLIENT_ADDRESS
# înainte între interfețe pentru conexiuni noi
iptables -A FORWARD -i eth0 -o wg0 -p tcp -m multiport --dports 80,443 -m conntrack --ctstate NOU -j ACCEPT
#Â permite redirecționarea traficului asociat - nu este nevoie de ambele seturi de -i/-o, deoarece putem permite doar conex
iptables -A FORWARD -m stare ESTABLISHED,RELATED -j ACCEPT
#Â postrouting pentru VPN
iptables -t nat -A POSTROUTING -o wg0 -p tcp -m multiport --dports 80,443 -j MASQUERADE