foc - La página de loop

Principal Noticias Proyectos Documentos Enlaces Contacto

rc.firewall by loop

Características

Requisitos

Instalación

Download

Firewall basado en iptables, realizado en bash script. Su objetivo, filtrar los servicios más comunes en cualquier estación o servidor de forma simple y eficiente, así como optimizar la conectividad a Internet (de la propia estación, del servidor o de las demás estaciones a través del servidor), dando prioridad a aquellos servicios que nos conviene. Al igual que el script para las copias de seguridad, el firewall dispone de una amplia configuración.
En los apartados que siguen, muestro las características de este script, algunas implementadas a fecha de hoy y otras todavía en desarrollo. Por este motivo, ya que la versión 3.0 final del script tardará un tiempo en salir, pongo la versión anterior para ser bajada, en la cual se puede elegir el uso del ipchains o del iptables.



Características
  • Network Address Translation (NAT): la máquina puede actuar de gateway con filtrado de utilidades "molestas" en una red corporativa (restricción a los usuarios).
  • Filtrado ICMP: tipos echo, broadcast, redirects, destination unreachable, time exceeded...
  • Protecciones varias: IP spoof, OS fingerprinting, TCP SYN cookies, IP fragmentation, enrutado IP, timestamps...
  • Logging
  • Type Of Service (TOS): darle prioridad a ciertos servicios para la conectividad en Internet.
  • Filtrado de servicios comunes: ftp, ssh, smtp, pop3(s), imap(s), nameserver, dhcp, http, sql, ntp, netbios, snmp, lpd, cups, darkstat, kdm, x11, nessus, hylafax, vnc, edonkey, proxy cache, webmin...
  • Filtrado de puertos adicionales configurables.
  • Opción para especificar IPs a las cuales denegar toda conexión a la máquina (léase IPs molestas).
  • Opción para aceptar conexiones de IPs a cualquier servicio que esté activo (filtrado o no por este script).
  • Opción para aceptar conexiones de IPs a cada servicio filtrado.
  • Opción para aceptar conexiones desde la red local a cada servicio filtrado (para el exterior).
  • Parámetros en linea de comandos: start, stop, restart, down, status.



Requisitos
  • iptables ;P
  • kernel 2.4 con algunas o todas (según lo que se quiera realizar) las opciones siguientes:
    • CONFIG_IP_NF_CONNTRACK=m
    • CONFIG_IP_NF_FTP=m
    • CONFIG_IP_NF_IRC=m
    • CONFIG_IP_NF_IPTABLES=y
    • CONFIG_IP_NF_MATCH_LIMIT=m
    • CONFIG_IP_NF_MATCH_MAC=m
    • CONFIG_IP_NF_MATCH_MARK=m
    • CONFIG_IP_NF_MATCH_MULTIPORT=m
    • CONFIG_IP_NF_MATCH_TOS=m
    • CONFIG_IP_NF_MATCH_LENGTH=m
    • CONFIG_IP_NF_MATCH_TTL=m
    • CONFIG_IP_NF_MATCH_TCPMSS=m
    • CONFIG_IP_NF_MATCH_STATE=m
    • CONFIG_IP_NF_MATCH_UNCLEAN=m
    • CONFIG_IP_NF_MATCH_OWNER=m
    • CONFIG_IP_NF_FILTER=m
    • CONFIG_IP_NF_TARGET_REJECT=m
    • CONFIG_IP_NF_TARGET_MIRROR=m
    • CONFIG_IP_NF_NAT=m
    • CONFIG_IP_NF_NAT_NEEDED=y
    • CONFIG_IP_NF_TARGET_MASQUERADE=m
    • CONFIG_IP_NF_TARGET_REDIRECT=m
    • CONFIG_IP_NF_NAT_IRC=m
    • CONFIG_IP_NF_NAT_FTP=m
    • CONFIG_IP_NF_MANGLE=m
    • CONFIG_IP_NF_TARGET_TOS=m
    • CONFIG_IP_NF_TARGET_MARK=m
    • CONFIG_IP_NF_TARGET_LOG=y
    • CONFIG_IP_NF_TARGET_ULOG=m
    • CONFIG_IP_NF_TARGET_TCPMSS=m



Instalación
    1.- Edita el fichero 'firewall.conf-dist' ajístalo a tus necesidades y guardalo como 'firewall.conf'.

    2.- Copia/mueve la configuración a /usr/local/etc:
      # cp firewall.conf /usr/local/etc
      # chown root.root /usr/local/etc/firewall.conf
      # chmod 600 /usr/local/etc/firewall.conf

    3.- Copia/mueve el fichero 'rc.firewall' a /etc/rc.d (o equivalente):
      # cp rc.firewall /etc/rc.d
      # chown root.root /etc/rc.d/rc.firewall
      # chmod 700 /etc/rc.d/rc.firewall

    4.- Haz lo que tengas que hacer (según la distribución que uses) para que se inicie en el arranque del sistema. Para Slackware queda realizado tras completar el paso 3.
Es recomendable ejecutarlo la primera vez a mano, tras configurarlo, para asegurarnos de que todo irá bien.
Si copias el fichero de configuración a otro sitio que no sea /usr/local/etc, puedes pasarle la opción -c <fichero_configuración> al rc.firewall:
    # rc.firewall -c /path/to/firewall.conf
El script tiene los siguientes parámetros en linea de comandos, al menos uno siendo siempre necesario.
Para iniciarlo:
    # /etc/rc.d/rc.firewall start
Para pararlo:
    # /etc/rc.d/rc.firewall stop
Para reiniciarlo:
    # /etc/rc.d/rc.firewall restart
Para que vuelque el estado de los filtros:
    # /etc/rc.d/rc.firewall status
Presta atención a los permisos del archivo de configuración, ya que a nadie le importa el contenido de dicho archivo, más que a ti... pero, sobre todo,

disfrútalo!


Download

Como ya he dicho antes, de momento tan sólo está disponible para descarga la versión 2.1 del script, que tiene bastantes menos opciones que la de desarrollo, pero es util. Quien se haya bajado el rc.firewall de mi antigua página, que sepa que es la misma versión que la que tenía allí disponible. ;)

rc.firewall v2.1



 Neo Artis


 Valencia Wireless


 Slackware