Come posso configurare SSH in modo che sia limitato alla mia rete locale?


33

Sto cercando di collegare il mio nuovo laptop con 11.10 al mio vecchio laptop con 8.04 tramite il mio router usando SSH.

Questa domanda viene posta e risposta su ubuntuforums qui:

http://ubuntuforums.org/showthread.php?t=1648965

Ho pensato che sarebbe stato utile avere una risposta più definitiva qui.

Nota: dovevo prima installare openssh-server sul laptop a cui stavo cercando di connettermi e aprire la porta SSH nel mio firewall usando firestarter.


puoi per favore dirci cosa non è abbastanza "definitivo" sulla risposta di Slooow su quel thread? Altrimenti la tua domanda sembra ambigua.
d_inevitable

@d_inevitable Per uno, non è l'unica risposta e non è altrimenti indicato come quello corretto. È quello che avrei scelto, ma è per questo che ho pensato che sarebbe stato utile migrare questa domanda. Potrebbe anche essere utile includere indicazioni generali o un collegamento utile sulla configurazione di SSH tra due macchine locali.
Klenwell,

Risposte:


46

Puoi limitare l'accesso al tuo server SSH in molti modi.

IMO il più importante è usare le chiavi ssh e disabilitare l'autenticazione con password.

Vedere le seguenti pagine wiki per i dettagli

https://help.ubuntu.com/community/SSH/OpenSSH/Keys

https://help.ubuntu.com/community/SSH/OpenSSH/Configuring#Disable_Password_Authentication

È possibile limitare l'accesso a una sottorete specifica in diversi modi. Presumo che il tuo server SSH sia nella sottorete 192.168.0.0/16 con un indirizzo IP di 192.168.0.10, regolare di conseguenza;)

Router

Una linea di difesa è usare un router. Assicurati di disabilitare UPnP e non consentire il port forwarding.

Configurazione SSH

È possibile impostare diverse opzioni in /etc/ssh/sshd_config. Uno è l'indirizzo di ascolto. Se si imposta un indirizzo di ascolto sulla sottorete. Un indirizzo IP privato non è instradabile su Internet.

http://compnetworking.about.com/od/workingwithipaddresses/f/privateipaddr.htm

ListenAddress 192.168.0.10

È inoltre possibile utilizzare AllowUsers

AllowUsers you@192.168.0.0/16

In qualche modo correlato, puoi anche cambiare la porta

Port 1234

Vedi http://manpages.ubuntu.com/manpages/precise/man5/sshd_config.5.html

Wrapper TCP

Come indicato nel post del forum, è possibile utilizzare TCP Wrapper. Il wrapper TCP utilizza 2 file /etc/hosts.allowe/etc/hosts.deny

Modifica /etc/hosts.allowe aggiungi la tua sottorete

sshd : 192.168.0.

Modifica /etc/hosts.denye nega tutto

ALL : ALL

Vedi anche http://ubuntu-tutorials.com/2007/09/02/network-security-with-tcpwrappers-hostsallow-and-hostsdeny/

Firewall

Infine puoi firewallare il tuo server. Puoi usare iptables, ufw o gufw.

iptables

sudo iptables -I INPUT -p tcp --dport 22 -s 192.168.0.0/16 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j REJECT

Si prega di non utilizzare DROP in iptables, consultare http://www.chiark.greenend.org.uk/~peterb/network/drop-vs-reject

ufw

sudo ufw allow from 192.168.0.0/16 to any port 22

gufw ha un'interfaccia grafica

Gufw

Vedi https://help.ubuntu.com/community/UFW

https://help.ubuntu.com/community/IptablesHowTo


Alcune reti utilizzano 10.0.0.0 come indirizzo IP, in tal caso sostituire 192.168.0.0/24 con 10.0.0.0/8 per consentire l'intervallo 10.0.0.0-10.255.255.255. Se si desidera consentire un solo IP, utilizzare qualcosa come 192.168.1.2/32. Una spiegazione molto dettagliata può essere trovata su [ serverfault.com/q/49765/51929×(Come funziona la sottorete?)
Lekensteyn

1
Si prega di non utilizzare DROP in iptables - Vedi chiark.greenend.org.uk/~peterb/network/drop-vs-reject
Panther

Quella pagina non menziona gli IP falsificati come una possibile ragione per usare DROP su REJECT. Questa risposta su Sec.SE spiega perché non è realmente rilevante (i pacchetti di origine sono più grandi dei pacchetti restituiti).
Lekensteyn,

@Lekensteyn - Non ho visto una discussione sull'IP falsificato in quel link. Come suggerisci, DDoS e IP falsificato sono al di là di questa discussione e non sono convinto che DROP sia superiore a REJECT per quasi tutto. I DDos sono complessi e senza informazioni sulla causa dei DDos è impossibile difenderli. Ad esempio, ho visto WP usato come DDoS e risolvere il problema è nella corretta configurazione di WP e poco o nulla ha a che fare con iptables.
Pantera,

ListenAddresssembra la soluzione più semplice ed elegante
code_monk

1

ssh (Secure Shell) viene utilizzato per accedere e trasferire i dati in modo sicuro (coppia RSA_KEYS utilizzata). Puoi accedere ai dati usando ssh in due modi: 1. Riga di comando 2. usando il browser dei file

Riga di comando: per questo non è necessario installare nulla. La prima attività è accedere a un altro computer.

ssh other_computer_username@other_computer_ip

Questo comando chiederà una password che è la password dell'altro computer (per un nome utente specifico). Hai appena effettuato l'accesso alla shell di altri computer. Pensa che questo terminale sia come il terminale della shell del tuo computer. Puoi fare tutto usando shell su un altro computer che puoi fare sul tuo computer

Browser dei file: è necessario installare openssh-server

sudo apt-get install openssh-server

Per accedere vai a file-> connectToServer

inserisci qui la descrizione dell'immagine


Le indicazioni della riga di comando sono state la prima cosa che ho provato. Sono stato in grado di eseguire il ping del mio altro computer al suo IP LAN. Ma quando provo a SSH, si blocca. Quindi presumo che debba configurare l'altro mio computer per consentire prima l'accesso SSH.
Klenwell,

assicurarsi che il router non blocchi 22 porte o ssh
shantanu il

Grazie. Conoscevo già tutto ciò che hai citato per esperienza, ma è stato molto facile sentirlo semplice e strutturato da qualcun altro.
Lakesare
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.