Blog

  • 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 .

  • Acentos en Apache.

    Me ocurrió al instalar Debian y Apache que mi pobre página Web se veía ahora sin acentos. Es mas, los acentos se veían con marcianitos y símbolos raros. Pues leyendo en un foro de ubuntu encontré la solución:

    Hay que editar el fichero /etc/apache2/conf.d/charset que originalmente en mi caso venía con :

    AddDefaultCharset utf8

    y cambiarlo a

    AddDefaultCharset ISO-8859-15

  • 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…

  • ¿Qué distribución elegir?

    Pues vereis, distribuciones hay muchas, muchísimas, tal vez demasiadas. Unas orientadas al escritorio con sensacionales efectos 3D y buenísimas capacidades multimedia. Pocas orientadas a servidores, sin escritorio gráfico. A mi me gusta probarlas «todas».Como bien os dije, mi intención es montar un servidor «casero» con todos los servicios que considero interesante: servidor ftp, servidor web, servidor ssh, etc.

    Con estas premisas me voy a decantar por la archifamosa y de moda Ubuntu en su sabor para servidores. Practicamente con todas las distribuciones aunque no sea esta se puede hacer lo mismo. Es decir, se puede elegir una Mandriva o Fedora y llegar al mismo estado.El porqué de Ubuntu server es sencillo: deja mayor control al usuario, excelente gestor de paquetes (apt), magnífico repositorio de aplicaciones, buenísima guia de uso (http://www.ubuntuguide.org), amplia documentación.

    Al estar basada en debian, incluye miles de aplicaciones de tal manera que tenemos para elegir.En los próximos días irá comentando con ejemplos y capturas de pantalla, mi evolución con este magnífico sistema operativo.

  • Paso de Ubuntu a Mandriva 2007.0

    Pues bien, estoy notando que mi flamante equipo con xfce y basado en xubuntu 6.10 anda lentito y el cuerpo me pide hacer una reinstalacion del sistema.

    Como me gusta aprender y no me caso con ninguna distribucion en concreto he pensado darle una oportunidad a Mandriva 2007. Tengo instaladas varias utilidades como son ftp, este blog, utilidades de monitoreo, etc, pues bien voy a intentar pasarlo todo a Mandriva y para futuros cambios tratare de documentarlo en este blog.

    El primer paso sera instalar Mandriva, configurar las fuente desde «Easy Urpmi» y actualizar con «urpmi –auto-select».El siguiente primer servicio que quiero configurar es ftp. Uso proftpd y creo que a fuerza de instalarlo y configurar varias veces le cogere el truquillo. Un simple «upmi proftpd» basta para instalarlo aunque despues es necesario mandarme el ftp que yo quiero.

    Entre sus caracteristicas basicas estan:1-Varios directorios de consulta exclusivamente por cualquier usuario excepto por uno en particular.2-Un directorio de subida donde poder colocar cosas por cualquier usuario validado o no.3-Acceso por ftp anonimo de cualquier usuario que podra ver el contenido de cualquier carpeta, subir al directorio de subida pero no descargar nada.Seguiremos el proceso:1- Crear un usuario macroftp con clave secreta y directorio por defecto macroftp.

    En dicho directorio como root colocaremos todos los directorios y ficheros que queremos compartir. Importe es configurar los permisos a 755 tanto de los directorios a compartir como del /home/macroftp.2- Tendremos que traspasar de la otra maquina linux a esta los ficheros. Un proceso de sincronizacion nos lo da el siguiente comando que he aprovechado por tener instalado el servicio ssh:

    rsync -avruh –stats –progress [email protected]:/home/macroftp/* /home/macroftpdonde 192.168.0.4 es la Ip del antiguo servidor.3-

    En mi configuración todos los usuarios son del grupo primario users. Este hecho es importante para crear el resto de usuario que queramos que accedan a nuestro ftp. Para crear estos usuarios podemos ejecutar el siguiente comando:adduser usuario1 –home «/home/macroftp» -g users -M -s «/bin/false» -p clavedeseada

    Las opciones son autoexplicativas excepto -M que se utiliza para no crear el directorio home por defecto.El cuarto paso será configurar el propio fichero proftpd.conf. Pero eso será en otro entrada…

  • Sobre paquetes y otras hierbas

    Cuando te planteas instalar un paquete (siempre hablando de Debian, Ubuntu o similares) la opción «apt-get install paquete» es la opción mas socorrida. Pero se plantean otras necesidades:-

    qué paquetes tengo instalados- este fichero ¿a qué paquete pertenece?- ¿qué fichero incorpora este paquete?

    Para estas necesidades hago a continuación este resumen que considera muy importante. Información sobre un paquete

    root@localhost:/# aptitude show xemacs21

    Busca un paquete y dice si está instalado o no

    root@localhost:/# aptitude search emacs

    Busca qué paquete contiene un ejecutable

    root@localhost:/# dpkg –search /usr/bin/ar

    root@localhost:/# dpkg –search `which ar` (si no sabemos el directorio donde está el ejecutable)

    Muestra contenido de un paquete

    root@localhost:/# dpkg -L emacs21

    Determinar qué paquete contiene un fichero que falta(hay que instalar apt-get install apt-file   y despues hacer apt-file update)

    root@localhost:/# apt-file search libpowersave.so

    Espero que os sirva de ayuda.

    ? Instalar las dependencias que permitirán compilar un paquete apt-get build-dep mythtv