OpenVPN saka pieslēgts, un datu plūsma nekustas, teikums, kas aptver vismaz piecus nesaistītus bojājumus. Ugunsmūra noteikumu rediģēšana pirms zināt, kurš slānis sabrūk, vairo nezināmo un atstāj nākamajam inženierim jucekli. Strādājiet tā vietā no procesa uz āru, jo katrs solis zemāk vai nu notīra vienu posmu, vai sašaurina vietu, kur pakete mirst. Secība šeit ir svarīga: uzņēmums, kas veikts pirms zināt, kura adrese ir piesaistīta, kaut ko pierādīs, tikai ne to, kas jums nepieciešams.

Ligzda ir vai nu piesaistīta, vai nav

Pakalpojums, kas ziņo par aktivitāti, joprojām var būt piesaistīts adresei vai transportam, ko jūs nekad neesat paredzējis. Jautājiet pašai ligzdai: ss -lunp uzskaita UDP klausītājus, bet ss -ltnp TCP, un lasīšanas vērta ir vietējā adrese, nevis stāvoklis.

Tukša atbilde parasti nozīmē vienu no trim: process beidzās pēc palaišanas, ielādēja citu konfigurācijas failu vai klausās citā adresē nekā tā, uz kuru zvana.

ss -lunp | grep 1194
ss -ltnp | grep 1194

local direktīva piespiež klausītāju pie vienas adreses, tāpēc klients, kas vērsts citur tajā pašā resursdatorā, tiek noraidīts, kamēr pakalpojums no ārpuses joprojām šķiet vesels. Instances nosaukums arī var norādīt uz failu, kuru jūs nekad neesat rediģējis, kas notiek resursdatoros, kuros blakus darbojas divi profili.

Uztveriet ārējo paketi, nevis tuneli

Filtrējiet fiziskajā saskarnē un īstajā portā, aizstājot savu saskarni: tcpdump -ni eth0 udp port 1194. Izejošās paketes, uz kurām nekas neatgriežas, norāda uz to, kas atrodas augstāk: pakalpojumu sniedzēja filtrēšana, NAT ierīce vai attāla adrese, kas nav tā, ko jūs domājat. Klusums abos virzienos norāda uz klienta maršrutēšanu vai vietējo ugunsmūri. Atbildes, kas ierodas bez tuneļa virzības, norāda uz vadības kanālu, tas ir, atslēgas vai šifra neatbilstību, nevis filtrēšanu.

Uztveriet abus virzienus un turiet failu īsu. Ilgs uztvērums apglabā interesantās trīs sekundes, un atbilde gandrīz vienmēr ir pirmajā apmaiņā.

Vispirms skaitītāji, pēda tikai tad, kad tie melo

Sāciet ar skaitītājiem, jo tie neko nemaksā. Vai nu nft list ruleset, vai iptables -L -n -v atbild uz vienīgo šeit svarīgo jautājumu: vai noteikums sakrita? Secība nosaka rezultātu, jo pirmais sakritums uzvar, tāpēc plašs DROP pirms vēlāka ACCEPT atstāj šo ACCEPT mirušu un tāpēc noteikuma pievienošana tik reti kaut ko salabo.

Īpašumtiesības arī paklūp cilvēkus. Kodols vietēji ģenerētās paketes attiecina uz procesu, kas atvēra ligzdu, un OpenVPN parasti darbojas kā root, tāpēc noteikums, kas piesaistīts parastam lietotāja ID, nekad neredz paša tuneļa datu plūsmu. Pirms lemt, ka noteikums ir nepareizs, pārbaudiet īpašnieka UID.

Tikai tad, kad skaitītāji paliek neviennozīmīgi, žurnāls ir trokšņa vērts, un arī tad tikai šauram griezumam: iptables noteikums, kas ierobežo ātrumu un pievieno prefiksu savām žurnāla rindām, vai nftables noteikums ar meta nftrace set 1, kamēr darbojas nft monitor trace. Pēda nosauc ķēdi un noteikumu, kas pieņēma vai nometa paketi. Pēc tam noņemiet abus un turiet lietderīgās kravas reģistrēšanu ārpus tā.

Pārbaudiet arī transportu. Ugunsmūra pakalpojums, kas ierobežots ar TCP, neko nepasaka par UDP klausītāju šajā numurā, tāpēc pareizi nolasīts noteikums joprojām var nomest katru paketi.

Maršrutēšana un atceļš

Pieņemta pakete, kas tomēr pazūd, prasa tās galamērķa ceļa pārbaudi. ip route get ziņo par vienai adresei izvēlēto maršrutu, un apgrieztā ceļa filtrēšana var nomest atbildi, kas ierodas pa saskarni, kuru galvenā tabula nekad neizvēlētos. Simptoms izskatās tieši kā ugunsmūra nomešana, tāpēc šī pārbaude nāk pirms vēl viena NAT noteikuma.

Vārtejā pārbaudiet pāradresāciju un forward ķēdi, nevis input ķēdi. Pēc tam apstipriniet, ka attālā puse zina, kā sasniegt avota adresi, jo strādājošs izejošais ceļš bez kaut kā, kas atgriežas, ir klusums abos gadījumos.

Kas jāsaka pierakstam

Katram mainījumam pierakstiet pārbaudīto posmu, nolasīto pierādījumu un skaitītāja vērtību abās tā pusēs. Tieši šis pieraksts padara "tagad tas strādā" izdzīvojamu nākamajā pārskatā.

Divi saīsnes notur pierakstu godīgu. Pakete, kas nekad nav atstājusi resursdatoru, nevarēja tikt nomesta ar noteikumu citur, lai cik pārliecinoša izskatītos attālās puses konfigurācija. Pakete, kas izgāja un atgriezās, pārvieto jautājumu virs tīkla slāņa, kur ugunsmūra skaitītājiem vairs nav ko jums teikt.

Saistītie raksti