Jedna maszyna dociera do drugiej przez VPN, a teraz ktoś chce tej samej powłoki w prywatnej sieci dostawcy. Trasa istnieje, ping się udaje, a SSH nadal odmawia. Zwykłą przyczyną jest to, że demon nigdy nie nasłuchiwał na nowym adresie, więc nie ma się z czym połączyć. To problem przypisania adresu, zanim staje się problemem zapory.

Dlaczego nowa trasa nie tworzy nowego nasłuchu

Gniazdo nasłuchujące tworzy proces, który nazywa adresy, na których będzie przyjmować połączenia. Trasa tylko mówi pakietom, dokąd mają podążać; nie tworzy nasłuchu u celu. Gdy sshd jest skonfigurowany z jednym ListenAddress, połączenia do każdego innego adresu lokalnego są odrzucane, mimo że interfejs działa. To samo dotyczy jednostki gniazda, która posiada port, dlatego pierwszym sprawdzeniem jest zawsze to, co faktycznie nasłuchuje.

Porównaj obie ścieżki według adresu docelowego, a nie nazwy interfejsu. Klient łączy się z adresem, a ten adres musi być przypisany, zanim jakakolwiek reguła zapory będzie miała znaczenie.

Wypisz adresy i nasłuchy

Przed edycją czegokolwiek zapisz adresy na hoście i gniazda, które istnieją teraz.

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

Lista adresów pokazuje, który prywatny adres jest rzeczywisty i na którym interfejsie, a lista gniazd pokazuje, czy coś jest do niego przypisane. Nasłuch na 0.0.0.0:22 akceptuje już każdy adres, więc nowe przypisanie niczego nie dodaje. Nasłuch na jednym konkretnym adresie od razu wyjaśnia odmowę. Jeśli port należy do jednostki gniazda, a nie do demona, konfiguracja demona nie jest całą historią.

Dodaj przypisanie i zachowaj stare

OpenSSH akceptuje kilka wpisów ListenAddress, więc ścieżka VPN może pozostać podczas dodawania prywatnej. Przetestuj plik przed ponownym załadowaniem.

sshd -t
systemctl reload sshd

Nieudany test konfiguracji pozostawia działający demon nietknięty, i dokładnie tego chcesz, będąc połączonym przez ścieżkę, którą edytujesz. Zachowaj istniejący wpis, dodaj nowy adres lokalny i potwierdź, że usługa ładuje się ponownie bez przerywania bieżącej sesji. W instalacjach aktywowanych przez gniazdo dodaj adres do jednostki gniazda i przeładuj tę jednostkę. Następnie ponownie odczytaj listę nasłuchów, ponieważ przypisanie, które nigdy się nie pojawiło, oznacza, że edytowano niewłaściwy komponent.

Zweryfikuj nową sesję przed zamknięciem starej

Połącz się z nowym adresem, gdy oryginalna sesja jest jeszcze otwarta, i użyj szczegółowego wyjścia, aby zobaczyć, który adres i klucz zostały użyte. Pozostaw oryginalną sesję otwartą, dopóki test nie powiedzie się dwa razy.

ssh -v [email protected]

Odczytaj wiersze debugowania dotyczące adresu docelowego i przedstawionego klucza hosta. Potwierdź odcisk klucza hosta wobec wartości, której już ufasz, zamiast akceptować nieznany klucz dlatego, że sieć opisano jako prywatną. Nowe miejsce docelowe wymaga własnego wpisu known_hosts i jest to oczekiwane. Starą sesję zarządzania należy zamknąć dopiero wtedy, gdy prywatna ścieżka działa.

SSH chroni transport, ale samo w sobie nie czyni dwóch sieci równoważnymi. Zdecyduj, czy zaufanie prywatnego tranzytu odpowiada danym, zanim na nim polegniesz.

Powiązane artykuły