SSH ev bilgisayarlarına


21

Evde SSH ve VNC kullanarak okuldan erişmek istediğim birçok makinem var. Bunu yapmak için onlara statik IP'ler verdim:

  • 192.168.1.50: Windows
  • 192.168.1.51: Ubuntu
  • 192.168.1.52: Ahududu Pi / Raspbian

SSH'nin 22 numaralı bağlantı noktasını kullandığını biliyorum, bu yüzden bu bağlantı noktasını yönlendiricim üzerinden 192.168.1.51:22 olarak iletebilirim, ancak bu şekilde Ahududu Pi'ime SSH yapamayacağım. Her iki makineye de erişebilmek için bunu ayarlayabilmemin bir yolu var mı?


10
Farklı ssh portlarını kullanabilirsiniz. Pencerelerde ne kadar zor olduğunu bilmiyorum ama linux'da onu stardard olmayan bir limana çevirmek çok kolay . Bu sayede makineyi kazanmak için 22 numaralı limanı, (orada hiçbir değişiklik olmaz) ve diğer limanı (standart olmayan) RaspberryPi'ye iletebilirsiniz.
bistoco

2
@Melebius, eski ama yine de iyi bir okuma, benim için en önemli kısım şu: "Yapmaya çalıştığım temel tartışma: gizlilikten gizlilik yapmayın.", Bu bir ihtiyaç ve kolayca çözme hakkında . Bununla birlikte, ubuntu veya pi portlarını değiştirmek zorunda kalmayacağını, sadece her 22 makine portuna farklı yönlendirici portlarını ilettiğini söyledi.
bistoco

1
@bistoco Kabul ediyorum. Bununla birlikte, OP, SSH'ye dış dünyaya erişim sağlamak üzeredir ve böyle bir durumda güvenlik her zaman düşünülmelidir. Ayrıca, bilgisayarlarda farklı bağlantı noktaları ayarlamak OP'nin sorununu çözmez çünkü yönlendiricisinde farklı bağlantı noktalarını (= bağlantı noktası iletme) etkinleştirmesi gerekir.
Melebius

6
@Melebius Off konusu, ancak 22'yi kullanmam, çünkü otomatik botlar sunucumu 7 gün 24 saat çalmaz. Gerçek bir saldırganı (veya iyi yazılmış bir betiği) dışarıda tutmaz, ancak günlük girişlerimin sayısını azaltır.
Kaz Wolfe

4
Sadece bunlardan birine (halka açık olan) bağlanabiliyor ve daha sonra yerel adresi kullanarak diğerlerini kullanarak bağlanabiliyorsunuz.
tkausl

Yanıtlar:


32

IPv6'nız varsa, bağlantı noktası yönlendirmeye bile ihtiyacınız yoktur! Yalnızca kalıcı IPv6 adresinizi alın (MAC adresinize göre), böylece ISS'niz IPv6'nın nasıl çalıştığını bilmediği sürece aynı kalması garanti edilir ve bunu tünelde kullanmak için kullanın. IPv6 adresiniz halka açık ve dünyaya izin verdiği için yerel NAT'nızdan geçmek zorunda kalmadan size erişmek için, herhangi bir yerde bağlantı noktası iletmeyi etkinleştirmenize gerek yok. "Sadece işe yarayacak".

Bununla birlikte, IPv6'nın küresel olarak hala gerçekten desteklenmediğini ve hem ev internet bağlantınızın hem de uzak internet bağlantınızın tam olarak çalışan IPv6'ya sahip olması gerektiğini unutmayın.

Ancak, çoğu insan gibiyseniz ve yalnızca IPv4'e sahipseniz, hala bir yol var! Bazı yönlendiriciler, belirli kaynak bağlantı noktalarını belirli hedef bağlantı noktalarına iletmenizi sağlar, şöyle:

görüntü tanımını buraya girin

Bu örnekte, liman 22benim makineye doğrudan geçirilir sheepdogliman iken, 292limana yönlendiriliyor 22üzerinde coyote.

Son olarak, eğer yönlendiricinizde bu özellik yoksa, SSH sadece portta çalışmakla sınırlı olmadığı için portu değiştirebilirsiniz 22. İstediğiniz herhangi bir şeye ayarlayabilirsiniz (kullanılmıyor).

In /etc/ssh/sshd_config(bunu düzenleyebilir köküne ihtiyacımız sudo nano /etc/ssh/sshd_config), dosyanın üst kısmında bir çizgi vardır:

# What ports, IPs and protocols we listen for
Port 22

Bunu istediğin şekilde değiştir:

# What ports, IPs and protocols we listen for
Port 2992

SSH sunucusunu yeniden başlatın sudo service ssh restartve yönlendirici üzerindeki bağlantı noktasını iletin.


