Ssh sunucusu için bağlantı zaman aşımı


11

Openssh-server kurmaya çalışıyorum, ancak bazı bağlantı sorunları yaşıyorum. Bağlantı noktasını standart olmayan bir şeye değiştirdim (57757) ve sonra yönlendiricimi bu bağlantı noktasına iletecek şekilde ayarladım. LAN'ımda, 57757 numaralı bağlantı noktasını kullanarak makine para cezamı ssh edebiliyorum, ancak WAN'da yapamıyorum.

LAN dışındaysam ve makineme yanlış bir bağlantı noktasından erişmeye çalışırsam, hemen "bağlantı reddedildi" iletisi alıyorum. Ancak, doğru bağlantı noktası ile sadece askıda kalır ve sonra zaman aşımlarına uğrar.

Sorunda hata ayıklamak için ne yapabilirim? Bir traceroute denedim, ama bana yararlı bir şey söylemedi.

EDIT: Benim sorunum yönlendirici benim WAN IP dahili erişim desteklemiyor olduğunu fark ettim. Ben farklı bir sunucuya ssh'd ve geri ve iyi çalıştı.


Dinlediği portun yanında bir şey değiştirdiniz mi?
guntbert

@guntbert Nope. Geri döngü ile ilgili bir sorun olabilir mi?
Ci3

geri döngü? sadece makinenin kendisinden mi denedin? LAN'ınızda test etmek için başka bir cihazınız var mı?
guntbert

@guntbert Başka bir makineyle denedim ve LAN içinde sorun yok.
Ci3

"Son çare" fikrim: sudo apt-get purge openssh-serversonra yeniden yükleyin (böylece yapılandırmada olmuş olabilecek herhangi bir şeyden kurtuluruz) ve yönlendiricinizi 22-> 22 iletecek şekilde yeniden yapılandırın.
guntbert

Yanıtlar:


11

Bu genellikle bağlantı noktasını LAN üzerindeki yanlış IP adresine yönlendirdiğiniz anlamına gelir.

Sizin NAT yönlendirici port 57757 üzerinde gelen trafiği alır ve LAN üzerindeki belirli bir IP adresi ve port için gönderir.

Varsayılan olarak, Ubuntu güvenlik duvarı ile gelen bağlantı denemelerini filtrelemez. Bu nedenle, Ubuntu'daki güvenlik duvarı ayarlarını değiştirmediyseniz, 1'den 65535'e kadar herhangi bir TCP bağlantı noktasına bağlantı açma denemesi aşağıdakilerden birini yapar:

  • bağlantı noktası açıksa bağlantıyı kabul et
  • bağlantı noktası kapalıysa bağlantı girişimini reddet

Bağlantı noktaları bir güvenlik duvarı tarafından filtrelendiyse , gördüğünüz şeyi alırsınız - bir bağlantı girişimine yanıt vermezsiniz. Fakat:

  • güvenlik duvarı ayarlarını değiştirmediyseniz (ör. ufw, iptables), hiçbir bağlantı noktası filtrelenmez ve
  • her durumda, LAN üzerindeki port 22'ye bağlanabilirsiniz, böylece açıktır.

Bir bağlantı noktasını bir NAT yönlendiricisi olmayan varolmayan bir makineye ilettiğinizde, o bağlantı noktasındaki gelen trafiği varolmayan makineye gönderir, yani onu bir kara deliğe gönderir ; etkili bir şekilde düşürülür.

Bu tam olarak tarif ettiğiniz duruma neden olur. Bu nedenle, büyük olasılıkla bağlantı noktasının LAN üzerindeki doğru IP adresine yönlendirildiğinden emin olarak düzeltebilirsiniz.

Bu sorun olmamışsa ...

