comment
IRC Chat
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

Configura un servidor SSH en Ubuntu para acceder a tu equipo de forma remota

  • 2 Respuestas
  • 2101 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado 54NDR4

  • *
  • Underc0der
  • Mensajes: 68
  • Actividad:
    0%
  • Reputación 0
  • Mis Besos desencriptadores ven tu Codigo Fuente ♥
    • Ver Perfil
    • Email
« en: Abril 07, 2013, 11:04:54 pm »


En este manual hablaremos sobre el SSH y cómo configurarlo para acceder remotamente a nuestro equipo con GNU/Linux, también podremos acceder a nuestros routers si tienen firmwares basados en Linux como Tomato RAF.

¿Qué es SSH?

Las siglas corresponden a Secure SHell. Sirve para acceder a máquinas remotas, igual que hace telnet, pero de una forma segura ya que la conexión va cifrada. El transporte se hace mediante TCP, por tanto nos garantiza que las órdenes van a llegar a su destino (conectivo, fiable, orientado a conexión).

Seguridad

El cifrado de SSH proporciona autenticidad e integridad de los datos transmitidos por una red insegura como internet.

Utiliza llaves públicas para la autenticación en la máquina remota.

SSH no sólo sirve para usar comandos en máquinas remotas, sino para transferencias de ficheros de forma segura ya sea por SCP o sFTP y servicios de escritorio remoto.

Mirad 25 formas para sacarle partido al SSH: You are not allowed to view links. Register or Login

Instalación

Vamos a usar OpenSSH por tanto vamos a instalarlo:

Código: Bash
  1. sudo apt-get install openssh-server

Ahora procedemos a su configuración.

Comandos que debemos tener en cuenta
Para editar la configuración del servidor SSH debemos hacer en consola:

Código: Bash
  1. sudo gedit /etc/ssh/sshd_config

Para arrancar el servidor:

Código: Bash
  1. sudo /etc/init.d/ssh start

* Starting OpenBSD Secure Shell server sshd

Para parar el servidor:

Código: Bash
  1. sudo /etc/init.d/ssh stop

* Stopping OpenBSD Secure Shell server sshd

Para reiniciar el servidor:

Código: Bash
  1. sudo /etc/init.d/ssh restart

* Restarting OpenBSD Secure Shell server sshd

Configuración del servidor

Una vez instalado, vamos a configurar el servidor, hacemos en consola:

Código: Bash
  1. sudo gedit /etc/ssh/sshd_config

Y podremos editar sus opciones, os pongo mi fichero de configuración y una explicación de lo que podéis cambiar.

Código: You are not allowed to view links. Register or Login
# Package generated configuration file
# See the sshd_config(5) manpage for details

# Ponemos el puerto a escuchar por el SSH, por defecto es el 22. Deberemos abrir un puerto en nuestro router redirigiendo hacia la IP interna de la máquina donde lo tengamos.
Port 1234

# Usaremos el protocolo 2 de SSH, mucho más seguro, por tanto forzamos a que siempre conecten por protocolo 2.
Protocol 2

# HostKeys for protocol version 2. El lugar donde se guardan las keys.
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key

#Privilege Separation is turned on for security
UsePrivilegeSeparation yes

# Lifetime and size of ephemeral version 1 server key
KeyRegenerationInterval 3600
ServerKeyBits 2048

# Logging
SyslogFacility AUTH
LogLevel INFO

# Authentication, importante la parte PermitRootLogin…es vuestra decisión
LoginGraceTime 120
PermitRootLogin no
StrictModes yes

RSAAuthentication yes
PubkeyAuthentication yes
#AuthorizedKeysFile    %h/.ssh/authorized_keys

# Don’t read the user’s ~/.rhosts and ~/.shosts files
IgnoreRhosts yes

# For this to work you will also need host keys in /etc/ssh_known_hosts
RhostsRSAAuthentication no

# similar for protocol version 2
HostbasedAuthentication no

# Uncomment if you don’t trust ~/.ssh/known_hosts for RhostsRSAAuthentication

#IgnoreUserKnownHosts yes

# To enable empty passwords, change to yes (NOT RECOMMENDED)
PermitEmptyPasswords no

# Change to yes to enable challenge-response passwords (beware issues with
# some PAM modules and threads)
ChallengeResponseAuthentication no

# Change to no to disable tunnelled clear text passwords
#PasswordAuthentication yes

# Kerberos options
#KerberosAuthentication no
#KerberosGetAFSToken no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes

# GSSAPI options
#GSSAPIAuthentication no
#GSSAPICleanupCredentials yes

X11Forwarding yes
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes
#UseLogin no

#MaxStartups 10:30:60
#Banner /etc/issue.net

# Allow client to pass locale environment variables
AcceptEnv LANG LC_*

Subsystem sftp /usr/lib/openssh/sftp-server

UsePAM yes
MaxAuthTries 2
Si usamos SFTP enjaulado debemos poner esto y comentar la línea (Subsystem sftp /usr/lib/openssh/sftp-server):

