====== ¿Qué es SSHD? ======
sshd (OpenSSH Daemon) es el programa daemon para ssh. Este programa reemplazan a rlogin y rsh que proporcionan comunicaciones encriptadas seguras entre dos hosts que no son de confianza en una red insegura.
¿Qué es apt-get, dpkg y update-rc.d
apt-get: APT es el acrónimo de Advanced Package Tool. Es compatible con la instalación de paquetes a través de Internet (ftp o http).
dpkg: herramienta de empaquetado de Debian que se puede usar para instalar, consultar y desinstalar paquetes.
update-rc.d: el comando update-rc.d se usa para crear iniciar, habilitar, eliminar y eliminar scripts para los servicios enumerados en /etc/init.d
**Requisito previo**
Tener instalado Ubuntu Desktop 12.04 LTS
** Notas de la practica **
En esta practica veremos cómo hacer lo siguiente:
* Actualizaremos la lista de paquetes apt-get.
* Utilizaremos dpkg para buscar en la lista de paquetes para openssh-server.
* Usaremos apt-get para instalar openssh-server.
* Aseguraremos SSHD usando el archivo / etc / ssh / sshd_conf.
* Utilizaremos update-rc.d para crear el inicio de nivel de ejecución y eliminar las secuencias de comandos.
====== Actualización del sistema ======
La actualización se usa para resincronizar los archivos de índice del paquete desde sus fuentes. Es decir, el indicador de "actualización" actualiza la base de datos local de apt-get con los archivos pkglist del servidor Debian. Los índices de los paquetes disponibles se obtienen de las ubicaciones especificadas en **/etc/apt/sources.list.**
root@ubuntu:~# apt-get update
root@ubuntu:~# apt-cache search openssh-server
root@ubuntu:~# apt-get install openssh-server
{{:sad:ubuntu:p8:01.png?400|}}
{{:sad:ubuntu:p8:02.jpg?400|}}
{{:sad:ubuntu:p8:03.png?400|}}
{{:sad:ubuntu:p8:04.png?400|}}
======= Verificación =======
Para verificar que openssh-server esta bien instalado y funcionando
root@ubuntu:~# ps -eaf | grep -v grep | grep sshd
**ps -eaf**, enseña todo los procesos \\
**grep -v grep**, filtra la salida del proceso grep \\
**grep sshd**, solo enseña el proceso sshd
root@ubuntu:~# pgrep -l sshd
**pgrep**, es un comando que cobina los comando **"ps"** y **"grep"** .
{{:sad:ubuntu:p8:05.png?400|}}
====== Script de inicio para openssh-server ======
root@ubuntu:/# ls -l /etc/init.d/ssh
Como parte de la instalación de openssh-server, el script de inicio ssh se coloca en **/etc/init.d/ssh**.
====== Detener e iniciar SSHD con /etc/init.d/ssh ======
root@ubuntu:/# cd /etc/init.d
root@ubuntu:/etc/init.d# ./ssh stop
root@ubuntu:/etc/init.d# ps -eaf | grep -v grep | grep sshd
Observa que no se devuelven líneas, porque sshd no se está ejecutando.
root@ubuntu:/etc/init.d# ./ssh start
root@ubuntu:/etc/init.d# ps -eaf | grep -v grep | grep sshd
Ahora se devuelve una línea, porque sshd se está ejecutando.
{{:sad:ubuntu:p8:05.png?400|}}
====== Detener e iniciar SSHD con el comando "service" ======
root@ubuntu:/etc/init.d# service ssh status
Aviso, si ssh se está ejecutando se muestra un número de proceso, llame al PID (ID del proceso). \\
En mi caso, el PID es 3454
root@ubuntu:/etc/init.d# ps -eaf | grep -v grep | grep 3454
Reemplaza el 3454 por tu PID ssh que te muestra tu ordenador.
root@ubuntu:/etc/init.d# service ssh stop
Este comando todavía detiene el daemon ssh.
root@ubuntu:/etc/init.d# ps -eaf | grep -v grep | grep sshd
Observa que no se muestran procesos para sshd, ya que detuvimos sshd en el comando anterior.
root@ubuntu:/etc/init.d# service ssh start
Reiniciamos sshd, tiene un nuevo PID de 3473 en mi caso.
root@ubuntu:/etc/init.d# ps -eaf | grep -v grep | egrep '(sshd | 3473)'
**ps -eaf**, muestra todos los procesos. \\
**grep -v grep**, filtra el comando grep. \\
**egrep '(sshd | 4280)'**, busca cualquier proceso que contenga la cadena sshd o 4280.
Sustituye el valor 4280 por tu PID :?:
{{:sad:ubuntu:p8:08.png?400|}}
====== Copia de seguridad del fichero /etc/ssh/sshd_config ======
root@ubuntu:/# cp /etc/ssh/sshd_config /etc/ssh/sshd_config.BKP
root@ubuntu:/# ls -l /etc/ssh/sshd_config*
====== modificacion el fichero de configuracion ======
root@ubuntu:/# nano /etc/ssh/sshd_config
Buscamos (^W) PermitRootLogin
y cambiamos yes por no. Al reemplazar "yes" por "no", no permitimos que el usuario root inicie sesión a través de ssh directamente como root.
{{:sad:ubuntu:p8:09.png?400|}}
ahora buscamos **PermitEmptyPasswords**
De forma predeterminada, **PermitEmptyPasswords** está establecido en "no". Si **PermitEmptyPasswords** está establecido en "sí" por algún motivo estúpido FIXME hay que configurarlo como "no".
====== guardamos el fichero y reseteamos el servicio ======
root@ubuntu:/# service ssh restart
{{:sad:ubuntu:p8:10.png?400|}}
{{:sad:ubuntu:p8:11.png?400|}}
====== Crear scripts de para inicar o detener el proceso openssh-server ======
root@ubuntu:/# update-rc.d ssh defaults
El comando update-rc.d se usa para crear inicio, habilitar, eliminar y eliminar scripts para los servicios enumerados en /etc/init.d.
Si se utilizan los valores predeterminados, **update-rc.d** creará enlaces para iniciar el servicio en los niveles de ejecución 2345 y para detener el servicio en los niveles de ejecución 016. De forma predeterminada, todos los enlaces tendrán la secuencia número 20.
Verificar la creacion e inicio de los scripts
root@ubuntu:/# find /etc/rc*.d/* -print | xargs ls -l | grep ssh
**find /etc/rc*.d/* -print**, lista todos los archivos en /etc/rc*.d/* \\
**xargs ls -l**, use el comando xargs para realizar un ls de cada archivo que encuentra. \\
**grep ssh**, solo muestra archivos que contienen ssh. \\
''** Print de pantalla que hay que entregar**''
root@ubuntu:/# grep -v "#" /etc/ssh/sshd_config | grep Permit
root@ubuntu:/# ps -eaf | grep -v grep | grep sshd
root@ubuntu:/# date
root@ubuntu:/# echo "nombre"