Base de conocimientos

Búsqueda Inteligente

Comandos SSH básicos

Administración de archivos y directorios

Administrador de archivos 

cp -a archivo.zip archivocopia.zip Copiar archivo
touch /home/usuario/public_html/404.html Crea un archivo 404.html
zip -r archivo.zip /home/usuario/public_html/directorio Comprimir directorio
unzip archivo.zip Descomprimir archivo
unzip -v archivo.zip Ver contenido de un zip
zip -r /home/user/public_html/backup_php_ah.zip /home/user/public_html/uploads/ -x */\.* *.git* \.* *.JPG *.jpg *.PNG *.PDF  *.pdf  *.msg *.jpeg  *.zip  *.rar *.xlsx *.PDF *.png *.mp4 *.html *.docx *.pptx Comprimir archivos excluyendo algunas extensiones

Administración de directorios

ls Enlista archivos y carpetas
ls -al Enlista archivos y carpetas y muestra su información
ls -aR Enlista archivos, carpetas y subdirectorios
ls -aR | more Enlista archivos e información incluyendo todos los subdirectorios por pantallas
ls -alR > resultado.txt lista archivos e información de subdirectorios y lo guarda en un archivo
ls *.html lista todos los archivos acabados en .html
echo */ | wc Cuenta la cantidad de folders en un directorio (excluye archivos)
du -h | grep \/.*\\/ -v Muestra el tamaño de una carpeta
find /home/ -name lo_que_sea -size +5MB Busca en home un archivo con nombre lo_que_sea con un tamaño superior a 5MB.
du -sh Muestra el espacio que ocupa el directorio
du -hs * | sort -h Muestra el espacio que ocupa cada archivo ordenado por tamaño

Monitoreo de Servidores

grep -i maxclient /usr/local/apache/logs/error_log Revisar si apache ha llegado al tope de workers y requiere incrementar su valor
netstat -an | grep :80|wc -l Cuenta cantidad de procesos corriendo en el puerto 80
netstat -an | grep :80 | egrep '^tcp' | grep -v LISTEN | awk '{print $5}' | egrep '([0-9]{1,3}\.){3}[0-9]{1,3}' | sed 's/^\(.*:\)\?\(\([0-9]\{1,3\}\.\)\{3\}[0-9]\{1,3\}\).*$/\2/' | sort | uniq -c | sort -nr | sed 's/::ffff://' | head -20 Cuenta la cantidad de accesos al puerto 80 por una única IP
resize;clear;echo;date;echo "Top 10 Processes by CPU %";echo ""; ps -eo user,%cpu,%mem,rsz,args,pid,lstart|sort -rnk2|\
> awk 'BEGIN {printf "%12s\t%s\t%s\t%s\t%s\n","USER","%CPU","%MEM","RSZ","COMMAND","PID","Started"}\
> {printf "%12s\t%g'%'\t%g'%'\t%d MB\t%s\n",$1,$2,$3,$4/1024,$5}'|head -n10;echo; \
> echo "== Last 90 mins ==";echo;sar|head -n6;sar -u|tail -n20;echo;sar -q|head -n6;sar -q|\
> tail -n20;echo;echo "== Current 5 Second Intervals ==";echo;sar -u 5 12;echo;sar -q 5 5
Verificar el TOP de procesos ocupando capacidad de procesamiento (ejecutar linea por linea después de ">".
ps awux | grep lsof
ls -l /proc/PID-Number/* > /root/proc-list
Este comanto crea un archivo llamado proc-list que muestra exactamente lo que está haciendo un proceso específico (sustituir PID-Number)
Análisis de LOGS

cat /usr/local/apache/logs/access_log | awk '{print $1}' | sort | uniq -c |sort -n

Analiza el log de acceso de apache y muestra la cantidad de veces que una IP se ha conectado a Apache

grep -i [IP] /usr/local/apache/logs/access_log

grep -i [IP] /usr/local/apache/logs/error_log

Buscar toda la actividad de una IP en el log apache y el error log

Combate al SPAM

grep cwd /var/log/exim_mainlog | grep -v /var/spool | awk -F"cwd=" '{print $2}' | awk '{print $1}' | sort | uniq -c | sort -n Análisis de directorios desde los cuales está saliendo correo electrónico
/usr/sbin/exim -bpc Cantidad de email en el Queue Manager
grep "mailer.php" /home/userna5/access-logs/example.com | awk '{print $1}' | sort -n | uniq -c | sort -n Una vez detectado un directorio sospechoso, se puede identificar el script sopechoso y buscar los accesos que ha tenido para bloquear las IPs resultantes
/usr/sbin/exigrep "unrecognized command" /var/log/exim_mainlog Analizar posible ataque a EXIM
/usr/sbin/exigrep "Unfortunately, some messages from" /var/log/exim_mainlog Analizar si hay bloqueos en hotmail
/usr/sbin/exigrep "temporarily deferred due to user complaints" /var/log/exim_mainlog Analizar si hay bloqueos en Yahoo

Único remitente:

exiqgrep -if user@domain | xargs exim -Mrm

Vaciar todo:

exim -bp | grep \< | awk '{print $3}' | xargs exim -Mrm

Elimina los mensajes del Exim queue (todos y sender único)

Comandos útiles

cat /proc/cpuinfo | grep proc | tail -n 1 Cuenta los procesadores físicos de un servidor