Que tal amigos de Steemit, hoy les traigo la instalación de una herramienta imprescindible para todo Sysadmin: El Firewall.
CSF Firewall
CSF (ConfigServer Firewall) es un software mantenido por configserver.com, empresa especializada en soluciones para cPanel.
Este desarrollo mantiene una gran constancia de actualizaciones, su instalación es sumamente práctica y su configuración, a pesar de que incluye muchísimas opciones a nivel de técnicas de defensa, está tan bien documentada.
ConfigServe Firewall también viene con un servicio llamado Login Failure Daemon o LFD. LFD observa la actividad del usuario para los fallos excesivos en la conexión que se ven comúnmente durante ataques de la fuerza bruta. Si se observa una gran cantidad de errores de inicio de sesión procedentes de la misma dirección IP, dicha IP se bloqueará temporalmente de forma inmediata en todos los servicios de su servidor. Estos bloques IP expirarán automáticamente, sin embargo, pueden eliminarse manualmente a través de la interfaz ConfigServer en WebHost Manager (O manualmente). Además de eliminar IPs, CSF también le permite administrar la lista blanca o lista negra IPs en el firewall, así como la monitorización en tiempo real de bloques automáticos de IP en LFD.
La Instalación
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install libwww-perl unzip -y
Validese como root
$ sudo -s
cd /tmp
wget http://download.configserver.com/csf.tgz
tar -xvzf csf.tgz
cd csf
Si usas cPanel:
sh install.sh
Si no usas cPanel:
sh install.generic.sh
Le mostrará la siguiente información:
.
.
.
Installation Completed
Verificamos la instalación con la siguiente instrucción:
perl /usr/local/csf/bin/csftest.pl
RESULT: csf should function on this server vim /etc/csf/csf.conf Realizamos los siguientes cambios, según sus requerimientos: También deshabilite la opción CC_OLDGEOLITE en el archivo /etc/csf/csf.conf colocandola en "0" Grabamos el archivo y reiniciamos csf: csf -r Iniciar el Firewall (habilitar reglas del firewall) csf -s Flush/Stop reglas del firewall csf -f Reiniciar reglas del firewall csf -r Permitir una IP y agregarla /etc/csf/csf.allow. csf -a 192.168.10.101 Resultado: Denegar una IP y agregarla a /etc/csf/csf.deny csf -d 192.168.10.101 Resultado: Remover y borrar una IP desde /etc/csf/csf.deny csf -dr 192.168.10.101 Resultado: Remover y desbloquear todas las entradas desde /etc/csf/csf.deny csf -df Resultado: Buscar una coincidencia de patrones en iptables, por ejemplo: IP, CIDR, Número de puerto csf -g 192.168.10.101 Abrir y cerrar puertos Dependiendo que servicios vayas a instalar en tu máquina tendrás que dejar abiertos unos puertos u otros. CSF, por defecto, crea una lista de puertos tanto de entrada como de salida que cubre un catálogo amplio. Esto lo podrás encontrar en las línea 139 a la 149 del archivo de configuración (/etc/csf/csf.conf). En Wikipedia puedes consultar una lista muy completa de puertos por si tienes duda de cual corresponde a cada programa. Lo básico es que la máquina permita conectarse por SSH y que pueda responder al PING y a las peticiones DNS. Estos son los puertos que se dejan abiertos: Para un servidor web, sea Apache o Nginx necesitaras: Si quieres acceder por FTP (aunque mejor seria usar SFTP por seguridad) esta es la configuración: Las bases de datos MySQL usan el puerto 3306 pero solo hay que dejarlo abierto si vas a acceder desde otra máquina: Y para el servidor de correo: Aquí hay algunos ajustes sobre CSF, por lo que puede configurar lo que necesita. Vuelva al directorio de configuración csf y edite el archivo de configuración /etc/csf/csf.conf: cd /etc/csf 1.- Para no bloquear las direcciones IP que se encuentran en el archivo csf.allow. Por defecto, LFD también bloqueará una IP que esté en el archivo csf.allow, así que si desea que una IP en el archivo csf.allow nunca sea bloqueada por LFD, entonces vaya a la línea 272 y cambie: "IGNORE_ALLOW" a "1". Esto es útil cuando tienes una IP estática en casa o en la oficina y quieres asegurarte de que tu IP nunca sea bloqueado por el firewall en tu servidor de Internet. 2.- Permitir el protocolo ICMP Entrante/Saliente. Vaya a la línea 152 for incoming ping/ICMP: y en la línea 159 for outgoing ping ping/ICMP: 3.- Bloquear ciertos países CSF proporcionan una opción para permitir y denegar el acceso por país utilizando el CIDR (Country Code). Vaya a la línea 836 y agregue los códigos de país que se permitirán y denegarán: Puede establecer una dirección de correo electrónico que LFD utilice para enviar un correo electrónico sobre los sucesos "SSH Login" y los usuarios que ejecuten el comando "su", vaya a la línea 1069 y cambie el valor a "1". y defina la cuenta de correo que desea usar en la línea 588: Si deseas más ajustes, lea las opciones en el archivo de configuración "/etc/csf/csf.conf". https://blog.rapid7.com/2017/05/24/how-to-install-and-configure-csf-firewall-on-ubuntu-linux/Testing ip_tables/iptable_filter...OK
Testing ipt_LOG...OK
Testing ipt_multiport/xt_multiport...OK
Testing ipt_REJECT...OK
Testing ipt_state/xt_state...OK
Testing ipt_limit/xt_limit...OK
Testing ipt_recent...OK
Testing xt_connlimit...OK
Testing ipt_owner/xt_owner...OK
Testing iptable_nat/ipt_REDIRECT...OK
Testing iptable_nat/ipt_DNAT...OK
Configuramos CSF
##Enable CSF TESTING = "0"
TESTING = "0"##Allow incoming TCP ports
TCP_IN = "20,21,22,25,53,80,110,143,443,465,587,993,995"##Allow outgoing TCP ports
TCP_OUT = "20,21,22,25,53,80,110,113,443,587,993,995"
##Allow incoming UDP ports
UDP_IN = "20,21,53"##Allow outgoing UDP ports
##To allow outgoing traceroute add 33434:33523 to this list
UDP_OUT = "20,21,53,113,123"##Allow incoming PING
ICMP_IN = "1"##Set the per IP address incoming ICMP packet rate
##To disable rate limiting set to "0"
ICMP_IN_RATE = "1/s"##Allow outgoing PING
ICMP_OUT = "1"
...
Comandos básicos del CSF:
Removing rule...
ACCEPT all opt -- in !lo out * 192.168.10.101 -> 0.0.0.0/0
ACCEPT all opt -- in * out !lo 0.0.0.0/0 -> 192.168.10.101
Adding 192.168.10.101 to csf.deny and iptables DROP...
DROP all opt -- in !lo out * 192.168.10.101 -> 0.0.0.0/0
LOGDROPOUT all opt -- in * out !lo 0.0.0.0/0 -> 192.168.10.101
Removing rule...
DROP all opt -- in !lo out * 192.168.10.101 -> 0.0.0.0/0
LOGDROPOUT all opt -- in * out !lo 0.0.0.0/0 -> 192.168.10.101
DROP all opt -- in !lo out * 192.168.10.101 -> 0.0.0.0/0
LOGDROPOUT all opt -- in * out !lo 0.0.0.0/0 -> 192.168.10.101
DROP all opt -- in !lo out * 192.168.10.101 -> 0.0.0.0/0
LOGDROPOUT all opt -- in * out !lo 0.0.0.0/0 -> 192.168.10.101
csf: all entries removed from csf.deny
TCP_IN = "20,21,22,25,53,80,110,143,443,465,587,993,995"
TCP_OUT = "20,21,22,25,53,80,110,113,443"
UDP_IN = "20,21,53"
UDP_OUT = "20,21,53,113,123"TCP_IN: 22,53
TCP_OUT: 22,53,80,113,443
UDP_IN: 53
UPD_OUT: 53,113,123TCP_IN: 80,443
TCP_IN: 20,21
TCP_OUT: 20,21
UPD_IN: 20,21
UPD_OUT:20,21TCP_IN: 3306
TCP_OUT: 3306TCP_IN: 25,110,143,587,993,995
TCP_OUT: 25,110Configuraciones avanzadas:
vim csf.confICMP_IN = "1"
ICMP_OUT = "1"
CC_DENY = "CN,UK,US"
CC_ALLOW = "ID,MY,DE"
LF_SSH_EMAIL_ALERT = "1"
...
LF_SU_EMAIL_ALERT = "1"LF_ALERT_TO = "[email protected]"
Referencias:
@jsosa, go and place your daily vote for Steem on netcoins! http://contest.gonetcoins.com/
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
¡Qué gusto verte por aquí! A veces me dan ganas de regresarme a Ubuntu, pero el software que utilizo está casado con Microsoft.
Estoy en Discord como thaishps#8225, búscame por allí para mantenernos en contacto
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Congratulations @jsosa! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :
Award for the number of upvotes
Click on the badge to view your Board of Honor.
If you no longer want to receive notifications, reply to this comment with the word
STOP
Do not miss the last post from @steemitboard:
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Congratulations! This post has been upvoted from the communal account, @minnowsupport, by Thaishps from the Minnow Support Project. It's a witness project run by aggroed, ausbitbank, teamsteem, someguy123, neoxian, followbtcnews, and netuoso. The goal is to help Steemit grow by supporting Minnows. Please find us at the Peace, Abundance, and Liberty Network (PALnet) Discord Channel. It's a completely public and open space to all members of the Steemit community who voluntarily choose to be there.
If you would like to delegate to the Minnow Support Project you can do so by clicking on the following links: 50SP, 100SP, 250SP, 500SP, 1000SP, 5000SP.
Be sure to leave at least 50SP undelegated on your account.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Congratulations @jsosa! You have received a personal award!
1 Year on Steemit
Click on the badge to view your Board of Honor.
Do not miss the last post from @steemitboard:
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Congratulations @jsosa! You received a personal award!
You can view your badges on your Steem Board and compare to others on the Steem Ranking
Vote for @Steemitboard as a witness to get one more award and increased upvotes!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit