Jeden stroj dosáhne druhého přes VPN a někdo teď chce stejný shell přes privátní síť poskytovatele. Trasa existuje, ping uspěje a SSH přesto odmítá. Obvyklou příčinou je, že démon nikdy neposlouchal na nové adrese, takže není kam se připojit. To je problém navázání adresy dřív, než je problém firewallu.

Proč nová trasa nevytváří nový posluchač

Naslouchající socket vytváří proces, který pojmenovává adresy, jež bude přijímat. Trasa jen říká paketům, kam mají putovat; nevytváří na cíli žádný posluchač. Když je sshd nakonfigurován s jediným ListenAddress, jsou spojení na jakoukoli jinou místní adresu odmítnuta, i když je rozhraní aktivní. Totéž platí pro socketovou jednotku, která vlastní port, a proto je první kontrolou vždy to, co skutečně naslouchá.

Porovnejte obě trasy podle cílové adresy, ne podle názvu rozhraní. Klient se připojuje k adrese a tato adresa musí být navázaná dřív, než začne záležet na jakémkoli pravidle firewallu.

Vypište adresy a posluchače

Než cokoli upravíte, zapište adresy na hostiteli a sockety, které nyní existují.

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

Seznam adres ukazuje, která privátní adresa je skutečná a na kterém rozhraní, zatímco seznam socketů ukazuje, zda je k ní něco navázáno. Posluchač na 0.0.0.0:22 už přijímá všechny adresy, takže nové navázání nic nepřidá. Posluchač na jedné konkrétní adrese odmítnutí okamžitě vysvětlí. Pokud port patří socketové jednotce a ne démonovi, konfigurace démona není celý příběh.

Přidejte navázání a ponechte staré

OpenSSH přijímá několik položek ListenAddress, takže trasa VPN může zůstat, zatímco se přidává privátní. Otestujte soubor, než jej znovu načtete.

sshd -t
systemctl reload sshd

Neúspěšný test konfigurace ponechá běžícího démona nedotčeného, a to je přesně to, co chcete, když jste připojeni přes trasu, kterou upravujete. Ponechte stávající položku, přidejte novou místní adresu a potvrďte, že se služba znovu načte, aniž by ztratila aktuální relaci. U instalací aktivovaných socketem přidejte adresu místo toho do socketové jednotky a tuto jednotku znovu načtěte. Potom znovu přečtěte seznam posluchačů, protože navázání, které se nikdy neobjevilo, znamená, že byla upravena špatná komponenta.

Ověřte novou relaci, než zavřete starou

Připojte se k nové adrese, dokud je původní relace stále otevřená, a použijte podrobný výstup, abyste viděli, která adresa a klíč byly použity. Ponechte původní relaci otevřenou, dokud test neuspěje dvakrát.

ssh -v [email protected]

Přečtěte si ladicí řádky k cílové adrese a hostitelskému klíči, který byl předložen. Ověřte otisk hostitelského klíče vůči hodnotě, které už důvěřujete, místo abyste přijali neznámý klíč jen proto, že se síť označuje za privátní. Nový cíl potřebuje vlastní záznam v known_hosts, a to je očekávané. Teprve až privátní trasa funguje, měla by se stará správcovská relace zavřít.

SSH chrání přenos, ale sám o sobě nedělá dvě sítě rovnocennými. Rozhodněte, zda důvěra privátního tranzitu odpovídá datům, než se na něj spolehnete.

Související články