Ancak bu kullanım için SSH tünellerinin yapılacak doğru şey olup olmadığını düşünürdüm. Belki de ev ağınıza özel bir VPN sunucusu kurmalısınız? Bu , VPN için gereken uygun güvenlik bilgilerine sahip olmanız koşuluyla, tüm ev ağınıza istediğiniz yerden erişebilmenizi sağlar . Ek olarak, bir VPN ile daha az ek yük vardır; Genelde yalnızca bir makine için bir bağlantı noktası iletmeniz gerekir.


2
ISS'niz IPv6'yı desteklemiyorsa, IPv6 adreslerini almak için bir IPv6 tünel aracısı kullanabilirsiniz.
André Borie

1
"Bu özellik" ile, bir limanı farklı bir limana iletmeyi mi kastediyorsunuz?
Liu Siyuan,

@LiuSiyuan Yep. Garip olduğunu biliyorum ama başa çıkamayan bazı yönlendiriciler gördüm. Eski ISS tarafından sağlanan yönlendiricim bile deneyemedi.
Kaz Wolfe,

IPv6 kısmını pek anlamadım. IPv6 adresleri sağlayan tüm ISS'lerin size ağdaki her cihaz için (tutarlı) farklı bir tane verdiğini varsayalım mı?
jjmontes

1
@jjmontes Eğer ISS'niz yetkin ise, tam / 64 (veya daha az, ancak yine de her makineye bir tane atamak için yeterli) alacaksınız
Kaz Wolfe

19

Bu sorunu çözmenin kolay bir yolu, yönlendiricinizden makinenizdeki 22 numaralı bağlantı noktasına farklı bağlantı noktalarını eşlemektir. Örneğin, yönlendiricinizde aşağıdaki ayarlara sahip olabilirsiniz (yönlendiricinizde IP varsayarak 1.2.3.4)

1. 1.2.3.4:22   --> ubuntu:22
2. 1.2.3.4:8888 --> raspberrypi:22
3. 1.2.3.4:9999 --> windows:22 (or some other port)

Sonra ssh kullandığınızda, kullanmak istediğiniz bağlantı noktasını yazarak belirtin.

$ ssh <username>@<router ip> -p <your port>

Şimdi tüm makinelerinize bağlanabilmelisiniz.


11

Bilgisayarınızdan birinin sürekli çalıştığını biliyorsanız, ssh proxy'si olarak kullanma olanağınız da vardır.

Diyelim ki dış IP adresiniz için bir etki alanı adı ayarınız var (ör. myhome.dyndns.com ya da her neyse), yapacağınız şey bir bilgisayara bağlanmaktır (örneğin ahududu her zaman çalışır durumdadır ve bağlantı noktasını yönlendiricinizden yönlendirirsiniz). o), ssh bağlantılarınız:

okul -> (yönlendirici, burada saydam) -> ahududu -> ubuntu veya pencereler

şimdi, okuldaki ~ / .ssh / config klasörünüze satırları ekleyin:

Host ubuntu 192.168.1.51
    Hostname ubuntu (change to match your setup)
    User myraspberryuser  (change it ;-) )
    IdentityFile ~/.ssh/id_rsa   (The path to your private key, on the school computer, better on an usb key if public computer)
    ForwardAgent yes
    RequestTTY yes
    ProxyCommand ssh -W %h:%p %r@myhome.dyndns.com

Daha sonra bağlanmak için:

ssh-add ~/.ssh/id_rsa # to do only once per session
ssh myuser@ubuntu (login without password)

Şu andan itibaren, ssh ubuntu yazarsanız, bilgisayar önce ahududu ile bağlantı kurar ve ardından ubuntu bilgisayarına bir ssh oturumu başlatır.

Yönlendirmeyi tercih ettiğiniz bağlantı noktası ne olursa olsun, /etc/sshd.conf dosyasındaki parolayı devre dışı bırakmanızı, yalnızca ssh tuşuyla giriş yapmanıza izin vermenizi öneririm. Bu şekilde, anahtarı ahududu ve ubuntu üzerine ayarlarsanız, 'ForwardAgent' parametresiyle, yalnızca anahtarın kilidini açmanız gerekir ve daha sonra bağlanmak için şifre gerekmez. Bu şekilde, ssh'inizde botlar giriş yapmaya çalışıyor olsa bile, şifre girişine izin vermediğiniz için giriş yapamayacaksınız.

Bonus, bu aynı zamanda scp, scp foo ubuntu ile de çalışır: / tmp / foo, aynı ayarları başka parametreler olmadan kullanacaktır. Bonus 2, bu kurulum evde herhangi bir değişiklik gerektirmez, yarın siz ve başka bir bilgisayar, ssh config'inizdeki kodu kopyalayıp yapıştırın, ana bilgisayarı ve ipi değiştirin, işte bu, yönlendiricide yeni bir bağlantı noktası açmaya gerek yok


