Majina huacha kutatuliwa wakati VPN inapounganisha, huku ping kwa anwani ya umma bado ikijibu na hali ya firewall haionyeshi kitu kinachoonekana kibaya. Hakuna kilichobadilika katika sera; kilichobadilika ni kwamba kiolesura kipya kimeonekana, na katazo la msingi linaifunika kuanzia pakiti ya kwanza. UFW huamua kwa mwelekeo na kiolesura, kwa hiyo kanuni iliyoandikwa kwa kiungo kisichotumia waya haisemi chochote kuhusu trafiki inayotoka kwenye handaki. Matengenezo ni kanuni chache nyembamba zinazotumika kwa mpangilio fulani.

Dalili huonekana tu baada ya handaki kupanda

Sera ya katazo la msingi hufanya kile ilichoambiwa: kila kitu kisicho na kanuni inayolingana hukataliwa, kwenye kila kiolesura kilichopo. Handaki halikuwepo wakati kanuni ziliandikwa, kwa hiyo hakuna hata moja inayoweza kuikamata, na katazo ambalo lilikuwa pale kila wakati sasa linahusika na utatuzi wa majina. Trafiki ya moja kwa moja kwa anwani halisi bado inaweza kufanya kazi wakati ruhusa pana inaifunika, na ndiyo sababu ping kwa resolver ya umma inafanikiwa huku utafutaji wa jina ukishindwa. Pengo ni kanuni kwa kiolesura ambacho sera haijawahi kuona.

Hilo pia hufafanua kwa nini kushindwa kunageuka safi: ondoa handaki na majina yatatuliwa tena, kwa sababu swali hurudi kwenye kiolesura kilicho na kanuni. Sera inayoshindwa tu wakati handaki liko juu si tatizo la DNS, na kurekebisha resolver yenyewe hupoteza muda mwingi hapa. Soma orodha ya violesura kabla ya kusoma usanidi wa resolver.

Mielekeo mitatu, seti tatu za kanuni tofauti

Kipindi kimoja hugusa kanuni katika zaidi ya mwelekeo mmoja, na handaki huongeza kiolesura cha pili kwa karibu kila moja. Kupanga trafiki kwanza kwa mwelekeo na kiolesura hufanya mengine kuwa ya kiufundi tu, kwa sababu kila mstari hapa chini unahitaji kanuni yake mahali pake. Mifano hutumia tun0 na dimbwi la 10.8.0.0/24, kwa hiyo badilisha majina na safu na zile zilizo kwenye matokeo ya mteja mwenyewe.

DirectionExample packetRule that admits itWritten on
Client to the pushed resolverA DNS query to 10.8.0.1Destination port 53 over the tunnelThe client's tun0
Client to the VPN serverA handshake to the server's public addressServer address and port on the physical linkThe client's physical interface
Server to a serviceSSH from the pool to port 22Source pool, destination port, tunnel interfaceThe server's tun0
Anyone to the listenerThe VPN listener itself1194/udp on the public sideThe server's public interface

Mistari miwili huchanganywa mara nyingi kwa sababu yote huitaja handaki. Kanuni ya resolver huruhusu trafiki ambayo mteja hutuma kwenye handaki, wakati kanuni ya SSH huruhusu trafiki ambayo seva hupokea kutoka humo; huishi kwenye mashine tofauti na hushindwa kwa kujitegemea. Mstari unaosahaulika zaidi ni wa pili, kwa sababu mteja hawezi kujenga handaki kabisa hadi trafiki yake kwa anwani ya umma ya seva iruhusiwe. Fanya kazi kutoka juu hadi chini na kila kushindwa kuna sababu moja inayowezekana.

Resolver iliyosukuma inahitaji kanuni yake

Kama handaki hubeba DNS inategemea kile seva hutuma. Seva inayosukuma chaguo la resolver husakinisha anwani ya faragha katika usanidi wa mteja, na anwani hiyo inaweza kupitishwa kwa njia ya handaki tu. Kama seva haisukumi chochote, mteja hubaki na resolver aliyokuwa nayo tayari na kanuni zilizo chini hazina la kuruhusu. Kagua hali iliyosukumwa na matokeo ya sasa ya swali kabla ya kuandika chochote:

dig +short @10.8.0.1 example.com
resolvectl status tun0
sudo ufw status numbered