Subsystem sftp internal-sftp
Match user servidor
ChrootDirectory /home/jail/home
AllowTcpForwarding no
ForceCommand internal-sftp

Como podéis ver, usando openssh-server también tenéis levantado un servidor sFTP.

Enjaular un usuario con OpenSSH en Ubuntu
Imaginemos que queremos crear un usuario a nuestro amigo Sanobis, pero no queremos que pueda ver todos los archivos del sistema, es decir, vamos a enjaularle en su directorio /home/ únicamente.

Nos bajamos este archivo:

You are not allowed to view links. Register or Login

Y lo ponemos en el directorio raíz por comodidad.

Le asignamos permisos 700

Código: Bash
  1. sudo chmod 700 make_chroot_jail.sh

A continuación escribimos:

bash make_chroot_jail.sh sanobis

Tecleamos yes, y a continuación metemos la clave que queramos que tenga (estamos creando un usuario nuevo).

Ahora, su directorio enjaulado es /home/jail/home/sanobis

Salimos y entramos por ssh y veremos que efectivamente no podrá salir de ese directorio. No hace falta que reiniciemos el servidor SSH.

Opciones adicionales de Seguridad

Podemos conectarnos al servidor sin usuario clave, utilizando un certificado RSA que proporcionará mucha más seguridad, pero como siempre que sucede en estos casos…es más incómodo y no siempre vas a llevar encima tu certificado, por tanto esta parte la voy a obviar.

Podemos también instalar el programa fail2ban para banear IPs que hagan muchos intentos de conexión fallidos (que metan mal la clave).

Podemos instalarlo poniendo

Código: Bash
  1. sudo apt-get install fail2ban

Ahora hacemos:

Código: Bash
  1. sudo gedit /etc/fail2ban/jail.local

Y pegamos esto:

[ssh]
enabled = true
port = 1234
filter = sshd
logpath = /var/log/auth.log
maxretry = 3

Y lo iniciamos,paramos y reiniciando haciendo como si fuera el SSH, en este caso start=iniciar:

Código: Bash
  1. sudo /etc/init.d/fail2ban start

Para ver los LOGS de conexión haced esto:

Código: Bash
  1. cd /var/log/
Código: Bash
  1. gedit auth.log
También tenemos otro programa dedicado exclusivamente al SSH, se llama DenyHost y tiene una gran base de datos de IPs conocidas como atacantes. Con esto estaremos un poquito más seguros.

Fuente: ADSLZONE

besos  :-*
« Última modificación: Junio 05, 2015, 12:03:24 pm por EPSILON »

Desconectado antraXactive

  • *
  • Underc0der
  • Mensajes: 3
  • Actividad:
    0%
  • Reputación 0
  • dpkg_remove --purge sgae
    • Ver Perfil
    • http://www.blogdemigueldiaz.com
« Respuesta #1 en: Abril 09, 2013, 08:47:59 am »
Muy bueno,

Felicidades.

Solo añadir de parametrizar el MaxStartUps, este define el maximo de conexiones sin autentificar por IP. Al tenerlo comentado generalmente no añade límite y esto puede provocar un ataque de denegación de servicio cuando se llene el maximo de slots.
You are not allowed to view links. Register or Login

Desconectado Adastra

  • *
  • Underc0der
  • Mensajes: 42
  • Actividad:
    0%
  • Reputación 0
  • Endless Learner
    • Ver Perfil
    • thehackerway
    • Email
« Respuesta #2 en: Abril 10, 2013, 04:11:48 pm »
Muy buen aporte 54NDR4
Seguro que le servirá a más de uno...  ;)

Un Saludo.
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login

"Nunca discutas con un idiota, podria no notarse la diferencia"
Kant.

 

¿Te gustó el post? COMPARTILO!



WhoUr herramienta para recopilar informacion de una web y buscar webs a vul sqli

Iniciado por jopcode

Respuestas: 0
Vistas: 1000
Último mensaje Noviembre 30, 2017, 10:57:00 pm
por jopcode
mod_security y mod_evasive en GNU/Linux CentOS (para detener ataques DDOS).

Iniciado por july

Respuestas: 5
Vistas: 2927
Último mensaje Noviembre 21, 2012, 05:30:47 am
por Adastra
Script en Python + Perl para explotar la vulnerabilidad ASP.net Relleno Oracle.

Iniciado por M@rkd0wn

Respuestas: 0
Vistas: 1485
Último mensaje Agosto 04, 2015, 03:30:46 am
por M@rkd0wn
Libro muy bueno para la administración de servidores montados en Debian.

Iniciado por july

Respuestas: 0
Vistas: 2254
Último mensaje Noviembre 20, 2012, 11:38:59 am
por july
Evitar y detectar si una Web utiliza nuestro navegador para la minería

Iniciado por Gabriela

Respuestas: 2
Vistas: 2316
Último mensaje Marzo 19, 2018, 11:38:55 pm
por KiddArabic