1.- Instala y ejecuta solo lo que necesitas

Muchas distribuciones o paquetes pueden iniciar ciertos servicios, ejecutándose en diferentes puertos. Eso podría suponer un riesgo de seguridad. Entonces, abre la terminal y ejecuta:

netstat -npl

La salida mostrará que servicios se están ejecutando y en que puertos. Si detecta algún servicio que no debería estar funcionando, deténgalo. También debe vigilar los servicios que están habilitados y se ejecutan al inicio del sistema. Puede comprobarlo ejecutando el siguiente comando en sistemas que ejecutan systemd:

systemctl list-unit-files --type=service | grep enabled

Dependiendo de su sistema, obtendrá una salida como la que se muestra en la Figura 1 anterior. Si encuentra algún servicio no deseado, puede deshabilitarlo usando el comando systemctl:

systemctl disable service_name

2.- Restringir el acceso a su servidor

No es buena práctica utilizar el acceso root. Para lo cual se debe crear un nuevo usuario, de lo contrario no se podrá acceder.

Agregar usuario para Red Hat / Centos

A.- Agregar usuario

useradd nombreusuario

B.- Crear contraseña para el usuario:

passwd nombreusuario

Ingresar la contraseña respectiva.

C.- Ahora se deben dar poderes «sudo».  Para lo cual ejecutar el siguiente comando:

EDITOR=nano visudo

D.- Buscar la siguiente línea:

# %wheel ALL=(ALL) ALL

E.- Descomentar la línea (el símbolo # significa que está comentado; simplemente eliminar el símbolo para descomentar) para que se vea así:

%wheel ALL=(ALL) ALL

F.- Guardar y cerrar el archivo. Si el usuario no pertenece al grupo de wheel, se puede agregar ejecutando este comando:

# usermod -aG wheel nombreusuario
Agregar usuario para Ubuntu / Debian

A.- Agregar usuario es el siguiente:

adduser nombreusuario

Responder algunas preguntas que hará el sistema, incluida la creación de la contraseña para este usuario.

B.- Una vez creado, proporcionar al usuario los poderes de sudo:

gpasswd -a nombreusuario sudo

Abrir otra ventana del terminal e iniciar sesión en el servidor como el usuario recién creado y probar algunos comandos con sudo.

3.- Deshabilitar root

Para hacerlo, abrir el archivo de configuración sshd:

sudo vi /etc/ssh/sshd_config

A continuación, buscar la línea comentada que dice:

#PermitRootLogin yes

Para editar el archivo, presionar la letra «A» del teclado y cambiar a:

#PermitRootLogin no

Luego presionar ESC para salir de la edición y finalmente guardar presionando ingresar los siguientes caracteres y presionar ENTER

:wq

Reiniciar servicio:

Para Red Hat / Centos:

sudo /etc/init.d/sshd restart

Para Ubuntu / Debian:

sudo /etc/init.d/ssh restart

Importante: No desconectarse del servidor todavía ya que se debe comprobar que el nuevo usuario tiene acceso vía SSH, de lo contrario no se podrá ingresar al servidor.
Si todo funciona bien, cerrar la sesión del servidor de forma segura como root.

4.- Cambiar puerto

De esta forma se dificulta el acceso vía SSH ya que el puerto por defecto (22) estará cerrado

Abrir archivo sshd_config (esta vez como sudo, porque ya no se puede iniciar sesión en el servidor como root):

sudo vi /etc/ssh/sshd_config

Buscarla siguiente línea comentada:

#Port 22

Para editar el archivo, presionar la letra «A» del teclado y cambiar al puerto elegido. Importante es verificar que este puerto no sea utilizado por otro servicio.

Para esta prueba se usará el puerto 1977:

Port 1977

Luego presionar ESC para salir de la edición y finalmente guardar presionando ingresar los siguientes caracteres y presionar ENTER

:wq

Una vez más, antes de cerrar sesión en el servidor, verificar la configuración abriendo otra ventana de terminal e iniciar inicie sesión usando este patrón:

ssh -p{port_number} nombreusuario@server_IP

Ejemplo:

ssh -p1977 nombreusuario@server_IP

 

Fuente: https://www.linux.com/learn/how-make-your-linux-server-more-secure