Matokeo ya hali hutaja resolver inayotumika na kiungo ambacho imefungwa, na utafutaji wa njia nyuma yake huonyesha kiolesura gani kingebeba swali kwa anwani hiyo. Wakati resolver imekaa kwenye kiungo kingine, tatizo ni la mapema zaidi kuliko firewall na hakuna kanuni itakayosaidia. Wakati wote wawili wanakubaliana kuhusu handaki, kanuni mbili zinahitajika, kwa sababu UDP hubeba maswali mengi na TCP huchukua nafasi wakati jibu linakatwa. Andika thamani zote mbili, kwa sababu ndizo ambazo kanuni zitataja:

sudo ufw allow out on tun0 to 10.8.0.1 port 53 proto udp comment 'pushed resolver'
sudo ufw allow out on tun0 to 10.8.0.1 port 53 proto tcp comment 'truncated answers'

Fungua njia ya nje kabla ya ile ya ndani

Mteja lazima afikie anwani ya umma ya seva kabla handaki halijakuwepo, kwa hiyo kanuni yake inakaa kwenye kiungo cha kimwili na lazima iwe mahali pake kwanza. Sera inayoruhusu resolver lakini inasahau seva humwacha mteja kabisa asiweze kujenga handaki, na dalili hiyo kwa kawaida huwekwa kwenye kill switch. Kisha ruhusu huduma ambazo kwa kweli ulizitaka kupitia handaki, kanuni moja nyembamba kwa wakati mmoja, badala ya kufungua kiolesura kizima. Kanuni nyembamba ndizo sababu katazo linaweza kubaki mahali pake.

sudo ufw allow out to 198.51.100.10 port 1194 proto udp comment 'vpn server'
sudo ufw allow out on tun0 to any port 443 proto tcp comment 'web through tunnel'

Mpangilio ni muhimu wakati wa kujaribu, kwa sababu kanuni ya kwanza ndiyo inayoruhusu handaki kupanda kabisa. Iongeze, unganisha, na hakikisha handaki lipo juu kabla ya kuongeza kanuni ya huduma, kwa sababu kufanya vyote viwili kwa mara moja kunamaanisha kushindwa hakukuambii chochote kuhusu nusu ipi iliyo mbaya. Badilisha anwani ya nyaraka hapo juu na sehemu ya mwisho ambayo mteja amesanidiwa kwa ajili yake.

Maliza upande wa mteja kwa kukatisha muunganisho kwa makusudi. Katazo linapaswa bado kukataa trafiki uliyoiondoa kwa makusudi, kwa sababu resolver inayojibu wakati handaki liko juu inafunika nusu tu ya sera inayokataa inapokuwa na shaka.

Mteja anayeunganisha bado hajakubaliwa

Seva ina mwelekeo wake wa kuzingatia, na mteja anayemaliza kupeana mikono bado hawezi kufikia kitu kinachoendesha kwenye seva hadi seva imkubali. Kanuni ya misikilizaji ya umma huruhusu handaki kuwepo tu; hairuhusu trafiki ya handaki kuingia. Kwenye seva hizo ni kanuni mbili pamoja na ukaguzi mmoja kwamba huduma inasikiliza kweli:

sudo ufw allow 1194/udp comment 'openvpn listener'
sudo ufw limit in on tun0 from 10.8.0.0/24 to any port 22 proto tcp comment 'admin over tunnel'
ss -ltn | grep ':22'

Dimbwi katika kanuni lazima liwe sawa na safu ambayo seva inatenga, na namba ya handaki lazima ilingane na ile seva iliyounda, kwa sababu kanuni ya kiolesura kingine haiwezi kutofautishwa na kanuni yoyote. limit ni kwa makusudi kwa bandari ya utawala, kwa sababu hupunguza miunganisho inayorudia badala ya kuikubali bila kikomo. Ukaguzi wa misikilizaji hutenganisha bandari iliyofungwa na pakiti iliyotupwa, ambazo kutoka kwa mteja zinaonekana sawa. Kanuni zenye namba pia si picha nzima: kanuni za before za UFW na mstari wowote wa nftables ulioandikwa kwa mkono hulingana mapema na bado zinaweza kukataa pakiti ambayo orodha inaonekana kuiruhusu.

Makala zinazohusiana