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 зонд юу ч мэдээлэх боломж олддоггүй.