Este documento esta protegido bajo la licencia pública FDL de la Free Software Foundation.
bastion-firewall ha sido liberado bajo la licencia pública GPL de la Free Software Foundation.
El titular del copyright da permiso para que este documento sea
copiado, distribuido y/o modificado bajo los terminos de la GNU Free
Documentation License (FDL), siempre que se incluya una nota donde se
especifiquen los autores originales del documento y el título
del mismo. El texto de la licencia en inglés se incluye en este
mismo documento y tiene validez legal plena.
Este documento y cualquier código fuente que se incluya se
distribuyen con la esperanza de que resulten útiles, pero SIN
NINGUNA GARANTIA; sin incluso la garantía implícita de
COMERCIALIZACIÓN o ADECUACION PARA UN PROPÓSITO EN
PARTICULAR. Si necesita más detalles consulte la GNU Free
Documentation License (FDL) y la GNU General Public License (GPL) de la
Free Software Foundation.
Sobre bastion-firewall
Sobre los autores de bastion-firewall y
este tutorial
bastion-firewall es un firewall desarrollado por Jose María López Hernández <jkerouac@bgsec.com> y bgSEC (www.bgsec.com) basado en Netfilter e iptables y liberado bajo la licencia GPL de la Free Software Foundation.
bastion-firewall está pensado como firewall llave en
mano para usuarios finales así como firewall completamente
customizable para usuarios avanzados. La configuración por medio
de ficheros bash permite una gran flexibilidad en la generación
de reglas. El código del firewall esta escrito en un 99 por
ciento en bash, con una pequeña parte en C para obtener los
datos de Netfilter y generar las paginas con las gráficas de
estadísticas de tráfico, este planteamiento permite a un
usuario que pueda programar en bash el cambiar bastion-firewall para
adaptarlo a cualquier sistema de producción. bastion-firewall ha
sido liberado por bgSEC bajo licencia GPL y su documentación
bajo licencia FDL, así que puede cambiar cualquier aspecto de
bastion-firewall y usarlo en su sistemas de producción o
liberarlo bajo licencia GPL manteniendo el Copyright original.
Como ejemplo de la flexibilidad de bastion-firewall bgSEC ha
liberado UNbeatABLE CD bajo licencia GPL, una adaptación de la
distribución Knoppix 3.3 con bastion-firewall integrado y que
permite usar el firewalll desde el CD sin necesidad de disco duro.
UNbeatABLE CD es una demostración de tecnología y debe
considerarse como tal, puede tomarse como ejemplo de la flexibilidad
del código o como punto de partida para generar firewalls ad-hoc
para sistemas de producción.
bastion-firewall 1.0 ha sido considerado apto para sistemas de
producción y se encuentra funcionando en varias máquinas
con buenos resultados, también ha sido utilizado para generar
scripts que son firewalls en si mismos y que después de editados
y adaptados se encuentran funcionando en sistemas de producción
con éxito.
bastion-firewall 1.0 ha sido desarrollado en España por Jose
María López Hernández <jkerouac@bgsec.com> y bgSEC (www.bgsec.com)
y por tanto los ficheros de configuración, la
documentación y los comentarios del código están
en español. Desde el comienzo del proyecto se pensó en
traducir todo el firewall al idioma ingles, y se han adaptado las
ordenes y los nombres de los ficheros para facilitar el cambio de
idioma sin tener que cambiar la estructura general del firewall. En
este momento se encuentran traducidos al ingles los ficheros de
configuración con toda su ayuda, las páginas de manual,
la ayuda de las órdenes, parte del interface gráfico
bastion-firewall-interface y bastion-firewall-stats en su totalidad.
También se han traducido los ficheros que acompañan a la
distribución y la guía rápida de
configuración. Esto debería bastar para que los
angloparlantes puedan usar bastion-firewall sin ningún tipo de
problemas, pero queda en el TODO la traducción completa de los
comentarios del código, del tutorial, de la ayuda y completar la
traducción del interface gráfico
bastion-firewall-interface.
bastion-firewall, bastion-firewall-interface y
bastion-firewall-stats han sido creados por Jose María
López Hernández <jkerouac@bgsec.com>
y bgSEC (www.bgsec.com) y liberados
bajo licencia GPL (codigo) y FDL (documentación).
bastion-firewall-interface funciona sobre el servidor HTTP apache y
PHP4, deberá consultar las licencias de ambos programas si
quiere utilizarlos en su sistema de producción. Tanto apache
como PHP4 son Copyright de sus propietarios y no tienen ninguna
relación con bgSEC, aunque sus licencias permiten que sean
distribuidos junto al firewall sin modificar.
Tanto ulogd como rrdtool son parte integrante de bastion-firewall
pero sus Copyright pertenecen a sus propietarios, deberá
consultar sus licencias si quiere usarlos en su sistema de
producción con bastion-firewall-stats. Se distribuyen sin
modificar en forma binaria y codigo fuente, en los ficheros de
distribución se pueden consultar las licencias de cada uno de
los programas.
Los addons hogwash, snort-inline, snort, pdumpq, Netfilter e
iptables y los ficheros de firewall stressing (ethereal, fragrouter,
ftest/ftestd, hping2, nasl, nmap/nmapfe, sing, snot y tcpdump) son
Copyright de sus propietarios y no tienen ninguna relación con
bgSEC. Se aconseja su uso para probar el firewall y se distribuyen sin
ninguna modificación como addons de bastion-firewall. Su uso es
opcional y no forman parte de bastion-firewall, se distribuyen como
binarios y como código fuente sin modificar. En la
distribución de cada programa se puede consultar la licencia y
el Copyright de cada uno de ellos.
HELP_CACHE: Usar el sistema de cache
para acelerar el firewall Usar el sistema de cache de bastion-firewall para acelerar la carga del firewall, evitando el chequear todas las variables y crear los comandos iptables cada vez que se carga el sistema. Este sistema crea un fichero de cache en /var/lib/bastion-firewall/save conteniendo todas las reglas que ejecuta el firewall al cargarse. Este fichero se crea con iptables-save y se carga con iptables-restore |
CACHE="1" |
HELP_SAVE: Grabar y recuperar las
reglas anteriores a la carga del firewall Este sistema crea un fichero en /var/lib/bastion-firewall/backup conteniendo todas las reglas de Netfilter que estaban activas antes de la carga del firewall. Estas reglas se graban al cargar el firewall y se recuperan al parar el firewall. Este fichero se crea con iptables-save y se carga con iptables-restore |
SAVE="0" |
HELP_STATS_USE: Crear estadisticas
de uso del firewall Activa el sistema de estadisticas del firewall basado en cadenas, y que permite obtener ficheros con estadisticas del trabajo del firewall. Este sistema usa rrdtool para generar graficas y almacenar los datos. |
STATS_USE="1" |
HELP_QUEUE: Mandar los paquetes
aceptados a espacio de usuario normalmente a snort-inline Podemos crear grupos de trafico que sera pasados al espacio de usuario, antes de ser aceptados definitivamente, normalmente para ser tratados por otro programa, que nos dara el veredicto de si hay que que aceptarlos o droppearlos. Es muy util por ejemplo antes de aceptar nuestro trafico web mandarlo a snort-inline para que este lo eche un vistazo y decida si rechazarlo o aceptarlo. Debemos tener ya arrancado snort-inline o el programa de espacio de usuario que vayamos a usar antes de lanzar el firewall, sino se producira un error. |
QUEUE="0" |
HELP_BASTION_ULOGD: Mandar datos al
ulogd de bastion-firewall Si arrancamos el ulogd de bastion firewall y activamos esta opcion podremos hacer logs de todas las conexiones acceptadas o denegadas en /var/lib/bastion-firewall/log sin tener que depender del sistema de syslog de la maquina. Ademas permite loggear a bases de datos configurando correctamente el ulogd de bastion-firewall. El grupo de ulog que usa es el 32. Hay que arrancar el ulogd de bastion-firewall independientemente del firewall. |
BASTION_ULOGD="0" |
HELP_BASTION_ULOGD_SIZE: Cuantos
bytes de cada paquete mandar a ulogd Esta variable indica cuantos bytes de cada paquete vamos a mandar al ulogd de bastion-firewall. Si pasamos 100 o asi pasaremos toda la cabecera y algun dato mas probablemente. Si ponemos 0 pasaremos todo el paquete completo. |
BASTION_ULOGD_SIZE="0" |
HELP_BASTION_ULOGD_SIZE: Cuantos
bytes de cada paquete mandar a ulogd Esta variable indica cuantos bytes de cada paquete vamos a mandar al ulogd de bastion-firewall. Si pasamos 100 o asi pasaremos toda la cabecera y algun dato mas probablemente. Si ponemos 0 pasaremos todo el paquete completo. |
BASTION_ULOGD_SIZE="0" |
HELP_BLACKLIST: Usar el sistema de
blacklist y whitelist Permite usar el sistema de blacklist y whitelist de bastion-firewall. Este sistema se controla con comandos y permite crear listas de IPs o redes a bloquear. Permite bloquear direcciones IP despues de cargado el firewall. La whitelist permite incluir direcciones que nunca queremos que sean bloqueadas por el sistema de blacklist. Ver la variable REALWHITELIST para si ademas de impedir que se bloqueen las direcciones de la whitelist se las deje pasar siempre. La idea de la whitelist es tener una lista con las direcciones que usamos en NET_LAN, NET_EXT, en las variables para DNAT, etc y que estas no puedan ser nunca bloqueadas por el sistema de blacklist del firewall, pensando sobre todo en sistemas que puedan usar los scripts para bloquear IPs de forma automatica (IDS y similares) y que pueden ser objeto de ataques de denegacion de servicio obligandolos a bloquear sus propias IPs o redes. |
BLACKLIST="1" |
HELP_REALWHITELIST: Permitir siempre
el paso a las IPs de la whitelist Permite siempre a las direcciones que estan en la whitelist el paso a traves del firewall. Si no activamos esta opcion deberemos tener las IPs de la whitelist incluidas en variables que habiliten el trafico (como NET_LAN o NET_EXT) o se denegara el trafico para las IPs que no esten explicitamente habilitadas. Ver la explicacion de este comportamiento por defecto en la ayuda de BLACKLIST. |
REALWHITELIST="1" |
HELP_LOADMODULES: Cargar
explicitamente el soporte en modulos de Netfilter Esto solo es necesario en el caso en que hayamos compilado el kernel para que no cargue los modulos automaticamente al intentar usar una nueva funcionalidad que no este cargada. Los modulos que necesitan de una carga explicita como los de conntrack o nat para ftp/irc/etc se activan con sus propias variables. Todas las nuevas distribuciones vienen con un kernel compilado con modulos y con el soporte para cargar los modulos automaticamente. |
LOADMODULES="1" |
HELP_MOD_CONN_FTP: Cargar el soporte
CONNTRACK para FTP activo Cargar el soporte para FTP activo de conntrack. Esto cargara el modulo necesario para que el sistema de conntrack pueda marcar como RELATED las conexiones relacionadas con una conexion de ftp activo. Si no se carga este modulo no sera posible usar FTP activo. |
MOD_CONN_FTP="1" |
HELP_MOD_CONN_IRC: Cargar el soporte
CONNTRACK para IRC (DCC) Cargar el soporte para IRC de conntrack. Esto cargara el modulo necesario para que el sistema de conntrack pueda marcar como RELATED las conexiones relacionadas con una conexion IRC, en concreto las conexiones DCC. Si no se carga este modulo no sera posible usar DCC en IRC. |
MOD_CONN_IRC="1" |
## HELP_MOD_NAT_FTP: Soporte NAT
para FTP activo ## Cargar el soporte para FTP activo de NAT. Esto cargara ## el modulo necesario para que el sistema de NAT pueda tratar ## las conexiones de tipo RELATED del ftp activo. Sin este modulo #% no es posible usar FTP activo sobre una conexion NAT. |
MOD_NAT_FTP="1" |
HELP_MOD_NAT_IRC: Soporte NAT para
IRC (DCC) Cargar el soporte para IRC de NAT. Esto cargara el modulo necesario para que el sistema de NAT pueda tratar las conexiones de tipo RELATED del IRC (DCC). Sin este modulo no es posible usar IRC (DCC) sobre una conexion NAT. |
MOD_NAT_IRC="1" |
HELP_MOD_NAT_SNMP_BASIC: Soporte NAT
para SNMP basico Cargar el soporte para SNMP_BASIC de NAT. Esto cargara el modulo necesario para que el sistema de NAT pueda tratar las conexiones de tipo NAT para conexiones basicas de NAT. |
MOD_NAT_SNMP_BASIC="0" |
HELP_TCPDROP: Como denegar
conexiones tcp #% (default) TCPDROP="REJECT --reject-with tcp-reset" Es absolutamente aconsejable utilizar la opcion por defecto, pues es la que mejor resultados ofrece. |
TCPDROP="REJECT --reject-with tcp-reset" |
HELP_UDPDROP: Como denegar
conexiones udp #% (default) UDPDROP="REJECT --reject-with icmp-port-unreachable" Es absolutamente aconsejable utilizar la opcion por defecto, pues es la que mejor resultados ofrece. |
UDPDROP="REJECT
--reject-with icmp-port-unreachable" |
HELP_ICMPDROP: Como denegar
conexiones icmp #% (default) ICMPDROP="DROP" Es absolutamente aconsejable utilizar la opcion por defecto, pues es la que mejor resultados ofrece. |
ICMPDROP="DROP" |
HELP_ALLDROP: Como denegar todas las
conexiones Esta version se usara cuando no queramos especificar para cada protocolo y tambien para los protocolos aparte de tcp, udp e icmp. (default) ALLDROP="DROP" |
ALLDROP="DROP" |
HELP_LOGLEVEL: Opcion para -j LOG
(Nivel de log para syslog) Nivel de log para syslog. Permite especificar la severidad de los mensajes de log que se van a pasar a syslog. Estos niveles permiten mediante syslogd y su fichero de configuracion /etc/syslog.conf el mandar los mensajes de logs a la consola, a los ficheros de log en /var/log y varias opciones mas. El systema de syslog nos permite usar niveles locales o redirigir todos los mensajes del firewall a un fichero en concreto e incluso a un servidor central de logs. Ver documentacion de syslog. Por ejemplo en Redhat el nivel info suele ir a /var/log/messages. Los niveles que podemos especificar son normalmente: debug info notice warning err crit alert emerg y su tratamiento depende de /etc/syslog.conf. Si no ponemos nada el firewall usa info. |
LOGLEVEL="info" |
HELP_LOGOPTS: Opciones para -j LOG
(Ver ayuda de iptables) Aqui podemos poner: --log-tcp-sequence Log the TCP Sequence Numbers (Secuencia) --log-tcp-options Log the TCP Options (Opciones TCP) --log-ip-options Log the IP Options (Opciones IP) Estas opciones llenan los logs con mucha informacion, deben usarse con cuidado. Se pueden combinar varias de estas opciones. |
LOGOPTS="" |
HELP_LOGFALLEN: Apuntar las
conexiones denegadas por servicio no activado Apuntar en los logs todo el trafico denegado por llegar al final de todas las cadenas sin coincidencia, esto indica que no hay ningun servicio habilitado para ese tipo de trafico. No se apunta el trafico denegado por no estar permitida la IP, el interface o la direccion del trafico, para esto es mejor usar LOGDROPPED. Pueden ser gran cantidad de apuntes en los logs. Se usa para probar el firewall antes de entrar en produccion y ver lo que se ha denegado. |
LOGFALLEN="1" |
HELP_LOGACCEPTED: Apuntar en los
logs TODAS las conexiones aceptadas Apuntar en los logs todo el trafico aceptado por el firewall segun las reglas que se hayan creado. Pueden ser gran cantidad de apuntes en los logs. Se usa para probar el firewall antes de entrar en produccion y ver lo que se ha aceptado. |
LOGACCEPTED="0" |
HELP_LOGDROPPED: Apuntar en los logs
TODAS las conexiones denegadas Apuntar en los logs todo el trafico denegado por el firewall segun las reglas que se hayan creado. Pueden ser gran cantidad de apuntes en los logs. Se usa para probar el firewall antes de entrar en produccion y ver lo que se ha denegado. |
LOGDROPPED="0" |
HELP_LOGALL: Apuntar en los logs
TODAS las conexiones Apuntar en los logs todas las conexiones que se produzcan en el firewall, aceptadas o denegadas. Pueden ser gran cantidad de apuntes en los logs. Se usa para probar el firewall antes de entrar en produccion y ver lo que se ha aceptado. Si activamos tambien alguna de las anteriores tendremos logs duplicados, aunque con distintos prefijos. |
LOGALL="0" |
HELP_NOLOGFLOOD: Limitar la
inundacion de apuntes en los logs Limitar el numero de veces por segundo que se escribe en los LOGS para evitar el Log flooding (inundacion de los logs). Las opciones son las mismas que se pasan a iptables. EJEMPLOS: NOLOGFLOOD="-m limit --limit 1/s" Un apunte cada segundo maximo NOLOGFLOOD="-m limit --limit 1/s --limit-burst 10" Un apunte cada segundo maximo con rachas de 10 |
NOLOGFLOOD="-m
limit --limit 50/s" |
HELP_ULOG: Mandar los paquetes al
espacio de usuario con ULOG Si activamos esta opcion todos los logs que se produzcan se pasaran tambien al espacio de usuario con la facilidad de iptables ULOG. No es necesario activar esto para usar el parametro :ulog en las reglas. |
ULOG="0" |
HELP_ULOG_GROUP: Grupo netlink usado
para realizar los log con ULOG Este parametro indica el grupo netlink al que se van a mandar los mensajes netlink de ULOG. El demonio ulogd de espacio de usuario debe ser configurado para recibir los paquetes en este mismo grupo netlink. Hay 32 grupos, por tanto el valor de ULOG_GROUP debe ir de 1 a 32, pero el grupo 32 esta reservado para el uso de del ulogd de bastion-firewall, por lo que esta prohibido usarlo. |
ULOG_GROUP="1" |
HELP_ULOG_SIZE: Bytes que se pasaran
a ULOG de cada paquete Bytes que se pasaran al demonio de espacio de usuario ulogd de cada paquete. Si ponemos 0 se pasaran todos los bytes del paquete. |
ULOG_SIZE="0" |
HELP_ULOG_THRESHOLD: Limite para la
cola del kernel de ULOG Este parametro indica el maximo de paquetes que el kernel debe almacenar para mandarlos todos a la vez al espacio de usuario. El maximo es 50. |
ULOG_THRESHOLD="20" |
HELP_ULOG_PREFIX: Prefijo para los
mensajes ULOG Prefijo que se pondra delante de cada LOG que se pase al demonio de espacio de usuario ulogd. Es obligatorio poner algo, sino el firewall pondra el prefijo bsf por defecto. NO PUEDE CONTENER ESPACIOS. |
ULOG_PREFIX="bsf" |
HELP_CONNTRACK_INVLOG: Loggear
trafico considerado INVALID por CONNTRACK Permite hacer LOG de todo el trafico que el sistema de conntrack marque como INVALID. Conntrack marcara como trafico INVALID todo el trafico que no pertenezca a ninguna conexion y que no tenga relacion con ninguna conexion (no es ESTABLISHED ni RELATED) |
CONNTRACK_INVLOG="0" |
HELP_CONNTRACK_INVDROP: Droppear
trafico considerado INVALID por CONNTRACK Quitar todo el trafico marcado por el sistema de conntrack como INVALID. Conntrack marcara como trafico INVALID todo el trafico que no pertenezca a una conexion y que no tenga relacion con ninguna conexion (no es ESTABLISHED ni RELATED). Esto denegara todas las conexiones invalidas como los escaneos de puertos, ataques DOS, trafico construido y similares. Es muy conveniente tener esta opcion activada. Esta opcion puede romper algun servicio que use los protocolos de forma NO ESTANDAR. Tener cuidado tambien si se usan protocolos que no sean TCP, UDP o ICMP. |
CONNTRACK_INVDROP="0" |
HELP_CONTRACK_PARANOIA: Conexiones
tipo RELATED Permitir SOLO las conexiones tipo RELATED en puertos no privilegiados (1024:65535). Aumenta la seguridad pero rompe servicios como el FTP activo. Se recomienda NO activarlo. |
CONNTRACK_PARANOIA="0" |
HELP_CONTRACK_NOICMP: No permitir
respuestas ICMP por conntrack No permitir que el sistema de connection tracking permita las respuestas ICMP que se consideran ESTABLISHED o RELATED por ir asociadas a una conexion o a un paquete que hemos mandado. Un ejemplo serian los paquetes echo-reply que son considerados ESTABLISHED si hemos mandado un echo-request (hacer ping a un host) a esa maquina. Otro ejemplo serian los host-unreacheable o similares que son devueltos cuando intentamos una conexion TCP o UDP. Este comportamiento suele ser conveniente, pero podemos desactivarlo aqui y afinar luego con las reglas de ICMP los tipos de paquetes que queremos mandar o recibir. |
CONNTRACK_NOICMP="0" |
HELP_ECHOBROAD: Proteccion contra
ECHOBROADCAST Impide que nos convirtamos en amplificadores de ataques smurf |
ECHOBROAD="1" |
HELP_SOURCEROUTE: Deshabilitar
paqutes SOURCE-ROUTE Deshabilitar paquetes source route. Esto evita que atacantes puedan hacer pasar trafico spoof por trafico que proviene de la red local. |
SOURCEROUTE="1" |
HELP_SYNCOOKIE: Proteccion
tcp-syncookie contra SYN floods Esta proteccion permite que el kernel use un sistema de cookies tcp si encuentra que esta siendo victima de un log-flood. |
SYNCOOKIE="1" |
HELP_ICMPREDIR: Proteccion contra
redirecciones de ICMP Impide que que se redirecciones paquetes ICMP porque pueden ser usados para alterar la tabla de rutas. |
ICMPREDIR="1" |
HELP_RPFILTER: Eliminar
paquetes con distinta ruta entrada-salida Eliminar paquetes spoof que entran por un interface pero que su respuesta saldria por otro interface segun la tabla de rutas. Si usamos enrutado asimetrico (un paquete que sale de nuestro host lleva diferente camino que el que llega a nuestro host desde el host de destino). Se aconseja no activarlo. |
RPFILTER="1" |
HELP_LOGMARTIANS: Loggear paquetes
comunmente construidos Loggear paquetes spoofed, paquetes source routed y redirect. El kernel apunta en los logs los paquetes que coincidieron con las protecciones indicadas. |
LOGMARTIANS="1" |
HELP_BADERROR: Proteccion del kernel
bad-error-message Activar en el kernel la proteccion bad-error-message |
BADERROR="1" |
HELP_PORTSCAN_LOG: Loggear los tipos
mas corrientes de escaneos Esta opcion permite loggear los tipos mas corrientes de escaneos de puertos provenientes del exterior y que lleguen al firewall o a la red interna. No es posible detectar los escaneos TCP SYN scan (como los generados por nmap -sS) porque son conexiones validas que luego se cierran, lo que no permite distinguirlas de las validas. |
PORTSCAN_LOG="1" |
HELP_PORTSCAN_DROP: Eliminar los
tipos mas corrientes de escaneos Esta opcion permite eliminar los tipos mas corrientes de escaneos de puertos provenientes del exterior y que lleguen al firewall o a la red interna. Si tenemos habilitado CONNTRACK_INVDROP el firewall denegara SIEMPRE los escaneos por ser trafico considerado INVALID por el sistema de conntrack. Puede ser conveniente no activarlo si tenemos un NIDS como snort que hace un mejor trabajo en detectar y droppear los escaneos de puertos. |
PORTSCAN_DROP="1" |
HELP_PORTSCAN_LOCAL_LOG: Loggear los
tipos mas corrientes de escaneos Esta opcion permite loggear los tipos mas corrientes de escaneos de puertos procedentes del firewall o de la red LAN y que van a la red externa o a internet. |
PORTSCAN_LOCAL_LOG="1" |
HELP_PORTSCAN_LOCAL_DROP: Eliminar
los tipos mas corrientes de escaneos Esta opcion permite eliminar los tipos mas corrientes de escaneos de puertos procedentes del firewall o de la red LAN y que van a la red externa o a internet. Si tenemos habilitado CONNTRACK_INVDROP el firewall denegara SIEMPRE los escaneos por ser trafico considerado INVALID por el sistema de conntrack. |
PORTSCAN_LOCAL_DROP="1" |
HELP_NEWNOSYNDROP: No aceptar
paquetes NEW sin SYN Puede pasar si el programa manda paquetes despues de haber mandado el FIN/ACK. Veremos paquetes NEW que no corresponden a ningun SYN. Pueden darse si recibimos conexiones de otro firewall que ha caido, por ejemplo en un entorno de dos firewall de alta disponibilidad, o en el caso de que tengamos multiples rutas (enrutado asimetrico por ejemplo), este ultimo caso debe tratarse con el moderno sistema de enrutado de Linux. Si no tenemos ninguno de estos casos es muy probable que sean paquetes fabricados, o que tengamos algun problema con el firewall, en ambos casos lo mas sensato es desecharlos. Si activamos la opcion los loggeamos y los quitamos. Es la opcion por defecto, y previene paquetes fabricados por nmap o hping2. |
NEWNOSYNDROP="1" |
HELP_SYNFLOOD_PROTECTION: Limitacion
del numero de SYN en el tiempo Limita el numero de conexiones SYN que podemos tener, y por tanto el maximo de conexiones por segundo que tenemos. Depende enormemente del trafico del sitio, por lo que lo desactivamos por defecto y rogamos al administrador que haga pruebas hasta que consiga valores que no impidan el trafico normal de su sitio. Estos valores se han de rellenar en SYNFLOOD_PROTECTION_LIMIT. ESTO ES DIFERENTE DE LA PROTECCION POR SYN-COOKIES DEL KERNEL USAR CON MUCHA PRECAUCION. |
SYNFLOOD_PROTECTION="0" |
HELP_SYNFLOOD_PROTECTION_LIMIT:
Limitacion de numero SYN. Limite Para activarlo hay que activar SYNFLOOD_PROTECTION y luego rellenar esta variable. Se puede limitar por tiempo y tambien por rachas. EJEMPLOS: SYNFLOOD_PROTECTION_LIMIT="-m limit --limit 1/s --limit-burst 4" SYNFLOOD_PROTECTION_LIMIT="-m limit --limit 20/s" |
SYNFLOOD_PROTECTION_LIMIT="-m
limit --limit 20/s" |
HELP_FRAG_PROTECTION: Proteccion
contra los fragmentos de paquetes Los paquetes fragmentados pueden ocurrir normalmente e iptables puede reconstruirlos y trabajar sin ningun problema con ellos, sobre todo gracias al sistema de estado conntracking, pero tambien hay que tener en cuenta que los paquetes de penetration testing para romper firewalls se basan en parte en mandar paquetes super fragmentados que el firewall no pueda ver. Esta variable deniega y loggea todo el trafico fragmentado tcp o udp que veamos. Las reglas de conntrack para ESTABLISHED y RELATED van antes que estas, por lo que aceptaran el trafico licito fragmentado. En principio es mejor dejarlo sin activar. Si vemos demasiados fragmentos de paquetes lo podemos activar para denegarlos y loggearlos, pero hay que tener en cuenta que en teoria es posible que cause problemas. |
FRAG_PROTECTION="0" |
HELP_ICMPFRAG_PROTECTION: Proteccion
contra los fragmentos ICMP Los paquetes icmp fragmentados suelen ser trafico anomalo, por lo que podemos loggearlos y denegarlos. |
ICMPFRAG_PROTECTION="0" |
HELP_OTHERFRAG_PROTECTION:
Proteccion contra los fragmentos OTHER Los paquetes cuyo protocolo no es tcp, udp o icmp fragmentados pueden ocurrir de forma normal segun como el kernel trabaje con el protocolo y por las mismas caracteristicas del protocolo. Por tanto debemos estar bastante seguros antes de usar esta opcion si nuestro firewall ha de trabajar con protocolos que no sean tcp, udp o icmp. Por otro lado si no vamos a usarlos es aconsejable activar esta opcion. |
OTHERFRAG_PROTECTION="0" |
HELP_RULES_PRESPOOFING: Reglas a
cargar antes de chequear spoofing Estas reglas se ejecutaran antes de hacer el chequeo de spoofing, que crea reglas muy rigidas sobre el origen y destino de los paquetes. Podemos aceptar o denegar paquetes antes de comprobar el spoofing, saltandonos todas las reglas siguientes. El fichero es: /usr/lib/bastion-firewall/bsf/localprespoofing.bsf |
RULES_PRESPOOFING="1" |
HELP_RULES_LOCALNAT: Reglas locales
a cargar que realizan nat Estas reglas se cargaran antes de las demas, aqui se pueden incluir reglas locales que realicen nat de cualquier tipo. El fichero es: /usr/lib/bastion-firewall/bsf/localnat.bsf |
RULES_LOCALNAT="1" |
HELP_RULES_START: Ejecutar reglas
locales de inicializacion Cargar reglas y codigo de inicializacion y prueba despues de los chequeos de spoofing, pero saltandonos todo lo demas. Se usa sobre todo para hacer logs. El fichero es: /usr/lib/bastion-firewall/bsf/localrules.bsf |
RULES_START="1" |
HELP_RULES_END: Ejecutar reglas
locales al final Cargar reglas y codigo de prueba justo al final, ultima oportunidad antes de hacer LOG y DROP de los paquetes. El fichero es: /usr/lib/bastion-firewall/bsf/localrulesend.bsf |
RULES_END="1" |
HELP_VARIABLES: Variables
utiles Variables a usar en el firewall. No deberian cambiarse si no hay razones poderosas para hacerlo |
## HELP_LOOPBACK: Direccion de loopback
#% LOOPBACK="127.0.0.0/8" ## HELP_CLASS_A: Redes privadas de clase A #% CLASS_A="10.0.0.0/8" ## HELP_CLASS_B: Redes privadas de clase B #% CLASS_B="172.16.0.0/12" ## HELP_CLASS_C: Redes privadas de clase C #% CLASS_C="192.168.0.0/16" ## HELP_CLASS_D_MULTICAST: Redes privadas de clase D #% CLASS_D_MULTICAST="224.0.0.0/4" ## HELP_CLASS_E_NET: Direcciones reservadas de clase E #% CLASS_E_NET="240.0.0.0/5" ## HELP_BROADCAST_SRC: Fuente de broadcast #% BROADCAST_SRC="0.0.0.0" ## HELP_BROADCAST_DST: Destino de broadcast #% BROADCAST_DST="255.255.255.255" ## HELP_PORTS_PRIV: Puertos privilegiados #% PORTS_PRIV="0:1023" ## HELP_PORTS_NOPRIV: Puertos no privilegiados #% PORTS_NOPRIV="1024:65535" |
HELP_IRCPORTS: Puertos IRC
permitidos para CONNTRACK y NAT Puertos IRC para conntrack y nat de irc. Se ponen separados por comas. Si se deja en blanco son los puertos estandar. Los valores mas comunes son IRCPORTS="6665,6666,6667,6668,6669,7000" |
IRCPORTS="" |
HELP_FTPPORTS: Puertos FTP
permitidos para CONNTRACK y NAT Puertos FTP para conntrack y nat de ftp. Se ponen separados por comas. Si se deja en blanco son los puertos estandar. Esta es la opcion mas comun y la que se usara por defecto. |
FTPPORTS="" |
HELP_COMANDOS:
Path de los comandos que usa el firewall Comandos del sistema que usa el firewall, podemos especificarlos o hacer que los encuentre el comando 'which' |
## HELP_MYIPT: Ejecutable de iptables #% # MYIPT="/sbin/iptables" MYIPT=$(which iptables) ## HELP_MYIPTSAVE: Ejecutable de iptables-save #% # MYIPTSAVE="/sbin/iptables-save" MYIPTSAVE=$(which iptables-save) ## HELP_MYIPTRESTORE: Ejecutable de iptables-restore #% # MYIPTRESTORE="/sbin/iptables-restore" MYIPTRESTORE=$(which iptables-restore) ## HELP_MYMODPROBE: Ejecutable de modprobe #% # MYMODPROBE="/sbin/modprobe" MYMODPROBE=$(which modprobe) ## HELP_MYGREP: Ejecutable de grep #% # MYGREP="/bin/grep" MYGREP=$(which grep) ## HELP_MYTR: Ejecutable de tr #% # MYTR="/usr/bin/tr" MYTR=$(which tr) ## HELP_MYTAIL: Ejecutable de tail #% # MYTAIL="/usr/bin/tail" MYTAIL=$(which tail) ## HELP_MYHEAD: Ejecutable de head #% # MYHEAD="/usr/bin/head" MYHEAD=$(which head) ## HELP_MYWC: Ejecutable de wc #% # MYWC="/usr/bin/wc" MYWC=$(which wc) ## HELP_MYCUT: Ejecutable de cut #% # MYCUT="/usr/bin/cut" MYCUT=$(which cut) ## HELP_MYCAT: Ejecutable de cat #% # MYCAT="/bin/cat" MYCAT=$(which cat) ## HELP_MYUNIQ: Ejecutable de uniq #% # MYUNIQ="/usr/bin/uniq" MYUNIQ=$(which uniq) ## HELP_MYMD5SUM: Ejecutable de md5sum #% # MYMD5SUM="/usr/bin/md5sum" MYMD5SUM=$(which md5sum) ## HELP_MYDATE: Ejecutable de date #% # MYDATE="/bin/date" MYDATE=$(which date) ## HELP_MYSORT: Ejecutable de sort #% # MYSORT="/bin/sort" MYSORT=$(which sort) ## HELP_MYRM: Ejecutable de rm #% # MYRM="/bin/rm" MYRM=$(which rm) ## HELP_MYCP: Ejecutable de cp #% # MYCP="/bin/cp" MYCP=$(which cp) ## HELP_MYBASENAME: Ejecutable de basename #% # MYBASENAME="/bin/basename" MYBASENAME=$(which basename) ## HELP_MYTOUCH: Ejecutable de touch #% # MYTOUCH="/bin/touch" MYTOUCH=$(which touch) |
HELP_INTERFACE_LOOPBACK: Interface
de loopback del firewall Interface de loopback. |
INTERFACE_LOOPBACK="lo" |
HELP_INTERFACE_IGNORE: Interfaces
que debe ignorar el firewall Interfaces que el firewall debe ignorar y permitir todo el trafico que pase a traves de ellos. Es una forma de tener enrutadas redes a traves del firewall sin que pasen por las reglas. Una aplicacion podria ser usarlas para el Linux Virtual Server (LVS). |
INTERFACE_IGNORE="" |
HELP_INTERFACE_LAN: Interfaces que
conectan con las LAN internas Lista de interfaces del firewall que conectan con las redes internas. Se pueden especificar todos los interfaces que tengan un sufijo con '+', por ejemplo eth+ para eth0, eth1, etc. Ejemplo: INTERFACE_LAN="eth0 eth1 tr+" |
INTERFACE_LAN="eth0" |
HELP_INTERFACE_EXT: Interfaces que
conectan con las redes externas Lista de interfaces del firewall que conectan con las redes externas. Se pueden especificar todos los interfaces que tengan un sufijo con '+', por ejemplo eth+ para eth0, eth1, etc. Ejemplo: INTERFACE_EXT="eth2 eth3 ppp+" |
INTERFACE_EXT="ppp0" |
HELP_NET_GROUPS: Definicion de
grupos de IPs, rangos o redes para utilizar luego en las variables que aceptan este tipo de datos. Se definen aqui con la forma GROUP_nombregrupo_NET (se puede usar otra forma, pero se aconseja usar esta para no sobreescribir otras variables del firewall) y luego se pueden usar en cualquier variable que acepte IPs, rangos o redes, incluyendo el grupo en la forma $GROUP_nombregrupo_NET. Como este fichero de configuracion se ejecuta como script bash el interprete se encarga de expandir las variables, e incluso podemos usar cualquier codigo bash para generar estas variables. Ejemplo: Definimos las variables de grupo: GROUP_DESKTOP_NET="192.168.15.0/24 192.168.16.1" GROUP_COMPILERFARM_NET="192.168.16.0/24" Luego las usamos en una variable que acepta IPs, rangos o redes: NET_LAN="192.168.7.0/24 $GROUP_DESKTOP_NET $GROUP_COMPILERFARM_NET" Es simplemente una forma de tener ordenadas las direcciones en el fichero de configuracion si vamos a manejar muchas. Se aplica a los datos que introducimos en estas variables las mismas indicaciones que detallamos en HELP_NETWORKS mas arriba. Se ofrecen algunos grupos como ejemplo: |
GROUP_DESKTOP_NET="192.168.17.0/24" GROUP_WEBSERVERS_NET="192.168.18.1 192.168.18.2 192.168.18.3" GROUP_SSLZONE_NET="192.168.19.0/24" |
HELP_NET_IGNORE: Redes y direcciones
que el firewall debe ignorar Redes que en la abstraccion del funcionamiento del firewall se consideran como no pertenecientes al conjunto, por lo que son ignoradas y todo el trafico que va o viene de ellas es permitido. Permite tener redes enrutadas a traves del firewall sin que el trafico pase por las reglas. Una aplicacion de esto podria ser el Linux Virtual Server (LVS). |
NET_IGNORE="" |
HELP_NET_LAN: Redes internas al
firewall (ver abstraccion) Redes que en la abstraccion del funcionamiento del firewall se consideran como internas. Se puede especificar cualquier numero de IPs, rangos de IPs o redes. Si queremos que cualquier red conectada al firewall por algun interface en INTERFACE_LAN tenga acceso podemos poner 0.0.0.0/0 Aunque si ponemos 0.0.0.0/0 esto incluye tambien las demas redes a las que conectamos se aconseja poner tambien las redes o IPs internas, pues es util para evitar el spoofing. Si no ponemos aqui ninguna red se entiende que es 0.0.0.0/0 |
NET_LAN="192.168.1.0/24" |
HELP_NET_EXT: Redes externas al
firewall (ver asbtraccion) Redes que en la abstraccion del funcionamiento del firewall se consideran como externas. Se puede especificar cualquier numero de IPs, rangos de IPs o redes. Tambien se puede poner una combinacion de estos y 0.0.0.0/0 (internet). Hay que tener en cuenta si ponemos unicamente 0.0.0.0/0 esto incluye tambien las demas redes a las que conectemos pero es imprescindible ponerlas si en el exterior vamos a tener redes privadas de clase A, B o C, pues si solo ponemos 0.0.0.0/0 se considerara los paquetes que vengan de ellas como spoofing y seran denegados. Si no se especifica nada se entiende 0.0.0.0/0 (internet) |
NET_EXT="" |
HELP_USEIPFW: Activar el
ip-forwarding Activar el mecanismo del kernel de ip forwarding, necesario para actuar de router de redes locales internas hacia otras redes o internet. Es obligatorio para realizar NAT de cualquier tipo. |
USEIPFW="1" |
HELP_MASQ_INTERNET: Enmascarar los
paquetes que van a internet Es un caso concreto de SNAT, permite que las redes internas especificadas en NET_LAN accedan a internet realizando NAT de fuente con la direccion IP del interface que conecta a internet. Permite conectar redes locales a internet con una sola IP, como es el caso de las conexiones PPP, de ADSL o cable. |
MASQ_INTERNET="1" |
HELP_MASQ_SNAT: Usar SNAT en vez de
MASQUERADE Si conocemos la IP del firewall que va a enmascarar los paquetes que van a internet es mucho mejor hacer SNAT en vez de MASQUERADE, pues SNAT es mucho mas mas rapido. Para esto es necesario conocer la IP con la que queremos hacer SNAT y tenerla asignada al firewall. Es posible poner varias direcciones IP si tenemos varias vias de conexion a internet, por ejemplo: MASQ_SNAT_IP="192.168.7.1 192.168.8.1 192.168.10.1" Se permiten rangos en la forma x.x.x.x-x.x.x.x pero no se permiten redes. Es necesario activar tambien MASQ_INTERNET para poder usar esta opcion. La IP para hacer SNAT debe especificarse en MASQ_SNAT_IP. |
MASQ_SNAT="0" MASQ_SNAT_IP="" |
HELP_MASQ_LAN: Enmascarar UNICAMENTE
estas redes o IPs Limitar el enmascaramiento de las redes locales a las especificadas en esta variable. Permite tener redes internas con IPs publicas que solo seran enrutadas a internet (si las rutas lo permiten y esta activado el ip-forwarding), pero sin realizar SNAT. |
MASQ_LAN="" |
HELP_MASQ_EXT: Enmascarar para redes
en NET_EXT que no son internet MASQ_INTERNET solo enmascara los paquetes que van a internet, no los que van a NET_EXT, si queremos que se enmascaren los paquetes que van a otras redes o IPs que tenemos en NET_EXT debemos ponerlas aqui. Esta opcion es independiente de MASQ_INTERNET, y puede activarse sin activar MASQ_INTERNET. Lo que si tiene en cuenta es la variable MASQ_LAN. |
MASQ_EXT="0" |
HELP_PROXYTRANS: Proxy transparente Redirigir todo el trafico que vaya al puerto 80 (http) al proxy que se encuentra EN EL MISMO HOST DONDE CORREMOS EL FIREWALL. Si el proxy se encuentra en OTRO HOST tendremos que usar DNAT en vez de REDIRECT. Para activarlo es necesario configurar tambien el proxy (ver la documentacion de squid). |
PROXYTRANS="0" |
HELP_PROXYTRANS_DPORT: Puerto donde
esta el proxy en el firewall |
PROXYTRANS_DPORT="3128/tcp" |
HELP_ADM_RANK:
Rango de administracion del firewall Las redes o IPs que pongamos aqui tendran acceso ILIMITADO al firewall siempre que accedan a el por un interface de INTERFACE_LAN o INTERFACE_EXT. Este acceso permitira la administracion total del firewall. No se aconseja usarlo, pues cualquiera que tenga estas IPs podra acceder de forma ilimitada al firewall, lo que es cualquier cosa menos aconsejable. |
ADM_RANK="" |
HELP_DNS_LIMITED: Acceso limitado
servidores DNS Aqui se pueden especificar IPs o redes de servidores DNS a los que el firewall siempre tendra conexion, aunque se creen reglas que digan lo contrario. Esto permite bloquear todo el trafico DNS en general, pero tener acceso a los servidores DNS. |
DNS_LIM="" ## HELP_DNS_LIM_DPORT: Puertos permitidos para DNS limitado #% DNS_LIM_DPORT="53/tcp 53/udp" ## HELP_DNS_LIM_LAN: Permitir el acceso a la LAN ademas del firewall #% DNS_LIM_LAN="0" |
HELP_SMTP_LIMITED:
Acceso limitado servidores SMTP (mail) Aqui se pueden especificar IPs o redes de servidores SMTP a los que el firewall siempre tendra conexion, aunque se creen reglas que digan lo contrario. Esto permite bloquear todo el trafico SMTP en general, pero tener acceso a los servidores SMTP. |
SMTP_LIM="" ## HELP_SMTP_LIM_DPORT: Puertos permitidos para SMTP limitado #% SMTP_LIM_DPORT="25/tcp" ## HELP_SMTP_LIM_LAN: Permitir el acceso a la LAN ademas del firewall #% SMTP_LIM_LAN="0" |
HELP_POP_LIMITED:
Acceso limitado servidores POP Aqui se pueden especificar IPs o redes de servidores POP a los que el firewall siempre tendra conexion, aunque se creen reglas que digan lo contrario. Esto permite bloquear todo el trafico POP en general, pero tener acceso a los servidores POP. |
POP_LIM="" ## HELP_POP_LIM_DPORT: Puertos permitidos para POP limitado #% POP_LIM_DPORT="110/tcp" ## HELP_POP_LIM_LAN: Permitir el acceso a la LAN ademas del firewall #% POP_LIM_LAN="0" |
HELP_DHCP_LIMITED:
Acceso limitado servidores DHCP Aqui se pueden especificar IPs o redes de servidores DHCP a los que el firewall siempre tendra conexion, aunque se creen reglas que digan lo contrario. Esto permite bloquear todo el trafico DHCP en general, pero tener acceso a los servidores DHCP, aunque solo de IP a IP por medio de UDP, no se permite el broadcast de DHCP con esta variable, para permitir el acceso a broadcast de DHCP remitirse al servicio DHCP en rules.conf que si permite activarlo. |
DHCP_LIM="" ## HELP_DHCP_LIM_DPORT: Puertos permitidos para DHCP limitado #% DHCP_LIM_DPORT="67/udp 68/udp" ## HELP_DHCP_LIM_LAN: Permitir el acceso a la LAN ademas del firewall #% DHCP_LIM_LAN="0" |
HELP_PROXY_LIMITED: Acceso limitado
servidores PROXY Aqui se pueden especificar IPs o redes de servidores PROXY a los que el firewall siempre tendra conexion, aunque se creen reglas que digan lo contrario. Esto permite bloquear todo el trafico PROXY en general, pero tener acceso a los servidores PROXY. Esto sirve para poner nuestro proxy squid como hijo de otro proxy squid, por ejemplo el de nuestro ISP. Hay que configurar squid para poner como 'parent' el proxy que ponemos aqui. |
PROXY_LIM="" ## HELP_PROXY_LIM_DPORT: Puertos permitidos para PROXY limitado #% PROXY_LIM_DPORT="3128/tcp 3130/tcp 3130/udp" ## HELP_PROXY_LIM_LAN: Permitir el acceso a la LAN ademas del firewall #% PROXY_LIM_LAN="0" |
HELP_LOCAL1_LIMITED: Acceso limitado
servidores (configuracion local) Aqui se pueden especificar IPs o redes de servidores de otros servicios que necesitemos y a los que el firewall siempre tendra conexion, aunque se creen reglas que digan lo contrario. |
## HELP_LOCAL1_LIM_DPORT:
Puertos permitidos para el servicio LOCAL1 limitado #% ## HELP_LOCAL1_LIM_LAN: Permitir el acceso a la LAN ademas del firewall #% LOCAL1_LIM="" LOCAL1_LIM_DPORT="22/tcp" LOCAL1_LIM_LAN="0" ## HELP_LOCAL2: Ver LOCAL1 #% LOCAL2_LIM="" LOCAL2_LIM_DPORT="" LOCAL1_LIM_LAN="" ## HELP_LOCAL3: Ver LOCAL1 #% LOCAL3_LIM="" LOCAL3_LIM_DPORT="" LOCAL1_LIM_LAN="" |
HELP_LIMITED_LOG: Hacer log del
trafico LIMITED Hacer log de todo el trafico limitado generado por las reglas anteriores. |
LIMITED_LOG="0" |
HELP_LIMITED_STATS: Crear
estadisticas del trafico LIMITED Crear estadisticas del trafico limitado generado por las reglas anteriores. |
LIMITED_STATS="0" |
Grupo de servicios mas
comunes en clientes y servidores |
GROUP_COMMON_DEF="DNS
HTTP HTTPS PROXY POP IMAP NETBIOS SMTP NNTP\ FTP IRC SSH TELNET" GROUP_COMMON="fw-to-lan lan-to-fw fw-to-ext lan-to-ext" |
Grupo de servicios en maquinas tipo
escritorio |
GROUP_DESKTOP_DEF="LISA
PRIVOXY ESD ARTSD WWASHER REALPLAYER H323 XFS" GROUP_DESKTOP="fw-to-lan lan-to-fw" |
Grupo de servicios de mensajeria instantanea |
GROUP_IM_DEF="MSN ICQ AIM YAHOO
JABBER" GROUP_IM="fw-to-lan lan-to-fw fw-to-ext lan-to-ext" |
Grupo de servicios que suelen albergar los
servidores |
GROUP_SERVER_DEF="PROXYICP
LDAP LDAPSSL DHCP MYSQL POSTGRESQL MSQLSERVER\ IPP LPR XDM VNC RNDC XWIN SMTPS IMAPS POPS FTPSSL TELNETSSL" GROUP_SERVER="fw-to-lan lan-to-fw" |
Grupo de servicios menos comunes en los
servidores |
GROUP_SERVUNCOMMON_DEF="ARKEIA
PORTMAP NFS RPCLOCKD RPCRQUOTAD RPCMOUNTD \ RPCSTATD CORBA SOCKS CVS IDENTD WHOIS AFS TFTP TOMCAT CODA SPAMASSASSIN \ DRBD ENBD" GROUP_SERVUNCOMMON="" |
Grupo de servicios de administracion y
monitorizacion |
GROUP_ADMIN_DEF="BASTIONFIREWALL
SYSLOG SNMP SNMPTRAP SWAT WEBMIN NRPE\ NSCA OPENNMS OPENNMSDHCP MON SNMPAGENTX SNMPSMUX HEARTBEAT RSYNC\ UPSD NETDUMP NTP LINUXCONF MTS NESSUS" GROUP_ADMIN="" |
Grupo de servicios de enrutamiento |
GROUP_ROUTING_DEF="ZEBRA
OSPFD BGPD RIP" GROUP_ROUTING="" |
Grupo de servicios de empresa (enterprise) |
GROUP_ENTERPRISE_DEF="IPSEC
KRB KRBADM KRBKRB524 KRBKLOGIN KRBKSHELL KRBADMKDC\ KRBEKLOGIN KRBPASSWD NETVIEW ORACLEALL ORACLESQLNET ORACLEORASRV\ ORACLETLISRV ORACLECOAUTHOR ORACLERDB ORACLENAMES ORACLECMAN\ ORACLEEM ORACLEVP ORACLENETCMAN ORACLE ORACLEGIOP ORACLETTC\ OPENVIEW TIVOLI CITRIXICA ENTRUSTADMIN ENTRUSTKEYMGMT SECUREIDPROP\ SECUREIDUDP TACACSPLUS TACACSDS RADIUS RADIUSACCT OLDRADIUS" GROUP_ENTERPRISE="" |
Grupo
de servicios peer to peer |
GROUP_P2P_DEF="KAZAA
NAPSTER EDONKEY WINMX" GROUP_P2P="fw-to-lan lan-to-fw fw-to-ext lan-to-ext" |
Grupo
de servicios poco comunes |
GROUP_UNCOMMON_DEF="GOPHER
FINGER PCANYWHERE OPENWINDOWS DAYTIME REXEC\ BIFF RLOGIN WHO RSHELL RWHOIS TRACERTUDP INTERPHONE REALSECURE\ SQLNET UUCP" GROUP_UNCOMMON="" |
HELP_DNS: Servicio DNS Servicio DNS de resolucion de nombres. Puerto 53/tcp 53/udp Tambien DNS Caching Name Server (servidor local a servidor primario) Si solo queremos resolucion sobre UDP podemos quitar 53/tcp |
DNS="" DNS_PORT="53/tcp 53/udp" DNS_DNATSERVER="" |
HELP_HTTP: Servicio HTTP Servicio HTTP (Web). Puerto 80/tcp |
HTTP="" HTTP_PORT="80/tcp" HTTP_DNATSERVER="" |
HELP_HTTPS: Servicio HTTPS Servicio SSL (HTTP seguro). Puerto 443/tcp |
HTTPS="" HTTPS_PORT="443/tcp" HTTPS_DNATSERVER="" |
HELP_PROXY: Servicio PROXY. Puerto
8080/tcp. A veces 3128/tcp (squid) Proxy de HTTP, normalmente tendremos un servidor squid o similar en el firewall que servira las paginas a la LAN, puede que de forma transparente. Normalmente el destino sera un servidor con un proxy squid. El puerto puede ser a veces 3128/tcp |
PROXY="" PROXY_PORT="8080/tcp" PROXY_DNATSERVER="" |
HELP_POP: Servicio POP3 Servicio POP (Correo entrante). Puerto 110/tcp |
POP="" POP_PORT="110/tcp" POP_DNATSERVER="" |
HELP_IMAP: Servicio IMAP Servicio IMAP (Correo entrante). 143/tcp 220/tcp |
IMAP="" IMAP_PORT="143/tcp 220/tcp" IMAP_DNATSERVER="" |
HELP_NETBIOS: Servicio NETBIOS.
Microsoft o Samba. Puertos 135:139/tcp 135:139/udp 445/tcp 445/udp 135/tcp,udp es ms-rpc 137/tcp,udp es netbios-ns (nameserver) 138/tcp,udp es microsoft-dgm (datagram service) 139/tcp,udp es netbios-ssn (session service) 445/tcp,udp es microsoft-ds Servicio NETBIOS, utilizado en redes Microsoft o unix+samba. Puertos que usa: el rango 135:139 en udp/tcp y 445 en tcp y udp Los servicios van a veces en UDP o sobre TCP (en Samba sobre Unix) Como es proclive a ataques y a fugas de informacion (y como los usuarios tienden a no configurarlo de forma segura) no deberiamos dejarlo salir de la red. |
NETBIOS="" NETBIOS_PORT="137:139/tcp 137:139/udp 445/tcp 445/udp" NETBIOS_DNATSERVER="" |
HELP_NETBIOS_BROADCASTSRV: Trafico
broadcast de netbios servidor El broadcast mas comun es el que envia el servidor a la direccion de broadcast netbios para anunciar sus recursos compartidos, actua por tanto como servidor. Si queremos habilitar el trafico de broadcast hacia una o unas direcciones de red deberemos especificarlo aqui. Esto tiene implicaciones en la seguridad del sistema que se deberian tener muy en cuenta. Usa los puertos 137/udp y 138/udp. |
NETBIOS_BROADCASTSRV="" |
HELP_NETBIOS_BROADCASTCLI:
Trafico broadcast de netbios cliente El broadcast mas comun es el que envia el servidor a la direccion de broadcast netbios para anunciar sus recursos compartidos, actua por tanto como servidor. Si queremos habilitar el trafico de broadcast hacia una o unas direcciones de red deberemos especificarlo aqui. Esto tiene implicaciones en la seguridad del sistema que se deberian tener muy en cuenta. Usa los puertos 137/udp y 138/udp. |
NETBIOS_BROADCASTCLI="" |
HELP_SMTP: Protocolo SMTP Servicio SMTP (Correo saliente). Puerto 25/tcp |
SMTP="" SMTP_PORT="25/tcp" SMTP_DNATSERVER="" |
HELP_NNTP: Protocolo NNTP Servicio NNTP (News). Puerto 119/tcp |
NNTP="" NNTP_PORT="119/tcp" NNTP_DNATSERVER="" |
HELP_FTP: Servicio FTP. Puertos
20/tcp 21/tcp Este firewall soporta FTP ACTIVO y FTP PASIVO. Para soportar el metodo de FTP ACTIVO el firewall usa el modulo de ftp para el connection tracking: ip_conntrack_ftp |
FTP="" FTP_PORT="21/tcp 20/tcp" FTP_DNATSERVER="" |
HELP_IRC: Servicio IRC. Puertos
6667/tcp Para soportar DCC usamos el modulo de connection tracking: ip_conntrack_irc de Netfilter. Podemos usar por tanto DCC sin problemas. |
IRC="" IRC_PORT="6667/tcp" IRC_DNATSERVER="" |
HELP_SSH: Servicio SSH. Puertos
22/tcp Servicio SSH, permite sustituir a telnet y ftp por sus contrapartidas seguras ssh y sftp que usan encriptacion. Tambien necesario si usamos rsync, vnc, etc sobre ssh. |
SSH="" SSH_PORT="22/tcp" SSH_DNATSERVER="" |
HELP_TELNET: Servicio TELNET. Puerto
23/tcp Es inherentemente inseguro y no soporta encriptacion, por lo que es conveniente substituirlo por SSH que permite la misma funcionalidad sobre un canal encriptado. |
TELNET="" TELNET_PORT="23/tcp" TELNET_DNATSERVER="" |
HELP_PROXYICP:
Internet Cache Protocol (ICP v2) para Squid. Puertos: 3130/udp (pueden cambiarse) Protocolo de comunicacion entre servidores proxy squid. |
PROXYICP="" PROXYICP_PORT="3130/udp" PROXYICP_DNATSERVER="" |
HELP_LDAP: Servicio LDAP Servicio de directorio LDAP, usado en sistemas Unix o Microsoft Windows 2000/XP. |
LDAP="" LDAP_PORT="389/tcp" LDAP_DNATSERVER="" |
HELP_LDAPSSL:
Servicio LDAP sobre SSL Servicio LDAP sobre SSL o TLS. |
LDAPSSL="" LDAPSSL_PORT="636/tcp" LDAPSSL_DNATSERVER="" |
HELP_DHCP: Servicio DHCP. Puertos
67/udp 68/udp Servidor de configuraciones de hosts DHCP. |
DHCP="" DHCP_PORT="67/udp 68/udp" DHCP_DNATSERVER="" |
HELP_DHCP_DSTCLI: Destino de
broadcast para ser clientes de DHCP Destino de broadcast para DHCP. Si lo dejamos en blanco no se permitira mandar trafico broadcast para DHCP. Esta variable nos permite mandar mensajes broadcast a una direccion para recibir datos DHCP. Esta supeditado a los que pongamos en DHCP, pero solo aceptara broadcast en los puertos 67/udp y 68/udp. #DHCP_DSTCLI="$BROADCAST_DST" |
DHCP_DSTCLI="" |
HELP_DHCP_DSTSRV: Destino de
broadcast para DHCP cuando somos servidores Destino de broadcast para DHCP para poder recibir mensajes de broadcast en un servidor que escuche en la direccion de broadcast para poder responder a los clientes de la red. Es el caso mas comun. Esta supeditado a los que pongamos en DHCP, pero solo aceptara broadcast en los puertos 67/udp y 68/udp. #DHCP_DSTSRV="$BROADCAST_DST" |
DHCP_DSTSRV="" |
HELP_MYSQL: Base de datos mysql Servidor de base de datos MYSQL. |
MYSQL="" MYSQL_PORT="3306/tcp" MYSQL_DNATSERVER="" |
HELP_POSTGRESQL: Base de datos
postgresql Servidor de base de datos POSTGRESQL |
POSTGRESQL="" POSTGRESQL_PORT="5432/tcp" POSTGRESQL_DNATSERVER="" |
HELP_MSQLSERVER: Servicio Microsoft
SQL Server Servidor SQL de Microsoft |
MSQLSERVER="" MSQLSERVER_PORT="1433/tcp" MSQLSERVER_DNATSERVER="" |
HELP_IPP: Internet printing protocol El protocolo que usa cups entre otros. |
IPP="" IPP_PORT="631/tcp 631/udp" IPP_DNATSERVER="" |
HELP_ARKEIA: Servidor arkeia Servidor de backup arkeia |
ARKEIA="" ARKEIA_PORT="617/tcp" ARKEIA_DNATSERVER="" |
HELP_PORTMAP: Servicio sunrpc
(Portmap). Puertos 111/tcp 111/udp Mapea los puertos que usaran los servicios RPC. Se puede obtener automaticamente PORTMAP_PORT con: TMPPMAP=$(rpcinfo -p localhost|grep "portmapper"|grep "tcp" \ |tr ' ' '\n'|grep -v "p"|tail -n 2|head -n 1) PORTMAP_PORT="$TMPPMAP/tcp $TMPPMAP/udp" Donde localhost es la direccion del host donde esta portmap. Es necesario que portmap se este ejecutando en ese host. Es posible incluso incluir este codigo en este fichero de configuracion para que bash lo interprete. Casi siempre estara en 111 asi que no merece la pena. |
PORTMAP="" PORTMAP_PORT="111/tcp 111/udp" PORTMAP_DNATSERVER="" |
HELP_NFS:
Servicio NFS. Puertos 2049/tcp 2049/udp Compartir ficheros por medio de NFS. Los ultimos linux proveen tanto de un cliente como un servidor de NFS a nivel de kernel, que usan tambien los puertos estandar para la comunicacion por NFS. No es posible cambiar los puertos en los que corren pues el modulo no acepta opciones. Se puede obtener automaticamente NFS_PORT con el siguiente codigo, pero teniendo en cuenta que NFS puede correr solo sobre udp, con lo que habria que retirar todo lo referente a tcp. TMPNFSPTCP=$(rpcinfo -p localhost|grep "nfs"|grep "tcp" \ |tr ' ' '\n'|grep -v "nfs"|tail -n 2|head -n 1) TMPNFSPUDP=$(rpcinfo -p localhost|grep "nfs"|grep "udp" \ |tr ' ' '\n'|grep -v "nfs"|tail -n 2|head -n 1) NFS_PORT="$TMPNFSTCP/tcp $TMPNFSUDP/udp" Donde localhost es la direccion del host donde esta portmap. Es necesario que portmap se este ejecutando en ese host. Es posible incluso incluir este codigo en este fichero de configuracion para que bash lo interprete. Casi siempre estara en 2049 asi que no merece la pena. |
NFS="" NFS_PORT="2049/tcp 2049/udp" NFS_DNATSERVER="" |
HELP_RPCLOCKD: Servicio rpc.lockd de
bloqueo en NFS. 4045/udp Es usado por NFS. Los ultimos kernel de linux proporcionan la funcionalidad NFS en el kernel y normalmente ejecutan su propia version de NFS que incluye los demonios lockd y rpciod. Al cargar el modulo es posible indicar con los parametros nlm_udpport y nlm_tcpport el puerto en el que lockd va a escuchar, y se puede incluir en /etc/modules.conf para hacerlo automatico. Hay que tener en cuenta que el modulo lockd se carga antes de nfsd. Otra forma de obtener el puerto es usar el siguiente codigo: TMPLOCKD=$(rpcinfo -p localhost|grep "lock"|grep "udp" \ |tr ' ' '\n'|grep -v "lock"|tail -n 2|head -n 1) RPCLOCKD_PORT="$TMPLOCKD/udp" Aunque el fichero de servicios de nmap dice que el puerto es 4045/udp en mi maquina linux con kernel 2.4.20 el demonio escucha en un puerto semi-aleatorio. Es aconsejable usar rpcinfo para obtener el puerto o fijarlo con los parametros del modulo. |
RPCLOCKD="" RPCLOCKD_PORT="4045/udp" RPCLOCKD_DNATSERVER="" |
HELP_RPCRQUOTAD: Servicio de quotas
en NFS. 762/tcp 762/udp Es usado por NFS para mantener quotas, es parte del paquete quota. Una forma de obtener los puertos es usar el siguiente codigo: TMPRPCRQUOTADTPC=$(rpcinfo -p localhost|grep "quota"|grep "tcp" \ |tr ' ' '\n'|grep -v "quota"|tail -n 2|head -n 1) TMPRPCRQUOTADUDP=$(rpcinfo -p localhost|grep "quota"|grep "udp" \ |tr ' ' '\n'|grep -v "quota"|tail -n 2|head -n 1) RPCRQUOTAD_PORT="$TMPRPCRQUOTADTCP/tcp $TMPRPCRQUOTADTCP/udp" Aunque el fichero de servicios de nmap y el del iana dice que los puertos son 762/tcp 762/udp en mi maquina linux con kernel 2.4.20 y rpc.rquotad version 3.06 el demonio escucha en dos puertos semi-aleatorios. Es aconsejable usar rpcinfo para obtener los puertos. |
RPCRQUOTAD="" RPCRQUOTAD_PORT="762/tcp 762/udp" RPCRQUOTAD_DNATSERVER="" |
HELP_RPCMOUNTD: Servicio de montaje
de NFS. 635/tcp 635/udp Es usado por NFS para recibir las ordenes de montaje desde los clientes y permitirlas o denegarlas. Es posible lanzar el comando con la opcion -p puerto que nos permite obligar al comando a que escuche en un puerto concreto, esto nos asegurara que permitimos los puertos correctos. Una forma de obtener los puertos es usa el siguiente codigo: TMPRPCMOUNTDUTPC=$(rpcinfo -p localhost|grep "mount"|grep "tcp" \ |tr ' ' '\n'|grep -v "mount"|tail -n 2|head -n 1) TMPRPCMOUNTDUDP=$(rpcinfo -p localhost|grep "mount"|grep "udp" \ |tr ' ' '\n'|grep -v "mount"|tail -n 2|head -n 1) RPCMOUNTD_PORT="$TMPRPCMOUNTDTCP/tcp $TMPRPCMOUNTDTCP/udp" Aunque el fichero de servicios de nmap dice que el puerto es 635/tcp pero en mi maquina linux con kernel 2.4.20 y nfs-utils version 1.0.1 escucha un dos puertos semi-aleatorios. Es aconsejable usar la opcion -p de rpc.mountd o usar rpcinfo para obtener los puertos. |
RPCMOUNTD="" RPCMOUNTD_PORT="635/tcp 635/udp" RPCMOUNTD_DNATSERVER="" |
HELP_RPCSTATD: Servicio de estatus
de NFS. 1110/tcp 1110/udp Es usado por NFS para mantener el estado y notificar a rpc.lockd la informacion que necesita. Es posible lanzar el comando con la opcion -p puerto que nos permite obligar al comando a que escuche en un puerto concreto, esto nos asegurara que permitimos los puertos correctos. Una forma de obtener el puerto es usar el siguiente codigo: TMPRPCSTATDUTPC=$(rpcinfo -p localhost|grep "stat"|grep "tcp" \ |tr ' ' '\n'|grep -v "stat"|tail -n 2|head -n 1) TMPRPCSTATDUDP=$(rpcinfo -p localhost|grep "stat"|grep "udp" \ |tr ' ' '\n'|grep -v "stat"|tail -n 2|head -n 1) RPCSTATD_PORT="$TMPRPCSTATDTCP/tcp $TMPRPCSTATDTCP/udp" Aunque el fichero de servicios de nmap y el del iana dicen que los puertos son 1110/tcp 1110/udp en mi maquina linux con kernel 2.4.20 y nfs-utils version 1.0.1 escucha en dos puertos semialeatorios. Es aconsejable usar la opcion -p de rpc.statd o usar rpcinfo para obtener los puertos. |
RPCSTATD="" RPCSTATD_PORT="1110/tcp 1110/udp" RPCSTATD_DNATSERVER="" |
HELP_LPR: Servicio LPR Servicio de impresion sobre red LPR. |
LPR="" LPR_PORT="515/tcp 515/udp" LPR_DNATSERVER="" |
HELP_SOCKS: Servicio SOCKS. Puertos
1080/tcp Es un relay de TCP y UDP. Permite usar SOCKS para pasar por el firewall otros servicios. Muchos programas soportan el usar un proxy SOCKS en vez de los puertos que normalmente usan, y usando determinados programas se puede sockificar muchos programas. NUNCA abra un proxy SOCKS en internet si no quiere aparecer en montones de listas negras. Los proxies SOCKS abiertos para todo el mundo en internet se usan para crear cadenas a traves de las que lanzar ataques sin que se pueda encontrar el origen de estos. |
SOCKS="" SOCKS_PORT="1080/tcp" SOCKS_DNATSERVER="" |
HELP_CVS: Servicio CVS. Puerto
2401/tcp Trabajo compartido sobre un arbol de codigo. Algunos sitios ofrecen software abierto a traves de un servidor CVS. |
CVS="" CVS_PORT="2401/tcp" CVS_DNATSERVER="" |
HELP_IDENTD: Servicio IDENTD de
identificacion de usuarios. Puerto 113/tcp Tambien llamado AUTH. Puede suponer una fuga de informacion de nuestra red, pero puede ser util recibir mensajes de fuera. |
IDENTD="" IDENTD_PORT="113/tcp" IDENTD_DNATSERVER="" |
HELP_XDM: Servicio XDMCP para xdm X Display manager Servicio XDMCP de login remoto en X11 sobre red |
XDM="" XDM_PORT="177/udp" XDM_DNATSERVER="" |
HELP_VNC: Servicio VNC. Puertos
5801/tcp 5901/tcp 6001/tcp Es un servicio de desktop remoto, muy usado, multiplataforma y mas eficaz que X11 en enlaces lentos. |
VNC="" VNC_PORT="5801/tcp 5901/tcp 6001/tcp" VNC_DNATSERVER="" |
HELP_RNDC: Servicio rndc control
sockets Servicio de BIND 9 (rnd control sockets) |
RNDC="" RNDC_PORT="953/tcp" RNDC_DNATSERVER="" |
HELP_CORBA: Corba Corba |
CORBA="" CORBA_PORT="683:684/tcp 683:684/udp 1050/tcp 1050/udp 2809/tcp 2809/udp" CORBA_DNATSERVER="" |
HELP_XWIN: Servicio de Xwindows.
Puertos 6000:6063/tcp Servicio de acceso remoto a un servidor X11. El rango incluye el que usa SSH para mandar el trafico X11 sobre un canal ssh abierto. |
XWIN="" XWIN_PORT="6000:6063/tcp" XWIN_DNATSERVER="" |
HELP_SMTPS: Servicio SMTP sobre SSL Servicio SMTP sobre SSL o TLS. |
SMTPS="" SMTPS_PORT="465/tcp" SMTPS_DNATSERVER="" |
HELP_IMAPS: Servicio IMAPS (IMAP
seguro). Puertos 993/tcp Servicio de correo IMAP sobre SSL o TLS. |
IMAPS="" IMAPS_PORT="993/tcp" IMAPS_DNATSERVER="" |
HELP_POPS: Servicio POPS (POP
seguro). Puertos 995/tcp Servicio de correo POP sobre SSL o TLS. |
POPS="" POPS_PORT="995/tcp" POPS_DNATSERVER="" |
HELP_FTPSSL: Ftp seguro Ftp sobre SSL o TLS. |
FTPSSL="" FTPSSL_PORT="989:990/tcp" FTPSSL_DNATSERVER="" |
HELP_TELNETSSL: Telnet seguro Telnet sobre SSL o TLS |
TELNETSSL="" TELNETSSL_PORT="992/tcp" TELNETSSL_DNATSERVER="" |
HELP_WHOIS: Servicio WHOIS. Puertos
43/tcp 43/udp Acceso a servidores de base datos sobre dominios WHOIS. |
WHOIS="" WHOIS_PORT="43/tcp 43/udp" WHOIS_DNATSERVER="" |
HELP_AFS: Servicio AFS Servidor de ficheros AFS |
AFS="" AFS_PORT="7000:7009/tcp" AFS_DNATSERVER="" |
HELP_TFTP: Servicio tftp Ftp sin autentificacion. Se usa para subir configuraciones a routers, y maquinas sin disco duro. |
TFTP="" TFTP_PORT="69/udp" TFTP_DNATSERVER="" |
HELP_TOMCAT: Servidor Tomcat 4 Servidor Tomcat 4 Funciona por defecto en el mismo puerto que se suele usar para los proxies tipo squid. Es conveniente cambiarlo. Si tenemos activado el PROXY TRANSPARENTE para el puerto 8080 seguramente acabaremos teniendo graves problemas con el destino de nuestras conexiones. |
TOMCAT="" TOMCAT_PORT="8080/tcp" TOMCAT_DNATSERVER="" |
HELP_CODA: Servidor de ficheros CODA Servidor de ficheros CODA |
CODA="" CODA_PORT="369:370/udp 370/tcp 370/udp 2430/tcp 2432:2433/tcp 2432:2433/udp" CODA_DNATSERVER="" |
HELP_SPAMASSASSIN: Spamassassin Spamassassin |
SPAMASSASSIN="" SPAMASSASSIN_PORT="783/tcp" SPAMASSASSIN_DNATSERVER="" |
HELP_DRBD: Drbd network raid Drbd network raid |
DRBD="" DRBD_PORT="7789/tcp 7789/udp" DRBD_DNATSERVER="" |
HELP_ENBD: Enhanced network block
device Enhanced network block device |
ENBD="" ENBD_PORT="1099:1103/tcp 1099:1103/udp" ENBD_DNATSERVER="" |
HELP_LISA: Lisa (KDE) The lan information server |
LISA="" LISA_PORT="7741/tcp 7741/udp" LISA_DNATSERVER="" |
HELP_PRIVOXY: Privacy enhanced proxy Privacy enhanced proxy |
PRIVOXY="" PRIVOXY_PORT="8118/tcp" PRIVOXY_DNATSERVER="" |
HELP_ESD: Servidor ESD de GNOME Enlightened sound daemon (gnome) |
ESD="" ESD_PORT="16001/tcp" ESD_DNATSERVER="" |
HELP_ARTSD: Servidor artsd de KDE Analog realtime synthesizer (kde 3) |
ARTSD="" ARTSD_PORT="32814/tcp" ARTSD_DNATSERVER="" |
HELP_WWASHER: Wwasher proxy Wwasher proxy |
WWASHER="" WWASHER_PORT="9090/tcp" WWASHER_DNATSERVER="" |
HELP_REALPLAYER: Servicio Realplayer
y Realaudio Realplayer, Realaudio. Realplayer 7070/tcp RTSP real time stream control protocol 554/tcp PNA puerto 1090/tcp |
REALPLAYER="" REALPLAYER_PORT="7070/tcp 554/tcp 1090/tcp" REALPLAYER_DNATSERVER="" |
HELP_H323: Servicio H323 Servicio H323 de transmision multimedia sobre Internet, es el usado por Netmeeting y Gnome-netmeeting. Tambien es el usado por MSN para transportar audio y video. Para poder usar el protocolo H323 a traves del firewall es necesario un modulo del kernel que lo soporte, y si usamos NAT otro modulo para el nat. Estas extensiones no suelen venir de serie (al menos en Redhat 9) y implican tener que parchear el codigo fuente del kernel e iptables usando patch-o-matic para incluir la extension, y luego recompilarlo todo. Las opciones para cargar y activar estos modulos estan en advanced.conf porque no vienen de serie en el kernel. |
H323="" H323_PORT="1720/tcp" H323_DNATSERVER="" |
HELP_XFS: Servicio XFS Servidor de fuentes de X11. |
XFS="" XFS_PORT="7100/tcp" XFS_DNATSERVER="" |
HELP_GROUP_ADMIN:
Servicios de administracion y configuracion Servicios de administracion, configuracion y monitorizacion. Incluye los servicios SNMP. |
## HELP_BASTIONFIREWALL:
Configuracion a traves de web de bastion-firewall ## Permite el acceso a la configuracion via web de bastion-firewall, #% donde se pueden cambiar las reglas y ver las estadisticas. BASTIONFIREWALL="" BASTIONFIREWALL_PORT="10002/tcp" BASTIONFIREWALL_DNATSERVER="" ## HELP_BASTIONFIREWALLSSL: Configuracion a traves de SSL de bastion-firewall ## Permite el acceso a la configuracion via SSL de bastion-firewall, #% donde se pueden cambiar las reglas y ver las estadisticas. BASTIONFIREWALLSSL="" BASTIONFIREWALLSSL_PORT="10003/tcp" BASTIONFIREWALLSSL_DNATSERVER="" ## HELP_SYSLOG: Servicio de syslog #% Servicio de syslog SYSLOG="" SYSLOG_PORT="514/udp" SYSLOG_DNATSERVER="" ## HELP_SNMP: Servicio SNMP (OpenView, Tkined, OpenNMS, snmpd, etc) ## Puertos 161/udp ## Hay que tener en cuenta ademas que la version 1 de snmp no ## tiene ningun tipo de seguridad, no conviene permitir el acceso #% desde el exterior si no se tiene seguridad sobre snmp (v2c o v3) SNMP="" SNMP_PORT="161/udp" SNMP_DNATSERVER="" ## HELP_SNMPTRAP: Servicio SNMPTRAP (OpenView, Tivoli, Tkined, OpenNSM, etc) ## Servicio de avisos asincronos de SNMP (snmptraps) #% Puertos 162/udp SNMPTRAP="" SNMPTRAP_PORT="162/udp" SNMPTRAP_DNATSERVER="" ## HELP_SWAT: Servicio Swat. Puerto 901/tcp #% Configuracion de Samba a traves de web. SWAT="" SWAT_PORT="901/tcp" SWAT_DNATSERVER="" ## HELP_WEBMIN: Servicio Webmin. Puerto 10000/tcp #% Sistema de administracion remota Webmin. WEBMIN="" WEBMIN_PORT="10000/tcp" WEBMIN_DNATSERVER="" ## HELP_NRPE: Servicio Nagios NRPE. Puerto 5666/tcp #% Demonio que ejecuta plugins NAGIOS en maquinas remotas NRPE="" NRPE_PORT="5666/tcp" NRPE_DNATSERVER="" ## HELP_NSCA: Nagios service check acceptor #% Nagios service check acceptor NSCA="" NSCA_PORT="5667/tcp" NSCA_DNATSERVER="" ## HELP_OPENNMS: Sistema de gestion de red OpenNMS #% Sistema de gestion de red OpenNMS OPENNMS="" OPENNMS_PORT="8180/tcp 8181/tcp" OPENNMS_DNATSERVER="" ## HELP_OPENNMSDHCP: Sistema de gestion de red OpenNMS (dhcp) ## Sistema de gestion de red OpenNMS #% Servidor dhcp de Opennms OPENNMSDHCP="" OPENNMSDHCP_PORT="5818/tcp" OPENNMSDHCP_DNATSERVER="" ## HELP_MON: Mon monitoring services #% Mon monitoring services MON="" MON_PORT="2583/tcp 2583/udp" MON_DNATSERVER="" ## HELP_SNMPAGENTX: AgentX de snmpd #% AgentX de snmpd SNMPAGENTX="" SNMPAGENTX_PORT="705/tcp 705/udp" SNMPAGENTX_DNATSERVER="" ## HELP_SNMPSMUX: SNMP multiplexer #% Multiplexador de SNMP SNMPSMUX="" SNMPSMUX_PORT="199/tcp" SNMPSMUX_DNATSERVER="" ## HELP_HEARTBEAT: Heartbeat #% Enlace para alta disponibilidad de heartbeat. HEARTBEAT="" HEARTBEAT_PORT="694/udp" HEARTBEAT_DNATSERVER="" ## HELP_RSYNC: Servicio de sincronizacion rsync #% Servicio de sincronizacion rsync RSYNC="" RSYNC_PORT="873/tcp" RSYNC_DNATSERVER="" ## HELP_UPSD: Servicio upsd #% Control de UPS UPSD="" UPSD_PORT="3305/tcp 3305/udp" UPSD_DNATSERVER="" ## HELP_NETDUMP: Servicio netdump ## El servicio netdump permite mandar los datos sobre la caida del ## kernel de Linux a un servidor central, junto con una copia de la #% memoria fisica del sistema. NETDUMP="" NETDUMP_PORT="6666/udp" NETDUMP_DNATSERVER="" ## HELP_NTP: Servicio NTP (Sincronizacion de relojes) ## Puertos 123/udp #% Servicio de sincronizacion de relojes internos de maquinas NTP="" NTP_PORT="123/udp" NTP_DNATSERVER="" ## HELP_LINUXCONF: Linuxconf #% Sistema de configuracion para Linux linuxconf. LINUXCONF="" LINUXCONF_PORT="98/tcp" LINUXCONF_DNATSERVER="" ## HELP_MTS: Servicio Microsoft Terminal Server ## Servicio Microsoft Terminal Server de acceso remoto a Windows. #% MS WBT Server MTS="" MTS_PORT="3389/tcp" MTS_DNATSERVER="" ## HELP_NESSUS: Servidor de escaneo de seguridad #% Servidor nessusd del escaner de seguridad NESSUS NESSUS="" NESSUS_PORT="1241/tcp" NESSUS_DNATSERVER="" |
HELP_GROUP_IM: Mensajeria instantanea Servicios de mensajeria instantanea (msn, icq, aim, etc) |
## HELP_MSN: Mensajeria
instantanea de Microsoft (MSN). ## Puerto 1863/tcp ## Permite usar los servicios de MSN de Microsoft. Hay que ## tener en cuenta que las ultimas versiones del cliente pueden usar ## un tunel por el puerto 80/tcp (HTTP), lo que hace mas dificil ## bloquearlo. Es posible hacerlo con un proxy como squid. ## Tambien es posible que tengamos qeu activar el servicio H323 ## de transmision multimedia sobre Internet, pues puede necesitarlo ## MSN para transportar audio y video. Para poder usar el protocolo ## H323 es necesario un modulo del kernel que lo soporte, y si ## usamos NAT otro modulo para el nat. Estas extensiones no ## suelen venir de serie (al menos en Redhat 9) y implican tener ## que parchear el codigo fuente del kernel e iptables usando ## patch-o-matic para incluir la extension, y luego recompilarlo #% todo. MSN="" MSN_PORT="1863/tcp" MSN_DNATSERVER="" ## HELP_ICQ: Mensajeria instantanea de ICQ. Puertos 5190/tcp 4000/tcp #% Mensajeria ICQ, ahora parte de AOL. ICQ="" ICQ_PORT="5190/tcp 4000/tcp" ICQ_DNATSERVER="" ## HELP_AIM: Mensajeria instantanea de AOL. ## Puertos 5190:5193/tcp #% Mensajeria Instantanea de AOL. AIM="" AIM_PORT="5190:5193/tcp" AIM_DNATSERVER="" ## HELP_YAHOO: Mensajeria instantanea de Yahoo. ## Puertos 5050/tcp #% Yahoo messenger y todos sus servicios asociados. YAHOO="" YAHOO_PORT="5050/tcp" YAHOO_DNATSERVER="" ## HELP_JABBER: Mensajeria instantanea de Jabber (IM opensource) ## Puertos 5222/tcp 5269/tcp ## Jabber es un sistema de mensajeria instantanea muy avanzado y #% disponible opensource. JABBER="" JABBER_PORT="5222/tcp 5269/tcp" JABBER_DNATSERVER="" |
HELP_GROUP_ROUTING:
Servicios y protocolos de enrutamiento Servicios y protocolos de enrutamiento. |
## HELP_ZEBRA: Zebra routing
protocol #% Zebra routing protocol ZEBRA="" ZEBRA_PORT="2601:2602/tcp" ZEBRA_DNATSERVER="" ## HELP_OSPFD: Ospf routing protocol #% Ospf routing protocol OSPFD="" OSPFD_PORT="2604/tcp" OSPFD_DNATSERVER="" ## HELP_BGPD: Border gateway protocol #% Border gateway protocol BGPD="" BGPD_PORT="179/tcp 2605/tcp" BGPD_DNATSERVER="" ## HELP_RIP: Route protocol (routed) #% Servicio de enrutado RIP RIP="" RIP_PORT="520/udp" RIP_DNATSERVER="" |
HELP_GROUP_ENTERPRISE:
Servicios orientado a la gran empresa Servicios que se suelen usar en grandes redes, normalmente denominados enterprise services. |
## HELP_IPSEC: Trafico IPSEC ## Trafico IPSEC (por ejemplo freeswan en Linux). ## Ademas debe habilitarse el trafico para los protocolos IPSECESP ## (si usamos encriptacion o autentificacion) y IPSECAH (si usamos ## autentificacion a nivel del paquete). Uno de los dos es necesario. #% Este puerto es el que usa IPSEC para las negociaciones IKE. IPSEC="" IPSEC_PORT="500/udp" IPSEC_DNATSERVER="" ## HELP_KRB: Kerberos #% Kerberos (v5) KRB="" KRB_PORT="88/udp" KRB_DNATSERVER="" ## HELP_KRBADM: Kerberos adm kadmin #% Kerberos adm kadmin (v5) KRBADM="" KRBADM_PORT="749/udp" KRBADM_DNATSERVER="" ## HELP_KRBKRB524: Kerberos v5 to v4 translator #% Kerberos V5 to V4 translator KRBKRB524="" KRBKRB524_PORT="4444/udp" KRBKRB524_DNATSERVER="" ## HELP_KRBKLOGIN: Servicio kerberos klogin #% Kerberized rlogin (v5) KRBKLOGIN="" KRBKLOGIN_PORT="543/tcp" KRBKLOGIN_DNATSERVER="" ## HELP_KRBKSHELL: Servicio kerberos kshell ## Kerberized rsh (v5) #% krcmd KRBKSHELL="" KRBKSHELL_PORT="544/tcp" KRBKSHELL_DNATSERVER="" ## HELP_KRBADMKDC: Servicio kerberos adm kdc #% Kerberos v4 krb-sec kdc KRBADMKDC="" KRBADMKDC_PORT="750/udp" KRBADMKDC_DNATSERVER="" ## HELP_KRBEKLOGIN: Servicio kerberos ek login #% Kerberos encripted login KRBEKLOGIN="" KRBEKLOGIN_PORT="2105/tcp" KRBEKLOGIN_DNATSERVER="" ## HELP_KRBPASSWD: Kerberos password #% Kerberos passwd KRBPASSWD="" KRBPASSWD_PORT="464/udp" KRBPASSWD_DNATSERVER="" ## HELP_NETVIEW: Netview #% Netview NETVIEW="" NETVIEW_PORT="729:731/tcp 729:731/udp 1661:1672/tcp 1661:1672/udp" NETVIEW_DNATSERVER="" ## HELP_ORACLEALL: Servicios de Oracle ## Varios servicios de Oracle. Los nombres son descriptivos. #% Para activarlos todos a la vez usar ORACLEALL ORACLEALL="" ORACLEALL_PORT="66/tcp 66/udp 1525/tcp 1525/udp 1527/tcp 1527/udp \ 1529/tcp 1529/udp 1571/tcp 1571/udp 1575/tcp 1575/udp 1630/tcp \ 1630/udp 1748/tcp 1748/udp 1754/tcp 1754/udp 1808:1809/tcp \ 1808:1809/udp 1830/tcp 1830/udp 2005/tcp 2481:2482/tcp \ 2481:2482/udp 2483:2484/tcp 2483:2484/udp" ORACLEALL_DNATSERVER="" ORACLESQLNET="" ORACLESQLNET_PORT="66/tcp 66/udp" ORACLESQLNET_DNATSERVER="" ORACLEORASRV="" ORACLEORASRV_PORT="1525/tcp 1525/udp" ORACLEORASRV_DNATSERVER="" ORACLETLISRV="" ORACLETLISRV_PORT="1527/tcp 1527/udp" ORACLETLISRV_DNATSERVER="" ORACLECOAUTHOR="" ORACLECOAUTHOR_PORT="1529/tcp 1529/udp" ORACLECOAUTHOR_DNATSERVER="" ORACLERDB="" ORACLERDB_PORT="1571/tcp 1571/udp" ORACLERDB_DNATSERVER="" ORACLENAMES="" ORACLENAMES_PORT="1575/tcp 1575/udp" ORACLENAMES_DNATSERVER="" ORACLECMAN="" ORACLECMAN_PORT="1630/tcp 1630/udp" ORACLECMAN_DNATSERVER="" ORACLEEM="" ORACLEEM_PORT="1748/tcp 1748/udp 1754/tcp 1754/udp" ORACLEEM_DNATSERVER="" ORACLEVP="" ORACLEVP_PORT="1808:1809/tcp 1808:1809/udp" ORACLEVP_DNATSERVER="" ORACLENETCMAN="" ORACLENETCMAN_PORT="1830/tcp 1830/udp" ORACLENETCMAN_DNATSERVER="" ORACLE="" ORACLE_PORT="2005/tcp" ORACLE_DNATSERVER="" ORACLEGIOP="" ORACLEGIOP_PORT="2481:2482/tcp 2481:2482/udp" ORACLEGIOP_DNATSERVER="" ORACLETTC="" ORACLETTC_PORT="2483:2484/tcp 2483:2484/udp" ORACLETTC_DNATSERVER="" ## HELP_OPENVIEW: Openview #% Openview OPENVIEW="" OPENVIEW_PORT="2389/tcp 2389/udp 2447/tcp 2447/udp 7426:7431/tcp 7426:7431/udp" OPENVIEW_DNATSERVER="" ## HELP_TIVOLI: Tivoli #% Tivoli TIVOLI="" TIVOLI_PORT="94/tcp 94/udp 627/tcp 627/udp 1965/tcp 1965/udp" TIVO_DNATSERVER="" ## HELP_CITRIXICA: Servicio CITRIX ICA #% Servicio CITRIX ICA CITRIXICA="" CITRIXICA_PORT="1494/tcp" CITRIXICA_DNATSERVER="" ## HELP_ENTRUSTADMIN: Servicio ENTRUST ADMIN #% Servicio ENTRUST ADMIN ENTRUSTADMIN="" ENTRUSTADMIN_PORT="709/tcp" ENTRUSTADMIN_DNATSERVER="" ## HELP_ENTRUSTKEYMGMT: Servicio ENTRUST KEY MANAGEMENT #% Servicio ENTRUST KEY MANAGEMENT ENTRUSTKEYMGMT="" ENTRUSTKEYMGMT_PORT="710/tcp" ENTRUSTKEYMGMT_DNATSERVER="" ## HELP_SECUREIDPROP: Servicio SECURE ID PROP #% Servicio SECURE ID PROP SECUREIDPROP="" SECUREIDPROP_PORT="5510/tcp" SECUREIDPROP_DNATSERVER="" ## HELP_SECUREIDUDP: Servicio SECURE ID UDP #% Servicio SECURE ID UDP SECUREIDUDP="" SECUREIDUDP_PORT="1024/udp" SECUREIDUDP_DNATSERVER="" ## HELP_TACACSPLUS: Servicio TACACS plus #% Servicio TACACS plus TACACSPLUS="" TACACSPLUS_PORT="49/tcp" TACACSPLUS_DNATSERVER="" ## HELP_TACACSDS: Servicio TACACS DS #% Servicio TACACS DS TACACSDS="" TACACSDS_PORT="65/tcp 65/udp" TACACSDS_DNATSERVER="" ## HELP_RADIUS: Servicio Radius #% Servicio RADIUS. RADIUS="" RADIUS_PORT="1812/tcp 1812/udp" RADIUS_DNATSERVER="" ## HELP_RADIUSACCT: Radius ACCT #% Radius ACCT RADIUSACCT="" RADIUSACCT_PORT="1813/tcp 1813/udp" RADIUSACCT_DNATSERVER="" ## HELP_OLDRADIUS: Old radius #% Old radius OLDRADIUS="" OLDRADIUS_PORT="1645/udp" OLDRADIUS_DNATSERVER="" |
HELP_GROUP_P2P: Servicios peer to
peer Servicios peer to peer |
## HELP_KAZAA: Servicio de P2P
kazaa #% En redes empresariales esta regla es util para loggear el trafico. KAZAA="" KAZAA_PORT="1214/tcp" KAZAA_DNATSERVER="" ## HELP_NAPSTER: Servicio de P2P napster #% En redes empresariales esta regla es util para loggear el trafico. NAPSTER="" NAPSTER_PORT="8888/tcp 7777/tcp 8875/tcp" NAPSTER_DNATSERVER="" ## HELP_EDONKEY: Servicio de P2P edonkey o emule #% En redes empresariales esta regla es util para loggear el trafico. EDONKEY="" EDONKEY_PORT="4662:4663/tcp" EDONKEY_DNATSERVER="" ## HELP_WINMX: Servicio de P2P winmx #% En redes empresariales esta regla es util para loggear el trafico. WINMX="" WINMX_PORT="6699/tcp" WINMX_DNATSERVER="" |
HELP_GROUP_UNCOMMON:
Servicios poco comunes Servicios poco comunes u obsoletos y que se suelen utilizar poco. |
## HELP_GOPHER: Servicio gopher #% Servicio gopher GOPHER="" GOPHER_PORT="70/tcp" GOPHER_DNATSERVER="" ## HELP_FINGER: Servicio finger. Puertos 79/tcp ## Servicio finger para obtener informacion sobre una cuenta ## en una maquina. Casi no se usa hoy en dia y supone un agujero #% de seguridad. FINGER="" FINGER_PORT="79/tcp" FINGER_DNATSERVER="" ## HELP_PCANYWHERE: Servicio pc-anywhere 5631/tcp 5362/udp #% Servicio pc-anywhere de control y administracion remotos. PCANYWHERE="" PCANYWHERE_PORT="5631/tcp 5362/udp" PCANYWHERE_DNATSERVER="" ## HELP_OPENWINDOWS: Servicio Openwindows #% Servicio Openwindows OPENWINDOWS="" OPENWINDOWS_PORT="2000/tcp" OPENWINDOWS_DNATSERVER="" ## HELP_DAYTIME: Servicio daytime #% Servicio daytime DAYTIME="" DAYTIME_PORT="13/tcp" DAYTIME_DNATSERVER="" ## HELP_REXEC: Servicio rexec #% Ejecucion remota. REXEC="" REXEC_PORT="512/tcp" REXEC_DNATSERVER="" ## HELP_BIFF: Servicio biff #% Aviso de correo BIFF="" BIFF_PORT="512/udp" BIFF_DNATSERVER="" ## HELP_RLOGIN: Servicio rlogin #% Servicio de login remoto RLOGIN="" RLOGIN_PORT="513/tcp" RLOGIN_DNATSERVER="" ## HELP_WHO: Servicio who #% Servicio de who remoto WHO="" WHO_PORT="513/udp" WHO_DNATSERVER="" ## HELP_RSHELL: Servicio rshell #% Acceso a shell remoto RSHELL="" RSHELL_PORT="514/tcp" RSHELL_DNATSERVER="" ## HELP_RWHOIS: Servicio rwhois #% Servicio whois remoto RWHOIS="" RWHOIS_PORT="4321/tcp" RWHOIS_DNATSERVER="" ## HELP_TRACERTUDP: Traceroute sobre UDP #% Servicio de traceroute sobre UDP TRACERTUDP="" TRACERTUDP_PORT="33434:33524/udp" TRACERTUDP_DNATSERVER="" ## HELP_INTERPHONE: Servicio Interphone #% Vocaltec internet phone and web conference INTERPHONE="" INTERPHONE_PORT="22555/udp" INTERPHONE_DNATSERVER="" ## HELP_REALSECURE: Servicio Realsecure #% Servicio Realsecure REALSECURE="" REALSECURE_PORT="2998/tcp" REALSECURE_DNATSERVER="" ## HELP_SQLNET: Servicio SQLNET #% Servicio SQLNET SQLNET="" SQLNET_PORT="1521/tcp" SQLNET_DNATSERVER="" ## HELP_UUCP: Servicio UUCP #% Servicio UUCP UUCP="" UUCP_PORT="540:541/tcp" UUCP_DNATSERVER="" |
HELP_QUEUE_WEB_GROUP: Mandar los
paquetes HTTP al snort-inline Si ponemos aqui el protocolo HTTP y PROXY entonces antes de aceptar el trafico se mandara al espacio de usuario que podra aceptarlo o denegarlo segun sus reglas, normalmente se lo mandaremos a snort-inline, o a otro programa que acepte y decida sobre el trafico que le inyectamos. Si incluimos variables ya definidas debemos ponerlas en la forma $VAR_PORT En este caso ademas deberiamos activar alguna direccion de trafico para los servicios HTTP y PROXY, que sera el trafico que se pasara a QUEUE. |
#QUEUE_WEB_GROUP="$HTTP_PORT
$PROXY_PORT" |
HELP_QUEUE_MAIL_GROUP: Mandar los
paquetes mail al snort-inline Grupo queue para inspeccionar los paquetes de correo |
#QUEUE_MAIL_GROUP="25/tcp
465/tcp 110/tcp 995/tcp" |
HELP_ICMPX_DEFAULT_CONF: Activar la
configuracion por defecto Esta variable activa la configuracion por defecto y hace que se los valores de las siguientes variables. Los valores por defecto son los indicados en cada una de las variables. |
ICMPX_DEFAULT_CONF="1" |
HELP_GRICMPX: Grupos para trafico
ICMP Este grupo afecta a todo el trafico ICMP y por tanto las reglas que se pongan para el grupo se pondran junto con las de cada tipo de trafico ICMP. Esto permite meter reglas para todo el trafico ICMP sin tener que ponerlas en cada tipo de trafico. No se permite crear nuevos grupos para trafico ICMP. Es posible crear otros grupos ademas del DEFAULT siguiendo la siguiente norma: Deben comenzar por GRICMPX_ y acabar en _DEF, por tanto seria algo asi: GRICMPX_INFO_DEF o GRICMPX_BAD_DEF Luego la variable para poner la regla sera: GRICMPX_INFO o GRICMPX_BAD. |
GRICMPX_DEFAULT_DEF="ICMPX_SOURCE_QUENCH
ICMPX_PARAMETER_PROBLEM \ ICMPX_DESTINATION_UNREACHEABLE ICMPX_FRAGMENTATION_NEEDED \ ICMPX_TIME_EXCEED ICMPX_ECHO_REQUEST ICMPX_ECHO_REPLY \ ICMPX_ADDRESS_MASK_REQUEST ICMPX_ADDRESS_MASK_REPLY \ ICMPX_TIMESTAMP_REQUEST ICMPX_TIMESTAMP_REPLY ICMPX_REDIRECT \ ICMPX_TTL_ZERO_DURING_TRANSIT ICMPX_TTL_ZERO_DURING_REASSEMBLY \ ICMPX_ICMPPORT_UNREACHEABLE ICMPX_PROTOCOL_UNREACHEABLE \ ICMPX_NETWORK_UNREACHEABLE ICMPX_HOST_UNREACHEABLE \ ICMPX_SOURCE_ROUTE_FAILED ICMPX_NETWORK_UNKNOWN ICMPX_HOST_UNKNOWN \ ICMPX_NETWORK_PROHIBITED ICMPX_HOST_PROHIBITED \ ICMPX_TOS_NETWORK_UNREACHEABLE ICMPX_TOS_HOST_UNREACHEABLE \ ICMPX_COMMUNICATION_PROHIBITED ICMPX_IP_HEADER_BAD \ ICMPX_REQUIRED_OPTION_MISSING ICMPX_HOST_PRECEDENCE_VIOLATION \ ICMPX_PRECEDENCE_CUTOFF ICMPX_NETWORK_REDIRECT ICMPX_HOST_REDIRECT \ ICMPX_TOS_NETWORK_REDIRECT ICMPX_TOS_HOST_REDIRECT \ ICMPX_ROUTER_ADVERTISEMENT ICMPX_ROUTER_SOLICITATION" GRICMPX_DEFAULT="" |
HELP_PROTOCOLS:
Otros protocolos Aqui se definen los protocolos independientes, como pueden ser los de IPSEC y otros. El nombre ha de comenzar con PROTX_ y debe tener una variable _NUMBER con el numero de protocolo. Ejemplo: PROTX_IPSECESP="lan-to-ext" PROTX_IPSECESP_NUMBER="50" Los nombres de protocolo no pueden tener el caracter _ (subrayado) en su nombre, si lo tienen dara error. Hemos elegido que el firewall no use connection tracking para los protocolos definidos aqui, porque creemos que implica algunos riesgos de firewall piercing. Se debe por tanto habilitar la direccion de ida del trafico y la de vuelta En las reglas se permite todo lo que en las reglas para servicios excepto ext-to-dnat que no se usa aqui. |
## HELP_IPSECESP: Protocolo
IPSEC ESP (ESP=ipv6-crypt) ## Protocolo IPSEC ESP. Es el mismo que IPV6 CRYPT. ## Lo ponemos como IPSEC ESP, pero realmente el protocolo ## se llama ipv6-crypt. Es mas conocido por su utilizacion #% en IPSEC y por eso lo llamamos asi. PROTX_IPSECESP="all-to-all:log" PROTX_IPSECESP_NUMBER="50" ## HELP_IPSECAH: Protocolo IPSEC AH (AH=ipv6-auth) ## Protocolo IPSEC AH. Es el mismo que IPV6 AUTH. ## Lo ponemos como IPSEC ESP, pero realmente el protocolo ## se llama ipv6-auth. Es mas conocido por su utilizacion #% en IPSEC y por eso lo llamamos asi. PROTX_IPSECAH="" PROTX_IPSECAH_NUMBER="51" ## HELP_SKIP: Protocolo SKIP #% Protocolo SKIP PROTX_SKIP="" PROTX_SKIP_NUMBER="57" ## HELP_VRRP: Protocolo VRRP #% Protocolo VRRP PROTX_VRRP="" PROTX_VRRP_NUMBER="112" ## HELP_GRE: Protocolo GRE #% Protocolo GRE PROTX_GRE="" PROTX_GRE_NUMBER="47" ## HELP_SWIPE: Protocolo SWIPE de Cisco #% Protocolo SWIPE de Cisco PROTX_SWIPE="" PROTX_SWIPE_NUMBER="53" ## HELP_MOBILE: Protocolo MOBILE Cisco IP Mobility Protocol #% Protocolo MOBILE Cisco IP Mobility Protocol PROTX_MOBILE="" PROTX_MOBILE_NUMBER="55" ## HELP_SUNND: Protocolo SUNND Sun ND #% Protocolo SUNND Sun ND PROTX_SUNND="" PROTX_SUNND_NUMBER="77" ## HELP_PIM: Protocolo PIM Protocol Independent Multicast #% Protocolo PIM Protocol Independent Multicast PROTX_PIM="" PROTX_PIM_NUMBER="103" ## HELP_IGMP: Protocolo IGMP #% Protocolo IGMP PROTX_IGMP="" PROTX_IGMP_NUMBER="2" ## HELP_IGP: Protocolo IGP #% Protocolo IGP Cisco PROTX_IGP="" PROTX_IGP_NUMBER="9" ## HELP_EIGRP: Protocolo EIGRP Enhanced Interior Routing Protocol #% Protocolo EIGRP Cisco Enhanced Interior Routing Protocol PROTX_EIGRP="" PROTX_EIGRP_NUMBER="88" ## HELP_IPV6: Protocolo IPV6 #% Protocolo IPV6 PROTX_IPV6="" PROTX_IPV6_NUMBER="41" ## HELP_IPV6ROUTE: Protocolo IPV6 ROUTE #% Protocolo IPV6 ROUTE PROTX_IPV6ROUTE="" PROTX_IPV6ROUTE_NUMBER="43" ## HELP_IPV6FRAG: Protocolo IPV6 FRAG #% Protocolo IPV6 FRAG PROTX_IPV6FRAG="" PROTX_IPV6FRAG_NUMBER="44" ## HELP_IPV6ICMP: Protocolo IPV6 ICMP #% Protocolo IPV6 ICMP PROTX_IPV6ICMP="" PROTX_IPV6ICMP_NUMBER="58" ## HELP_IPV6NONXT: Protocolo IPV6 NONXT #% Protocolo IPV6 NONXT PROTX_IPV6NONXT="" PROTX_IPV6NONXT_NUMBER="59" ## HELP_IPV6OPTS: Protocolo IPV6 OPTS #% Protocolo IPV6 OPTS PROTX_IPV6OPTS="" PROTX_IPV6OPTS_NUMBER="60" ## HELP_VINES: Protocolo VINES #% Protocolo VINES PROTX_VINES="" PROTX_VINES_NUMBER="83" ## HELP_OSPF: Protocolo OSPF #% Protocolo OSPF PROTX_OSPF="" PROTX_OSPF_NUMBER="89" ## HELP_AX25: Protocolo AX25 #% Protocolo AX25 PROTX_AX25="" PROTX_AX25_NUMBER="93" ## HELP_IPXINIP: Protocolo IPXINIP #% Protocolo IPXINIP PROTX_IPXINIP="" PROTX_IPXINIP_NUMBER="111" |
HELP_MULTICASTX:
Servicio de multicast udp para redes privadas clase D Servicio de multicast udp para redes privadas de clase D. Este servicio es especial, permite habilitar el trafico UDP hacia redes de multicast de clase D, normalmente 224.0.0.0/4. Normalmente solo se usa para difundir trafico multimedia a redes. Si lo habilitamos aqui se permitira el trafico UDP hacia redes multicast de clase D, pero no con origen redes clase D que es ilegal. Ademas debera luego habilitarse el trafico para el servicio que deseemos. |
MULTICASTX="0" MULTICASTX_DST="$CLASS_D_MULTICAST" |
HELP_CONNTRACK_MAX: Cambiar el
maximo de conexiones CONNTRACK Cambiar el numero maximo de conexiones que puede manejar el sistema de Connection Tracking de Netfilter. Para dejar el valor por defecto (12248 en linux-2.4.20) basta poner 0 o nada. Para cambiar el valor simplemente poner un valor, por ejemplo para doblar el numero de conexiones permitidas poner: 24496 Activarlo unicamente si el firewall droppea paquetes por exceso de conexiones. #CONNTRACK_MAX="24496" |
CONNTRACK_MAX="" |
HELP_BLACKLISTMAC: Activar la
blacklist de direcciones MAC Si se activa esta variable se denegara el trafico a todas las direcciones MAC que esten en el fichero /etc/bastion-firewall/blacklistmac.conf exceptuando las direcciones MAC que se encuentren en la whitelist para MAC, que se encuentra en el fichero /etc/bastion-firewall/whitelistmac.conf y cuyas direcciones MAC nunca pueden ser bloqueadas y cuyo trafico sera habilitado. Este bloqueo solo afecta a las MAC origen del trafico, no es posible bloquear por MAC destino del trafico. |
BLACKLISTMAC="1" |
HELP_RESTRICTEDMAC: Restringir el
trafico por MAC de origen de la LAN Si se activa esta variable se denegara el trafico a todas las direcciones MAC de origen que no esten en el fichero /etc/bastion-firewall/restrictedmac.conf y que pertenezcan a nuestras LAN internas ($NET_LAN), que por tanto se comunicarian por los interfaces de entrada especificados en $INTERFACE_LAN. Este bloqueo solo afecta a las MAC origen del trafico, no es posible bloquear por MAC destino del trafico. |
RESTRICTEDMAC="1" |
## HELP_RESTRICTEDMACEXT:
Restringir el trafico por MAC de origen del exterior ## Si se activa esta variable se denegara el trafico a todas las ## direcciones MAC de origen que no esten en el fichero ## /etc/bastion-firewall/restrictedmacext.conf y que pertenezcan a ## la red o redes exteriores ($NET_EXT), que por tanto se comunicarian por ## los interfaces de entrada especificados en $INTERFACE_EXT. ## Este bloqueo solo afecta a las MAC origen del trafico, no es posible #% bloquear por MAC destino del trafico. |
RESTRICTEDMACEXT="1" |
HELP_ZEROCONFLAN:
Aceptar paquetes para Zeroconf en el interior Sistema para autoconfigurar redes internas, es utilizado por Microsoft y otros fabricantes. Aceptamos solo el trafico entre el firewall y la red, no hacia afuera. |
ZEROCONFLAN="0" |
HELP_ZEROCONFEXT:
Aceptar paquetes para Zeroconf con el exterior Sistema para autoconfigurar redes internas, es utilizado por Microsoft y otros fabricantes. Aceptamos solo el trafico entre el firewall y las redes externas, no el interno. |
ZEROCONFEXT="0" |
HELP_ZEROCONFFW: Aceptar paquetes
para Zeroconf y enrutarlo Sistema para autoconfigurar redes internas, es utilizado por Microsoft y otros fabricantes. Aceptamos el trafico que va de las redes internas al exterior y viceversa. Esto no habilita el trafico entre ningunas de estas redes con el firewall. |
ZEROCONFFW="0" |
HELP_TOS_OPTIMIZE_DEFAULT:
Optimizar los valores TOS de los paquetes Usar la tabla mangle para optimizar el TOS segun el tipo de paquete En ciertas ocasiones permiten optimizar el trafico, aunque la mayoria de los routers no lo tienen en cuenta. TIPOS DE TOS Minimize-Delay 16 (hex 0x10) Minimizar el tiempo de conexion Maximize-Throughput 8 (hex 0x08) Maximizar el caudal Maximize-Reliability 4 (hex 0x04) Maximizar la fiabilidad Minimize-Cost 2 (hex 0x02) Minimizar el coste Normal-Service 0 (hex 0x00) Servicio normal VALORES POR DEFECTO QUE SE APLICARAN (ver mangle.bsf) 53/udp 37/udp Minimize-Delay 21/tcp 22/tcp 53/tcp Minimize-Delay 20/tcp 25/tcp 80/tcp 110/tcp 443/tcp Maximize-Throughput Se obtienen mejores resultados usando QoS con un packet scheduler como HTB o los otros disponibles en el kernel. |
TOS_OPTIMIZE_DEFAULT="1" |
HELP_CLAMPMSS:
Parche para conectar con ISPs mal configurados Esto es un parche para poder conectar con ISPs o servidores que bloquean ICMP fragmentation needed y nos dan errores los servidores de la red local. Lo que hacemos: iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN \ -j TCPMSS --clamp-mss-to-pmtu |
CLAMPMSS="0" |
HELP_TTL: Sirve para poner un TTL
determinado a los paquetes Esta opcion usa la extension de iptables y Netfilter TTL target, que permite alterar el TTL de los paquetes que pasan por el firewall. El valor predeterminado es 64, que esta especificado en /proc/sys/net/ipv4/ip_default_ttl Si queremos cambiarlo lo activamos y ponermos en TTL_NEWTTL el valor que deseemos que se ponga en los paquetes. |
TTL="0" TTL_NEWTTL="32" |
HELP_PSD: Deteccion de escaneos de
puertos Esta extension intenta detectar los escaneos de puertos que se produzcan en el sistema. Puede en algunos casos complementar el sistema que implementa bastion-firewall basado en los mensajes SYN, ACT, etc. Los valores son (ver ayuda de iptables): PSD Activar o desactivar el sistema PSD_THRESHOLD Total weight of the latest TCP/UDP packets with different destination ports coming from the same host to be treated as port scan sequence. PSD_DELAYT Delay (in hundredths of second) for the packets with different destination ports coming from the same host to be treated as possible port scan subsequence. PSD_LOPORTS Weight of the packet with privileged (<=1024) destination port. PSD_HIPORTS Weight of the packet with non-priviliged destination port. PSD_ACTION LOG or DROP (DROP is LOG and then DROP) |
PSD="0" PSD_THRESHOLD="" PSD_DELAYT="" PSD_LOPORTS="" PSD_HIPORTS="" PSD_ACTION="LOG" |
HELP_REALM:
Activar el soporte de realm match Permite crear reglas que usen la realm key del sistema de enrutado iproute2. |
REALM="0" |
HELP_RECENT: Sistema para marcar
paquetes que se han visto recientemente Este sistema permite crear una lista de paquetes que el firewall ha visto recientemente. Luego esta lista se puede usar para realizar varios tipos de tratamiento de las conexiones, la mas comun de ellas es marcar los paquetes con fwmark para luego realizar balanceo de carga con LVS-NAT, mandando por ejemplo las conexiones SSL a un mismo servidor. |
RECENT="0" |
HELP_STRING: Activa el sistema de
inspeccion de cadenas Permite crear reglas que aceptan o deniegan las conexiones basandose en el contenido de los paquetes. |
STRING="0" |
HELP_SOPORTE_CONNTRACK_Y_NAT:
Soportes de conntrack y NAT |
## HELP_CNEGGDROP: Activa el soporte
CONNTRACK para eggdrop #% CNEGGDROP="0" ## HELP_CNQUAKE3: Activa el soporte CONNTRACK para quake3 #% CNQUAKE3="0" ## HELP_CNTFTP: Activa el soporte CONNTRACK y NAT para tftp #% CNTFTP="0" ## HELP_CNAMANDA: Activa el soporte CONNTRACK y NAT para amanda #% CNAMANDA="0" ## HELP_CNH323: Activa el soporte CONNTRACK y NAT para el protocolo H323 #% CNH323="0" ## HELP_CNPPTP: Activa el soporte CONNTRACK y NAT para pptp #% CNPPTP="0" ## HELP_CNTALK: Activa el soporte CONNTRACK y NAT para talk #% CNTALK="0" |
HELP_RULESPERNETWORK: Definicion de
reglas ACCEPT o DROP por tablas Se crea una tabla de reglas con los siguientes campos: [source] [sport port] to [dest] [dport port] rule [rule] ----------------------------------------------------------------- Las reglas se definen como si fueran una variable, cuyo nombre no puede coincidir con cualquier otro nombre de otra variable. Las palabras 'to' y 'rule' siempre deben estar. Los campos entre [] son opcionales (menos rule), dependen de como queramos construir la regla. Las palabras 'sport' y 'dport' indican que se va a definir la regla por puertos. El significado de lo demas: source: Puede ser una IP, una red, un rango, una variable de tipo red como $NET_LAN, un interface, 'firewall' para denotar la maquina que alberga el firewall o una combinacion de todas estas. dest: Lo mismo que para source port: Una combinacion de puertos o variables de puertos como $NFS_PORT tal como estan definidos en rules.conf. Tambien se pueden usar grupos de puertos. Se pone simplemente el nombre del grupo. rule: Una regla compuestas por: :accept Aceptar el paquete :drop Denegar el paquete :log Loggear el paquete en los logs del sistema. :stats Crear estadisticas con RRDTOOL para luego poder generar graficas del trafico para este servicio. :ulog Pasar los paquetes de este servicio a ULOG. Las reglas se leen de izquierda a derecha, esto indica la direccion del trafico. Solo hay que aceptar el inicio de la conexion, la otra direccion se abre automaticamente por connection tracking al establecerse la conexion. Ejemplos: Aceptar el trafico desde 192.168.1.0/16 y puerto de origen 80/tcp a 192.169.1.0/24 y loggear RULE1="192.168.1.0/24 sport 80/tcp to 192.169.1.0/rule 24 :accept:log" Denegar y loggear el trafico desde las redes de $NET_LAN al firewall RULE2="$NET_LAN to firewall rule :drop:log" Aceptar el trafico y crear estadisticas desde una red y varias IPs hacia internet para el protocolo IRC. RULE3="192.168.1.1-192.168.1.3 192.168.2.0/24 to 0.0.0.0/0 to dport \ 6667/tcp 6667/udp rule :accept:stats" Denegar el trafico IMAP que tenga como origen una IP y que salga del firewall por el interface eth1 RULE4="192.168.1.8 to eth1 dport $IMAP_PORT rule :drop" Denegar el trafico que entra el firewall para todos los p2p. Loggear. RULE5="0.0.0.0/0 to firewall dport GROUP_P2P rule :drop:log" Aceptar todo el trafico HTTP (con destino a 80/tcp) RULE6="to dport 80/tcp rule :accept" Aceptar todo el trafico con origen en la red. RULE7="$NET_LAN to rule :accept" En la ayuda vienen mas ejemplos. [source] [sport port] to [dest] [dport port] rule [rule] --------------------------------------------------------------- |
RULE1="192.168.1.0/24
sport 80/tcp 81/udp 82/udp 90:91/tcp to 192.169.1.0/16 r RULE2="$NET_LAN to firewall rule :drop:log" RULE3="192.168.1.1-192.168.1.3 192.168.2.0/24 to 0.0.0.0/0 dport 6667/tcp \ 6667/udp rule :accept:stats" RULE4="192.168.1.8 to eth1 dport $IMAP_PORT rule :drop" RULE5="0.0.0.0/0 to firewall dport GROUP_P2P rule :drop:log" RULE6="to dport 80/tcp rule :accept" RULE7="$NET_LAN to rule :accept" RULE8="$NET_LAN to eth0+0.0.0.0/0 rule :accept" |
HELP_NAT_PERNETWORK: Definicion de
reglas SNAT y DNAT por tablas Se crea una tabla de reglas con los siguientes campos: [source] [sport port] to [dest] [dport port] rulenat [rule] ------------------------------------------------------------------------ Las reglas se definen como si fueran una variable, cuyo nombre no puede coincidir con cualquier otro nombre de otra variable. Las palabras 'to' y 'rulenat' siempre deben estar. Los campos entre [] son opcionales (menos rulenat), dependen de como queramos construir la regla. Las palabras 'sport' y 'dport' indican que se va a definir la regla por puertos. El significado de lo demas: source: Puede ser una IP, una red, un rango, una variable de tipo red como $NET_LAN, un interface, 'firewall' para denotar la maquina que alberga el firewall o una combinacion de todas estas. dest: Lo mismo que para source port: Una combinacion de puertos, variables de puertos como $NFS_PORT tal como estan definidos en rules.conf. Tambien se pueden usar grupos de puertos. Se pone simplemente el nombre del grupo. rulenat: Una regla entre las siguientes: :snat [ip] [port] Hacer NAT de fuente (cambiar IP origen por ip) :dnat [ip] [port] Hacer NAT de destino (cambiar IP destino por ip) :masq [port] Hacer MASQUERADE (enmascarar con la IP del interface) :redir [port] Hacer REDIRECT (redirigir a la IP del firewall) ip --> Una IP o un rango de IPs port --> Un puerto (80/tcp) o un rango de puertos (10:20/tcp) En :snat y :dnat hay que dar una ip o un puerto. En :masq y : redir no es necesario indicar un puerto. Las reglas se leen de izquierda a derecha, esto indica la direccion del trafico. La parte anterior a 'rulenat' sirve para seleccionar los paquetes. Ejemplos: Cambiar de una IP de origen a otra (SNAT) RULESNAT1="192.168.7.1 to 192.168.7.2 rulenat :snat 10.10.1.2" Cambiar de una IP de origen a otra (DNAT) RULEDNAT1="192.168.7.1 dnat 192.168.7.2 rulenat :dnat 224.2.1.1" Redirigir todo el trafico saliente a un proxy RULERNAT1="lan to dport 80 rulenat :redir 8080/tcp" Enmascarar todo el trafico de la lan al exterior RULEMNAT1="to ext :masq" En la ayuda vienen mas ejemplos. [source] [sport port] to [dest] [dport port] rulenat [rule] ------------------------------------------------------------------------ |
RULESNAT1="192.168.7.1
to 192.168.7.2 rulenat :snat 10.10.1.2" RULEDNAT1="192.168.7.1 to 192.168.7.2 rulenat :dnat 224.2.1.1" RULERNAT1="lan to dport 80/tcp rulenat :redir 8080/tcp" RULEMNAT1="to ext rulenat :masq" |
HELP_MARK: Definicion de reglas para
marcar paquetes usando la facilidad MARK de Netfilter de forma que estas marcas puedan ser usadas en el firewall para balanceo de carga con LVS-NAT, enrutamiento avanzado, QOS, etc. Se crea una tabla de reglas con los siguientes campos: [source] [sport port] [to] [dest] [dport port] markrule :mark [mark_number] ----------------------------------------------------------------------- Las reglas se definen como si fueran una variable, cuyo nombre no puede coincidir con cualquier otro nombre de otra variable. Las palabra 'markrule' siempre debe estar. Los campos entre [] son opcionales (menos :mark), dependen de como queramos construir la regla. Las palabras 'sport' y 'dport' indican que se va a definir la regla por puertos. El significado de lo demas: source: Puede ser una IP, una red, un rango, una variable de tipo red como $NET_LAN, un interface, 'firewall' para denotar la maquina que alberga el firewall o una combinacion de todas estas. dest: Lo mismo que para source port: Una combinacion de puertos, variables de puertos como $NFS_PORT o grupos de puertos (GROUP_COMMON) tal como estan definidos en rules.conf. mark_number: Numero de marca mark para el target MARK, se puede poner un numero de marcas enorme, por lo que no debemos preocuparnos en usar todas las que necesitemos. La forma de marcar los paquetes es definir una regla y la marca que queramos. Podemos definir por direccion de origen, de destino, por puerto de origen, de destino o por una combinacion de todas estas. Las reglas se leen de izquierda a derecha, esto indica la direccion del trafico. Ejemplos: Marcar el trafico desde 192.168.1.0/16 y puerto de origen 80/tcp a 192.169.1.0/24 MARK1="192.168.1.0/24 sport 80/tcp to 192.169.1.0/24 markrule :mark 1" Marcar el trafico desde las redes de $NET_LAN al firewall MARK2="$NET_LAN to firewall markrule :mark 2" Marcar el trafico desde una red y varias IPs hacia internet para el protocolo IRC. MARK3="192.168.1.1-192.168.1.3 192.168.2.0/24 to 0.0.0.0/0 dport \ 6667/tcp 6667/udp markrule :mark 3" Marcar el trafico IMAP con origen una IP y que salga del firewall por el interface eth1 MARK4="192.168.1.8 to eth1 dport $IMAP_PORT markrule :mark 4" Marcar el trafico que entra el firewall para todos los p2p. MARK5="0.0.0.0/0 to firewall dport GROUP_P2P rule markrule :mark 5" Marcar todo el trafico HTTP (con destino a 80/tcp) MARK6="to dport 80/tcp markrule :mark 6" Marcar todo el trafico con origen en la red. MARK7="$NET_LAN to markrule :mark 7" En la ayuda vienen mas ejemplos. [source] [sport port] [to] [dest] [dport port] markrule :mark [mark_number] ---------------------------------------------------------------------- |
MARK1="192.168.1.0/24
sport 80/tcp to 192.169.1.0/24 markrule :mark 1" MARK2="$NET_LAN to firewall markrule :mark 2" MARK3="192.168.1.1-192.168.1.3 to 0.0.0.0/0 dport 6667/tcp markrule :mark 3" MARK4="192.168.1.8 to eth1 dport $IMAP_PORT markrule :mark 4" MARK5="0.0.0.0/0 to firewall dport GROUP_P2P markrule :mark 5" MARK6="to dport 80 markrule :mark 6" MARK7="$NET_LAN to markrule :mark 7" |
HELP_TOS: Definicion de reglas para
marcar paquetes usando la facilidad TOS de Netfilter de forma que estas marcas puedan ser usadas en la red, puesto que las marcas hechas con MARK solo se mantienen en el firewall y se pierden al abandonar los paquetes este. Se crea una tabla de reglas con los siguientes campos: [source] [sport port] [to] [dest] [dport port] tosrule :tos [tos_number/typ ----------------------------------------------------------------------- Las reglas se definen como si fueran una variable, cuyo nombre no puede coincidir con cualquier otro nombre de otra variable. Las palabra 'tosrule' siempre debe estar. Los campos entre [] son opcionales (menos :tos), dependen de como queramos construir la regla. Las palabras 'sport' y 'dport' indican que se va a definir la regla por puertos. El significado de lo demas: source: Puede ser una IP, una red, un rango, una variable de tipo red como $NET_LAN, un interface, 'firewall' para denotar la maquina que alberga el firewall o una combinacion de todas estas. dest: Lo mismo que para source port: Una combinacion de puertos, variables de puertos como $NFS_PORT o grupos de puertos (GROUP_COMMON) tal como estan definidos en rules.conf. tos_number: Numero de marca tos para el target TOS, se puede poner un numero o un tipo de paquete: TIPOS DE TOS Minimize-Delay 16 (hexadecimal 0x10) Minimizar el tiempo de conexion para agilizar conexiones cortas pero muy numerosas Maximize-Throughput 8 (hexadecimal 0x08) Maximizar el caudal, para tener mandar los datos mas rapidamente en conexiones que mandan muchos datos Maximize-Reliability 4 (hexadecimal 0x04) Maximizar la fiabilidad Minimize-Cost 2 (hexadecimal 0x02) Minimizar el coste Normal-Service 0 (hexadecimal 0x00) Servicio normal La forma de marcar los paquetes es definir una regla y la marca que queramos. Podemos definir por direccion de origen, de destino, por puerto de origen, de destino o por una combinacion de todas estas. Las reglas se leen de izquierda a derecha, esto indica la direccion del trafico. Ejemplos: Marcar el trafico desde 192.168.1.0/16 y puerto de origen 80/tcp a 192.169.1.0/24 TOS1="192.168.1.0/24 sport 80/tcp to 192.169.1.0/24 tosrule :tos 0" Marcar el trafico desde las redes de $NET_LAN al firewall TOS2="$NET_LAN to firewall tosrule :tos Minimize-Delay" Se aconseja usar preferentemente tipos en vez de numeros. En la ayuda vienen mas ejemplos. [source] [sport port] [to] [dest] [dport port] tosrule :tos [tos_number] ---------------------------------------------------------------------- |
TOS1="eth0+192.168.1.0/24
sport 80/tcp to 192.169.1.0/24 tosrule :tos 0" TOS2="$NET_LAN to firewall tosrule :tos Minimize-Delay" TOS3="$NET_LAN to $NET_EXT dport $DNS_PORT tosrule :tos 0" |
HELP_TIMERULES: Definicion de reglas
ACCEPT o DROP por tablas [ ESTA REGLA NECESITA DE LA EXTENSION DE NETFILTER E IPTABLES ] [ -m time QUE VIENE EN EL patch-o-matic ] Se crea una tabla de reglas con los siguientes campos: [source] [sport port] to [dest] [dport port] timerule [rule] time [time] ------------------------------------------------------------------------- Las reglas se definen como si fueran una variable, cuyo nombre no puede coincidir con cualquier otro nombre de otra variable. Las palabras 'to' y 'timerule' siempre deben estar. Los campos entre [] son opcionales (menos time y timerule) dependen de como queramos construir la regla. Las palabras 'sport' y 'dport' indican que se va a definir la regla por puertos. El significado de lo demas: source: Puede ser una IP, una red, un rango, una variable de tipo red como $NET_LAN, un interface, 'firewall' para denotar la maquina que alberga el firewall o una combinacion de todas estas. dest: Lo mismo que para source port: Una combinacion de puertos, variables de puertos como $NFS_PORT tal como estan definidos en rules.conf. Tambien se pueden usar grupos de puertos. Se pone simplemente el nombre del grupo. time: Indica el tiempo en el que se aplica la regla, se deben usar las siguientes palabras clave para indicar el tiempo: start: Tiempo en el que comienza a aplicarse (HH:MM) stop: Tiempo en el que deja de aplicarse (HH:MM) days: Dias que se aplica. (Sun,Mon,Tue,Wed,Thu,Fri,Sat) separados por comas. Hay que ponerlos exactamente asi. timerule: Una regla compuestas por: :accept Aceptar el paquete :drop Denegar el paquete :log Loggear el paquete en los logs del sistema. :stats Crear estadisticas con RRDTOOL para luego poder generar graficas del trafico para este servicio. :ulog Pasar los paquetes de este servicio a ULOG. Las reglas se leen de izquierda a derecha, esto indica la direccion del trafico. Solo hay que aceptar el inicio de la conexion, la otra direccion se abre automaticamente por connection tracking al establecerse la conexion. Ejemplos: Aceptar el trafico desde 192.168.1.0/16 y puerto de origen 80/tcp a 192.169.1.0/24 de lunes a viernes y loggear TIME1="192.168.1.0/24 sport 80/tcp to 192.169.1.0/24 timerule \ :accept:log time days Mon,Tue,Wed,Thu,Fri" Aceptar todo el trafico con origen en la red los fines de semana. TIME2="$NET_LAN to rule :accept time days Sat,Sun" Aceptar todo el trafico HTTP (con destino a 80/tcp) por las noches. TIME5="to dport 80/tcp timerule :accept time start 22:00 stop 08:00" En la ayuda vienen mas ejemplos. [source] [sport port] to [dest] [dport port] timerule [time] timerule [ru ------------------------------------------------------------------------ |
TIME1="192.168.1.0/24
sport 80/tcp to 192.169.1.0/24 timerule :accept:log time days \ Mon,Tue,Wed,Thu,Fri" TIME2="$NET_LAN to rule :accept time days Sat,Sun" TIME3="to dport 80/tcp timerule :accept time start 22:00 stop 08:00" |
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too.
When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights.
We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations.
Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and modification follow.
GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does.
You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:
These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program.
In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License.
3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following:
The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.
If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.
5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License.
7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances.
It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice.
This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation.
10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.> Copyright (C) <year> <name of author>
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License.
GNU Free Documentation License
Version 1.2, November 2002
Copyright (C) 2000,2001,2002 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.
0. PREAMBLE
The purpose of this License is to make a manual, textbook, or other functional and useful document "free" in the sense of freedom: to assure everyone the effective freedom to copy and redistribute it, with or without modifying it, either commercially or noncommercially. Secondarily, this License preserves for the author and publisher a way to get credit for their work, while not being considered responsible for modifications made by others.
This License is a kind of "copyleft", which means that derivative works of the document must themselves be free in the same sense. It complements the GNU General Public License, which is a copyleft license designed for free software.
We have designed this License in order to use it for manuals for free software, because free software needs free documentation: a free program should come with manuals providing the same freedoms that the software does. But this License is not limited to software manuals; it can be used for any textual work, regardless of subject matter or whether it is published as a printed book. We recommend this License principally for works whose purpose is instruction or reference.
This License applies to any manual or other work, in any medium, that contains a notice placed by the copyright holder saying it can be distributed under the terms of this License. Such a notice grants a world-wide, royalty-free license, unlimited in duration, to use that work under the conditions stated herein. The "Document", below, refers to any such manual or work. Any member of the public is a licensee, and is addressed as "you". You accept the license if you copy, modify or distribute the work in a way requiring permission under copyright law.
A "Modified Version" of the Document means any work containing the Document or a portion of it, either copied verbatim, or with modifications and/or translated into another language.
A "Secondary Section" is a named appendix or a front-matter section of the Document that deals exclusively with the relationship of the publishers or authors of the Document to the Document's overall subject (or to related matters) and contains nothing that could fall directly within that overall subject. (Thus, if the Document is in part a textbook of mathematics, a Secondary Section may not explain any mathematics.) The relationship could be a matter of historical connection with the subject or with related matters, or of legal, commercial, philosophical, ethical or political position regarding them.
The "Invariant Sections" are certain Secondary Sections whose titles are designated, as being those of Invariant Sections, in the notice that says that the Document is released under this License. If a section does not fit the above definition of Secondary then it is not allowed to be designated as Invariant. The Document may contain zero Invariant Sections. If the Document does not identify any Invariant Sections then there are none.
The "Cover Texts" are certain short passages of text that are listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says that the Document is released under this License. A Front-Cover Text may be at most 5 words, and a Back-Cover Text may be at most 25 words.
A "Transparent" copy of the Document means a machine-readable copy, represented in a format whose specification is available to the general public, that is suitable for revising the document straightforwardly with generic text editors or (for images composed of pixels) generic paint programs or (for drawings) some widely available drawing editor, and that is suitable for input to text formatters or for automatic translation to a variety of formats suitable for input to text formatters. A copy made in an otherwise Transparent file format whose markup, or absence of markup, has been arranged to thwart or discourage subsequent modification by readers is not Transparent. An image format is not Transparent if used for any substantial amount of text. A copy that is not "Transparent" is called "Opaque".
Examples of suitable formats for Transparent copies include plain ASCII without markup, Texinfo input format, LaTeX input format, SGML or XML using a publicly available DTD, and standard-conforming simple HTML, PostScript or PDF designed for human modification. Examples of transparent image formats include PNG, XCF and JPG. Opaque formats include proprietary formats that can be read and edited only by proprietary word processors, SGML or XML for which the DTD and/or processing tools are not generally available, and the machine-generated HTML, PostScript or PDF produced by some word processors for output purposes only.
The "Title Page" means, for a printed book, the title page itself, plus such following pages as are needed to hold, legibly, the material this License requires to appear in the title page. For works in formats which do not have any title page as such, "Title Page" means the text near the most prominent appearance of the work's title, preceding the beginning of the body of the text.
A section "Entitled XYZ" means a named subunit of the Document whose title either is precisely XYZ or contains XYZ in parentheses following text that translates XYZ in another language. (Here XYZ stands for a specific section name mentioned below, such as "Acknowledgements", "Dedications", "Endorsements", or "History".) To "Preserve the Title" of such a section when you modify the Document means that it remains a section "Entitled XYZ" according to this definition.
The Document may include Warranty Disclaimers next to the notice which states that this License applies to the Document. These Warranty Disclaimers are considered to be included by reference in this License, but only as regards disclaiming warranties: any other implication that these Warranty Disclaimers may have is void and has no effect on the meaning of this License.
2. VERBATIM COPYING
You may copy and distribute the Document in any medium, either commercially or noncommercially, provided that this License, the copyright notices, and the license notice saying this License applies to the Document are reproduced in all copies, and that you add no other conditions whatsoever to those of this License. You may not use technical measures to obstruct or control the reading or further copying of the copies you make or distribute. However, you may accept compensation in exchange for copies. If you distribute a large enough number of copies you must also follow the conditions in section 3.
You may also lend copies, under the same conditions stated above, and you may publicly display copies.
3. COPYING IN QUANTITY
If you publish printed copies (or copies in media that commonly have printed covers) of the Document, numbering more than 100, and the Document's license notice requires Cover Texts, you must enclose the copies in covers that carry, clearly and legibly, all these Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on the back cover. Both covers must also clearly and legibly identify you as the publisher of these copies. The front cover must present the full title with all words of the title equally prominent and visible. You may add other material on the covers in addition. Copying with changes limited to the covers, as long as they preserve the title of the Document and satisfy these conditions, can be treated as verbatim copying in other respects.
If the required texts for either cover are too voluminous to fit legibly, you should put the first ones listed (as many as fit reasonably) on the actual cover, and continue the rest onto adjacent pages.
If you publish or distribute Opaque copies of the Document numbering more than 100, you must either include a machine-readable Transparent copy along with each Opaque copy, or state in or with each Opaque copy a computer-network location from which the general network-using public has access to download using public-standard network protocols a complete Transparent copy of the Document, free of added material. If you use the latter option, you must take reasonably prudent steps, when you begin distribution of Opaque copies in quantity, to ensure that this Transparent copy will remain thus accessible at the stated location until at least one year after the last time you distribute an Opaque copy (directly or through your agents or retailers) of that edition to the public.
It is requested, but not required, that you contact the authors of the Document well before redistributing any large number of copies, to give them a chance to provide you with an updated version of the Document.
4. MODIFICATIONS
You may copy and distribute a Modified Version of the Document under the conditions of sections 2 and 3 above, provided that you release the Modified Version under precisely this License, with the Modified Version filling the role of the Document, thus licensing distribution and modification of the Modified Version to whoever possesses a copy of it. In addition, you must do these things in the Modified Version:
If the Modified Version includes new front-matter sections or appendices that qualify as Secondary Sections and contain no material copied from the Document, you may at your option designate some or all of these sections as invariant. To do this, add their titles to the list of Invariant Sections in the Modified Version's license notice. These titles must be distinct from any other section titles.
You may add a section Entitled "Endorsements", provided it contains nothing but endorsements of your Modified Version by various parties--for example, statements of peer review or that the text has been approved by an organization as the authoritative definition of a standard.
You may add a passage of up to five words as a Front-Cover Text, and a passage of up to 25 words as a Back-Cover Text, to the end of the list of Cover Texts in the Modified Version. Only one passage of Front-Cover Text and one of Back-Cover Text may be added by (or through arrangements made by) any one entity. If the Document already includes a cover text for the same cover, previously added by you or by arrangement made by the same entity you are acting on behalf of, you may not add another; but you may replace the old one, on explicit permission from the previous publisher that added the old one.
The author(s) and publisher(s) of the Document do not by this License give permission to use their names for publicity for or to assert or imply endorsement of any Modified Version.
5. COMBINING DOCUMENTS
You may combine the Document with other documents released under this License, under the terms defined in section 4 above for modified versions, provided that you include in the combination all of the Invariant Sections of all of the original documents, unmodified, and list them all as Invariant Sections of your combined work in its license notice, and that you preserve all their Warranty Disclaimers.
The combined work need only contain one copy of this License, and multiple identical Invariant Sections may be replaced with a single copy. If there are multiple Invariant Sections with the same name but different contents, make the title of each such section unique by adding at the end of it, in parentheses, the name of the original author or publisher of that section if known, or else a unique number. Make the same adjustment to the section titles in the list of Invariant Sections in the license notice of the combined work.
In the combination, you must combine any sections Entitled "History" in the various original documents, forming one section Entitled "History"; likewise combine any sections Entitled "Acknowledgements", and any sections Entitled "Dedications". You must delete all sections Entitled "Endorsements".
6. COLLECTIONS OF DOCUMENTS
You may make a collection consisting of the Document and other documents released under this License, and replace the individual copies of this License in the various documents with a single copy that is included in the collection, provided that you follow the rules of this License for verbatim copying of each of the documents in all other respects.
You may extract a single document from such a collection, and distribute it individually under this License, provided you insert a copy of this License into the extracted document, and follow this License in all other respects regarding verbatim copying of that document.
7. AGGREGATION WITH INDEPENDENT WORKS
A compilation of the Document or its derivatives with other separate and independent documents or works, in or on a volume of a storage or distribution medium, is called an "aggregate" if the copyright resulting from the compilation is not used to limit the legal rights of the compilation's users beyond what the individual works permit. When the Document is included in an aggregate, this License does not apply to the other works in the aggregate which are not themselves derivative works of the Document.
If the Cover Text requirement of section 3 is applicable to these copies of the Document, then if the Document is less than one half of the entire aggregate, the Document's Cover Texts may be placed on covers that bracket the Document within the aggregate, or the electronic equivalent of covers if the Document is in electronic form. Otherwise they must appear on printed covers that bracket the whole aggregate.
8. TRANSLATION
Translation is considered a kind of modification, so you may distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with translations requires special permission from their copyright holders, but you may include translations of some or all Invariant Sections in addition to the original versions of these Invariant Sections. You may include a translation of this License, and all the license notices in the Document, and any Warranty Disclaimers, provided that you also include the original English version of this License and the original versions of those notices and disclaimers. In case of a disagreement between the translation and the original version of this License or a notice or disclaimer, the original version will prevail.
If a section in the Document is Entitled "Acknowledgements", "Dedications", or "History", the requirement (section 4) to Preserve its Title (section 1) will typically require changing the actual title.
9. TERMINATION
You may not copy, modify, sublicense, or distribute the Document except as expressly provided for under this License. Any other attempt to copy, modify, sublicense or distribute the Document is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.
10. FUTURE REVISIONS OF THIS LICENSE
The Free Software Foundation may publish new, revised versions of the GNU Free Documentation License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. See http://www.gnu.org/copyleft/.
Each version of the License is given a distinguishing version number. If the Document specifies that a particular numbered version of this License "or any later version" applies to it, you have the option of following the terms and conditions either of that specified version or of any later version that has been published (not as a draft) by the Free Software Foundation. If the Document does not specify a version number of this License, you may choose any version ever published (not as a draft) by the Free Software Foundation.
ADDENDUM: How to use this License for your documents
To use this License in a document you have written, include a copy of the License in the document and put the following copyright and license notices just after the title page:
Copyright (c) YEAR YOUR NAME.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.2 or
any later version published by the Free Software Foundation; with no
Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A
copy of the license is included in the section entitled "GNU Free
Documentation License".
If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, replace the "with...Texts." line with this:
with the Invariant Sections being LIST THEIR TITLES, with the Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.
If you have Invariant Sections without Cover Texts, or some other combination of the three, merge those two alternatives to suit the situation.
If your document contains nontrivial examples of program code, we recommend releasing these examples in parallel under your choice of free software license, such as the GNU General Public License, to permit their use in free software.