Sinundan mo ang checklist: tanggihan ang palabas, payagan ang tunel, i-enable ang ufw. Pagkatapos naghihintay ang kliyente sa handshake at hindi kailanman kumokonekta, o kumokonekta ito at walang pahinang naglo-load. Ang dalawang pagkabigo ay nagmumula sa parehong butas. Kulang ang tuntunin na nagpapahintulot sa tunel na umiral, dahil ang tunel ay hindi isang interface na nilalabasan ng iyong mga packet.

Bakit walang tugma ang isang pahintulot sa tun0 sa simula

Ginagawa ng kliyente ang tun0 pagkatapos na may session. Ang mga datagram na bumubuo sa session na iyon ay ordinaryong UDP packet na naka-address sa provider sa port 1194, at lumalabas sila sa wlan0 o eth0 na may pisikal na source address. allow out on tun0 tumutugma lamang sa trapik na ang palabas na interface ay tun0, kaya sa panahon ng handshake wala itong tinutugma.

Ilagay ang default deny outgoing sa itaas at ang mga panlabas na packet ay itinatapon bago pa man lumitaw ang interface. Sinusubukan muli ng kliyente, nag-time out, at nag-uulat ng pagkabigo sa TLS o handshake, na nagpapadala sa mga tao na maghanap sa mga sertipiko at MTU habang tahimik na kinakain ng firewall ang koneksyon. Ang tuntuning dapat sana ay pumigil sa iyong trapik ang pumipigil sa trapik na iyon na mapigil.

Ginagawang permanente ng reflex fix ang pagtagas. sudo ufw allow out on wlan0, o ibalik ang default sa payagan, itinataas ang tunel at iniiwan ang makina na walang pang-emerhensiyang switch: sa susunod na bumagsak ang tunel, lahat ay magpapatuloy sa pisikal na adapter. Nawalan ako ng isang hapon sa eksaktong pares ng pagbabagong iyon bago ko malaman kung aling packet ang talagang sinasala ko.

Ano ang kailangan ng dalawang set ng packet

Dalawang beses tumatawid ang iyong trapik sa firewall, sa dalawang anyo. Ang panloob na packet ay tumatakbo mula sa address ng tunel palabas sa pamamagitan ng tun0. Ang panlabas na packet ay tumatakbo mula sa pisikal na address patungo sa peer, at iyon lang ang nakikita sa kawad. Isang tuntunin bawat anyo:

sudo ufw allow out on tun0
sudo ufw allow out to 203.0.113.10 port 1194 proto udp
sudo ufw allow out to 203.0.113.10 port 443 proto tcp comment 'tcp fallback'

Palitan ang address at port ng mga mula sa iyong sariling profile. Karaniwang sumasagot ang mga peer ng WireGuard sa 51820/udp; ang mga profile ng OpenVPN na dumadaan sa TCP 443 ay nangangailangan ng port na iyon sa halip. Nagkakaiba ang detalye, hindi ang anyo: parehong makitid ang dalawang tuntunin, at magkasama nilang tinutukoy ang tanging destinasyon na maaabot ng makina habang nakababa ang tunel.

Ang pagkakasunod-sunod ang ikalawang mito. Sa hilaw na iptables binabasa mo ang chain mula sa itaas pababa at nangangatwiran kung aling tuntunin ang mananalo. Ang ufw ay hindi manipis na balot sa listahang tinipa mo; kinokompila nito ang iyong mga tuntunin sa sarili nitong mga chain at pinipili ang mga insertion point. ufw status ipiniprinta ang mga ito sa pagkakasunod-sunod ng ufw, hindi sa iyo. Kapag mukhang binabalewala ang isang tuntunin, ihambing ang ufw show added sa naka-compile na set mula sa iptables -S | grep ufw bago magsulat muli ng kahit ano.

Dapat manatiling isang address ang lapad ng eksepsiyon

Tama lamang ang tuntunin ng peer habang pinapangalanan nito ang address na dinidial ng kliyente. Nagpapalit ng endpoint ang mga provider, at ang profile na nagre-resolve ng hostname ay susunod sa pagbabago ng DNS patungo sa bagong address habang patuloy na tumuturo ang tuntunin sa luma. Kapag ang tunel na gumana nang mga buwan ay tumigil sa pag-angat, ihambing ang address sa tuntunin sa hinahanap ng kliyente bago magpalawak ng kahit ano.

