Една машина стигнува до друга преку VPN, а сега некој сака истата обвивка преку приватната мрежа на провајдерот. Рутата постои, ping успева, но SSH продолжува да одбива. Вообичаената причина е што демонот никогаш не слушал на новата адреса, па нема со што да се поврзе. Ова е проблем со врзување на адреса пред да биде проблем со firewall.

Зошто нова рута не создава нов слушател

Слушачкиот сокет го создава процес што ги именува адресите на кои ќе прима врски. Рутата само им кажува на пакетите каде да одат; таа не создава слушател на дестинацијата. Кога sshd е конфигуриран со еден ListenAddress, врските кон која било друга локална адреса се одбиваат иако интерфејсот е активен. Истото важи и за сокет-единицата што го поседува портот, затоа првата проверка е секогаш што навистина слуша.

Споредете ги двата пата по дестинациската адреса, а не по името на интерфејсот. Клиентот се поврзува со адреса, и таа адреса мора да биде врзана пред кое било правило на firewall да биде важно.

Наведете ги адресите и слушателите

Пред да уредите нешто, запишете ги адресите на домаќинот и сокетите што постојат сега.

ip -br addr
ss -ltnp | grep ':22'

Списокот на адреси покажува која приватна адреса е вистинска и на кој интерфејс, додека списокот на сокети покажува дали нешто е врзано за неа. Слушател на 0.0.0.0:22 веќе прима секоја адреса, така што новото врзување не додава ништо. Слушател на една конкретна адреса веднаш го објаснува одбивањето. Ако портот и припаѓа на сокет-единица, а не на демонот, конфигурацијата на демонот не е целата приказна.

Додајте го врзувањето и задржете го старото

OpenSSH прима неколку ListenAddress записи, така што VPN патот може да остане додека се додава приватниот. Тестирајте ја датотеката пред да ја вчитате повторно.

sshd -t
systemctl reload sshd

Неуспешниот тест на конфигурацијата го остава демонот што работи недопрен, и токму тоа го сакате додека сте поврзани преку патот што го уредувате. Задржете го постојниот запис, додајте ја новата локална адреса и потврдете дека услугата се вчитува повторно без да ја прекине тековната сесија. На инсталации активирани со сокет, додајте ја адресата на сокет-единицата и вчитајте ја таа единица повторно. Потоа прочитајте го списокот на слушатели уште еднаш, бидејќи врзување што никогаш не се појавило значи дека е уредена погрешна компонента.

Проверете ја новата сесија пред да ја затворите старата

Поврзете се со новата адреса додека оригиналната сесија е уште отворена, користејќи детален излез за да видите која адреса и клуч биле користени. Оставете ја оригиналната сесија отворена додека проверката не успее двапати.

ssh -v [email protected]

Прочитајте ги линиите за отстранување грешки за дестинациската адреса и претставениот клуч на домаќинот. Потврдете го отпечатокот на клучот на домаќинот со вредност на која веќе и верувате, наместо да прифатите непознат клуч затоа што мрежата е опишана како приватна. Новата дестинација бара свој known_hosts запис, и тоа е очекувано. Старата административна сесија треба да се затвори само кога приватниот пат ќе проработи.

SSH го штити преносот, но самостојно не прави две мрежи еднакви. Одлучете дали довербата на приватниот транзит одговара на податоците пред да се потпрете на неа.

Поврзани статии