VPN аркылуу SSH ServerAliveInterval: зондду кайсы тарап жөнөтөт?
ServerAliveInterval — жоопсуз зонддорду санаган кардар тараптагы таймер, секунддарды эмес. Кайсы тарап аны жөнөтөрүн, Host блокторунун тартиби эмне үчүн утарын жана аны кантип текшерүүнү көрүңүз.
SSH сессиясын тирүү кармоо боюнча кеңештердин көбү «ServerAliveInterval 30 кош» деп токтоп, пайдалуу бөлүктөрүн четте калтырат. Ачкыч сөз — канал үнсүз болгондо гана иштеп кетүүчү кардар тараптагы таймер, ал секунддарды эмес, жоопсуз зонддорду санайт жана биринчи дал келген маани жеңген файлда жашайт. Ушул үч касиетте жаңылышсаңыз, соо VPN сессиясы ошентсе да үзүлөт, ал эми өлгөн сессия илинип калат.
Эки багыт ар башка демондорго таандык
ServerAliveInterval-ды сиздин ssh кардарыңыз окуйт. ClientAliveInterval-ды алыскы тараптагы sshd окуйт жана каршы багытта, серверден кардарга карай зонддойт. Алар бир нерсенин эки аты эмес жана бирге иштешпейт, ошондуктан бирөөнү жөндөө экинчи тараптын жүрүм-турумуна таасир этпейт. Аларды аралаштыруу — оңдоо бир хостод иштеп, кийинкисинде иштебегендин кадимки себеби.
Экөө тең нөлдү кабыл алат. Нөлдө кардар такыр эч нерсе жөнөтпөйт, ал эми сервер тарапта нөлдүк ClientAliveCountMax жоопсуз текшерүүлөрдөн кийин келе турган ажыроону өчүрөт.
Зонд эмнени далилдейт, эмнени далилдебейт
Белгиленген аралык серверден маалымат келбей өткөндөн кийин, кардар учурдагы шифрленген канал аркылуу кичине суроо жөнөтүп, жооп күтөт. ServerAliveCountMax сессия үзүлгөнгө чейин алардын канчасы жоопсуз кала аларын аныктайт. 60 аралык жана 3 саны менен кардар болжол менен үч мүнөт үнсүздүктөн кийин баш тартат, жана бул сан тармактык стандарт эмес, сиздин конфигурацияңыздын касиети. Аралыкты демейки 0 маанисинде калтырсаңыз, зонд такыр жөнөтүлбөйт, ошондуктан кадимки кардар өлгөн туташууда чексиз отура алат.
Алмашуу SSH транспортунун ичинде жүргөндүктөн, жооп каршы тараптын SSH процесси али окуп, жазып жатканын далилдейт. Ал ошол сессиянын ичинде иштеткен программа тууралуу эч нерсе айтпайт: маалымат базасынын кардары, багытталган порт же узак иштеген скрипт транспорт зонддорго кубаныч менен жооп берип жатканда илинип калышы мүмкүн.
TCPKeepAlive — бир катмар төмөнкү өзүнчө механизм. Аны өзөк башкарат, ал шифрленбеген, жана SSH демону илинип калган каршы тарап ага да жооп бере алат. Ошондуктан сокетти эмес, сессияны маанилүү деп эсептесеңиз, SSH деңгээлиндеги зонд маанилүүрөөк сигнал болуп саналат.
Кайсы маани каларын тартип чечет
OpenSSH ар бир параметр үчүн алган биринчи маанини колдонот, ошондуктан конкреттүү Host блогу дал келе турган ар кандай кененирээк блоктон мурун турушу керек. Жапайы белгилүү демейки маанилерди файлдын төмөнүнө кой, үстүнө эмес, жана төмөнкү Match блогу мурун коюлган маанини жокко чыгара албастыгын эстеп кал. OpenSSH кардар конфигурациясынын колдонмосу биринчи маани эрежесин түз айтат, жана жалпы конфигурацияны кайра уюштуруудан мурун аны бир жолу окуп чыгууга татыктуу.
Буйрук сабынын опциялары файлдан басымдуу, бул убактылуу тажрыйбаны арзан кылат:
ssh -o ServerAliveInterval=15 -o ServerAliveCountMax=4 office-shellКардар чындыгында эмнени чечкенин, сиз жаздым деп ойлогондон көрө көрүү үчүн андан натыйжалуу конфигурацияны чыгарууну сураныңыз. Чыгууда ошол хост аты үчүн бириктирилген маанилер бар жана бул адашкан мурунку блокту кармоонун эң ылдам жолу:
ssh -G office-shell | grep -i aliveТуннелдин үстүндө keepalive эмне кылат
Мезгил-мезгили менен болгон трафик абалдуу NAT же брандмауэр картасынын мөөнөтү бүтүшүнө жол бербейт, бул бош агымдарды бир нече мүнөттөн кийин таштаган VPN үчүн чыныгы пайда. Ар 60 секунд сайын келген зонддор эч кандай колдонмо маалыматын ташыбастан ошол картаны жаңыртат.
Алар жоголгон жолду кайра кура алышпайт. Туннелдин интерфейси жок болгондо зонддор калгандын баары сыяктуу эле ишке ашпайт, жана сан түгөнгөндө сессия бүтөт. Тирүүлүктү аныктоо жана жолду калыбына келтирүү ар башка маселелер, жана биринчисин гана ssh_config ичинде жөндөөгө болот. Аралык менен сан сизге чындыгында кардардын канчалык тез байкашын сатып алат, ал эми колдонуучу муну катып калуу катары сезет.
Мультиплекстик туташуулар бир бүктөм кошот. ControlMaster оюнда болгондо зонддор негизги туташууга таандык, ал эми учурдагы негизгинин үстүндөгү жаңы сессия ошол негизги келишкен нерсени мураска алат. Эгер mux негизгиси илинип калса, башка терезени ачуу жолду кайра сынабайт.
Жөндөөнү башынан аягына чейин ырастоо
Серверде файлды окуп, кайсы include жеңгенин болжолдоонун ордуна демондун натыйжалуу конфигурациясын чыгарыңыз:
sshd -T | grep -i clientaliveАндан кийин жөндөө чыгуусу күйгүзүлгөн чыныгы сессияны байкаңыз. Сан түгөнгөндө кардар күтүү убактысынын сабын басып чыгарат, ал эми анын айланасындагы убакыт белгилери үнсүздүк үзгүлтүксүз болгонун же зонддор такыр жөнөтүлбөгөнүн көрсөтөт. Зонд трафиги жок өлгөн сессия адатта ачкыч сөздү эч качан дал келбеген блокто кармайт.
Туннел аркылуу гана жеткен ар кандай хост үчүн эки текшерүүнү кошууга татыктуу: чечилген аралык өзүңүз көздөгөн маани экенине жана ошол аралык санга көбөйтүлгөндө VPN дарбазасындагы бош туруу мөөнөтүнөн кыска экенине ынаныңыз. Экинчи сан чоңураак болсо, дарбаза агымды биринчи болуп үнсүз таштайт жана SSH зонду эч нерсе билдирүүгө мүмкүнчүлүк таппайт.