Bash generar contraseñas – letras y números aleaorios

Estaba simplificando mi auto instalador de ISPCONFIG para que sea más sencillo y más automático de usar y una de las cosas que tiene es la clave de mysql, así que que me a dado por generar la contraseña para que el usuario no tenga que escribirla y he llegado hasta este comando:

Generar claves aleatorias en bash

cat /dev/urandom| tr -dc '0-9a-zA-Z'|head -c 8

La salida:

XiunRWVM

También podemos añadirle simbolos:

cat /dev/urandom| tr -dc '0-9a-zA-Z-@#'|head -c 8

j2q6P#gs

O hacerla más larga

cat /dev/urandom| tr -dc '0-9a-zA-Z@#-'|head -c 22

ofSMeuWYdDVl3zMVMyLSDe

Y tengo que adminitirlo el comando tr es nuevo para mi:

man tr

NAME
tr – translate or delete characters

SYNOPSIS
tr [OPTION]… SET1 [SET2]

DESCRIPTION
Translate, squeeze, and/or delete characters from standard input, writing to standard output.

-c, -C, –complement
use the complement of SET1

-d, –delete
delete characters in SET1, do not translate

-s, –squeeze-repeats
replace each input sequence of a repeated character that is listed in SET1 with a single occurrence of that character

-t, –truncate-set1
first truncate SET1 to length of SET2

–help display this help and exit

–version
output version information and exit

Para mi es más que suficiente, aunque buscando y buscando he encontrado esta web en la que explica varios metodos y hasta una variante del comando que deje más arriba: 10 formas de generar claves en bash

Con uno de los que me quedo que hay en esa web es con este:

randpw(){ < /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-16};echo;}

Y con esta otra que las dos son variantes del de arriba:

strings /dev/urandom | grep -o '[[:alnum:]]' | head -n 30 | tr -d '\n'; echo

Espero les sirvan tanto como a mi 🙂

Buscar versiones obsoletas de Joomla en Servidores cPanel.

Gracias a una idea que nació en Comunidad Hosting y a unos códigos de IWEB que buscaban todos los joomla que habían en un servidor y mostraban sus versiones he programado este script, que hace algo similar solo que muestra las versiones obsoletas y el usuario que tiene una de ellas.

Es un script muy sencillo y bueno, no soy experto en programación, por eso lo hice en bash, espero pronto hacerlo en python, aunque eso quedará en veremos.

Buscar Scripts Joomla Desactualizados en Servidor con cPanel

Esta es la versión 0.3 beta:

– Busca versiones de joomla 1.5 o anteriores, las marca como criticas ya que no hay más soporte para esa versión.
– Busca versiones anteriores a joomla 2.5.17.
– Busca versiones anteriores a joomla 3.2.1.

Descargar 0.3 beta AQUÍ

Por ahora solo busca.

En las próximas versiones mandará un email ya sea al administrador del servidor o al dueño de la cuenta.

Se que el código es un poco largo para lo poco que hace y se que puede ser mejor, pero no hago muchos scripts como este así que estoy un poco verde en lo que es programación y les aseguro que el script mejorará con el tiempo.

Por otro lado no busca versiones de joomla, por eso quedo tan largo, lo que hace es buscar la fecha de lanzamiento del script cosa que al final da lo mismo, pero en las próximas versiones corregiré eso.

¿Me configuraron mal mysql?

He escrito en el blog principal algo que tal vez muchos se preguntan y es si les han configurado mysql mal cuando han contratado a alguien para que les configurará el servidor hace varios meses.

Con este tema podrán pensar, ¡¿va mal por que me lo han configurado mal? o ¿va mal por que nunca más le he dicho a alguien que lo revise y lo re configure para mis nuevas webs?

Pueden ver el tema completo en este enlace: ¿mysql mal configurado?

