GNU/Linux >> Znalost Linux >  >> Ubuntu

Vypršel časový limit připojení pro Ssh server?

Snažím se nastavit openssh-server, ale mám nějaké problémy s připojením. Změnil jsem port na něco nestandardního (57757) a pak jsem nastavil router, aby přesměroval na tento port. V mé síti LAN jsem schopen v pořádku připojit ssh do svého počítače pomocí portu 57757, ale nemohu tak učinit na WAN.

Pokud jsem mimo LAN a pokusím se o přístup ke svému počítači přes nesprávný port, okamžitě se mi zobrazí zpráva „Připojení odmítnuto“. Se správným portem však pouze zamrzne a poté vyprší časový limit.

Čím se mohu pokusit problém odladit? Zkoušel jsem traceroute, ale nic užitečného mi to neřeklo.

EDIT:Uvědomil jsem si, že můj problém byl v tom, že můj router interně nepodporoval přístup přes WAN IP. Odešel jsem na jiný server a znovu se připojil a fungovalo to dobře.

Přijatá odpověď:

Obvykle to znamená, že jste port přesměrovali na špatnou IP adresu v síti LAN.

Váš router NAT přijímá příchozí provoz na portu 57757 a odesílá jej na konkrétní IP adresu a port v síti LAN.

Ve výchozím nastavení Ubuntu nefiltruje příchozí pokusy o připojení pomocí brány firewall. Pokud jste tedy nezměnili nastavení brány firewall v Ubuntu, pokus o otevření připojení k libovolnému portu TCP, 1 až 65535, buď:

  • přijměte připojení, pokud je port otevřený
  • odmítnout pokus o připojení, pokud je port uzavřen

Pokud byly porty filtrovány firewallem, dostanete to, co vidíte – žádnou odpověď na pokus o připojení. Ale:

  • pokud jste nezměnili nastavení brány firewall (např. ufw , iptables ), nejsou filtrovány žádné porty, a
  • v každém případě se můžete připojit k portu 22 v síti LAN, takže je otevřený.

Když předáte port na neexistující stroj s NAT routerem, posílá příchozí provoz na tomto portu na neexistující stroj, což znamená, že ho posílá do černé díry; je fakticky vypuštěn.

To způsobuje přesně tu situaci, kterou popisujete. Takže to můžete s největší pravděpodobností opravit tím, že se ujistíte, že port je přesměrován na správnou IP adresu v LAN.

Pokud se ukáže, že to nebyl problém…

