NAT yönlendiricisinin arkasında olan SSH konusunda birine (büyükanne gibi) nasıl yardımcı olabilirim?


14

Diğerlerine hızlı bir şekilde yardım etmek için SSH özellikle GNU Screen ile birlikte çok kullanışlıdır. Kullanıcıların bir NAT yönlendiricisinin arkasında olması yaygındır. Kullanıcı yönlendiriciyi yapılandırabilse bile, parolayı hatırlamak, doğru seçenekleri bulmak vb.

Peki, bir NAT yönlendiricisinin arkasındaysa, SSH konusunda başkalarına yardım etmenin en kolay yolu nedir?

Şu anda insanlara aşağıdaki komutu çalıştırmak için bir terminal açmasını ve IP'lerini http://ip.appspot.com/ gibi bir siteden geçirmelerini söylüyorum :

sudo apt-get install openssh-server ssh-import-id && ssh-import-id lekensteyn

Açıkçası, bir NAT yönlendiricisinin arkasındaysa veya kişisel bir güvenlik duvarı yapılandırılmışsa bu işe yaramayacaktır. Yani, şöyle bir şey var:

sshd --accept-help-from lekensteyn

Teamviewer gibi alternatifler aramıyorum, sadece SSH gibi bir kabuk. Açık kaynak kodlu olmalıdır.

Yanıtlar:


13

Kendi bilgisayarınız SSH bağlantılarını kabul edebiliyorsa , Pavlos G.'nin ek bir bilgisayar olmadan bağlandığı tekniği kullanmanın bir yolu vardır .

İlk olarak, arkadaşınızın şu şekilde bağlanacağı ayrıcalıklı bir * kullanıcıya ihtiyacınız var:

sudo adduser reverse --shell /bin/false

Arkadaşınıza tünele başlamasını söyleyin:

ssh -N -R 62222:localhost:22 reverse@lekensteyns-server

Ardından, kendi bilgisayarınızda ( lekensteyns-server) ters bağlantıyı başlatın:

ssh -p 62222 localhost

* Güvenlik konusunda uygun olmayan bir kullanıcı oluşturmayı önerebilecek kadar bilgim yok. Bu muhtemelen ayrı bir soruda ele alınması gereken bir şey.



2

Özel ihtiyaçlarınıza göre, muhtemelen:

  1. Onlardan bana yönlendiricinin şifresini söylemelerini isteyin
  2. Yalnızca 22 numaralı bağlantı noktası için oturum açma ve yükleme bağlantı noktası iletme
  3. SSH (veya açık ekstra bağlantı noktalarına ihtiyacınız varsa SSH tüneli) üzerinden bağlanın ve işi tamamlayın.

Ayrıca , bu çözümün teknik olarak çalışmak için bir tane daha orta orta bilgisayara ihtiyacı olmasına rağmen , ters ssh tünelini deneyebileceğinizi de unuttum .

Daha fazla bilgiyi burada bulabilirsiniz


1) yönlendirici erişimi genellikle halk için yasaklandığından muhtemelen işe yaramayacaktır.
Lekensteyn

2

Zaten IPv6'ları yoksa genellikle bir IPv6 tüneli (sixxs.net veya he.net'ten) kurdum ve daha sonra bilgisayarın statik bir adresi var ve NAT ile uğraşmak zorunda değilim. Ayrıca anahtar tabanlı kimlik doğrulaması ayarlamayı da seviyorum (o zaman size şifrelerini söylemek zorunda değiller).

Sixxs'in kendi istemciniz vardır. Neredeyse tüm NAT'ların arkasında çalışır ve IPv4 adresi değiştiğinde otomatik olarak güncellenir. Nasıl kurulacağıyla ilgili talimatları var ve Ubuntu için paketlenmiştir.

Hurricane Electric, IPv6 paketlerinin IPv4 paketinin yükü olarak gönderildiği bir tünel kullanır. Sixx'lerin aksine, TCP / UDP kullanılmaz. Bu, geride olduğunuz NAT'ın PROTOCOL 41'i (bağlantı noktası değil) iletmeyi desteklemesi gerektiği ve NAT'ın arkasında yalnızca bir bilgisayarın kullanabileceği anlamına gelir. Bunun gibi bir tünel kullanan yazılım Ubuntu'da yerleşiktir.

HE için şöyle bir şey kullanıyorum /etc/network/interfaces:

auto he-ipv6
iface he-ipv6 inet6 v4tunnel
     endpoint 216.218.226.238
     address  2001:470:a29f::2
     netmask  64
     ttl 64
     up ip -6 route add default dev he-ipv6
     down ip -6 route del default dev he-ipv6

Yapmanız gereken diğer şey, tünel uç noktanızı güncellemektir. Harici IP'nin ne zaman değiştiğini bilmediğiniz için, uç noktayı birkaç dakikada bir güncellemeye çalışmanız gerekir. Böyle bir şey kullanabilir ve cron'dan çalıştırabilirsiniz:

#!/bin/sh
echo -n "Hurricane Electric Proto-41 tunnel endpoint update: "
#(C) 2010 Erik B. Andersen This script is licensed under the latest version of the
# AGPL published by the Free Software Foundation at http://www.gnu.org/licenses/ .
####Set these for each different site#########
pass="passwordhere"
user_id="a765b8e2f474667dcb56e08c5f1aa05b"
tunnel_id="97817"
####Past here doesn't need to be changed######
wget -4 "https://ipv4.tunnelbroker.net/ipv4_end.php?ipv4b=AUTO&pass=$(echo -n "${pass}" | md5sum | grep -o -E "[0-9a-fA-F]{32}")&user_id=${user_id}&tunnel_id=${tunnel_id}" -O /dev/null -o /dev/null --no-check-certificate
echo " Done"

1
Böyle bir tüneli doğru bir şekilde kurmak için ne gibi çaba gösterilmelidir? Bu bağlantı elbette anahtar tabanlıdır, bu yüzden ssh-import-id kullanıyorum
Lekensteyn

Gerçekten de, bu hile hakkında daha fazla bilgi edinmek isterim.
Rafał Cieślak

0

Yıllar boyunca, OP'nin tam olarak sorduğu şeyi yapmak için bir GUI geliştirdim ... ancak Pavlos tarafından önerildiği gibi genel IP ile üçüncü bir sunucuya ssh erişimi gerektiriyor. Burada debian paketleri ve talimatları bulabilirsiniz:

http://pietrobattiston.it/reachme

Dikkat edin (hala) ilk yapılandırmaya dikkat edemez - yani, şifresiz bağlantı için kendinize rsa anahtarlarını ayarlamanız gerekir. Kurulduktan sonra, "reachthem", "reachme" nin bağlı olup olmadığını görmenizi ve bir ssh kabuğu açmanızı / dosya sistemine göz atmanızı / ekranı görüntülemenizi (deneysel) sağlar.

Açıkçası, ændrük'ün cevabında olduğu gibi, bilgisayarınızın kendisinde ortak bir IP varsa üçüncü bir bilgisayara ihtiyacınız yoktur. Ve açıkça, GUI'nin yararı, uzak kullanıcının bir terminale herhangi bir komut girmek zorunda olmamasıdır ... ancak uzak kullanıcının reachme yüklemesi gerektiğinde bu avantajın bir kısmı kaybolur. Bu yüzden her zaman Ubuntu'yu kurduğum herkese reachme kurar ve kurarım.

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.