Ya casi es común escuchar noticias de ataques por internet a empresas conocidas, reconocelo, el que no seas popular o famoso no quiere decir que tu servidor esta fuera de peligro por lo cual hoy mostraremos una forma de estar preparados para estos ataques protegiendo el puerto ssh. Nuestro articulo el día de hoy sera como instalar y configurar paso a paso fail2ban en un servidor linux centos. Los ataques no solo son por el puerto ssh (22 - tcp) pero si son los mas comunes y con fail2ban podemos de forma automática protegernos de este y otros ataques sin que sea tan complicado de manejar.
Requerimientos
- Linux Centos actualizado a la fecha
- Conexión a internet
-Comenzamos instalando el repositorio Epel
Articulo a consultar: Potencia tu Linux Centos; instala los repositorios RPMForge / Epel / Remi
Para Centos 6
yum install http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
Para Centos 7
yum install http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
-Instalamos fail2ban habilitando el repositorio epel
yum install --enablerepo=epel fail2ban
-Creamos un jail para sshd independiente, sin tocar el conf principal (bloqueara una ip después de 5 intentos fallidos de conexion)
vi /etc/fail2ban/jail.d/sshd.local
[sshd]
enabled = true
port = ssh
logpath = %(sshd_log)s
maxretry = 5
bantime = 86400
-Habilitamos el servicio de fail2ban y lo ejecutamos
Para Centos 6
chkconfig fail2ban on
service fail2ban restart
Para Centos 7
systemctl enable fail2ban.service
systemctl restart fail2ban.service
-Verificamos ejecución de servicio fail2ban
fail2ban-client ping
Server replied: pong
-Estado de fail2ban
fail2ban-client status
Status
|- Number of jail: 1
`- Jail list: sshd
-Verificamos como va trabajando nuestro jail sshd
fail2ban-client status sshd
Status for the jail: sshd
|- Filter
| |- Currently failed: 3
| |- Total failed: 21
| `- File list: /var/log/secure
`- Actions
|- Currently banned: 3
|- Total banned: 3
`- Banned IP list: 125.88.177.95 222.186.31.181 58.218.198.49
-Como se ve desde iptables
iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
f2b-sshd tcp -- anywhere anywhere multiport dports ssh
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain f2b-sshd (1 references)
target prot opt source destination
REJECT all -- 58.218.198.49 anywhere reject-with icmp-port-unreachable
REJECT all -- 222.186.31.181 anywhere reject-with icmp-port-unreachable
REJECT all -- 125.88.177.95 anywhere reject-with icmp-port-unreachable
RETURN all -- anywhere anywhere
-Como agregar ips para que no se bloqueen
fail2ban-client set sshd addignoreip 10.8.0.202
These IP addresses/networks are ignored:
|- 127.0.0.1/8
`- 10.8.0.202
-Agregar una subred a ips ignoradas
fail2ban-client set sshd addignoreip 10.8.0.0/24
-Eliminar ips ignoradas
fail2ban-client set sshd delignoreip 10.8.0.202
-Verificar ips ignoradas
fail2ban-client get sshd ignoreip
These IP addresses/networks are ignored:
|- 127.0.0.1/8
`- 10.8.0.0/24
-Bloquear (bannear) una ip manualmente
fail2ban-client set sshd banip 104.43.20.94
-Desbloquear (eliminar) una ip manualmente
fail2ban-client set sshd unbanip 104.43.20.94
-En caso de dudas, podemos ejecutar fail2ban-client sin parámetros y se nos mostrara un listado de comandos con su explicación corta
Ya usas fail2ban para proteger los puertos de tus servidores de ataques? usas otra alternativa?, escríbeme en los comentarios aquí debajo y pasa la voz compartiendo el tweet.
Sígueme en twitter , google+, facebook o email y podrás estar enterado de todas mis publicaciones.
-Verificamos ejecución de servicio fail2ban
fail2ban-client ping
Server replied: pong
-Estado de fail2ban
fail2ban-client status
Status
|- Number of jail: 1
`- Jail list: sshd
-Verificamos como va trabajando nuestro jail sshd
fail2ban-client status sshd
Status for the jail: sshd
|- Filter
| |- Currently failed: 3
| |- Total failed: 21
| `- File list: /var/log/secure
`- Actions
|- Currently banned: 3
|- Total banned: 3
`- Banned IP list: 125.88.177.95 222.186.31.181 58.218.198.49
-Como se ve desde iptables
iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
f2b-sshd tcp -- anywhere anywhere multiport dports ssh
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain f2b-sshd (1 references)
target prot opt source destination
REJECT all -- 58.218.198.49 anywhere reject-with icmp-port-unreachable
REJECT all -- 222.186.31.181 anywhere reject-with icmp-port-unreachable
REJECT all -- 125.88.177.95 anywhere reject-with icmp-port-unreachable
RETURN all -- anywhere anywhere
-Como agregar ips para que no se bloqueen
fail2ban-client set sshd addignoreip 10.8.0.202
These IP addresses/networks are ignored:
|- 127.0.0.1/8
`- 10.8.0.202
-Agregar una subred a ips ignoradas
fail2ban-client set sshd addignoreip 10.8.0.0/24
-Eliminar ips ignoradas
fail2ban-client set sshd delignoreip 10.8.0.202
-Verificar ips ignoradas
fail2ban-client get sshd ignoreip
These IP addresses/networks are ignored:
|- 127.0.0.1/8
`- 10.8.0.0/24
-Bloquear (bannear) una ip manualmente
fail2ban-client set sshd banip 104.43.20.94
-Desbloquear (eliminar) una ip manualmente
fail2ban-client set sshd unbanip 104.43.20.94
-En caso de dudas, podemos ejecutar fail2ban-client sin parámetros y se nos mostrara un listado de comandos con su explicación corta
Ya usas fail2ban para proteger los puertos de tus servidores de ataques? usas otra alternativa?, escríbeme en los comentarios aquí debajo y pasa la voz compartiendo el tweet.
Como instalar y configurar #Fail2ban en #Linux #Centos ~ videoJuegos y Open Source https://t.co/kesP8WtKg6 pic.twitter.com/SnNtTGgcxg
— Manuel Cabrera C (@drivemeca) March 9, 2016
Sígueme en twitter , google+, facebook o email y podrás estar enterado de todas mis publicaciones.
Disfrútenlo.