Иштетүү nc -uz OpenVPN серверине каршы дээрлик эч нерсени өлчөбөйт, жана OpenBSD колдонмосу муну өзүнүн эскертүүлөрүндө айтат: бул режимдеги UDP скандоолор бир нерсе укса да, укпаса да ийгилик тууралуу билдирет. Чыгуу статусу алыскы абалды эмес, жергиликтүү жөнөтүүнү чагылдырат, ошондуктан ага ишенген көзөмөлчү процесстер таблицасы ишенимдүү көрүнгөнчө өлүк серверди соо деп белгилеп турат. Аны алмаштыруу текшерүү кайсы суроого жооп бериши керектигин чечүүдөн башталат, анткени процесс, угуучу, аутентификация жана колдонмонун жеткиликтүүлүгү төрт башка байкоо. Алардын бирин атаган текшерүү пайдалуу; төртөөнү тең мензеген текшерүү жүк.

UDP текшерүү эмнени байкай алат жана эмнени байкай албайт

nc -uz датаграмма жөнөтүп, чыгып кетет, жана кайтарган статус жергиликтүү жөнөтүүнү сүрөттөйт. Жабык порт ICMP port unreachable менен жооп бериши мүмкүн, бирок бул скандоо режиминин документтелген жүрүм-туруму муну ийгиликсиздикке айландырбайт, ал эми чыпкаланган порт такыр жооп бербейт. Ошондуктан үнсүздүк жана ийгилик чакырган үчүн бирдей маанини билдирет.

Бул текшерүүнү сервердин эмес, жергиликтүү стектин сынагына айландырат. Ал хосттун жеткиликтүү экенин, порттун байланганын, OpenVPN процессинин иштеп жатканын же кардар аутентификация кыла аларын аныктабайт. TCP туташуу сынагы күчтүүрөөк, анткени кол алышуу так жооп берет, бирок жайылтуу чындап TCP-де укканда гана. Текшерүүнү ошол эле номурда TCP-ге которуу бар болбошу мүмкүн болгон угуучуну сынайт, ал эми UDP гана серверге каршы ал соо кызматты ийгиликсиз кылат.

Текшерүүнү конфигурацияланган ташууга шайкештештирүү эки жыйынтыктын кайсынысына болбосун ишенүүдөн мурун келет. UDP жайылтууга башка сигнал керек, башка протокол эмес.

Үч чакырган, үч башка суроо

Даярдык ким сураганына жараша болот. Кулаган процессти кайра иштеткен кызмат менеджери инстанция башталганын жана өз угуучусун байлаганын билиши керек. Жүктөм теңдештиргичи азыр келген кардар кабыл алынарын билиши керек. Мониторинг системасы чыныгы тармактан келген жол азыр да уруксат берилген ресурска сессия алып барарын билиши керек.

Булар бир текшерүү эмес, жана бир текшерүү үчөөнү тең ак ниет менен жаба албайт. Адегенде чакырганды тандаңыз, анан далилди.

Текшерүүнү азыркы инстанциядан куруңуз

OpenVPN инстанция инициализацияны бүтүргөндө баштоо сабын жазат, жана ал сап жергиликтүү баштоо тууралуу пайдалуу далил. Аны азыркы баштоодон окуңуз, кошулуп жаткан файлдын аягынан эмес, анткени өткөн аптадагы ийгилик бир мүнөт мурунку ийгилик сыяктуу эле окулат. Сервер инициализацияны кандайдыр бир кардар түбөлүк туташканга чейин эле бүтүрүшү мүмкүн, ошондуктан сап аутентификация тууралуу эч нерсе айтпайт.

Баштоо текшерүүсү үчүн процесс абалын азыркы журнал далили менен жана конфигурацияланган ташууга шайкеш келген угуучу менен коштоңуз. Процесс иштеп жатса да инициализацияны бүтүрбөгөндө текшерүү ийгиликсиз болушу керек, бул журнал суроосун ушул жүктөө жана ушул бирдик менен чектөө керектигин билдирет.

systemctl is-active openvpn@server
sudo journalctl -u openvpn@server -b --no-pager | grep "Initialization Sequence Completed"
ss -lunp | grep 1194

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

Аны атайылап бузуңуз жана текшерүүнү байкаңыз

Текшерүү анын ийгиликсиз болгонун көргөндөн кийин гана ишенимдүү болот. Серверди токтотуңуз, текшерүүнү иштетиңиз жана күтүлгөн жыйынтыкты ырастаңыз. Анан аны кайра иштетиңиз жана текшерүү башка өзгөрүүсүз калыбына келерин ырастаңыз.

sudo systemctl stop openvpn@server
nc -uz 203.0.113.10 1194; echo "exit=$?"
ss -lunp | grep 1194
sudo systemctl start openvpn@server
ss -lunp | grep 1194

Блокту сап боюнча окуңуз. netcat командасы төмөнкүнү басып чыгарат exit=0 бирок эч нерсе байланган эмес, жана бул бүт маселе бир сапта. Биринчи ss эч нерсе басып чыгарбайт, кайра иштетүү ийгиликтүү болот, ал эми экинчиси ss угуучуну кайра көрсөтөт. Эгер текшерүүңүз токтотулган серверге каршы өтсө, ал жергиликтүү стекти өлчөйт, башка эч нерсени эмес.

Карама-каршы ийгиликсиздик да маанилүү. Соо серверге каршы ийгиликсиз болгон текшерүү эч качан керек болбогон кайра иштетүүлөрдү жаратат, ал эми кайра иштетүү циклин өзү эле үзгүлтүк. Текшерүүнү ага жараша аракет кыла алган нерсеге туташтырганга чейин эки багытты тең сынаңыз.

Статус сабы эмнени айтышы керек

Ар бир текшерүүнүн кайсы чекти жапканын жазыңыз: процесс, угуучу, аутентификация же колдонмо. Бир текшерүү сейрек бирден көп нерсени жабат, ал эми аларды “up” деп кыскан статус баракчасы окуя учурунда маанилүү болгон айырманы жашырат. Тармак жолу үчүн атайын идентификациясы бар чыныгы кардарды колдонуңуз, ага кол алышууну жана бир зыянсыз уруксат берилген операцияны бүтүрүүгө мүмкүндүк бериңиз, анан ажыратыңыз. Бул башкаруу каналын, аутентификация саясатын жана угуучуну бир кадамда машыктырат.

Бул идентификацияны чыныгы колдонуучулардан өзүнчө кармаңыз жана ага текшерүүгө керектүү эң аз укуктарды бериңиз. Кенен кирүү мүмкүнчүлүгү бар даярдык текшерүүсү ыңгайлуулук үчүн кошулган жаңы чабуул бети. Анын күбөлүктөрүн каалаган башка эсептики сыяктуу алмаштырыңыз, анткени аутентификацияны токтоткон текшерүү кардарларды кабыл алууну токтоткон серверге дал келет.

Эскертүү текстинде чекти атаңыз, биринчи жооп берүүчү бирдикке, сокетке, сертификатка же маршрутка көңүл бурууну билсин. Эмнени далилдегенин айта албаган текшерүүгө туура эмес себептен ишенилет, жана netcat текшерүүсү эң башында ушундай эле сакталып калган.

Тектеш макалалар