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:
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
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” .
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.
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.
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
root@ubuntu:/# cp /etc/ssh/sshd_config /etc/ssh/sshd_config.BKP root@ubuntu:/# ls -l /etc/ssh/sshd_config*
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.
ahora buscamos PermitEmptyPasswords
De forma predeterminada, PermitEmptyPasswords está establecido en “no”. Si PermitEmptyPasswords está establecido en “sí” por algún motivo estúpido hay que configurarlo como “no”.
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"