Ang pagpapalawak sa buong subnet, o sa bawat destinasyon sa port 1194, ay ginagawang firewall na may butas muli ang patakaran. Ang eksepsiyon ang pang-emerhensiyang switch; kapag malawak na ito, wala nang natitirang patayin. Panatilihin ito sa isang address at mag-iwan ng komentong nagpapangalan sa profile at provider na pag-aari nito, dahil sa anim na buwan ay magmumukhang arbitraryo ang address.

Ang resolusyon ng pangalan ay may sariling linya. Nangyayari ang paghahanap bago pa umiral ang tunel, sa pisikal na interface, kaya ang mahigpit na patakarang tumatanggi sa palabas ay maaaring mag-iwan sa kliyente na hindi mahanap ang sariling server. Payagan ang port 53 patungo sa address ng iyong resolver, o mag-resolve nang isang beses at i-pin ang address sa profile. Ang pagpayag ng DNS sa bawat interface ay isang desisyon, hindi default.

Buuin ang patakaran bago kailanganin ang tunel

ufw enable inilalapat ang buong patakaran nang sabay at muling nilo-load ang mga chain nito, at ang pagbabago ng default na patakaran sa tumatakbong firewall ay muling naglo-load din sa mga ito. manwal ng ufw nagbabala na maaaring maputol nito ang mga umiiral na koneksyon tulad ng SSH. Kaya ang mga utos ay sumusunod sa ayos na ito, kasama ang tuntunin ng SSH bago ang pag-enable at isang bukas na console session:

sudo ufw default deny incoming
sudo ufw default deny outgoing
sudo ufw allow out on tun0
sudo ufw allow out to 203.0.113.10 port 1194 proto udp
sudo ufw allow 22/tcp
sudo ufw enable
sudo ufw status verbose

ufw reset ay sadyang iniwan sa labas ng bloke na iyon. Binubura nito ang bawat tuntunin at hindi pinagana ang firewall, at sa isang malayong host ang susunod na pag-enable ang nagpapatumba sa iyong session. Kung magre-reset ka pa rin, idagdag ang tuntunin ng SSH at kumpirmahin ang ikalawang daan pabalik sa console bago magpatuloy.

Ang pagkakasunod-sunod ay hindi kosmetiko. Ang mga tuntuning idinagdag habang tumatakbo ang ufw ay walang nililinis, ngunit sa sandaling baliktarin mo ang default na patakaran, muling naglo-load ang mga chain, at ang session na pinayagan ng lumang patakaran ay kasama nilang aalis. Gawin ang mga default, ang mga pahintulot at ang pag-enable sa isang pagdaan, habang mayroon ka pang daang papasok na hindi umaasa sa makina.

Subukan ang naka-block na estado, at itago ang pag-undo

Ang hindi nasubukang pang-emerhensiyang switch ay haka-haka. Sadyang idiskonekta ang kliyente at subukang mag-load ng pahina: dapat itong mabigo. Kumonekta muli at dapat itong makabawi nang hindi hinahawakan ang tuntunin. sudo ufw status verbose kinukumpirma ang mga default at ang kalagayan ng pag-log, at ufw status numbered ipinapakita kung aling tuntunin ng pagsubok ang buburahin kapag lumampas ito sa layunin.

Itago ang baliktad na script sa tabi ng pasulong. Ang makinang may pagtanggi sa palabas at patay na tunel ay hindi makakapag-download ng sariling pag-aayos, kaya ang pag-undo ay dapat nasa disk at mababasa mula sa console:

sudo ufw reset
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw enable

Patakbuhin ito kapag nakababa na ang tunel at kailangang alisin ang mga tuntunin, hindi bilang karaniwang hakbang. Bago isara ang terminal, dapat totoo ang apat na bagay: pinapangalanan ng tuntunin ng peer ang eksaktong isang address, may pinangalanang eksepsiyon ang DNS, dumating ang pag-enable pagkatapos ng mga pahintulot, at ang paghila sa tunel ay pumapatay ng ordinaryong trapik nang hindi pinapatay ang kliyente magpakailanman.

Kaugnay na mga artikulo