Bir makineyi SSH için bir ara ürün olarak kullanmanın bir dezavantajı var mı? Diyelim ki Ahududu Pi'mi ağdaki diğer bilgisayarlara bağlamak için kullanıyorum, performansı görevi etkiler mi?
acourchesne 21:16

1
Evet, ahududu, sunucu ve istemci görevi görmesi gerektiğinden verimi sınırlayabilir. Yeterince eminseniz, aynı sonucu ssh tünelleriyle elde edebilirsiniz. Bu şekilde, ahududu sadece bir sunucu görevi görür, ancak okul bilgisayarınızın iki istemci yapması gerekir.
16'da

4

Bunu yapıyorum - rpi'yi her zaman doğrudan yönlendiriciye takılıyorum ve takılıyorum (çalıştırması en ucuz olanıdır) ve sadece ssh'ye, ardından ondan diğerlerine sıçramak - hiç bir zaman çok fazla dikkat gerektirmez.

Ayrıca, bir ssh borusu üzerinden bir GUI VNC / RDP yapmak, biraz eğlenmek veya masaüstü bilgisayarınızdaki bir sunucuya göz atarken özel kalmasını sağlayan bir bağlantı noktası iletmek de mümkündür.

Bu cevabı eklediğim nedeni gidip size bazı önerilerde bulunmak.

1) 22'den farklı bir bağlantı noktası kullanın. PI'de 22 bırakabilirsiniz, ancak yönlendiricinizdeki gelen bağlantı noktasını 10.000'in üzerinde bir değerle değiştirin. Aksi takdirde, günde bir düzineden yüzlerce saldırı alırsınız - Bir sömürünün bulunduğu ikinci bir SSH sunucusuna sahip olmak biliniyor.

2) Kullanıcı adı / şifre yerine sertifika kullanın - kullanıcı adı / şifre girişini tamamen devre dışı bırakın.

3) Eğer ip adresiniz değişebilirse, kendinize bir DNS hosthame almak için bir dyndns tipi servis kullanın (noip kullanın, ücretsiz ve ip adresinizi güncellemek için bir Linux istemcisini destekliyorlar - sadece apt-get şimdi pi). Bunu ücretsiz olarak sunan başka birkaç şirket var.

4) Pi'nizi (ya da neyin içine girdiğinizi) güncel tutun (sudo apt-get update). Şimdiye kadar ssh'nin oldukça iyi olduğuna inanıyorum, ama https’e de inandım ...


3

Bunun bir cevaptan çok bir yorum olarak daha iyi olup olmayacağından şüphe ediyordum, ama yine de buraya göndereceğim.

Bunu yapmadan önce düşünmeniz gereken bazı şeyler:

  1. Sistemlerinizi internete açacaksınız, bu yüzden iyi takıldıklarından ve güvenlik yapılandırmanızın sertleştiğinden emin olmalısınız (örn. Root girişine izin vermeyin ve şifreler yerine pubkey kullanmayın).
  2. Genel IP'niz (bkz. Whatismyip.com) değişebilir, ISS'nize bağlı olarak günlük veya neredeyse hiç değişmeyebilir. Bu, halka açık IP’nizi çözmenin bir yolunu bulmanız gerektiği anlamına gelir. Whatismyip.com'u her gün ev ağınızdan ziyaret edebilir, bir uygulama oluşturabilir veya değişen genel IP'nizi statik bir etki alanı adıyla eşlemek için Dinamik DNS (DynDNS) kullanabilirsiniz.
  3. IPv4 ve NATing ile ilgili tüm güçlükleri atlamak için IPv6'yı kullanmak istiyorsanız, IPv6'yı konuşabilmeniz için cihazlarınıza, yönlendiricinize, ISS'nize, ihtiyacınız olacak. ISS'niz IPv6'yı desteklemediğinde size yardımcı olabilecek bazı hizmetler var, ancak cihazlarınız ve yönlendiriciniz yine de konuşmak zorunda kalacak.
  4. İnternete ne kadar çok port ve cihaz açarsanız, saldırı alanı o kadar büyük olur. Ağınızda bir atlama kutusu kullanmanızı ve yalnızca bu cihaza internetten SSH erişimi vermenizi öneririm. Jump-box, yönlendiriciniz üzerinden internete aktardığınız çok sertleştirilmiş bir sistem olacaktır. Bu kutuya bağlandığınızda, iç ağınıza SSH kurabilirsiniz. Atlama kutusu temelde başka bir Ahududu Pi olabilir. Özel bir cihaz kullanmayı, mümkün olduğunca sertleştirebilmeyi önerebilirim (diğerleri arasında mümkün olduğunca az servis çalıştırarak).
  5. (4a) SSH'nizin içine atlama kutusu yerleştirmek yerine, okuldaki cihazınızdan ev ağınıza göz atmanıza izin veren bir VPN sunucusu da ayarlayabilirsiniz (giden VPN bağlantılarına izin veriliyorsa).
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.