Por un problema de espacio en disco, al realizar una tarea en el apache, el servidor se ha quedado sin espacio y no ha debido guardar correctamente el fichero de configuración (claro, todo esto lo sé a toro pasado).
El error que mostraba por pantalla al reiniciar apache era este:
no listening sockets available
shutting downUnable to open logs
Tras dar muchas vueltas, me he dado cuenta que el fichero de configuración de apache (httpd.conf) estaba vacío.
Por suerte, cpanel trae un script para regenerar este fichero. Guarda un fichero que es httpd.conf,v en el que guarda en texto plano, partes del fichero, fechas de modificaciones, el usuario que hizo los cambios, etc…
Para restaurar el fichero simplemente hay que ejecutar este script.
/scripts/rebuildhttpdconf
Entradas relacionadas
Etiquetas: apache, Cpanel & WHM, httpd.conf, script
En un servidor con apache 2.0 y cpanel, tenía que meter el módulo memcache tanto de php como de apache.
Para compilar apache con este módulo, utilice el propio script de cpanel para recompilar /scripts/easyapache. Es muy sencillo de usar y en la lista de posibles módulos de apache apacere memcache. En cambio no aparece como módulo de php
Lo primero que intente es utilizar una solución que dio hace poco mi compañero sysadmin, en uno de sus post, con estas líneas:
root@tureceta [~]# cat /var/cpanel/easy/apache/rawopts/PHP.5.2.13
--enable-memcache
--enable-pcntl
--enable-sysvsem
--enable-sysvshm
--enable-sysvmsg
Lamentablemente no me funcionó (he de decir que sí me funcionó con otros módulos) y tuve que meter el módulo a mano, con estos sencillos pasos:
cd /usr/src/
wget http://pecl.php.net/get/memcache-2.2.5.tgz
tar zxvf memcache-2.2.5.tgz
cd memcache-2.2.5
phpize
./configure
make
make install
Una vez que ha acabado, tenemos que modificar nuestro php.ini para indicar a php donde esta el módulo y así pueda cargarlo correctamente. En mi caso:
vim /usr/local/lib/php.ini
extension_dir = "/usr/local/lib/php/extensions/no-debug-non-zts-20060613"
extension=memcache.so
Entradas relacionadas
Etiquetas: apache, Cpanel, php
Ya vimos el otro día la receta para deshabilitar el modsecurity para un sólo dominio o sitio.
Si no queremos ser tan rudos y no es necesario, tenemos la posibilidad de deshabilitar una regla específica para un usuario o sitio.
Esto nos podría ser muy útil para alojamientos compartidos, en los que una regla “peligrosa” afecta a un usuario y este desea quitarla. Así el resto de cliente siguen protegidos.
Del mismo modo que vimos la otra vez, tendremos que modificar el virtual host con las siguientes líneas:
<ifmodule mod_security2.c>
SecRuleRemoveById 1975856
</ifmodule>
Simplemente estamos indicando que si esta cargado el módulo del modsecurity, elimine la regla con Id 1975856.
Si nuestra regla no tuviera Identificador, podemos añadírselo sin ningún problema de esta forma
Antes:
#PHP Doc System Local File Inclusion Vulnerability
SecRule REQUEST_URI "/index\.php" "chain"
SecRule ARGS:show "(\.\./\.\.|/)"
Después:
#PHP Doc System Local File Inclusion Vulnerability
SecRule REQUEST_URI "/index\.php" "chain, id:1975856"
SecRule ARGS:show "(\.\./\.\.|/)"
Entradas relacionadas
Etiquetas: alojamiento compartido, apache, modsecurity
A día de hoy, todas la medidas que se pueden adoptar para proteger un servidor son pocas. Una de las más conocidas y usadas bajo apache es modSecurity.
Mod_security es un firewall de aplicaciones Web que se ejecuta como un módulo del servidor web Apache, provee protección contra diversos ataques hacia aplicaciones Web y permite monitorizar el tráfico HTTP.
Existe la posibilidad de deshabilitar este módulo sólo a un usuario o a un sitio web modificando su virtualhost. No obstante quiero decir, que no aconsejo hacerlo, ya que dicho usuario será completamente vulnerable a ataques vía web.
Dependiendo de la configuración de apache, es posible realizar este modificación en el .htaccess de la propia home, pero por norma general las configuraciones “estandard” no lo permiten, así que sólo voy a explicar la opción de modificar el virtual host.
La solución pasa por añadir estas lineas en el virtual host del usuario o del sitio que queremos deshabilitar
<ifmodule mod_security2.c>
SecRuleEngine Off
</ifmodule>
Una vez hecho esto, habrá que reiniciar apache
/etc/init.d/httpd restart
De esta forma, el dominio o dominios que accedan a este virtual host, no se verán afectados por las reglas configuradas en el modSecurity
Entradas relacionadas
Etiquetas: apache, modsecurity
Alguna me ha pasado, que vas a reiniciar el apache de la forma habitual:
/etc/init.d/httpd restart
o
service httpd restart
y muestra este error:
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:443
no listening sockets available, shutting down
Unable to open logs
por alguna razón, existe algún procesos (que no es apache) que esta haciendo uso del puerto y el propio apache no puede matarlo para iniciarse nuevamente.
La solución es matar todos los procesos de apache y volver a arrancar:
killall -9 httpd
/etc/init.d/httpd start
o
service httpd start
Entradas relacionadas
Etiquetas: apache, error