…pak budete muset provést nějaké odstraňování problémů.

  1. Je port určený pro stranu LAN správný? To znamená, že za předpokladu, že jste nezměnili konfiguraci serveru SSH, je port 57757 na straně WAN nastaven tak, aby předával port 22 na serveru OpenSSH? (Možná to budete chtít ještě jednou zkontrolovat.)

  2. Možná je nějaký problém s konkrétním portem, který jste vybrali (57757). Zkuste jiný a zjistěte, zda to funguje lépe.

    (Pokud tomu tak není a budete pokračovat podle těchto pokynů, buď jej změňte zpět, nebo nahraďte „57757“ níže novým číslem.)

  3. Zkuste restartovat server OpenSSH. To může pomoci, pokud je problém se sítí. Pokud to nepomůže, zkuste restartovat router a také kabelový/DSL/ISDN modem.

    Pokud z nějakého důvodu nemůžete restartovat všechna tři zařízení, doporučuji restartovat, co můžete. Pokud nemůžete restartovat službu OpenSSH, můžete alespoň restartovat službu a (s větší pravděpodobností to napravíte) odebrat rozhraní a znovu jej spustit.

    Restartování serveru OpenSSH:

    sudo restart ssh
    

    Chcete-li síťové rozhraní vypnout, nejprve zjistěte, na jakém rozhraní je:

    ifconfig
    

    Pro počítač s jednou ethernetovou kartou a/nebo jednou bezdrátovou kartou je Ethernet obvykle eth0 a bezdrátové připojení je wlan0 .

    Pokud je kabelové ethernetové připojení to, co chcete přerušit a restartovat, spusťte:

    sudo ifdown eth0
    

    Poté spusťte:

    sudo ifup eth0
    

    Případně můžete spustit:

    sudo ifconfig eth0 down
    

    Následuje:

    sudo ifconfig eth0 up
    

    Pokud počítač používá NetworkManager ke správě rozhraní, na kterém běží OpenSSH server, stále doporučuji vyzkoušet výše uvedené způsoby, ale můžete se také zkusit odpojit a znovu připojit v NetworkManageru.

    V případě ethernetového připojení také zkuste odpojit kabel a znovu jej zapojit. V případě bezdrátového připojení jej zkuste vypnout hardwarovým přepínačem (pokud existuje) a znovu zapnout.

    Děje se zde něco divného a nic z toho netrvá příliš dlouho – stojí za to být důkladný, než podniknete pracnější kroky k odstraňování problémů.

  4. Jak se k němu pokoušíte přistupovat ze strany WAN? Pokud používáte počítač v síti LAN Chcete-li to provést (pouhé připojení ze sítě LAN k WAN IP vašeho routeru), je to podporováno pouze u některých routerů. Koneckonců, úkolem routeru je směrovat provoz mezi stranami WAN a LAN, nikoli směrovat provoz z jedné strany na sebe. Podpora připojení k přesměrovaným portům na WAN IP zevnitř LAN je ve skutečnosti spíše výjimkou než pravidlem, ačkoli mnoho domácích/kancelářských routerů tuto funkci má.

    Pokud tedy netestujete přesměrování portu z hostitele na straně WAN, měli byste tak učinit. Vaše možnosti jsou:

    • Připojte se ze strany WAN. Funguje to, pokud tam máte přístup k počítači, například přístup SSH ke vzdálenému počítači ve škole, v práci, u přítele nebo podobně.

    • Připojte testovací stroj mezi router a vše, co jeho poskytuje připojení k internetu. Pokud máte kabelový/DSL/ISDN modem s ethernetovým portem a váš router je do něj zapojen, můžete k modemu připojit přepínač a router připojit k přepínači. Připojte počítač k přepínači. První zjistěte, zda tento počítač právě získává přístup k internetu – v dnešní době mnoho ISP poskytuje dvě nebo více samostatných IP adres. Pokud ne , přejděte na stránku nastavení routeru a zkontrolujte jeho WAN IP a masku podsítě WAN, poté staticky přiřaďte IP adresu počítači připojenému k přepínači, který je ve stejné podsíti.

      Tato metoda má některé nevýhody. Je to bolest! Teoreticky je také možné, že poskytovatel internetu nakonfiguruje svou síť nesprávně tak, aby testovací stroj připojený k přepínači mohl přistupovat k internetu. (Pokud není záměrem vašeho ISP umožnit vám připojení k více než jedné WAN IP a náhodou jste vybrali WAN IP pro testovací stroj, který vám přidělil váš ISP, provoz mezi ním a skutečným hostitelem WAN by měl ISP zablokovat/ukončit. Ale někteří ISP mají podivné praktiky, takže kdo ví?) Pokud se to stane, pravděpodobně to nikomu nezpůsobí vážné problémy (a i kdyby ano, máte to připojeno jen několik minut). Mohlo by to však být potenciálně považováno za pokus o získání dalšího přístupu za hranice vašeho předplatného a – což je důležitější – pokud má stejnou IP adresu jiný uživatel, mohlo by to narušit jeho připojení. Proto chcete-li tuto metodu vyzkoušet , nepokoušejte se o přístup k internetu z testovacího stroje, okamžitě zastavte, pokud zjistíte, že testovací stroj má přístup k internetu, a vůbec se o to nepokoušejte, pokud to váš ISP zakazuje nebo nedoporučuje. (A tuto možnost nepoužívejte, pokud je na straně WAN vašeho routeru kancelářská síť LAN, aniž byste se nejprve poradili se správcem sítě. Nejedná se o poskytovatele internetových služeb a neexistuje žádný předpoklad, že jsou poskytovány prostředky k zabránění nežádoucímu přístupu.)

      Existuje variace této techniky, která je někdy vhodnější. Váš router pravděpodobně získá informace o připojení – IP adresu, masku podsítě, IP adresu brány (routeru) na WAN, která je používá, když neví, kam něco odeslat, a informace o serverech DNS – od vašeho ISP, přes DHCP, přes kabelový/DSL/ISDN modem. To je důvod, proč musíte mít router zapojený do modemu, abyste mu poskytli nezbytnou konfiguraci, aby výsledky testování na straně WAN měly smysl. Směrovač si však tyto informace obvykle zapamatuje, pokud je skutečně připojen k síti na straně WAN. Můžete tedy připojit router, modem a testovací stroj, ale pak rychle a než s testovacím strojem cokoli uděláte, kromě toho, že se ujistíte, že jej přepínač vidí jako připojený , odpojte modem.

    • K testování portů použijte bezplatnou službu na internetu. Vzhledem k tomu, že vložení testovacího zařízení mezi rozhraní WAN vašeho routeru a internet (výše) je velmi náročné – a protože port ukáže jako dostupný, i když je nepřístupný z důvodu blokování vaším ISP (což platí také pro připojení k routeru WAN IP ze strany LAN) – obvykle je lepší použít webovou službu skenování portů.

      Existuje mnoho služeb pro skenování portů. (Někteří používají frázi „zkontrolujte firewall“ s myšlenkou, kterou se většina lidí snaží zablokovat spíše než usnadnit přístup.) Toto je jeden. Pokud se rozhodnete použít tento, klikněte na Pokračovat , do textového pole zadejte 57757 a klikněte na Použít specifikovanou sondu vlastního portu . Pro účely spuštění serveru chcete být „otevřený“. „Uzavřeno“ znamená, že port je dostupný, ale server neběží (a tedy pokus o připojení byl odmítnut). „Stealth“ znamená, že port byl nepřístupný – jako by se tam nenacházel žádný stroj (nebo jako by byl port přesměrován tam, kde žádný stroj není).

  5. Dobře, takže jste zjistili, že to opravdu není dostupné z internetu. Případně jej můžete naskenovat (ideálně ze strany WAN), abyste získali podrobnosti, i když to často neposkytne užitečné informace.

    Pokud to chcete udělat, pak na straně WAN můžete spustit:

    sudo nmap -sS -sV -p57757 -vv WAN-IP

    Pokud je port zobrazen jako filtrovaný, potvrzuje to, že tam odeslané pakety pravděpodobně nikam nesměřují (nebo jsou po cestě zablokovány/zahozeny).

  6. Stojí za to zkontrolovat, zda problém nevzniká tím, že port vystavený WAN se liší od portu, na kterém server skutečně naslouchá. Přesměrování portu 55757 na WAN na port 22 na počítači LAN by mělo fungovat dobře, ale možná někde (server, klient) něco předpokládá, že číslo portu je z pohledu serveru a klienta stejné.

    Pravděpodobně nemůžete přesměrovat port 22 přes router. Možná váš ISP blokuje tento port. Ale pokud to dokážete, udělejte to!

    Jinak můžete OpenSSH server vytvořit skutečně poslouchat na portu 57757.

    Chcete-li to provést, zálohujte konfigurační soubor serveru:

    cd /etc/ssh
    sudo cp sshd_config sshd_config.old
    

    Poté jej upravte:

    gksu gedit sshd_config
    

    Nebo použijte textový editor konzoly, pokud počítač nemá GUI:

    sudo nano -w sshd_config
    

    V horní části souboru se objeví tento blok textu:

    # What ports, IPs and protocols we listen for
    Port 22
    # Use these options to restrict which interfaces/protocols sshd will bind to
    #ListenAddress ::
    #ListenAddress 0.0.0.0
    Protocol 2
    # HostKeys for protocol version 2
    HostKey /etc/ssh/ssh_host_rsa_key
    HostKey /etc/ssh/ssh_host_dsa_key
    HostKey /etc/ssh/ssh_host_ecdsa_key
    #Privilege Separation is turned on for security
    UsePrivilegeSeparation yes
    

    Stačí změnit Port 22 řádek nahoře, to znamená Port 57757 místo toho.

    • Můžete přidat port spíše než jej měnit. Doporučuji však testování s nejjednodušší efektivní konfigurací.

      Viz man sshd_config pro více podrobností o konfiguraci serveru OpenSSH.

    Uložte soubor, ukončete textový editor a restartujte SSH server pomocí:

    sudo restart ssh
    

    Nyní změňte přesměrování portu na routeru tak, aby port 57757 přesměroval na port 57757 (nikoli 22) na serveru OpenSSH a zjistěte, zda je dostupný z internetu.

  7. Pokud to stále nefunguje, zjistěte, zda možná firewall Ubuntu skutečně neblokuje provoz pocházející z mimo LAN.

    (To je nepravděpodobné, pokud jste to sami takto nenakonfigurovali, ale pokud jsou všechna vaše nastavení správná a žádný z výše uvedených kroků neodhalil nic o problému, stojí za to zkontrolovat.)

    Spustit:

    sudo iptables -L
    

    Ve výchozím nastavení v Ubuntu vypadá výstup takto:

    Chain INPUT (policy ACCEPT)
    target     prot opt source               destination         
    
    Chain FORWARD (policy ACCEPT)
    target     prot opt source               destination         
    
    Chain OUTPUT (policy ACCEPT)
    target     prot opt source               destination
    

    Jedná se o jednoduchou tolerantní politiku, která je v podstatě ekvivalentní nespouštění brány firewall. (Pokud by modul brány firewall netfilter nebyl zkompilován do vašeho jádra, váš systém by se choval stejně jako s výše uvedeným nastavením, ačkoli iptables příkaz, který se dotazuje netfilter 's, by samozřejmě nefungovalo.)

    Pokud vaše konfigurace takto nevypadá, přečtěte si man iptables abyste zjistili, co dělají, a/nebo upravte svou otázku (nebo, pokud jste jiný člověk s podobným problémem při čtení tohoto, přidejte novou otázku), abyste je zahrnuli. Vezměte prosím na vědomí, že potenciálně vaše iptables pravidla by mohla odhalit citlivé informace o vaší konfiguraci. Prakticky vzato tomu tak obvykle není – s možnou výjimkou pravidel pro konkrétní hostitele, kteří jsou blokováni, nebo pokud je vaše konfigurace velmi špatná/nezabezpečená – obvykle užitečnost těchto informací pro útočníka, zejména pro počítač na domácí/kancelářské LAN za routerem NAT , je minimální.

Související:Problém NVidia GeForce GTX970 ubuntu 16.04?
Ubuntu
  1. Jednoduchý BASH skript pro instalaci serveru Ubuntu

  2. Jak zvýšit časový limit připojení SSH

  3. Připojení Ssh odmítnuto zevnitř sítě Lan?

  1. Ssh Soukromá-veřejná mapa klíčů pro klienta?

  2. Změňte výchozí číslo portu serveru SSH

  3. Nastavte vícefaktorové ověřování pro SSH na Ubuntu 20.04

  1. Získat oprávnění root pro Nautilus na Sftp připojení?

  2. Oprava ::Chyba připojení Linux SSH byla odmítnuta

  3. Příkaz Linuxu, který čeká na spuštění serveru SSH