Comandos de Interés
- Saber si apache esta corriendo
ps auxw | grep httpd
- RESULTADO:
root 16127 0.0 0.0 12752 996 pts/0 S+ 16:46 0:00 grep httpd
- Saber módulos instalados de apache
apache2ctl -M
o
apachectl -t -D DUMP_MODULES
- Saber el tamaño de los archivos de un sitio
find /var/www/html/Sitios/403 -type f -name "*.html" -ls | \
awk 'BEGIN { FILECNT = 0; T_SIZE=0;}\
{T_SIZE += $7; FILECNT++}\
END{print "Total de archivos:", FILECNT,\
"Tamaño Total:", T_SIZE, \
"Promedio:", T_SIZE/ FILECNT;
}'
- RESULTADO:
Total de archivos: 1 Tamaño Total: 3982 Promedio: 3982
- Saber conexiones por IP
sudo netstat -plan|grep :80 | awk {'print $5'} | cut -d: -f 1 | sort | uniq -c | sort -n
- Saber conexiones abiertas
netstat -tpn | grep -v "127.0.0" | grep "apache\|443\|80"
- Consultar reglas iptables
iptables -L -niptables -L --line-numbers
- Ver bloqueaos activados en fail2ban
fail2ban-client status
- Reglas
iptables -I INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 20 -j REJECT
iptables -I INPUT -p tcp --syn --dport 443 -m connlimit --connlimit-above 20 -j REJECT
- Eliminar regla
iptables -D INPUT #numerooiptables -D fail2ban-HTTP 1
nano /etc/fail2ban/jail.local
[http-get-dos]
enabled = true
port = http,https
filter = http-get-dos
logpath = /var/log/apache2/siua.ac.cr-access.log
# Cantidad maxima de GETS que se pueden encontrar en un periodo de tiempo establecido en findtime
maxretry = 100
# findtime tiempo en segundos (60 segundos = 1 minutos)
findtime = 60
# bantime bloquear ip por un dia
bantime = 86400
action = iptables[name=HTTP, port=http, protocol=tcp]
sendmail-whois[name=Nagios, dest=»%(destemail)s», sender=»%(sender)s», sendername=»%(sendername)s»]
- Ahora creamos un archivo nano /etc/fail2ban/filter.d/http-get-dos.conf
# Fail2Ban bloqueo GET
#
# Autor: UGIT
#
[Definition]
# Option: failregex
#
Nota: Esta expresión regular coincidirá con cualquier entrada GET en
sus registros, por lo que básicamente todas las entradas válidas y no
válidas son coincidentes.
# Debe configurar cuidadosamente en el archivo jail.conf, maxretry y findtime para evitar falsos positivos.
failregex = ^<HOST> -.*»(GET|POST).*
# Option: ignoreregex
# Notes.: regex to ignore. If this regex matches, the line is ignored.
# Values: TEXT
#
ignoreregex =
/etc/init.d/fail2ban restart
systemctl start fail2ban
systemctl enable fail2ban
- En Mysql
show processlist;
show status like ‘Threads%’;
http://www.galisteocantero.com/ver-conexiones-abiertas-en-un-servidor-mysql
https://dajul.com/2013/05/24/limitar-el-numero-de-conexiones-por-ip/
https://elbauldelprogramador.com/20-ejemplos-de-iptables-para-sysadmins
https://encodingthecode.wordpress.com/2012/12/27/numero-conexiones-apache-controlando-el-servidor/