¿Cómo puedo configurar SSH para que esté restringido a mi red local?

33

Estoy tratando de vincular mi nueva computadora portátil con 11.10 a mi vieja computadora portátil con 8.04 a través de mi enrutador usando SSH.

Esta pregunta se hace y responde en ubuntuforums aquí:

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

Pensé que sería útil tener una respuesta más definitiva aquí.

Nota: Primero necesitaba instalar openssh-server en la computadora portátil a la que intentaba conectarme y abrir el puerto SSH en mi firewall usando el iniciador de fuego.

klenwell
fuente
¿podría decirnos qué no es lo suficientemente "definitivo" sobre la respuesta de slooow en ese hilo? De lo contrario, su pregunta parece ambigua.
d_inevitable
@d_inevitable Para uno, no es la única respuesta y no se indica como la correcta. Es el que habría elegido, pero es por eso que pensé que sería útil migrar esta pregunta. También podría ayudar incluir direcciones generales, o un enlace útil, sobre la configuración de SSH entre dos máquinas locales.
klenwell

Respuestas:

46

Puede restringir el acceso a su servidor ssh de muchas maneras.

En mi opinión, lo más importante es usar las claves ssh y deshabilitar la autenticación de contraseña.

Consulte las siguientes páginas wiki para más detalles.

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

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

Puede restringir el acceso a una subred específica de varias maneras. Asumiré que su servidor ssh está en la subred 192.168.0.0/16 con una dirección IP de 192.168.0.10, ajústelo en consecuencia;)

Enrutador

Una línea de defensa es usar un enrutador. Asegúrese de deshabilitar UPnP y no permita el reenvío de puertos.

Configuración SSH

Puede configurar varias opciones en /etc/ssh/sshd_config. Uno es la dirección de escucha. Si configura una dirección de escucha en su subred. Una dirección IP privada no es enrutable a través de Internet.

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

ListenAddress 192.168.0.10

También puede usar AllowUsers

AllowUsers [email protected]/16

Algo relacionado, también puedes cambiar el puerto

Port 1234

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

Contenedor TCP

Como se describe en la publicación de los foros, puede usar TCP Wrapper. TCP wrapper utiliza 2 archivos /etc/hosts.allowy/etc/hosts.deny

Edite /etc/hosts.allowy agregue su subred

sshd : 192.168.0.

Editar /etc/hosts.denyy negar todo

ALL : ALL

Ver también http://ubuntu-tutorials.com/2007/09/02/network-security-with-tcpwrappers-hostsallow-and-hostsdeny/

Cortafuegos

Por último, puedes cortafuegos en tu servidor. Puede usar 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

No utilice DROP en iptables, consulte 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 tiene una interfaz gráfica

GUFW

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

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

Pantera
fuente
Algunas redes usan 10.0.0.0 como dirección IP, en ese caso sustituya 192.168.0.0/24 por 10.0.0.0/8 para permitir el rango 10.0.0.0-10.255.255.255. Si desea permitir una sola IP, use algo como 192.168.1.2/32. Se puede encontrar una explicación muy detallada en [ serverfault.com/q/49765/51929font>(¿Cómo funciona la división en subredes?)
Lekensteyn
1
Por favor, no use DROP en iptables - Ver chiark.greenend.org.uk/~peterb/network/drop-vs-reject
Panther
Esa página no menciona las IP falsificadas como una posible razón para usar DROP sobre RECHAZAR. Sin embargo, esta respuesta en Sec.SE explica por qué no es realmente relevante (los paquetes fuente son más grandes que los paquetes devueltos).
Lekensteyn
@Lekensteyn: no vi una discusión sobre IP falsificada en ese enlace. Como sugiere, DDoS y la IP falsificada están más allá de esta discusión y no estoy convencido de que DROP sea superior a RECHAZAR en casi nada. Los DDos son complejos y sin información sobre la causa de los DDos es imposible de defender. Por ejemplo, he visto a WP utilizado como DDoS y la resolución del problema está en la configuración adecuada de WP y poco o nada que ver con iptables.
Panther
ListenAddressparece la solución más simple y elegante
code_monk
1

ssh (shell seguro) se usa para acceder y transferir datos de forma segura (par RSA_KEYS usado). Puede acceder a los datos usando ssh de dos maneras 1. Línea de comando 2. usando el navegador de archivos

Línea de comando: para esto no necesita instalar nada. La primera tarea es iniciar sesión en otra computadora.

ssh other_computer_username@other_computer_ip

Este comando le pedirá una contraseña que es la contraseña de la otra computadora (para un nombre de usuario específico). Acaba de iniciar sesión en el shell de otra computadora. Piensa que esta terminal es como la terminal de la computadora. Puedes hacer todo usando shell a otra computadora que puedes hacer en tu computadora

Explorador de archivos: necesita instalar openssh-server

sudo apt-get install openssh-server

Para iniciar sesión, vaya a archivo-> connectToServer

ingrese la descripción de la imagen aquí

shantanu
fuente
Las instrucciones de la línea de comando fueron lo primero que intenté. Pude hacer ping a mi otra computadora en su IP LAN. Pero cuando trato de SSH, se cuelga. Así que supongo que primero tengo que configurar mi otra computadora para permitir el acceso SSH.
klenwell
asegúrese de que su enrutador no bloquee 22 puertos o ssh
shantanu
Gracias. Ya sabía todo lo que mencionaste por experiencia, pero fue muy fácil escucharlo simple y estructurado de otra persona.
lakesare