Ижил портын шалгалтыг оффисын шугам болон VPN-ийн гаралтаас ажиллуул, хоёр хариулт хэн ч өөрчлөөгүй хаягийн талаар санал зөрөлдөж болно. Энэ зөрүү зам болон аль хост хариулснаас гардаг, үйлчилгээ ажиллаж байгаа эсэхээс биш. Гурван асуулт эдгээр тайлбарыг ялгана: шалгалт үнэхээр юу асуусан, аль хост хариулсан, таны өөрийн сервер юу бүртгэсэн. Тэдгээрийг энэ дарааллаар хийж, дараагийнх руу шилжихийн өмнө хариулт бүрийг бичээрэй.

Хоёр гүйцэтгэлийг харьцуулахын өмнө шалгалтыг зас

Төлөвийн үгийг өөр төлөвийн үгтэй зөвхөн хоёулаа нэг туршилтаас гарсан үед харьцуулж болно. Таван талбар үүнийг тогтоодог: алслагдсан тал харсан эх хаяг, шийдэгдсэн зорьсон газар, порт, сканнерын төрөл, цаг. Аль нэгийг нь өөрчилбөл эхнийхээ хоёр удаа хэмжихийн оронд хоёр дахь туршилт хийсэн болно.

Бусад бүхнээс өмнө эх сурвалжийг шалга, учир нь VPN клиент ажиллаж байсан ч урсгал физик интерфейсээр гарч болно. Алслагдсан талаас юу харж байгааг асуу, дараа нь цөмөөс аль интерфейсийг сонгосныг асуу:

curl -s https://ifconfig.me
ip route get 203.0.113.20

Өөр өөр сүлжээн дэх хоёр хаяг гэдэг нь тайлбар аль хэдийн гарт байна гэсэн үг, үлдсэн шалгалтууд зөвхөн батална. Тэд таарвал шалгалтыг шалтгааны туг асаалттай байхад бүртгэ, төлөв нүцгэн үг мэт ганцаараа зогсохын оронд тайлбартай холбогдсон байж буцаж ирэг. Сканнерын төрөл мөн тэр бүртгэлд хамаарна, учир нь юу асуусныг дүрсэлдэг, юу буцаж ирснийг биш. Эх сурвалж, арга, цагийн тэмдэглэгээгүй төлөвийг юутай ч харьцуулж болохгүй:

nmap -sT -p 443,8443 --reason 203.0.113.20

Тэр гаралтыг бүртгэлийн хажууд хадгал, дараагийн хүн харж чадахгүй гүйлгэх буферт биш. Зөрчилдөж буй хоёр шударга сканнер нь хэн ч нөхцөлийг бичээгүй үед л маргаан болно. Нөхцөл тогтоогдсоны дараа үр дүн таарч асуулт хаагдана, эсвэл ялгаатай байж ялгаа нь замын тухай баримт болно.

Аль хост гар барилтыг дуусгасныг олж мэд

Дууссан гар барилт нь ямар нэг хост үүнийг дуусгасныг нотолж байгаа бөгөөд тэр хост таны санаж байгаа процесс байх албагүй. Ачааллын тэнцвэржүүлэгч, урвуу прокси эсвэл SYN прокси бодит сервер оролцохоос өмнө хариулж болох бөгөөд энэ нь хэвийн загвар, шинж тэмдэг биш. Хүлээгдэж буй нэрэнд хүчинтэй гэрчилгээ ч үүнийг нарийсгахгүй, учир нь гэрчилгээ нь үйлчилгээний харилцааг дүрсэлдэг бөгөөд аль машин холболтыг дуусгасан тухай юу ч хэлдэггүй.

Nmap-ийн портын төлөвийн лавлагаа үүнийг үндсэн зүйл гэж үздэг: төлөв нь шалгалт илгээсэн газраас юу ажиглаж чадсаныг бүртгэдэг, портын шинж чанарыг биш. Төлөвийн үгийг ингэж уншвал зөрчилдөж байсан хоёр гүйцэтгэл зөрчилтэй бус, уялдаатай харагдаж эхэлж, асуулт порт нээлттэй эсэхээс түүний өмнө хэн зогсож байсан руу шилждэг.

Хоёр дахь асуултад гаднаас биш, бэкендэд хариул. Холболтыг хүлээн авч, дараа нь өөрийн дээд урсгалд хүрч чадахгүй фронтенд нь удаан програмтай эрүүл үйлчилгээний яг гадаад дүр зургийг бүрдүүлдэг. Зөвхөн дээд урсгалын өөрийн бүртгэл хоёр тохиолдлыг ялгана:

tail -n 5 /var/log/nginx/access.log
ss -ltnp 'sport = :443'

