Hola amigos de DesdeLinux, 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 !!!!
Comenzando
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
.

Continúar leyendo...
Comenzando
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

Continúar leyendo...