Te damos la bienvenida a la comunidad de T!Estás a un paso de acceder al mejor contenido, creado por personas como vos.

O iniciá sesión con
¿No tenés una cuenta?
Hola amigos de Taringa,

Lo prometido es deuda y aquí va un post de cómo maximizar la protección de sistemas Linux y mantenerse así a salvo de intrusos además de proteger la información en sus servidores, pc's o portátiles !!!!

Vamos a empezar

Fail2ban: es una aplicación escrita en Python para la prevención de intrusos en un sistema, que actúa penalizando o bloqueando las conexiones remotas que intentan accesos por fuerza bruta.

Instalación:

Fedora, RHEL, CentOS:

yum install fail2ban

Debian, Ubuntu:

apt-get install fail2ban

Configuración:

cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
nano /etc/fail2ban/jail.local

En la parte llamada [DEFAULT] descomentamos y modificamos #bantime = 3600 dejandolo así:

#bantime = 3600
bantime = 604800

En la parte [sshd] introducimos enabled = true dejándolo así:

#enabled = true
enabled = true

Guardamos con CTRL+O y cerramos con CTRL+X

Iniciamos el servicio:

Fedora, RHEL, CentOS:

systemctl enable fail2ban.service
systemctl start fail2ban.service

Debian, Ubuntu:

service fail2ban start

Denegar acceso root usando ssh:

Para proteger a nuestra máquina vamos a denegar ssh mediante el usuario root. Para ello editamos el archivo /etc/ssh/sshd_config de la siguiente manera:

cp sshd_config sshd_config.bck
nano /etc/ssh/sshd_config

Descomentamos y cambiamos

#Protocol 2
Protocol 2

Descomentamos y cambiamos

#PermitRootLogin yes
PermitRootLogin no

Guardamos con CTRL+O y cerramos con CTRL+X

Iniciamos el servicio:

Fedora, RHEL, CentOS:

systemctl enable sshd.service
systemctl start sshd.service

Debian, Ubuntu:

service sshd start

Denegar acceso a un servidor ssh usando clave y permitir ssh solo con llaves RSA

Si deseamos conectarnos con el PC1 al Servidor1 lo primero que debemos hacer es generar nuestra llave en el PC1. Con nuestro usuario y sin root en el PC1 ejecutamos:

ssh-keygen -t rsa -b 8192 (esto genera una llave más que segura ya que normalmente se usan llaves de 1024 a 2048)

Una vez tenemos nuestra clave la subimos al Servidor1:

ssh-copy-id usuario@ip_del_servidor

Una vez hecho esto vamos a conectarnos a nuestro Servidor1 y modificamos con permisos de root el archivo nano /etc/ssh/sshd_config:

ssh usuario@Servidor1

nano /etc/ssh/sshd_config

La linea que pone #PasswordAuthentication yes la cambiamos a esto:

#PasswordAuthentication yes
PasswordAuthentication no

Guardamos con CTRL+O y cerramos con CTRL+X

Reiniciamos el servicio ssh:

Fedora, RHEL, CentOS:

systemctl restart sshd.service

Debian, Ubuntu:

service sshd restart

Cambiar el puerto de escucha ssh

Nuevamente editamos /etc/ssh/sshd_config y en la parte referente al puerto la dejamos así:

# Port 22
Port 2000 (o cualquier otro número mayor que 2000. En nuestros ejemplos usaremos este.)

Guardamos con CTRL+O y cerramos con CTRL+X

Reiniciamos el servicio ssh:

Fedora, RHEL, CentOS:

systemctl restart sshd.service

Debian, Ubuntu:

service sshd restart

Si usan fail2ban es necesario cambiar la configuración referente a sshd ajustando el puerto.

nano /etc/fail2ban/jail.local

[sshd]
port    = ssh, 2000

[sshd-ddos]
port    = ssh, 2000

[dropbear]
port    = ssh, 2000

[selinux-ssh]
port    = ssh, 2000

Guardamos con CTRL+O y cerramos con CTRL+X

Reniciamos el servicio:

Fedora, RHEL, CentOS:

systemctl restart fail2ban.service

Debian, Ubuntu:

service fail2ban restart

Firewall

Fedora, RHEL, CentOS:

En estos sistemas se encuentran Selinux y Iptables activados por defecto y yo recomiendo que siga así. ¿Como abrir un puerto con Iptables? Vamos a ver como abrir el nuevo puerto 2000 del puerto ssh que cambiamos anteriormente:

Abrir:
nano /etc/sysconfig/iptables

y modificamos la linea referente al puerto ssh por defecto 22 y la dejamos así:

#-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 2000 -j ACCEPT

Guardamos con CTRL+O y cerramos con CTRL+X

Reiniciamos el servicio:

systemctl restart iptables

Debian, Ubuntu:

En Debian o Ubuntu y derivados disponemos de UFW firewall el cual nos hará la vida fácil ya que gestiona a Netfilter muy fácil.

Instalación:

apt-get install ufw
ufw enable

Para ver el estado de puertos abiertos ejecutamos:

ufw status

Para abrir un puerto (en nuestro ejemplo será el nuevo puerto 2000 de ssh):

ufw allow 2000

Para denegar un puerto (en nuestro caso será el puerto por defecto 22 de ssh):

ufw deny 22
ufw delete deny 22


Y listo amigos. De esta manera mantendrán vuestras máquinas a salvo.
No os olvidéis comentar y hasta la próxima