Бүртгэлийн мөр нь програм үнэхээр харсан клиентийн хаягийг харуулж, хоёр дахь команд нь 443 портыг эзэмшиж буй процесс таны програм уу эсвэл түүний өмнөх зүйл үү гэдгийг харуулна. Хэрэв хоёулаа аль хаяг холбогдсон талаар зөрчилдвөл та нэг хүсэлтийн хоёр хөлийг харж байгаа бөгөөд тасалбар үүнийг хэлэх ёстой.

Туннелийг буруутгахын өмнө өөрийн дүрмийг шалга

Зориудын бодлого нь порт нэг сүлжээнд хариулж нөгөөд хариулахгүй байх хамгийн түгээмэл шалтгаан бөгөөд энэ нь боломжтой тайлбаруудын хамгийн сонирхолгүй нь юм. Хандалтын дүрмүүд нэг эх сурвалжид зөвшөөрөл өгч бусдыг хаяхын тулд байдаг тул гаралтын өөрчлөлт нь тэдний бичигдсэн яг тэр үйл явдал юм. Тиймээс VPN-ээр дамжсан өөр төлөв нь үйлчилгээ үзүүлэгч урсгалыг шалгаж байна гэдгийг харуулахгүй. Энэ нь таны эх хаяг одоо өөр болсныг харуулж, энэ нь хамаагүй бага мэдэгдэл юм.

Эдгээр дүрмийг сервер дээр уншиж болно, тиймээс сүлжээний дунд хэсгийн талаар таамаглахын оронд унш. Хоёр хаягийн мужаас аль нэгийг дурдсан шүүлтүүрийн дүрмийг жагсааж, дараа нь холболт демон дээр хүрсэн эсэхийг шалга:

nft list ruleset | grep -n -e 203.0.113 -e 198.51.100
journalctl -u sshd -n 50 | grep 203.0.113

Хоосон хоёр дахь үр дүн мэдээлэлтэй, учир нь демон дээр юу ч хүрээгүй бөгөөд асуулт шүүлтүүр, аюулгүй байдлын бүлэг эсвэл зам өөрт нь хамаарна. Онох нь үйлчилгээ таны эх сурвалжийг харж, өөрийн хариултыг сонгосныг илэрхийлж, тэр шийдвэр ихэвчлэн уншиж болох дүрэмд бичигдсэн байдаг. Аль ч үр дүн үйлчилгээ үзүүлэгчийн тухай түүхийг дэмжихгүй бөгөөд хоёуланг нь пакет барихаас хямд шалгаж болно.

Тээвэр, гэрчилгээ, хариуг тусад нь унш

Гурван давхарга гурван ажиглалт үүсгэдэг бөгөөд тэдгээрийн нэгийг шалгаж буй шалгалт нөгөө хоёрын талаар мэдээлж чадахгүй. Нэг дүгнэлт болгон нугалахын оронд бүртгэлд тусдаа мөр болгон хадгал, учир нь мөр бүр өөрийн аргаар бүтэлгүйтдэг бөгөөд бүтэлгүйтлийн хэв маяг дараагийн удаа хаана харахыг хэлдэг.

ObservationWhat it settlesWhat it leaves open
Connection completedA host on the path accepted the handshakeWhich host, and whether its upstream is reachable
Certificate valid for the nameThe endpoint holds a credential for that nameWhether the process behind it is the one you meant
Expected response bodyThe application handled the requestAnything about other ports or other paths
Connection refusedA host replied and nothing was listeningWhether a filter sits ahead of the refused port
TimeoutNo reply arrived before the deadlineDrop, blackhole route or an overloaded host

Нэг команд таны хянаж буй үйлчилгээний эсрэг эхний гурван мөрийг үүсгэдэг. Түүний гаралтыг чатын мессежээр биш, сканнерын хажууд бүртгэлд тавь:

curl -v --resolve office.example:443:203.0.113.20 https://office.example/

Гаралтыг дарааллаар нь унш: гар барилт нь тээврийн асуултад, гэрчилгээний субъект нь нэрний асуултад, хариултын бие нь програмын асуултад хариулна. Гар барилтын мөр амжилттай болж, хариултын мөр болохгүй үед танд эвдэрсэн дээд урсгалтай фронтенд байна, хаагдсан порт биш. Энэ нь таны нээсэн тасалбараас өөр тасалбар бөгөөд үүнийг шууд хэлэх нь зүйтэй.

Тасалбарт дөрвөн баримт бичээд дуусга: эх хаяг, сканнерын төрөл, хариулсан хост, цаг. Дараагийн харьцуулалтад хэрэгтэй бүхэн тэр дөрөвт амьдардаг бөгөөд хэргийг дараа нь авсан хүнд таны терминалын түүх байхгүй. Дөрвийг нь бөглөж чадахгүй бол гүйцэтгэл дуусаагүй.

Холбоотой нийтлэлүүд