... o zaman bazı sorun giderme işlemleri yapmanız gerekir.

  1. LAN tarafı için belirtilen port doğru mu? Yani, SSH sunucusunun yapılandırmasını değiştirmediğiniz varsayılarak, WAN tarafında 57757 numaralı bağlantı noktası OpenSSH sunucusunda 22 numaralı bağlantı noktasına iletilecek şekilde ayarlanmış mı? (Bunu tekrar kontrol etmek isteyebilirsiniz.)

  2. Belki de seçtiğiniz belirli bağlantı noktasında bir sorun var (57757). Farklı bir tane deneyin ve daha iyi çalışıp çalışmadığını görün.

    (Değilse ve bu talimatlara devam ederseniz, ya geri değiştirin ya da aşağıdaki "57757" yerine yeni numarayı yazın.)

  3. OpenSSH sunucusunu yeniden başlatmayı deneyin. Bir ağ sorunu varsa bu yardımcı olabilir. Bu işe yaramazsa, yönlendiriciyi ve kablo / DSL / ISDN modemi de yeniden başlatmayı deneyin.

    Herhangi bir nedenle üç cihazı da yeniden başlatamıyorsanız, yapabildiğiniz her şeyi yeniden başlatmanızı tavsiye ederim. OpenSSH hizmetini yeniden başlatamazsanız, en azından hizmeti yeniden başlatabilirsiniz ve (bunu düzeltme olasılığı daha yüksektir) arabirimi indirip yeniden açın.

    OpenSSH sunucusunu yeniden başlatmak için:

    sudo restart ssh
    

    Ağ arayüzünü düşürmek için önce hangi arayüzde olduğunu bulun:

    ifconfig
    

    Tipik olarak, tek bir Ethernet kartı ve / veya tek bir kablosuz kartı olan bir makine için Ethernet eth0ve kablosuzdur wlan0.

    Kablolu Ethernet bağlantısı aşağı çekmek ve yeniden başlatmak istediğiniz şeyse, çalıştırın:

    sudo ifdown eth0
    

    O zaman koş:

    sudo ifup eth0
    

    Alternatif olarak, şunları da çalıştırabilirsiniz:

    sudo ifconfig eth0 down
    

    Bunu takiben:

    sudo ifconfig eth0 up
    

    Makine, OpenSSH sunucusunun çalıştığı arabirimi yönetmek için NetworkManager kullanıyorsa, yine de yukarıdaki yöntemleri denemenizi öneririz, ancak NetworkManager'da bağlantıyı kesip yeniden bağlanmayı da deneyebilirsiniz.

    Ethernet bağlantısı için, kabloyu çıkarıp tekrar takmayı da deneyin. Kablosuz bağlantı için, donanım anahtarıyla (varsa) kapatıp tekrar açmayı deneyin.

    Burada garip bir şey oluyor ve bunların hiçbiri çok uzun sürmüyor - daha özenli sorun giderme adımlarını gerçekleştirmeden önce kapsamlı olmak faydalı olacaktır.

  4. WAN tarafından nasıl erişmeye çalışıyorsunuz? Bunu yapmak için LAN'da bir makine kullanıyorsanız (sadece LAN'dan yönlendiricinizin WAN IP'sine bağlanmak için), bu sadece bazı yönlendiriciler için desteklenir. Sonuçta, bir yönlendiricinin işi trafiği bir taraftan kendisine yönlendirmek değil, WAN ve LAN tarafları arasında yönlendirmektir. Birçok ev / ofis yönlendiricisi bu özelliğe sahip olsa da, WAN IP'deki iletilen bağlantı noktalarına LAN içinden bağlanma desteği kuraldan ziyade istisnadır.

    Bu nedenle, bağlantı noktasını WAN tarafındaki bir ana bilgisayardan ileriye doğru test etmiyorsanız, bunu yapmanız gerekir. Bunun için seçenekleriniz:

    • Kendinizi WAN tarafından bağlayın. Bu, orada bir makineye erişiminiz varsa, örneğin okul, iş, bir arkadaşınızın evi veya benzeri bir uzak makineye SSH erişimi.

    • Test makinesi bağlayın arasındaki yönlendirici ve ne olursa olsun sağlar onun Internet bağlantısı. Ethernet bağlantı noktasına sahip bir kablo / DSL / ISDN modeminiz varsa ve yönlendiriciniz buna bağlıysa , modeme bir anahtar bağlayabilir ve yönlendiriciyi anahtara bağlayabilirsiniz. Bir bilgisayarı anahtara bağlayın. Öncelikle , bu makinenin İnternet erişimine sahip olup olmadığına bakın - bu günlerde birçok İSS, iki veya daha fazla ayrı IP adresi sağlıyor. Başlamazsa , yönlendiricinizin kurulum sayfasına gidin ve WAN IP ve WAN alt ağ maskesini kontrol edin , ardından aynı alt ağ içindeki anahtar bağlantılı makineye statik olarak bir IP adresi atayın.

      Bu yöntemin bazı dezavantajları vardır. Bu bir acı! Ayrıca, bir ISS'nin ağa yanlış bir şekilde yapılandırılması, böylece anahtara bağlı test makinesinin İnternet'e erişebilmesi için teorik olarak mümkündür. (İSS'nizin amacı birden fazla WAN IP'si veISS'nizin size atadığı test makinesi için bir WAN IP seçtiniz, onunla gerçek bir WAN ana bilgisayarı arasındaki trafik ISS tarafından engellenmeli / bırakılmalıdır. Ancak bazı ISS'lerin garip uygulamaları var, kim bilir?) Bu olursa, muhtemelen kimsenin ciddi sorunlarına neden olmaz (ve olsa bile, sadece birkaç dakikaya kadar bağlamanız gerekir). Bununla birlikte, potansiyel olarak aboneliğinizin sınırlarının ötesinde ek erişim elde etme girişimi olarak görülebilir ve daha da önemlisi - başka bir kullanıcı aynı IP'ye sahipse, bağlantılarıyla etkileşime girebilir. Bu nedenle, bu yöntemi denemek istiyorsanız, test makinesinden İnternet'e erişmeye çalışmayın, test makinesinin İnternet'e erişebileceğini tespit ederseniz hemen durdurun ve ISS'niz tarafından yasaklanmış veya tavsiye edilmemişse bunu denemeyin. (Yönlendiricinizin WAN tarafı bir ofis LAN ise, önce ağ yöneticinize danışmadan bunu kullanmayın. Bu bir ISS değildir ve istenmeyen erişimi önlemek için kaynakların sağlandığı varsayımı yoktur.)

      Bu teknikte bazen daha uygun olan bir varyasyon vardır. IP adresini, alt ağ maskesini, ağ geçidi (yönlendirici) IP adresini WAN o - Sizin yönlendirici muhtemelen bağlantı bilgilerini alır o da DNS sunucuları hakkında bir şeyler ve bilgi göndermek için nerede bilmiyor zaman kullanır - hesabınızla ilgili Kablo / DSL / ISDN modemi aracılığıyla DHCP üzerinden ISP. Bu nedenle, WAN tarafı testinin sonuçlarını anlamlı hale getirmek için gerekli yapılandırmayı sağlamak için yönlendiricinin modeme takılı olması gerekir. Ancak yönlendirici, aslında WAN tarafındaki bir ağa bağlı olduğu sürece bu bilgileri hatırlar. Böylece yönlendiriciyi, modemi ve test makinesini bağlayabilirsiniz, ancak daha sonra hızlı bir şekilde vetest makinesiyle herhangi bir şey yapmadan önce anahtarın bağlı olduğunu gördüğünden emin olun , modemin bağlantısını kesin.

    • Bağlantı noktalarınızı test etmek için İnternet'te ücretsiz bir hizmet kullanın. Yönlendiricinizin WAN arabirimi ile İnternet (yukarıda) arasına bir test makinesi yerleştirmek çok fazla dahil olduğundan - ve ISS'niz tarafından engellenmesi nedeniyle erişilemese bile bir bağlantı noktasını erişilebilir olarak göstereceğinden (ayrıca yönlendiricinin WAN IP'sini LAN tarafından) - genellikle web tabanlı bir bağlantı noktası tarama hizmeti kullanmak daha iyidir.

      Birçok bağlantı noktası tarama hizmeti vardır. (Bazıları, çoğu kişinin erişimi kolaylaştırmak yerine engellemeye çalıştığı fikriyle "güvenlik duvarınızı kontrol edin" ifadesini kullanır .) Bu bir tanesidir. O birini kullanmayı seçerseniz, tıklayın Devam metin kutusuna 57757 yazın ve tıklayın Kullan Belirtilen Özel Liman Probe . Bir sunucunun çalıştırılmasını sağlamak için sunucunun "açık" olmasını istersiniz . "Kapalı", bağlantı noktasının erişilebilir olduğu, ancak sunucunun çalışmadığı anlamına gelir (ve dolayısıyla bağlantı girişimi reddedilir). "Gizli", bağlantı noktasına erişilemez olduğu anlamına gelir - sanki orada hiçbir makine bulunmamış gibi (veya bağlantı noktası makinenin olmadığı yere yönlendirilmiş gibi).

  5. Tamam, bu yüzden internete gerçekten erişilemediğini belirlediniz. Ayrıntıları almak için (ideal olarak WAN tarafından) tarayabilirsiniz, ancak bu genellikle yararlı bilgiler vermez.

    Bunu yapmak istiyorsanız, o zaman WAN tarafında çalıştırabilirsiniz:

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

    Bağlantı noktası filtrelenmiş olarak gösterilirse, gönderilen paketlerin muhtemelen hiçbir yere gitmediğini (veya yol boyunca engellendiğini / düşürüldüğünü) doğrular.

  6. Sorunun, WAN'a maruz kalan bağlantı noktasından sunucunun gerçekte dinlediği bağlantı noktasından farklı olup olmadığından emin olmak için kontrol etmeye değer. WAN üzerindeki 55757 numaralı bağlantı noktasını LAN makinesindeki 22 numaralı bağlantı noktasına iletmek, işlerin yolunda gitmesini sağlamalıdır, ancak belki bir yerde (sunucu, istemci) bağlantı noktası numarasının sunucu ve istemcinin bakış açısından aynı olduğunu varsayar.

    Muhtemelen 22 numaralı bağlantı noktasını yönlendirici üzerinden iletemezsiniz. Belki de ISS'niz bu bağlantı noktasını engeller. Ama bunu yapabilirsen, yap!

    Aksi takdirde, OpenSSH sunucusunun 57757 numaralı bağlantı noktasını gerçekten dinlemesini sağlayabilirsiniz.

    Bunu yapmak için sunucu yapılandırma dosyasını yedekleyin:

    cd /etc/ssh
    sudo cp sshd_config sshd_config.old
    

    Sonra düzenleyin:

    gksu gedit sshd_config
    

    Veya makinede GUI yoksa bir konsol metin düzenleyicisi kullanın:

    sudo nano -w sshd_config
    

    Dosyanın üst kısmına yakın bir yerde, bu metin bloğu görünür:

    # 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
    

    Bunun yerine Port 22, üstteki satırı değiştirin Port 57757.

    • Sen olabilir eklemek değiştirmeden ziyade bir liman. Yine de en basit etkili yapılandırma ile test etmenizi öneririm.

      man sshd_configOpenSSH sunucusunu yapılandırma hakkında daha fazla bilgi için bkz .

    Dosyayı kaydedin, metin düzenleyicisinden çıkın ve SSH sunucusunu şu şekilde yeniden başlatın:

    sudo restart ssh
    

    Şimdi yönlendiricideki bağlantı noktasını 57757 numaralı bağlantı noktasını OpenSSH sunucusundaki 57757 numaralı bağlantı noktasına (22 değil) iletecek ve Internet'ten erişilebilir olup olmadığına bakın.

  7. Hala çalışmıyorsa, Ubuntu'nun güvenlik duvarının LAN dışından gelen trafiği gerçekten engelleyip engellemediğine bakın.

    (Bu şekilde kendiniz yapılandırmadıysanız, ancak tüm ayarlarınız doğruysa ve yukarıdaki adımların hiçbiri sorun hakkında bir şey ortaya koymadıysa, bu olası değildir.)

    Çalıştırmak:

    sudo iptables -L
    

    Varsayılan olarak, Ubuntu'da çıktı şöyle görünür:

    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
    

    Bu, temelde bir güvenlik duvarı çalıştırmamaya eşdeğer, basit bir izin veren ilkedir. (Netfilter güvenlik duvarı modülü çekirdeğinize derlenmemişse, sisteminiz yukarıdaki ayarlarla aynı şekilde davransa da, ayarlarını ayarlayan iptableskomut netfilterelbette işe yaramaz.)

    Yapılandırmanız böyle görünmüyorsa, man iptablesne yaptıklarını öğrenmek için okumaya devam edin ve / veya sorunuzu düzenleyin (veya benzer bir sorunu okuyan farklı bir insansanız, yeni bir soru gönderin) onlar. iptablesKurallarınızın, yapılandırmanızla ilgili hassas bilgileri açıklayabileceğini lütfen unutmayın . Pratik olarak konuşursak, bu genellikle geçerli değildir - engellenen belirli ana makinelerle ilgili kurallar hariç veya yapılandırmanız çok kötü / güvensiz ise - genellikle bu bilgilerin bir saldırgana, özellikle de bir makinedeki NAT yönlendiricinin arkasındaki ev / ofis LAN'ı minimum düzeydedir.


1

LAN'ınızın içinden çalıştığından, sunucu kurulumunuz doğru görünüyor. Sen den iletecek şekilde söylemek gerekir port üzerinde kullanmak istediğiniz dışarıdan portuna makinenizde 57757 . Bu durumda
A'nın bir traceroutefaydası olmayacaktır.


Tamam, makine tarafýnýn iyi olduđunu düţündüm. Evet, yönlendiricimi 57757'yi 22'ye iletmeye ayarladım ... ama aynı problemim var. sshd_config 22 numaralı bağlantı noktasında da ayarlanır.
Ci3

Muhtemelen olmalıdır: ' liman üzerinde kullanmak istediğiniz dışarıdan (örn. 57757 portuna) 22 üzerine makinenize .' Bu kamu için engellemesi gerek o liman adresi.
david6

Bu durumda doğru değil - Chris'in sorusunu
anladıysam
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.