Ping працуе, але SSH не працуе праз VPN: які этап зламаўся?
Адзіная падрабязная спроба аддзяляе дасяжнасць TCP, транспарт SSH, ідэнтычнасць хоста, уваход карыстальніка і дазвол сеансу, каб вы перасталі гадаць пра тунель.
Адказы Ping і адмоўлены ўваход па SSH могуць быць праўдай адначасова, і гэтая пара не ўказвае на тунель. Адклікі рэха і TCP-злучэнне да порта 22 — розныя тэсты з рознымі селектарамі, рознымі палітыкамі і часта рознымі прызначэннямі. Зафіксуйце адну наўмысную спробу SSH, а затым назвіце апошні этап, якога яна дасягнула. Гэты адзіны артэфакт замяняе дзясятак спекулятыўных змен канфігурацыі.
Зафіксуйце адну спробу, а не сеанс патыканняў
Запусціце кліент адзін раз з падрабязнай дыягностыкай, адключаным агульным доступам і абмежаваным тайм-аўтам злучэння. Адключэнне агульнага доступу важнае, бо раней аўтэнтыфікаванае галоўнае злучэнне інакш адкажа за новую спробу і схавае збой, які вы шукаеце.
ssh -4 -vv -o ControlPath=none -o ConnectTimeout=10 [email protected]
Захавайце прызначэнне, сямейства адрасоў, адзнаку часу і апошнюю непатаемную памылку. Сцяг IPv4 таксама азначае, што гэтая спроба нічога не кажа пра шлях IPv6 да таго ж імя, таму не абагульвайце на яе падставе. Запішыце, адкуль рабілася спроба. Праверка на шлюзе VPN — не тое ж пункт гледжання, што ноўтбук за ім, і большасць супярэчнасцей у гэтых заяўках паходзіць ад змешвання двух.
Этапы першы і другі: TCP перад SSH
Першая мяжа — дасяжнасць сокета: адрас, порт і маршрут, які пакет фактычна праходзіць. Калі TCP-злучэнне ніколі не завяршаецца, нічога над ім яшчэ не існуе, і ключы хоста і ўліковыя запісы не маюць значэння.
nc -vz 10.90.4.20 22
ip route get 10.90.4.20
tcpdump -ni any 'host 10.90.4.20 and port 22'
Суаднясіце захоп са спробай кліента. Выходзіць SYN і нічога не вяртаецца — гэта паказвае на фільтрацыю, селектары або адсутны маршрут на далёкім баку; адказ са скідам паказвае на нешта, што актыўна адмаўляе, а не скідае. Другая мяжа — сам абмен протоколу SSH. TCP-злучэнне, якое завяршаецца і затым замірае, перайшло дасяжнасць і ўвайшло ў перамовы, адказ сервера або апрацоўку пакетаў. Гэта іншае расследаванне, і менавіта там праблемы, звязаныя з памерам, упершыню становяцца праўдападобнымі.
Этап трэці: чый ключ адказаў
Калі транспарт узняты, кліент правярае ключ хоста сервера. Адмова тут — гэта сцвярджэнне пра ідэнтычнасць, а не пра крыптаграфію: партнёр прадставіў ключ, які ваша палітыка не прымае. Разглядайце гэта як умову спынення і праверце па-за каналам, праз кансоль або аператара, які перабудаваў хост. Выдаленне запомненага запісу, каб прыбраць папярэджанне, — гэта адзіны кароткі шлях, ад якога трэба адмовіцца, бо ён знішчае доказы таго, што нешта адказала нечакана.
Калі хост сапраўды быў перабудаваны, выдаляйце састарэлы запіс толькі пасля пацверджання новага адбітка, і адзначце дату і прычыну. Наступны інжынер сустрэне тое ж папярэджанне і мае патрэбу ў гэтым кантэксце.
Этапы чацвёрты і пяты: уліковы запіс супраць дазволу
Аўтэнтыфікацыя — чацвёртая мяжа. Адмоўленыя ўліковыя дадзеныя азначаюць, што сервер ацаніў спробу і адмовіў; праверце ўліковы запіс, тып уліковых дадзеных, які сервер прымае, і ўласную палітыку сервера, а не пароль VPN. Пятая мяжа — аўтарызацыя пасля паспяховага ўваходу. Аўтэнтыфікаванаму карыстальніку ўсё яшчэ могуць адмовіць у абалонцы, камандзе, падсістэме або перасылцы, і гэтыя адмовы выглядаюць як збоі для таго, хто чытае толькі апошні радок кліента.
| Last stage reached | What it proves | Where to look next |
|---|---|---|
| No TCP connection | No SSH transport exists | Address, port, route, selectors, filter, listener |
| TCP up, exchange incomplete | Reachability is not the blocker | Server response, negotiation, packet handling |
| Host identity rejected | The peer is not the expected host | Independently verified host key |
| User authentication rejected | The attempt reached authentication | Account, credential and server policy |
| Authenticated, session denied | Login succeeded, the operation did not | Shell, command or forwarding permission |
Спыніцеся пасля пары няўдалых спроб пароля. Паўторныя здагадкі ствараюць блакіроўкі, якія потым выглядаюць як другі, незвязаны збой, і каштуюць больш часу, чым першапачатковая заяўка.
Адкат і запіс, які вы захоўваеце
Змяняйце па адным за раз і запісвайце, што вы змянілі, перш чым паўтарыць тэст. Калі змена робіць спробу горш, неадкладна адкаціце яе, замест таго каб накладаць яшчэ адну праўку. Паўтарыце першапачатковую аперацыю з першапачатковага кліента і кантэксту. Паспяховы ўваход з іншай машыны, у іншым сямействе адрасоў, не з'яўляецца прайграваннем і не даказвае выпраўленне.
Ачысціце тое, чым дзеліцеся. Падрабязны вывад кліента можа змяшчаць унутраныя імёны, меткі ўліковых запісаў, шляхі ключоў і ідэнтыфікатары публічных ключоў, таму публікуйце паэтапную выснову, а не сыры след.