Ingresar  \/ 
x
 Use Facebook account  Use Google account  Use Microsoft account  Use LinkedIn account
o
x

Cómo Asegurar MOR con IPTables

como asegurar mor con iptables

Introducción

Como sabrán varios usuarios de MOR, el personal de Kolmisoft no ofrece soporte específico sobre IPTables (o por lo menos éso nos pasó a nosotros años atrás), aunque sí indican cuáles puertos deberían estar abiertos: http://wiki.kolmisoft.com/index.php/Ports_which_should_be_opened. Sin embargo, muchas personas no saben cómo aplicar ésto a la instalación de MOR, quedando la teoría del artículo anterior en el aire. En esta guía les enseñaré cómo proteger el MOR (cualquier versión) con IPTables teniendo en cuenta los puertos que se deben dejar abiertos nombrados en el link anterior y algo más. Cabe decir que ésto no sustituye la utilidad Fail2Ban que ya viene con las instalaciones de MOR.

Sépase que nuestros nuevos servidores virtuales (VPSs) con Demos de MOR - que soportan hasta 10 llamadas simultáneas - ya tienen incluídas las reglas que se dictan en esta guía.

Paso 1. Abrir la Consola en Modo root.

Abra la consola, usando Putty por ejemplo, y entre las credenciales del usuario root. Dentro de la consola en modo root, podrá ir copiando y pegando, si así lo desea, los comandos - que están en formato código - que siguen a continuación, y que se irán explicando.

Paso 2. Observar las Reglas Actuales en IPTables

Vea el estado actual de sus reglas en IPTables, escribiendo lo siguiente en la consola:

iptables --list --line-numbers --verbose

Generalmente una instalación de MOR (NO nuestras nuevas instalaciones, las cuales ya vienen aseguradas con las reglas de este tutorial) no tiene reglas en las cadenas FORWARD ni en OUTPUT, y las únicas reglas que tiene en INPUT son las cadenas correspondientes a Fail2Ban. Además, estas tres cadenas principales aceptan por defecto todo el tráfico (policy ACCEPT). La siguiente figura es una muestrar de la configuración de este tipo.

ver reglas actuales en iptables mor kolmisoft

Paso 3. Adicionar las Nuevas Reglas en IPTables.

Las nuevas reglas que se aplicarán en este tutorial serán en la cadena/chain INPUT, lo cual se refiere a los datos/paquetes/conecciones que van dirigidos al servidor mismo. La política por defecto del INPUT deberá estar en Accept. Permitiremos explícitamente el tráfico que queremos y al final denegaremos (drop) todo lo demás. Empecemos con las reglas.

  • Permitiremos todo el tráfico generado desde y hacia el servidor mismo:

    iptables -A INPUT -p all -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
  • Permitiremos pero de manera limitada que se pueda hacer ping al servidor ((lo cual usa el protocolo ICMP):

    iptables -A INPUT -p icmp -m limit --limit 4/second --limit-burst 4 -j ACCEPT
  • Permitiremos las respuestas a las solicitudes de DNS hechas por el servidor, las cuales vienen del puerto de origen 53 en UDP o TCP. Aunque generalmente es sólo UDP, le dejamos también TCP por si las moscas.

    iptables -A INPUT -p udp --sport 53 -j ACCEPT
    iptables -A INPUT -p tcp --sport 53 -j ACCEPT
  • Permitimos los puertos para los servicios dichos en el link de arriba del wiki de Kolmisoft y adicionalmente el puerto 21 para FTP. Puede que en su caso algunos servicios, como por ejemplo Heartbeat, no los esté usando y no requiera mantenerlos abiertos; en cuyo caso no ejecute la parte del código que le corresponde.

    iptables -A INPUT -p tcp --dport 80 -j ACCEPT
    iptables -A INPUT -p tcp --dport 22 -j ACCEPT
    iptables -A INPUT -p tcp --dport 25 -j ACCEPT
    iptables -A INPUT -p tcp --dport 465 -j ACCEPT
    iptables -A INPUT -p tcp --dport 443 -j ACCEPT
    iptables -A INPUT -p udp --dport 694 -j ACCEPT
    iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
    iptables -A INPUT -p tcp --dport 3690 -j ACCEPT
    iptables -A INPUT -p udp --dport 4569 -j ACCEPT
    iptables -A INPUT -p udp --dport 5060:5070 -j ACCEPT
    iptables -A INPUT -p udp --dport 10000:20000 -j ACCEPT
    iptables -A INPUT -p udp --dport 123 -j ACCEPT
    iptables -A INPUT -p tcp --dport 123 -j ACCEPT
    iptables -A INPUT -p udp --dport 1720 -j ACCEPT
    iptables -A INPUT -p tcp --dport 1720 -j ACCEPT
    iptables -A INPUT -p udp --dport 5038 -j ACCEPT
    iptables -A INPUT -p tcp --dport 5038 -j ACCEPT
    iptables -A INPUT -p udp --dport 10050 -j ACCEPT
    iptables -A INPUT -p tcp --dport 10050 -j ACCEPT
    iptables -A INPUT -p udp --dport 4000:4999 -j ACCEPT
    iptables -A INPUT -p tcp --dport 21 -j ACCEPT
  • Adicionalmente permitiremos todas las conecciones entrantes establecidas y relacionadas.
  • iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
  • Ahora hacemos caer (DROP; cerrar la puerta) a los paquetes del resto de intentos de conección:

    iptables -A INPUT -p all -j DROP
  • Por último, ejecutamos el siguiente comando con el propósito de que los cambios sean permanentes, es decir, que sigan así incluso después de un reinicio del servidor.

    service iptables save

Listo. Ya tiene un servidor más protegido que antes. Ahora su configuración de iptables luce como el siguiente gráfico. Cualquier duda/aclaración, etc, por favor, comentar abajo.

ver nuevas reglas en iptables mor kolmisoft

Observaciones finales

Puede usar el siguiente comando de netstat para tener un poco de detalle de los servicios y sus respectivos puertos activos o en escucha en su servidor:

netstat -tulpna
Sobre el Autor
Adesh Johnson
Author: Adesh Johnson
Soy muy creyente en Dios. Ésto no me ha impedido un gran interés por la ciencia y la tecnología, y antes bien Dios me ha servido como guía e inspiración. Soy colombiano y tengo un grado en ingeniería. Busco ser no sólo espectador sino también creador en lo referente a la industria del internet. Específicamente, trabajo en el tema de telecomunicaciones bajo Protocolo de Internet IP. Me gusta la optimización de recursos y me considero perfeccionista. También me gusta el cine reflexivo.

ImprimirCorreo electrónico

Donaciones - Tutoriales y VideoTutoriales Fututel

Dona si crees que lo merecemos. Ésto nos ayudará para seguir publicando y hacerte la vida más fácil :)

Cantidad: