Puncte:0

OpenVPN și IPTABLES - Cum să atribuiți gateway-ul lan (vpn) clienților

drapel cn

Încerc să-mi configurez rețeaua openvpn, dar am o problemă.

Configurația mea LAN este următoarea:

  • routerul principal Zyxel 192.168.1.1 care acționează ca gateway (conexiune vdsl) și punct de acces;
  • router openwrt TD-W8970 192.168.1.2 care acționează ca acces server punct și vpn (10.212.79.1)

Ce vreau să fac este să creez o rețea VPN cu clienți care trebuie să trimită cereri de internet doar prin gateway-ul meu LAN (192.168.1.1); cu alte cuvinte, vreau ca IP-ul public al clienților afișat pe internet să fie cel al gateway-ului meu LAN (192.168.1.1) și nu cel atribuit acestora de ISP-ul lor.

Aici mai jos configurația mea openvpn.

server.conf

utilizator nimeni
grup fără grup
dev tun
portul 1194
proto udp
server 10.212.79.0
255.255.255.0
subrețea topologică
de la client la client
menține în viață 10 60
persist-tun
cheie-persiste
verbul 3
împinge "persist-tun"
apăsați „tasta persistă”
apăsați „dhcp-option DNS 8.8.8.8”
apăsați „dhcp-option DNS 8.8.4.4”
apăsați „route 192.168.1.0 255.255.255.0”
ca /etc/easy-rsa/pki/ca.crt
cert /etc/easy-rsa/pki/issued/server.crt
cheie /etc/easy-rsa/pki/private/server.key
dh /etc/easy-rsa/pki/dh.pem
tls-auth /etc/easy-rsa/pki/ta.key 0

client.conf

dev tun
proto udp
la distanță myserver_xyz.com 1194 udp
rezoluție-reîncercare infinit
nobind
utilizator nimeni
grup fără grup
cheie-persiste
persist-tun
ca ca.crt
cert client1.crt
cheie client1.cheie
server remote-cert-tls
tls-auth ta.key 1
cifrul AES-256-CBC
verbul 3

Rețeaua openvpn este stabilită corect și clientul 10.212.79.2 este capabil să pună ping la serverul vpn 10.212.79.1 și să navigheze în Internet.

Problema este că IP-ul clientului public afișat pe Internet este cel atribuit de ISP-ul său și nu cel al gateway-ului LAN (192.168.1.1) unde se află serverul vpn (192.168.1.2 / 10.212.79.1).

Am încercat să fac unele modificări în configurația serverului, dar fără succes.

De asemenea, am încercat să pun push „redirect-gateway def1” sau push „redirect-gateway autolocal”, dar în aceste cazuri clientul sa oprit deloc să navigheze pe internet.

Dacă nu este o problemă openvpn, este o problemă legată de configurația corectă a IPTABLES?

Poti, te rog, sa ma ajuti?

Mulțumesc anticipat :)

Puncte:0
drapel bd

Dacă v-am înțeles nevoile, pachetele IP ale clientului dvs. ar trebui trimise către routerul clientului, apoi prin Internet într-un tunel, către routerul serverului, apoi înapoi pe Internet.

redirect-gateway def1 pare adecvat, dar pentru a fi sigur, ar fi mai bine să ne arătăm ruta ip ieșire pe toate nodurile (PC client, router client, router server). Aceste rezultate ne-ar asigura că diferitele tabele de rute sunt corecte. https://openvpn.net/community-resources/how-to/ propune a local flag în funcție de configurația dvs. exactă.

O comandă de masquerading ar trebui pusă pe serverul VPN, de obicei pe routerul serverului: iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE unde eth0 este dispozitivul extern (cel mai apropiat de Internet). Vedea https://linuxhacks.org/what-is-ip-masquerade-and-how-to-rule-it-with-iptables/ sau https://bobcares.com/blog/iptables-nat-masquerade/ De asemenea, trebuie să activați redirecționarea (vezi aceste articole).

Francesco avatar
drapel cn
În primul rând, vă mulțumesc pentru sprijin. Am rezolvat in acest fel. În openvpn server.conf: apăsați „redirect-gateway def1”. În routerul OpenWRT care găzduiește serverul openvpn: sysctl net.ipv4.ip_forward=1, iptables -I FORWARD -j ACCEPT, iptables -t nat -I POSTROUTING -s 10.212.79.0/24 -o br-lan -j MASQUERADE. Am șters și de pe server.conf: push „dhcp-option DNS 8.8.8.8”, push „dhcp-option DNS 8.8.4.4”, push „route 192.168.1.0 255.255.255.0”. Acum mă întreb dacă pot obține același rezultat fără a folosi iptables, ci doar folosind o configurație specifică openvpn pe server și client.
Frédéric Loyer avatar
drapel bd
Dacă configurația dvs. are 2 rețele cu același prefix (192.168.1.0/24), presupun că masquerading-ul este obligatoriu. Acest lucru evită ca un pachet de la una dintre aceste rețele să vină pe al doilea neschimbat, ceea ce ar implica probleme de rutare (rețeaua de destinație consideră că pachetul este de la un vecin și nu de cealaltă parte a VPN). Nu pot insista mai mult. Apoi păstrați mascarada sau schimbați unul dintre 192.168.1.0 cu 192.168.2.0.
Francesco avatar
drapel cn
Nu am control asupra configurației rețelei client, deoarece clientul se conectează la VPN-ul meu dintr-o rețea publică (hotel, dongle LTE, ...). Ceea ce pot face pentru a evita problemele de rutare este să schimb configurația IP în lan-ul serverului, evitând 192.168.x.x obișnuit și preferând ceva la mijlocul lui 10.x.x.x, scăzând posibilitatea conflictelor IP cu rețeaua client.În acest caz (lan server și lan client cu configurație IP diferită), este posibil să se obțină același rezultat fără a utiliza iptables, ci doar setarea corectă a server.conf și client.conf?
Frédéric Loyer avatar
drapel bd
Cu un singur client, asta ar funcționa. Cu doi clienți care au același interval de adrese 192.16.1.0, este nevoie de masquerading. Rețineți că există anunțul rutei 193.168.1.0 care ar trebui să apară undeva. Și încă mai ai nevoie de o mascară între toate adresele tale private și Internet, dar presupun că se face în altă parte.

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.