Categoría: Administración

  • Proteger un directorio en Apache

    Una de las primeras necesidades que se nos plantean a la hora de instalar un servidor web en nuestro ordenador de casa es cómo proteger un directorio al que solo nosotros podremos tener acceso. La información que sigue ha sido obtenida de una página muy buena como es «bulma».Los pasos que he seguido son:

    1. Creamos un fichero de nombre .htaccess en el directorio que queremos proteger con el siguiente contenido:

    -------Fichero: .htaccess----------
    AuthUserFile  /var/www/html/loadavg/.htpasswd
    AuthGroupFile /dev/nullAuthName "loadavg"
    AuthType Basic Options All
    require valid-user
    -------Fin Fichero-------------

    donde «/var/www/html/loadavg» es el directorio que queremos proteger.2. El fichero .htpasswd estará situado en el mismo directorio que queremos proteger y lo crearemos de la siguiente forma:

    htpasswd -c /var/www/html/loadavg/.htpasswd pepe

    Lo que hace es sobreescribir el fichero.

    3. Una  vez creados tantos usuarios como deseemos tenemos que editar el fichero de configuración de Apache (/etc/httpd.conf o similar) y añadir al final.

    AllowOverride All

    4. Ahora solo tendremos que reiniciar Apache.

    [root@p90 myadmin]# cd /etc/rc.d/init.d/
    [root@p90 init.d]# ./httpd restartShutting down http: [  OK  ]
    Starting httpd: [  OK  ]
  • Cortafuegos

    La instalación de un cortafuegos para tu servidor es una cosa vital mas si va a estar expuesto a Internet via DMZ.

    El cortafuergos que yo instalo hasta ahora es shorewall. La instalación:

    apt-get install shorewall

    Por defecto el cortafuegos no está funcionando hasta que no esté configurado. Shorewall ha evolucionado mucho y ahora cuenta con unas macros que se refieren a distintos puertos y servicios. Es decir, si quieres agregar una regla para que se pueda acceder por SSH desde el exterior, no es necesario saber que SSH atiende en el puerto 22. Shorewall disponer de una cadena de texto para referirse al puerto 22. Las macros disponibles están en /usr/share/shorewall/ y en este caso se llama macro.SSH.

    La configuración típica será:

    Una interfaz de red conectada a un router que proporciona salida a internet. Shorewall viene con varias configuración predefinidas: una interfaz de red, dos y tres. En el directorio /usr/share/doc/shorewall-common/ tienes las tres configuraciones.

    Lo primero que hay que hacer es copiar los ficheros correspondientes a la configuración común a todas las interfaces que se encuentra en /usr/share/doc/shorewall-common/default-config al directorio /etc/shorewall. Después hay que agregar los ficheros correspondientes a la configuración que se posea al directorio (/usr/share/doc/shorewall-common/common/one-interface) también al directorio /etc/shorewall.

    El paso final consiste en agregar las reglas que necesitemos al fichero /etc/shorewall/rules. En nuestro caso vamos a añadir al final:

    SSH/ACCEPT     net        $FW

    Webmin/ACCEPT      net     $FW

    Lo último que tendremos que hacer es habilitar el cortafuertos para el proximo arranque. Editamos para ello el fichero /etc/default/shorewall y cambiamos la linea startup=0 por startup=1.

    Por supuesto arrancar el cortafuegos será el último paso: /etc/init.d/shorewall start.

    Todos estos pasos funcionan correctamente en Ubuntu server 8.04.

    Espero que os haya servido.

  • «Control» de ataques

    Los ataques intentando entrar en nuestros ordenadores son el pan nuestro de cada día. Los usuarios de Windows normalmente ni siquiera se enteran de que están siendo atacados. Pero los usuarios de Linux podemos investigar el caso simplemente consultando los ficheros log de /var/log.

    Ahora bien, la consulta de estos log puede ser tediosa y laboriosa aunque nunca aburrida. Pues tenemos un pequeño demonio para instalar en nuestro servidor que nos ayudará a controlar estos ataques.

    fail2ban, que es el nombre del programa se encargará de leer por nosotros los ficheros log, investigar los accesos fallidos a muchos de nuestros servicios (ftp, ssh, http, etc.), banear a través de una regla iptables la ip del atacante para el servicio que ataca e incluso nos mandará un email a la dirección que le indiquemos con la ip del atacante y el servicio que ataca.

    La instalación de este programa es trivial. Un simple «apt-get install fail2ban»  en nuestro ubuntu será suficiente. Después podemos configurar qué servicios nos controlará dicho programa a través del fichero de configuración «/etc/fail2ban.conf«. Por último, tendremos que reiniciar el servicios con «/etc/init.d/fail2ban restart«. Os recuerdo que todos estos comandos los teneis que ejecutar como root.

    Por un servidor mas seguro…

  • Descubriendo fwanalog.

    Desde hace tiempo he estado buscando una utilidad (demonio o script) que me sirviera para ver los logs que genera mi cortafuegos (actualmente shorewall) de forma cómoda.He probado iptablelog pero he tenido que tocar demasiados ficheros de configuración, crear la base de datos mysql y no me ha llegado a funcionar bien. Evidentemente algo he hecho mal por que lo de momento lo he desestimado.

    He probado fwlogwatch que tiene muchas posibilidades, me ha funcionado bien aunque la información que me daba en su configuración básico es algo limitada. También funciona como demonio creando su propio servidor web en el puerto 888 cosa que obliga a configurar regla en el cortafuego y a cambiar su configuración para poder consultar los logs desde fuera de casa.Finalmente (por ahora), he instalado fwanalog, que es un script que se apoya en el generador de informes analog.

    Funciona únicamente en modo script (sin demonio) que automáticamente se agrega al cron en la instalación (o mediante dpkg-reconfigure fwanalog). Solamente he cambiado una línea en el fichero /etc/fwanalog/fwanalog.opts que se refiere al lugar donde se generará el resultado de su análisis (lo he pasado a /var/www/iptables/).Este programa lo he encontrado gracias a una magnífica página que creo que va a ser desde ahora de referencia obligada y recomendada http://directory.fsf.org/security .

  • Monitorizar o no monitorizar.

    Comprobar cómo está funcionando el servidor Linux ha sido siempre una prioridad para mi. Preguntas como, ¿estará sobrecargada la CPU?, ¿faltará memoria RAM y está funcionando a tope la partición swap del disco? ¿Qué tráfico tiene la tarjeta de red?

    Pues bien, ahora todas estas preguntas pueden tener una fácil solución a través de una simple página web instalada en tu servidor. La culpa la tiene una paquete llamado «munin«.
    Toda la información la tienes en esta página.

    Por el hecho de estar en inglés voy a explicar en breves pasos cómo lo hice en mi caso. Previamente he de decir que se requiere tener un servidor web instalado (tal vez apache).
    1.- Instalar el programa:
    sudo apt-get install munin munin-node
    2.- Se puede configurar modificando el fichero: /etc/munin/munin.conf
    Este paso no es obligatorio ya que la configuración por defecto nos ofrece una información más que suficiente. En cualquier caso es posible monitorizar mas servicios.
    3.- Estos servicios están ubicados en /usr/share/munin/plugins.
    Para activar uno de estos servicios debemos utilizar:
    ./postfix_stats autoconf yes

    por ejemplo.
    4.- Una vez activados los servicios que deseamos monitorizar reiniciaremos el demonio de munin con los comandos:
    sudo /etc/init.d/munin-node restart

    sudo /usr/share/munin/munin-update  -force-root

    Y para que veas que todo esto es verdad puedes consultar el resultado para mi propia máquina en la dirección: http://digitalteam.homelinux.net/munin/

    Animo y a monitorizar…