OpenVPN client para sa buong LAN sa OpenWrt: isang pagkakasunod-sunod ng trabaho
Ang pagmamay-ari ng interface, patakaran ng zone, masquerade at mga talahanayan bawat SSID ay apat na hiwalay na gawain. Gawin sila nang sunod-sunod at titigil nang makipag-away sa iyo ang tunnel na sumasaklaw sa buong router.
Apat na malayang gawain ang naglalagay sa buong LAN ng isang router sa likod ng isang tunnel. Ang device ng tunnel ay nangangailangan ng may-ari, isang firewall zone, isang target ng pagsasalin patungo sa uplink at, kung ang ilang client ay dapat manatili sa labas ng VPN, ruting ayon sa source address. Ang tunnel na kumokonekta habang walang dumadaan ay karaniwang kulang ng isa sa apat na iyon. Ang paggawa sa ayos ng dependency ay nangangahulugan na ang kabiguan sa dulo ay pag-aari ng hakbang na binago mo lang. Bawat hakbang sa ibaba ay nagtatapos sa isang bagay na makikita mo, at pinipigilan nito ang susunod na maging hula.
Magpasya kung ano ang nagbabahagi ng tunnel
Ang router na namamahagi ng Wi-Fi at DHCP ay maaaring magpatakbo ng client mismo. Inilalagay nito ang bawat konektadong device sa likod ng tunnel na walang setup per device, at ito ang kaayusan na gusto ng karamihan ng maliliit na site. Ito rin ang may pinakamalawak na saklaw ng epekto kapag bumagsak ang tunnel, dahil ang bawat device ay nawawalan ng ruta nito nang sabay. Walang natitira sa LAN na gumaganang daan palabas.
Ang ikalawang router sa likod ng una, na nagpapatakbo ng client gamit ang sariling subnet, ay naglilimita sa tunnel sa sarili nitong mga device. Mas madaling tanggalin at mas madaling ipaliwanag sa makakakuha nito. Ang halaga ay ang maabot sa pagitan ng dalawang panig na walang ruta o port forward.
Sa alinmang paraan, gawing magkakaiba ang mga subnet ng LAN. Ang magkaparehong saklaw ay nagpapakita sa isang panig na direktang konektado, at ang resultang black hole ay binabasa bilang sira ng VPN nang maraming oras.
Bigyan ang tunnel ng may-ari
Ipahayag ang tunnel bilang isang network interface na may pangalan, device at walang sariling protocol. Pagkatapos ay ginagawa at pinamamahalaan ng network system ang device, at ang lahat ng nasa ibaba ay tumutukoy sa interface sa pamamagitan ng pangalan at hindi ng device. Iyon ang nagpapahintulot sa zone na mahanap ito.
Huwag gumawa ng parehong device sa dalawang lugar. Ang gawang-kamay na tunnel sa tabi ng ipinahayag na interface ay gumagawa ng device na umiiral pero wala sa anumang zone, o isang nawawala kapag nag-reload. Pareho silang mukhang nabigo ang client, at wala sa kanila ang naglalabas ng error na nagngangalan sa tunay na dahilan. Piliin ang declarative na landas at burahin ang manwal.
Panatilihing magkapareho ang pangalan sa network, firewall at VPN configuration. Naglilista ang zone ng mga network sa pamamagitan ng pangalan, kaya ang isang typo ay nag-iiwan sa tunnel sa labas ng bawat zone habang ang interface mismo ay mukhang malusog. Ang malusog na interface na walang patakaran ay ang pinakamahirap mapansin na kalagayan.
Ilagay sa zone, pagkatapos ay i-forward papasok dito
Ang firewall zone ay kung saan naninirahan ang patakaran: input, output, forward at masquerade. Ang tunnel na wala sa anumang zone ay pinamamahalaan ng mga default na hindi mo pinili, at bihira iyon ang kailangan ng isang router client. Ang mga bloke sa ibaba ay nagpapahayag ng interface, naglalagay nito sa isang zone at nagpapahintulot sa trapiko ng LAN na pumasok sa zone na iyon.
config interface 'vpn'
option device 'tun0'
option proto 'none'
config zone
option name 'vpn'
list network 'vpn'
option input 'REJECT'
option output 'ACCEPT'
option forward 'REJECT'
option masq '1'
config forwarding
option src 'lan'
option dest 'vpn'
Sa mga release na mas luma kaysa 21.02 ang parehong linya ng interface ay isinusulat bilang option ifname, kaya tingnan kung aling anyo ang binabasa ng naka-install na firmware bago i-paste. Ang bloke ng forward ay ang pahintulot na nagpapahintulot sa trapiko ng LAN na gamitin ang tunnel. Kung wala ito, ang device ay buhay, ang client ay konektado, at walang LAN host ang nakakaabot sa tunnel. Ito ang pinakakaraniwang reklamo ng konektado pero walang internet sa mga router client.
Ang masquerade sa VPN zone ay nagpipiga sa bawat address ng LAN patungo sa tunnel address ng router bago umalis ang packet. Inaalis nito ang pangangailangan ng pabalik na ruta patungo sa iyong subnet sa kabilang panig.
Kung ang kabilang panig ay nagru-ruta na sa iyong LAN, ang pagpatay ng masquerade ay nagpapanatili sa mga source address na nakikita at ginagawang makabuluhan ang mga log per client. Pumili ng isa at isulat kung alin, dahil ang dalawang pagpipilian ay gumagawa ng magkaibang tanong sa suporta mamaya. Ang pagtanggal ng default na forward mula LAN patungo sa WAN ay hiwalay na desisyon na may sariling kahihinatnan. Tanggalin ito at ang sariling internet access ng router ay kasama nitong mawawala.
Pangalanan ang tunay na uplink sa NAT
Sa firmware kung saan ang patakaran ng pagsasalin ay isinusulat sa kamay, ang outgoing interface ang field na nagkakamali. Ang patakarang nagngangalan sa vlan2 ay walang ginagawa kapag nagtapos ang session sa ppp0. Ang patakarang walang anumang interface ay maaaring magsalin ng trapikong dapat ay nanatiling pribado. Wala sa dalawang pagkakamali ang naghahayag ng sarili, dahil patuloy na gumagana ang tunnel.
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
Palitan ang ppp0 sa patakarang iyon ng interface mula sa ip route o sa listahan ng mga gumaganang interface, pagkatapos ay panoorin ang counter habang naglo-load ng pahina ang isang LAN host. Sa router na may isang provider, isang masquerade rule para sa uplink ang karaniwang sapat. Ang ikalawang rule para sa tunnel interface ay hindi kapalit ng una.
Pagkatapos ay idagdag ang mga opsyon ng client na nagpapasya kung ano ang pumapasok sa tunnel. Ang direktibang redirect-gateway ay nagpapadala ng internet traffic ng client sa VPN, at kung wala ito ang tunnel ay nagdadala lamang ng mga rutang itinutulak ng server. Tingnan ang resultang route table bago hawakan ang DNS.
Hatiin ang Wi-Fi gamit ang ikalawang talahanayan
Ang isang routing table ay hindi kayang maghawak ng dalawang default. Ang ikalawang SSID na dapat lumampas sa tunnel ay nangangailangan ng sariling subnet at sariling talahanayan. Bigyan ang tunnelled SSID ng sariling saklaw, pagkatapos ay i-route lamang ang saklaw na iyon papasok sa tunnel gamit ang patakarang pumipili ng talahanayan.
Ang mga policy-routing package sa OpenWrt ay nagpapahayag ng eksaktong kombinasyong iyon. Kaya rin ito sa kamay, gamit ang source rule at talahanayang ang default ay tumuturo sa tunnel device.
Tingnan ang paghati mula sa dalawang network. Ang client sa tunnelled SSID ay dapat magpakita ng exit address ng VPN, at ang client sa ordinaryong SSID ay dapat magpakita ng sa provider. Kapag pareho silang mukhang magkatulad, ang patakaran ay tumutugma sa maling source o hindi kailanman kinokonsulta ang talahanayan. Subukan din pagkatapos ng muling pagkonekta, dahil ang patakarang nakadepende sa pangalan ng interface ay nasisira kapag binigyan ng bagong numero ang device.
Pagdudahan ang orasan at ang flag ng device
Ang persist-tun flag na persist-tun ay nag-iiwan sa tunnel device sa puwesto sa pagitan ng mga restart. Bagay iyon sa isang server at nakakalito sa isang client na ang estado ay dapat itayong muli mula sa simula. Alisin ito habang nag-aayos ng router client, dahil ang device na nakaligtas sa nabigong negosasyon ay nagtatago kung aling hakbang ang talagang nasira. Ibalik ito kapag konektado ang client nang maaasahan, at hindi bago iyon.
Ang orasan ang isa pang tahimik na kabiguan. Ang router na walang orasang de-baterya ay nagsisimula sa epoch, ibig sabihin nabibigo ang mga pagsusuri ng sertipiko hanggang maabot ito ng NTP. Ihambing ang mga timestamp ng log sa tunay na oras bago hawakan ang isang sertipiko, dahil ang client na kumokonekta isang minuto pagkatapos ng boot ay karaniwang naghihintay ng pag-sync ng oras.