• Aviso Legal
  • About

Bienvenidos al Blog de David Rodriguez

Tag Archives: Linux

Error 503 service unavailable y como solucionarlo optimizando php-fpm

noviembre 23, 2016 4:37 pm / Leave a Comment / David Rodriguez

Si te encuentras algunas caidas de tu servidor con el error 503 service unavailable, es un error dificil de ver de donde viene.
Lo primero es detectarlo, y podemos buscar en las urls del fichero de apache access_log para ver si hay paginas que responden 503.
> grep » 503 » access_log

y podemos ver algunas lineas
[21/Nov/2016:23:04:23 +0100] «GET /url HTTP/1.0» 503 8593 «-» «Mozilla/5.0 (compatible; AhrefsBot/5.1; +http://ahrefs.com/robot/)»

donde vemos que esa petición al servidor nos responde un error 503 service unavailable.

Esto nos quiere decir que estamos teniendo problemas de carga.

Yo lo primero que suelo mirar es la carga de la Base de datos. Si tienes configurado el fichero de consultas mysql lentas, se puede ver si hay alguna que podamos optimizar poniendo algún índice.

> more /var/log/mysql-slow-queries.log

Tambien deberemos optimizar la configuración de la base de datos configurando el fichero my.cnf

 Lo siguiente es ver si la configuración de las peticiones apache están correctamente configuradas. Si es el caso que tienes plesk y tienes instalado un servidor apache con PHP-FPM, puedes ver la configuración php que tienes y ver si hay algún problema.

Mira el fichero de log

more /var/log/php-fpm/error.log

En este caso hemos encontrado indicios que aquí estaba el problema

WARNING: [pool dominio.com] server reached max_children setting (5), consider raising it

Vamos a configurar los parametros para que acepte más peticiones según la memoria que tengamos en el servidor

1.- Creamos un fichero php.ini

vi /var/www/vhosts/system/cursosmarcablanca.com/conf/php.ini

Donde configuramos los siguientes valores

[php-fpm-pool-settings]

pm.max_children = 50

pm.start_servers = 5

pm.min_spare_servers = 5

pm.max_spare_servers = 35

¿como calculamos estos valores? Yo hice el calculo que dicen en esta pagina

No utilices toda la RAM de la maquina, sino bastante menos porque el resto de procesos tambien ocupan memoria.

2.- Ponemos el siguiente comando para guardar esa configuración

> /usr/local/psa/bin/php_settings -u

3.- En el administrador de plesk, te vas a Dominios > dominio.com > Configuración PHP y pulsas en Aplicar.

Si tienes otras versiones de Plesk, puedes seguir los pasos descritos en la página oficial de Plesk sobre como cambiar la configuración del pool de PHP-FPM

De esta forma, el uso de memoria en tu servidor va a ir como la seda.

Posted in: servidores / Tagged: apache, linux, php

Desproteger los directorios automaticamente en la url

octubre 3, 2014 9:36 am / Leave a Comment / David Rodriguez

Podemos encontrarnos con urls donde te piden usuario y password en el propio navegador.

http://piensaennaranja.com/david/

En este ejemplo, el usuario es david y la password tambien es david.

Si eres programador, esto lo puedes hacer facilmente a través de .htaccess y .htpasswd, se puede ver esto en muchos enlaces. Te dejo alguno que te pueda servir de guía.

Pero lo que necesitamos, es que no nos pida el usuario y el password cada vez que accedemos a esa url. En este caso, con poner el usuario y la password delante de la url lo tendriamos solucionado, y no tendriamos que meterlo cada vez que entramos en la página.

Es decir, la url final sería la siguiente http://usuario:password@direccionurl.com/posibledirectorio/odirectorios/

En nuestra pagina de ejemplo sería esta url:

http://david:david@piensaennaranja.com/david/

De esta forma, podemos programar alguna funciona para descargarnos toda la informacion protegida etc etc jejeje 🙂

 

Posted in: Programacion, servidores / Tagged: linux, Programacion

como acceder a mysql con usuario root en plesk

marzo 11, 2014 5:11 pm / Leave a Comment / David Rodriguez

Para acceder como usuario root a todas las bases de datos de un motor MySql dentro de plesk, lo podemos hacer de la siguiente forma, si tenemos acceso de root a una consola

mysql -uadmin -p`cat /etc/psa/.psa.shadow`

Posted in: Base de datos, servidores / Tagged: Base de datos, linux, mysql

Analizar el log de mysql mysql-slow-querys.log para detectar consultas lentas

diciembre 11, 2013 11:29 am / 2 Comments / David Rodriguez

Si deseamos analizar el fichero de logs de mysql , lo primero que tenemos que tener es activado en el fichero de configuración my.cnf que guarde todas las consultas con un tiempo mayor al que quieras.

> vi /etc/my.cnf

log-slow-queries=/var/log/mysql-slow-queries.log
slow_query_log=1
long_query_time=3
#log-queries-not-using-indexes

Le hemos puesto que escriba todas las consultas que sobrepasen los 3 segundos. Podemos descomentar la ultima linea y también se escribirán las consultas con join de las tablas que no tengan indices declarados o no los tengan bien declarados. Podemos ver una configuración optima de my.cnf

Una vez reiniciemos el servicio de mysql, tendremos en la ruta determinada, el fichero de log a analizar.

> /etc/rc.d/init.d/mysqld restart

Para analizar el fichero de log de MySQL, tenemos el siguiente mysqldumpslow donde podemos saber todas las opciones que podemos sacar del fichero.

mysqldumpslow -s c -t 10 /var/log/mysql-slow-queries.log > /root/slowqueries.txt

En nuestro caso, sacamos las 10 consultas más lentas que tenemos, ordenadas por el numero de veces que se ha producido esta lentitud, y las metemos en un fichero para luego analizarlas. Tambien podriamos sacar esto por pantalla eliminando la ultima parte de la ruta.

 

 

Posted in: Programacion, servidores / Tagged: linux, mysql

Como descubrir un ataque de SPAM en un servidor Linux

noviembre 11, 2013 6:43 pm / 1 Comment / David Rodriguez

Si notas que tu correo se recibe lentamente, que pasa tiempo desde que envias un email, hasta que lo recibes puede que tengas la cola de correo colapsada por un ataque de SPAM.

Lo más importante en estos casos, es comprobar que efectivamente tienes un ataque de SPAM. Para ello comprueba la cola de correo de su servidor. Si utilizar Qmail, un programa muy comodo para conocer esto es el programa qmHandle. Ya comenté en otro post, como descargarlo y los parametros a utilizar http://blogdavidrodriguez.piensaennaranja.com/2013/07/23/borrar-algunos-correos-de-la-cola-de-qmail/

Nos situamos en el directorio donde hemos descomprimirdo qmHandle, y lo ejecutamos:

> ./qmHandle -s

Nos da una respuesta parecida a esta:

Total messages: 1500

Messages with local recipients: 0

Messages with remote recipients: 1500

Messages with bounces: 0

Messages in preprocess: 0

Podemos ver que tenemos 1500 mensajes en cola. Con el siguiente comando, podemos ver las cabeceras de los correos que están en la cola de correo de Qmail.

>./qmHandle -l

801681 (16, 16/801681)

Return-path: anonymous@host.dominio.com

From: PagSeguro <pagseguro@pagseguro.com.br>

To: carlosaaa2@infonet.com.br

Subject: Atualiza?ao automatica do Sistema de Seguran?a Pagseguro.

Date: 11 Nov 2013 17:29:02 +0100

Size: 886 bytes

……

Efectivamente, estamos viendo que se están enviando correos de SPAM desde nuestro servidor. Ahora lo más importante es borrar esos correos de la cola de correo, y encontrar el agujero por el que han entrado.

Para borrar los correos de la cola de correo, seguimos utilizando el programa qmHandle con una parte del asunto,

>./qmHandle -SPagseguro

Le estamos diciendo que borre todos los mensajes de la cola de correo que tienen en el asunto PagSeguro

Una vez hemos borrado la cola de correos, nos que da la tareas más ardua y penosa. Encontrar por donde han metido el codigo malicioso y tapar el agujero. Mi consejo, es que si en ese servidor tienes algún CMS tipo WordPress, Magento, Joomla, etc .. empieces por esos dominios actualizando los CMS a la ultima versión.

Hay que analizar los correos que se envian, con cualquier correo que se devuelva porque el correo no existe lo podemos analizar las cabeceras. Lo abrimos en cualquier cliente de correo y le damos a «ver código fuente».

Return-Path: <anonymous@host.activoclick.com>
Received: (qmail 15479 invoked by uid 502); 11 Nov 2013 17:31:04 +0100
Date: 11 Nov 2013 17:31:04 +0100
Message-ID: <20131111163104.15469.qmail@host.dominio.com>
To: carlosdmcj@icqmail.com
Subject: Atualizaçao automatica do Sistema de Segurança Pagseguro.
X-PHP-Originating-Script: 10012:FaillureCorp.Org_BB_Empresa.php
MIME-Version: 1.0
Content-type: text/html; charset=iso-8859-1
From: PagSeguro <pagseguro@pagseguro.com.br>

Analizando las cabeceras, podemos saber, por ejemplo, el uid que ha enviado el mail.
> grep 502 /etc/passwd

psaftp:x:501:502:anonftp psa user:/:/sbin/nologin
apache:x:502:503:Apache server:/:/sbin/nologin

En ese caso, podemos ver que ha sido el usuario apache el que ha lanzado el email … pero podríamos saber desde qeu dominio o servicio se podría haber mandado.

Analizando más a fondo las cabeceras, podemos ver el fichero que ha lanzado ese email

X-PHP-Originating-Script: 10012:FaillureCorp.Org_BB_Empresa.php
Vemos que ha sido lanzado por un fichero php, aunque tambien puede que haya sido algún cgi, perl, python, etc.
Ahora buscamos ese archivo en nuestro servidor
> find / -iname *Org_BB_Empresa.php
y tenemos que encontrar la ubicación de ese fichero.
Borrarlo y ya tendremos el fichero eliminado. Para que no vuelvan a crearlo, lo más normal es que hayan encontrado alguna contraseña FTP del dominio donde estaba alojado ese fichero.
Muy importante cambiar todas las contraseñas de ese dominio, y por supuesto, la de root del servidor.
Habremos solucionado el problema de SPAM. Siempre es recomendable actualizar todos los servicios que se estén utilizando en el servidor, para evitar agujeros de seguridad.

 

 

Posted in: Seguridad, servidores, SPAM / Tagged: apache, linux, spam

Desactivar el envio de mails de un dominio en Plesk

abril 22, 2013 11:17 am / Leave a Comment / David Rodriguez

Para desactivar el envio y recepcion de mails dentro de un dominio con el Panel Plesk, debemos lanzar el siguiente comando

> /usr/local/psa/bin/mail –off domain.com

Esto nos puede ser muy util si por ejemplo, hemos creado un dominio en Plesk con la opción «sin hosting», donde poder configurar los DNSs. Si el dns es esclavo y tienes dominios dentro del mismo servidor, cualquier mail a ese dominio, lo va a ver como local .. cuando necesitamos que lo envie remotamente.

 

Posted in: servidores / Tagged: linux, plesk

Abrir 2 cuentas de skype a la vez en mac

abril 10, 2013 4:53 pm / Leave a Comment / David Rodriguez

Esto es un problema para los que tenemos que gestionar varias cuentas de skype en el mismo ordenador.

Como yo tengo un Mac, os pongo los pasos que he realizado para tener varias ventanas abiertas de Skype en el mismo ordenador.

Primero nos creamos una nueva cuenta que puede ser de tipo Estandar (no hace falta que sea administrador) y la llamamos skype, por ejemplo.

Manzanita de arriba a la izquierda> Preferencias del sistema > usuarios y  grupos

quitamos el candado  (abajo a la izquierda) para que nos deje añadir un nuevo usuario y le damos a +

Añadimos el usuario skype y lo ponemos una contraseña.

Una vez hecho esto, nos abrimos una ventana de terminal y podemos escribir los siguiente:

> sudo -u skype /Applications/Skype.app/Contents/MacOS/Skype

Cambia skype por el nombre de usuario que hayas creado y comprueba que la dirección donde tienes el proceso de Skype es ese. Si no es .. pues busca el tuyo en Applications

Te pide la contraseña y ya tienes 2 ventanas abiertas de skype desde un mismo ordenador.

En caso de querer tener más terminales abiertos .. pues solo tendrias que repetir estos pasos n veces.

Para no tener que sabernos el comando, lo mejor es crearse un lanzador, para que cuando piches en el icono te abra directamente skype. Para ello, debemos quitar la contraseña cuando ejecutamos este comando. Esto lo hacemos desde el fichero /etc/sudoers

Lo primero es entrar como admin

>sudo -s

Y hago una copia de seguridad no vaya a cagarla ….

> cp /etc/sudoers /etc/sudoersBACKUP

Ejecuto visudo para cambiar el fichero sudoers

> visudo

y añado al final del todo lo siguiente:

skype ALL=/Applications/Skype.app/Contents/MacOS/Skype

De esta forma le decimos el usuario skype puede ejecutar este comando sin contraseña.

guardamos y salimos( Escape, w, q)

Ahora probamos el mismo comando de antes y vemos si podemos acceder sin contraseña

> sudo -u skype /Applications/Skype.app/Contents/MacOS/Skype

Si no te pide contraseña ¡Perfecto! ya casi lo tenemos … ahora vamos a configurarnos el lanzador!!!!

Entramos en terminal > Preferencias > Ajustes

abajo le damos al + para añadir un nuevo lanzador, y en la ventana Shell, en la parte de arranque, ponemos el click de ejecutar comando y metemos el comando

> sudo -u skype /Applications/Skype.app/Contents/MacOS/Skype

 

Ahora ya solo nos queda copiar y pegar ese lanzador en el escritorio o donde queramos .. y pulsando sobre el .. tendremos una nueva ventana de skype.

Posted in: Mac / Tagged: linux, MacOS, productividad

calcular el valor de maxclients en la configuracion de apache

octubre 25, 2012 5:18 pm / 4 Comments / David Rodriguez

Para calcular el valor del parametro MaxClients en Apache, tenemos que conocer la siguiente formula:

MaxClients = Total de la RAM del Servidor en MB / Tamaño de un proceso Apache

 

Para calcular lo que ocupa en memoria un proceso de apache de tu servidor utilizamos el siguiente comando:

> ps -ylC httpd

procesos apache1

procesos apache1

Y vemos que la columna SZ (Size) te dice el tamaño de cada petición apache. En este caso podemos ver qeu aproximadamente son 70M.

Vemos ahora mismo las peticiones Apache que tenemos actualmente:

> lsof -i | grep httpd | grep ESTABLISHED | wc -l

numero de procesos apache

Podemos sacar una media calculando este valor en distintas horas del día, o coger el valor máximo para saber el uso de memoria maximo que podemos tener.

En este caso, voy a coger el valor máximo en este periodo de tiempo que son 19 peticiones.

Y podemos calcular:

Memoria RAM usada por Apache = 19 * 70M = 1330 M

Ahora ya podemos calcular el MaxClients para un servidor con 4G de memoria RAM

MaxClients = 4.000M / 70M = 57

Esta claro que este servidor sería un claro ejemplo para optimizar los procesos Apache, eliminando módulos que no se utilicen para optimizar el servidor web.

Para curarte en salud, se recomienda dejar un 20% de memoria para los procesos del sistema. Con lo que la formula final sería

MaxClients = Total de la RAM del Servidor en MB * 80% / Tamaño de un proceso Apache

 

Posted in: Internet, Otros, servidores / Tagged: apache, linux, servidor web

Gestionar la cola de correo de Postfix

octubre 9, 2012 9:59 am / Leave a Comment / David Rodriguez

Si teneis el servidor de correo Postfix instalado en vuestro servidor Linux, puede que estos comandos para gestionar la cola de correo de Postfix te sean muy utiles:

  • Ver los mensajes de la cola de correo Postfix
    > mailq   aunque tambien vale > postqueue -p
  • Eliminar todos los mensajes de la cola de correo Postfix
    > postsuper -d ALL
  • Eliminar un mensaje de la cola de correo Postfix
    >postsuper -d numero
Posted in: servidores / Tagged: linux, postfix, spam

Vaciar un fichero en linux

agosto 2, 2012 10:04 am / 1 Comment / David Rodriguez

para vaciar un fichero en linux, o dejar el fichero en 0 Kb hay 2 opciones.

Una es borrarlo y crearlo de nuevo, pero tenemos que tener cuidado, ya que no mantendremos permisos, etc.

O la opción que a mi mas me gusta, que es la siguiente

>cp /dev/null /fichero-destino

De esta forma, vaciaremos el fichero sin modificar ningún otro valor.

Posted in: servidores / Tagged: linux

Post Navigation

1 2 3 Siguiente »

Categorias

  • Base de datos
  • Empresas
  • Internet
  • Mac
  • marketing
  • Otros
  • Prensa
  • Programacion
  • Redes Sociales
  • Retos deportivos
  • Seguridad
  • SEO
  • servidores
  • SPAM
  • Uncategorized
© Copyright 2023 - Blog de David Rodriguez