APACHE: Comandos

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/

https://www.linuxito.com/gnu-linux/nivel-alto/625-como-saber-si-hay-usuarios-conectados-en-mi-servidor-apache