cPanel – Conectar Mysql Con Perl – ERROR: install_driver(mysql) failed: Can’t locate DBD/mysql.pm in @INC (

Si usamos alguna web hecha en perl con mysql y no podemos conectar al servidor por que nos da un error parecido a este:

install_driver(mysql) failed: Can’t locate DBD/mysql.pm in @INC (@INC contains: Plugins Modules . /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8

Puede ser por que no tengamos instalado el mod de mysql para perl, en cpanel podemos instalarlo con el instalador de perl que tiene por defecto.

Basta con ejecutar esto:

/scripts/perlinstaller  DBD::mysql

El el comando retornará algo así.

chmod 755 blib/arch/auto/DBD/mysql/mysql.so
/usr/bin/perl -MExtUtils::Command::MM -e 'cp_nonempty' -- mysql.bs blib/arch/auto/DBD/mysql/mysql.bs 644
Manifying blib/man3/DBD::README.3pm
Manifying blib/man3/Bundle::DBD::mysql.3pm
Manifying blib/man3/DBD::mysql.3pm
Manifying blib/man3/DBD::mysql::INSTALL.3pm
Files found in blib/arch: installing files in blib/lib into architecture dependent library tree
Installing /usr/local/lib64/perl5/auto/DBD/mysql/mysql.so
Installing /usr/local/lib64/perl5/Bundle/DBD/mysql.pm
Installing /usr/local/lib64/perl5/DBD/README.pod
Installing /usr/local/lib64/perl5/DBD/mysql.pm
Installing /usr/local/lib64/perl5/DBD/mysql/GetInfo.pm
Installing /usr/local/lib64/perl5/DBD/mysql/INSTALL.pod
Installing /usr/local/share/man/man3/DBD::mysql::INSTALL.3pm
Installing /usr/local/share/man/man3/DBD::README.3pm
Installing /usr/local/share/man/man3/Bundle::DBD::mysql.3pm
Installing /usr/local/share/man/man3/DBD::mysql.3pm
Appending installation info to /usr/lib64/perl5/perllocal.pod
OK
Successfully installed DBD-mysql-4.025
Installing /usr/local/share/perl5/x86_64-linux-thread-multi/.meta/DBD-mysql-4.025/install.json
Installing /usr/local/share/perl5/x86_64-linux-thread-multi/.meta/DBD-mysql-4.025/MYMETA.json
4 distributions installed

Y listo el error desaparece, al menos que el comando anterior muestre algún error.

Configurar ServerLimit en WHM/cPanel Usando MPM_Event [Error]

Bueno hace poco habla de configurar mpm_event y las directivas ServerLimit cosa que pueden ver en este enlace: MPM_Event – MPM_Prefork – Configuración de ServerLimit y MaxClients

Resulta que en cPanel da errores al definir un valor en ServerLimit menor que MaxClients, he reportado el problema en cpanel, que parece que ya han tenido ese problema y lo están investigando, según la respuesta del soporte:

WHM/cPanel MPM_Event Configuración

We are currently tracking the issues with the apache configuration in WHM where certain directives and combinations of values are not possible due to the interface being designed with prefork in mind. For your reference, the case number is 52321. Our developers are already pursuing a resolution. While there is no set timeline for when this issue will be fixed, please note that new patches are advertised in our changelog as soon as they are implemented.

El error es que no se le puede asignar a ServerLimit un valor menor que MaxClients o MaxRequestWorkers ( apache 2.4 ) ya que el sistema esta diseñado para trabajar con Prefork, al intentar cambiarlo nos devuelve el siguiente error:

The following settings are invalid and were rejected:

maxclients: 100

Bien la solución temporal a sido definir el ServerLimit editando el fichero /var/cpanel/conf/apache/local

nano /var/cpanel/conf/apache/local

Definiendo ahí la directiva ServerLimit:

  "serverlimit":
    "item":
      "serverlimit": 40

También podemos editar la directiva MaxClients, luego solo tenemos que actualizarlo:

Con:

/scripts/rebuildhttpdconf

El resultado de que todo a ido bien:

Built /usr/local/apache/conf/httpd.conf OK

Listo ya no nos dará error en WHM al cambiar esa directiva si usamos MPM_Event.

Edito: para configurar otras directivas podemos editar este otro archivo:

/usr/local/apache/conf/includes/pre_main_global.conf

Eso para las directivas que no se pueden editar desde whm.

MPM_Event – MPM_Prefork – Configuración de ServerLimit y MaxClients

Este es solo un pequeño resumen de las directivas de apache, ya que he visto que muchos no saben la diferencia que hay en la configuración del ServerLimit, según el MPM que usamos, ya sea Event o Prefork, así que lo daré con algunos ejemplos:
En Prefork

ServerLimit         256
    MaxClients          150

En event

ServerLimit 40
MaxRequestWorkers 400

Ahí tienen las dos configuraciones normalmente por defecto siempre viene prefork como mpm, por ejemplo en cpanel, la config por defecto es algo así:

 ServerLimit 256
 MaxClients 150

Ahora bien, el punto es que en prefork si subimos el maxclients por encima del ServerLimit no nos dejará iniciar con ese valor y lo dejará igual que ServerLimit.

Esto por que Prefork abre una procesos por conexión.

En Event es diferente, el ServerLimit es la cantidad de servidores que tendremos, puede ser por ejemplo 40 y el MaxRequestWorkers es el número de peticiones que se le podrán hacer a cada uno de esos servidores.

Bien, el problema es cuando en servidores como cpanel cambiamos el mpm_prefork por mpm_worker y dejamos la configuración tal cual estaba, o sea el serverlimit tan alto, por ejemplo que lo tuviéramos en 500, en ese caso apache podrá abrir 500 procesos, esto no es nada bueno, es un consumo de RAM innecesario y si nos hacen muchas peticiones el servidor puede colapsar ya que abrirá muchos procesos en este caso hasta 500 y cada uno podrá aceptar el número de conexiones definido en MaxRequestWorkers.

Bajo ataque o en un pico alto de tráfico será un caos, ya que abrirá todos los procesos que le dejemos.

Event viene siendo como una copia de nginx para que se entienda mejor, en nginx tenemos estas dos directivas que funcionan exactamente igual:

worker_processes 1;
worker_connections 600;

( bueno igual no, por que si lo pones en apache 1 -> 600 no va a funcionar pero en apache ajustas otros valores para compensar, es solo que funciona muy similar )

En ese caso es igual que en event, nginx abrirá un proceso solo y simultáneamente aceptará hasta 600 conexiones ese proceso, si subimos el worker_processes a 2 y dejamos las conexiones a 600 cada procesos aceptara 600 conexiones simultaneas, lo cual nos dará como resultado que en total podremos recibir hasta 1200 peticiones a la vez, de manera similar funciona mpm_event en apache 2.4 ( en los anteriores también pero en esta versión se lanzo event estable )

Aunque en nginx es mucho más sencillo, tiene menos parámetros que definir a diferencia de apache que todo interviene, pero la idea de este tema era explicar esto, ya que es importante explicar lo del cambio a event y las consecuencias que se pueden tener si se dejan los valores iguales a prefork. Pero también cabe mencionar que los demás valores también son importantes y hay que tener cuidado con ellos.

En lo personal me gusta mucho más NGINX para configurar bajo mucho tráfico, hablamos de 5 mil a más peticiones, es mucho más fácil de controlar, con apache hay que trabajar más rato para lograr que este igual de estable que nginx, como dije antes más valores que ajustar en apache.

Por lo demás si buscan una configuración para event usen la default y ajustenla sus necesidades, no copien la primera que vean en internet.

Ubuntu 12.04 Freenx – LXDE – Linux con Escritorio Remoto.

Para los que no pueden hacer andar el unity o el gnome 3 en un escritorio remoto la mejor alternativa es LXDE.

Explicación rápida:

apt-get install lubuntu-desktop
echo lxsession -s Lubuntu -e LXDE > ~/.xsession

Esa es la forma fácil, el secreto es lubuntu-desktop, si queremos instalar lxde, tipo apt-get install lxde podemos hacerlo, aunque luego tenemos que instalar paquetes faltantes para que funcione, entorno gráfico y poco más, aunque es más ligero.

Para instalar freenx en ubuntu, solo añadimos los repos:

add-apt-repository ppa:freenx-team

Actualizamos:

apt-get update

He instalamos

apt-get install freenx-server

En lo personal siempre prefiero usar gnome-core, es más sencillo y rápido, aunque con los nuevos gnome aveces cuesta más hacer andar el nomachine, aunque en mi caso es por que uso nomachine 3.5, aún no he pasado al 4, si tienen el 4 no han de tener problemas.

Una captura:

Escritorio remoto en Linux

Captura de pantalla de 2013-11-05 15:52:12(1)

Siempre he usado gnome, LXDE no esta mal pero tiene mucha cosa de KDE, así que me quedo con gnome aunque en un escritorio remoto lo aguanto y más que va como la seda.

Por otro lado si no tienen problemas con usar nomachine 4 y quieren gnome y tal lo único que tienen que hacer es instalar gnome-core y freenx.

También podemos usar el servidor oficial de nomachine, para la mayoría es suficiente, pero permite solo conectar desde dos usuarios, así que yo prefiero usar freenx por si quieres compartir el escritorio con alguien más, por el rendimiento y demás es muy similar.

Se que no es un tema detallado pero ando falto de tiempo, si tienen dudas solo dejen un mensaje en los comentarios e intentaré ayudarles.

Editor —–

Si usan lubuntu – lxde con ubuntu, se tiene que iniciar ocn un comando personalizado o bien editando el servidor, el node.conf y añadiendo esto:

/usr/bin/lxsession -s Lubuntu -e LXDE

Se puede editar donde dice gnome, quitar el fallback y poner ese.

Posibles errores:

/var/lib/nxserver/db/running/sessionId{(STDIN)}: 
   No such file or directory NX> 280 Exiting on signal: 15

Editar:

/etc/nxserver/node.conf

Añadir:

​COMMAND_MD5SUM="md5sum"​

Certificados SSL Requisitos e Instalación

Siempre me preguntan por los certificados SSL y como ponerlos y tal, así que dejo esta mini guía aunque no es de instalación, si no de requisitos.

Requisitos para tener un Certificado SSL

– Se requiere una cuenta cpanel para la web y que esta tenga una IP dedicada ( lo mismo con otros paneles, la IP dedicada es obligatoria en la mayoría )
– Comprar el certificado SSL, los más baratos en cheapssl.com o namecheap.com que son los mismos.
– Configurar el certificado.
– En un hosting compartido no puedes tener un SSL al menos que tengas una IP dedicada.
– Es más fácil y recomendado tener un hosting reseller, en el cual puedes tener varias cuentas cpanel, en este tendrás que comprar una IP dedicada, crear una cuenta cpanel para tu web y asignarle a esta la IP dedicada e instalarle el SSL.
– Puedes tener un hosting compartido con IP dedicada y tener un SSL, además tener multiples dominios, por parte de cpanel se han hecho mejoras en este aspecto apartir de cpanel 11.38 -> cpanel SSL improvements

Algunos enlaces de interes.

Guía oficial de cpanel para instalar un certificado SSL -> cPanel Install Cert

Guía para instalar un certificado en cpanel comprado en namecheap -> Instalar Certificado SSL en cpanel comprado en namecheap.

Guía de positivessl par instalar un certificado en cpanel -> Instalar certificado en cpanel de positivessl igual en la web se pueden comprar certificados: positivessl.com

Instalar SSL en ISPCONFIG -> ISPCONFIG SSL

Instalación de certificado SSL en plesk: Plesk SSL

En resumen es igual de sencillo en todos los paneles, lo que cabe mencionar y lo que la gente no toma en cuenta es que no compras el certificado, lo pones y ya, si no que hay que generar el CRT, enviarlo a donde lo compramos ( ej namecheap.com ) luego es aprobado y se nos envía un email con el SSL adjunto que es el que vamos a instalar en la web.

Yo por ahora no tengo que instalar ninguno así que no tengo ninguna guía propia y los últimos que he instalado han sido en cpanel e ispconfig pero no tome capturas por falta de tiempo y creo que este fin de semana tengo que instalar alguno y con ese haré una guía un poco más detallada de como hacerlo, pero como he dicho el proceso es muy sencillo.

Comprimir más rápido con pigz aprovechando el multiples nucleos

Si aún no lo has visto puedes revisar esta entrada en nuestro blog: Pigz: Compresión Usando Multiples Nucleos : Pigz vs Gzip

En donde hacemos una rápida comparación en la velocidad de compresión de gzip con la de pigz el cual aprovecha procesadores de multiples núcleos, ganando un 100% en la velocidad en un procesador con 2 cores.

Esperemos que les sirva la pequeña comparación y la mini guía de uso que seguramente más adelante la detallaremos más.

Linux y cPanel Anti Malware – Maldetec vs Pyxsoft

Hace poco les deje 2 enlaces para descargar he instalar estos dos anti malware, pueden verlo aquí Instalar antimalware en linux

Por mi parte uso los dos anti malware siempre, aunque pyxsoft me a dado mejores resultados aparte de que tiene algunos extras para cpanel como son las normas de mod_Sec y que se integra en whm.

Veamos algunos resultados:

Escaneando una sola cuenta:

malware detect scan report for server
SCAN ID: 101613-1446.440
TIME: oct 16 14:48:04 -0400
PATH: /home/lacuenta/
TOTAL FILES: 15477
TOTAL HITS: 0
TOTAL CLEANED: 0

===============================================
Linux Malware Detect v1.4.2 < [email protected] >

Nos ha quedado un poco mal aunque viendo que no tenemos nada podemos estar tranquilo, pero pyxsoft nos da un aviso:

skamasle-antimalware1

Bueno es solo una cuenta y a encontrado un posible mailer, algo es algo.

Visto lo visto escaneamos todo el servidor con los dos, a ver que encuentra cada uno.

Maldetect el primero en salir y la sorpresa es que hoy me a decepcionado bastante, solo encontró dos archivos y los dos del easyapache ( se escaneo todo el home en cpanel )

maldetec-skamasle

El turno para Pyxsoft, nos a salvado, algunos falsos positivos, pero es mejor revisarlo por si acaso, por lo demás 22 archivos en total encontrados.

Pyxsoft-skamasle

pyx-skamasle

No digo que maldetec no funcione, solo que a veces no detecta nada y pyxsoft si, otras veces hay cosas que el maldetec si detecta y pyxsoft no, pero eso me a pasado con muy pocos archivos.

Por último solo decirles que prueben ustedes mismos y usen el que mejores resultados les de, pero como les dije, si tienen whm/cPanel pyxsoft les traerá varias ventajas en cuanto a seguridad a un coste muy bajo, entre ellas:

– Algunas reglas extras en el mod_Segurity.
– Escaneo de archivos subidos.
– Posibilidad de escanear todas las cuentas cpanel de una vez o las que escojamos.