Sheria zinazopeleka bandari zote zinaweza kumeza kiskilizaji chako cha WireGuard
Sheria pana ya upelekaji inaweza kumeza visikilizaji vya WireGuard na SSH vya lango lenyewe. Chagua sheria nyembamba au anwani ya umma tofauti, kisha jaribu njia ya udhibiti.
Lango la umma tayari linaendesha WireGuard kwenye UDP 51820, SSH kwenye 22 na programu moja ambayo lazima ifikiwe kutoka mtandao. Sheria inayovutia hupeleka kila bandari kwa peer na kutangaza kazi imekamilika. Kwenye lango la WireGuard, sheria hiyo inaweza kunasa usafirishaji wa handaki yenyewe na kukufungia nje ya mashine inayolimaliza. Kuchapisha ni uamuzi wa uelekezaji wenye msamaha kwa ndege ya udhibiti, si mstari mmoja wa DNAT.
Kiingilio cha umma au kiingilio cha handaki: chagua kimoja
Kuchapisha huduma huunda kiingilio kipya kwenye mtandao. Si sawa na kumpa peer uanachama wa VPN, kwa sababu mgeni haingii kamwe kwenye handaki na lango huwa uso wa umma wa backend. Tofauti hiyo huamua hadhira ya sheria na cheti chake.
Miingiliano ya usimamizi mara chache hufaa mahali hapo. Ukurasa wa msimamizi unaofikiwa na wateja wa VPN waliidhinishwa huweka uso wa mashambulizi ndani ya handaki na huepuka kuweka fomu ya kuingia kwenye uchunguzi holela. Ncha za programu za umma bado zinahitaji cheti chake cha TLS, uthibitishaji na upunguzaji wa kasi; hatua ya WireGuard iliyofichwa haikingi sehemu ya mgeni hadi lango.
Ikiwa huduma lazima iwe ya umma kwa kweli, andika jina la mwenyeji, cheti kinachoisimamia na safu za wageni zinazopaswa kuifika. Mambo hayo matatu huamua umbo la sheria na sera ya uchujaji baadaye. Kila kitu nje yao ni upanuzi wa wigo kwenye kiskilizaji cha umma.
Bandari moja ndani, backend moja nje
Tumia bandari moja ya umma na huduma moja ya backend. Katika mfano huu eth0 hubeba anwani ya umma 198.51.100.20, anwani ya handaki ya lango ni 10.200.0.1, na peer huendesha programu kwenye 10.200.0.7. TCP ya umma 9443 huwekwa ramani hadi TCP 8443 ya peer:
iptables -t nat -A PREROUTING -i eth0 -d 198.51.100.20 -p tcp --dport 9443 -j DNAT --to-destination 10.200.0.7:8443
iptables -t nat -A POSTROUTING -o wg0 -d 10.200.0.7 -p tcp --dport 8443 -m conntrack --ctorigdst 198.51.100.20 --ctorigdstport 9443 -j SNAT --to-source 10.200.0.1Sheria ya SNAT inalingana na backend iliyotafsiriwa na lengo la awali la umma, kwa hivyo muunganisho mwingine hadi huduma hiyo hiyo ya backend unabaki nje ya ramani hii. Pia huficha anwani ya mgeni kutoka kwa peer, na hiyo ndiyo ubadilishanaji unaofanya njia ya kurudi iliyoelekezwa inayohifadhi chanzo kuwa muundo tofauti. Marejeo ya viendelezi vya iptables huandika malengo yote mawili na chaguo zao za kulinganisha.
Upelekaji bado unahitaji kuwezeshwa, na mnyororo wa kuchuja unahitaji ruhusa kwa lengo na bandari zilizotafsiriwa pamoja na majibu yaliyoimarishwa. Mnyororo wa FORWARD huona lengo lililotafsiriwa baada ya DNAT, kwa hivyo sheria iliyoandikwa dhidi ya anwani ya umma hailingani na pakiti inayopelekwa. Andika ruhusa dhidi ya tuple ya backend, si ya umma.
Peer lazima ikubali muunganisho wa huduma kutoka anwani ya handaki ya lango na kurudisha jibu kupitia handaki. AllowedIPs yake lazima iidhinishe chanzo inachopokea kwa kweli, ambacho chini ya tafsiri ya chanzo ni anwani ya handaki ya lango, na ingizo pana la 0.0.0.0/0 kwenye kila peer halihitajiki kwa muundo huu. Kinachoangusha trafiki ya kurudi ni peer ambayo orodha yake inaacha anwani hiyo, au muundo unaohifadhi chanzo ambao badala yake hupeleka anwani ya mgeni mwenyewe, kwa hivyo angalia chanzo ambacho peer inakiona kwa kweli, si kile kilicho kwenye sheria yako.
Weka visikilizaji vya lango lenyewe nje ya sheria
Badilisha ulinganishaji wa bandari na sheria inayosimamia kila lengo la TCP na UDP, na soketi ya WireGuard ya lango lenyewe inaingia ndani yake. Tafsiri ya lengo hufanyika kabla mashine kuamua kuwa pakiti ni ya ndani, kwa hivyo UDP 51820 inaweza kuishia kwa peer badala ya mchakato unaoshikilia kila muunganisho wa peer. Sheria hupakia bila hitilafu na handaki hufa, kushindwa ambako ni vigumu kusoma kutoka upande wa peer.
SSH, mawakala wa ufuatiliaji na huduma nyingine yoyote inayohudumiwa kwenye lango zina mfiduo huo huo. Sheria inayopeleka kila kitu haitofautishi ndege ya udhibiti na programu iliyochapishwa, na uanzishaji upya wa kwanza baada ya mabadiliko ni wakati kufungiwa nje kunakuwa dhahiri. Sheria inayonasa kila kitu haionyi kuhusu huduma inayoichukua kimya kimya. Unagundua pale muunganisho unaofuata unaposhindwa.
Ikiwa upelekaji pana unahitajika kwa kweli, hifadhi bandari za udhibiti kabla ya sheria inayonasa kila kitu au tumia anwani ya umma tofauti kwa uchapishaji. Chaguo la pili ni safi zaidi kwa sababu anwani ya udhibiti huhifadhi sera yake mwenyewe, lakini mtoa huduma lazima atoe anwani hiyo; kuongeza rekodi ya DNS hakutoi moja.
Upelekaji pana wa TCP na UDP pia si itifaki zote. ICMP, IPv6, mrejesho wa path-MTU na usafirishaji wa nje wa VPN vinahitaji sera yake, na sheria inayosimamia TCP na UDP huacha kesi hizo kwa mnyororo chaguomsingi.
Chagua modeli kabla ya kuandika sheria
Maumbo manne hufunika sehemu kubwa ya uchapishaji kutoka kwa lango, na uchaguzi hutegemea huduma ngapi unazoendesha na ni hatari ngapi ya ndege ya udhibiti unayoweza kuvumilia. Jedwali lililo hapa chini huzipanga kutoka nyembamba zaidi hadi pana zaidi.
| Model | What it protects | Cost | Use when |
|---|---|---|---|
| Narrow port forward | Every other listener, including the VPN | One rule per service | Few services, stable ports |
| Catch-all with reserved ports | Ports named in the exception list | Rule order becomes critical | Many services and disciplined review |
| Separate public address | Control address fully isolated | Provider must supply the address | High-value publication |
| VPN-only access | No public entry at all | Visitors need the tunnel | Admin interfaces and internal tools |
Anza na modeli nyembamba hata ukitarajia huduma zaidi baadaye. Ni rahisi kukagua, na kubadilisha seti ya sheria nyembamba kuwa sheria iliyopitiwa inayonasa kila kitu ni rahisi kuliko kugundua ni kiskilizaji kipi kilichonaswa na sheria pana. Modeli yoyote unayochagua, weka sheria kwa mmiliki wa firewall. Kutumia mistari ya iptables kando ya usanidi wa UFW au nftables unaosimamia minyororo hiyo hiyo huzalisha sera inayobadilika kulingana na mpangilio wa kuwasha.
Thibitisha uchapishaji na njia ya udhibiti
Jaribu kutoka kwa mteja wa nje aliyeidhinishwa ukitumia jina la mwenyeji lililoidhinishwa na cheti halali kwa hilo. Thibitisha ni backend ipi ilijibu, kisha hakikisha kwamba bandari za umma zisizohusiana zinabaki kukataliwa. Ukaguzi wa cheti uliozimwa si jaribio la HTTPS lililofaulu, na muunganisho unaofika kwa backend isiyo sahihi ni mbaya zaidi kuliko ulioshindwa.
Baada ya hapo thibitisha lango lenyewe: unganisha peer ya WireGuard, fungua kipindi cha SSH na uthibitishe kwamba ufuatiliaji bado unaripoti. Huduma iliyochapishwa inaweza kufanya kazi wakati ndege ya udhibiti imevunjika, kwa hivyo ukaguzi wote wawili ni wa dirisha moja la mabadiliko. Anzisha upya mara moja kuthibitisha sheria zinawekwa tena kwa mpangilio unaotarajiwa, kisha ondoa uchapishaji na uthibitishe kwamba kuondoa kunalingana kweli na kuongeza. Seti kubwa ya nyongeza wakati wa kuwasha pamoja na usafishaji usiokamilika ndiyo njia ambayo jaribio la muda linakuwa mwanya wa kudumu.