Tutorial de IPtables 1.1.19es

Oskar Andreasson

     blueflux@koffein.net
    

Se concede permiso para copiar, distribuir y/o modificar este documento según las condiciones de la Licencia de Libre Documentación de GNU (GNU Free Documentation License), Versión 1.1; siendo las Secciones Invariables (Invariant Sections) la "Introducción" y todos sus sub-apartados, con la Portada indicando "Autor Original: Oskar Andreasson" y sin texto en la Contraportada. Una copia de esta licencia en castellano se incluye en el apartado "GNU Free Documentation License" (también se incluye la versión oficial en inglés).

Todos los "scripts" del presente tutorial quedan cubiertos por la Licencia Pública General de GNU (GNU General Public License). Los "scripts" son de código libre (free source); puedes redistribuirlos y/o modificarlos siguiendo las condiciones de la Licencia Pública General de GNU (GNU General Public License) publicada por la Fundación del Software de Libre Distribución (Free Software Foundation), versión 2 de la Licencia.

Los "scripts" se ofrecen con la esperanza de que sean útiles, pero SIN NINGUNA GARANTíA; ni siquiera garantía implícita por COMPRA-VENTA o ADECUACIóN A UN PROPóSITO PARTICULAR. Para más detalles, referirse a la Licencia Pública General de GNU (GNU General Public License) [se incluye la versión en castellano].

Deberías haber recibido una copia de la Licencia Pública General de GNU (GNU General Public License) con este tutorial, en la sección titulada "GNU General Public License" (en inglés y en castellano); si no es así, comunícalo a la Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.


Dedicatorias

Por encima de todo quiero dedicar este documento a mi maravillosa novia Ninel. Nunca podré apoyarte tanto como tú me has apoyado a mí. Deseo hacerte al menos tan feliz como tú me has hecho a mí.

También quiero dedicar este trabajo a todos los programadores y encargados del mantenimiento de Linux por su trabajo tan increíblemente duro. Gracias a éllos se hace posible éste maravilloso sistema operativo.

Table of Contents
Notas de la traducción
Acerca del autor
Cómo leer este tutorial
Requisitos previos
Convenciones tipográficas
1. Introducción
1.1. Por qué se ha escrito este documento
1.2. Cómo se ha escrito
1.3. Términos empleados en este documento
2. Preparativos
2.1. Dónde conseguir iptables
2.2. Configuración del núcleo (kernel)
2.3. Configuración de la zona de usuario
2.3.1. Compilando las aplicaciones de la zona de usuario
2.3.2. Instalación en Red Hat 7.1
3. Atravesando tablas y cadenas
3.1. Generalidades
3.2. Tabla mangle
3.3. Tabla nat
3.4. tabla Filter
4. La máquina de estados
4.1. Introducción
4.2. Las "entradas" del conntrack
4.3. Estados del espacio de usuario
4.4. Conexiones TCP
4.5. Conexiones UDP
4.6. Conexiones ICMP
4.7. Conexiones por defecto
4.8. Los protocolos complejos y el seguimiento de conexiones
5. Salvando y restaurando grandes conjuntos de reglas
5.1. Considerando la velocidad
5.2. Inconvenientes con la restauración
5.3. iptables-save
5.4. iptables-restore
6. Cómo se escribe una regla
6.1. Conceptos Básicos
6.2. Tablas
6.3. Comandos
6.4. Comparaciones ("matches")
6.4.1. Comparaciones genéricas
6.4.2. Comparaciones implícitas
6.4.3. Comparaciones explícitas
6.4.4. Comparación "Unclean" ("sucio")
6.5. Objetivos/Saltos (Targets/Jumps)
6.5.1. Objetivo ACCEPT
6.5.2. Objetivo DNAT
6.5.3. Objetivo DROP
6.5.4. Objetivo LOG
6.5.5. Objetivo MARK
6.5.6. Objetivo MASQUERADE
6.5.7. Objetivo MIRROR
6.5.8. Objetivo QUEUE
6.5.9. Objetivo REDIRECT
6.5.10. Objetivo REJECT
6.5.11. Objetivo RETURN
6.5.12. Objetivo SNAT
6.5.13. Objetivo TOS
6.5.14. Objetivo TTL
6.5.15. Objetivo ULOG
7. El archivo rc.firewall
7.1. Ejemplo de rc.firewall
7.2. Explicación del rc.firewall
7.2.1. Opciones de configuración
7.2.2. Carga inicial de módulos extra
7.2.3. Configuración de /proc
7.2.4. Desplazamiento de las reglas entre cadenas
7.2.5. Estableciendo las políticas por defecto
7.2.6. Definiendo cadenas de usario en la tabla Filter
7.2.7. La cadena INPUT
7.2.8. La cadena FORWARD
7.2.9. La cadena OUTPUT
7.2.10. La cadena PREROUTING de la tabla nat
7.2.11. Activando SNAT y la cadena POSTROUTING
8. Scripts de ejemplo
8.1. Estructura del script rc.firewall.txt
8.1.1. La estructura
8.2. rc.firewall.txt
8.3. rc.DMZ.firewall.txt
8.4. rc.DHCP.firewall.txt
8.5. rc.UTIN.firewall.txt
8.6. rc.test-iptables.txt
8.7. rc.flush-iptables.txt
8.8. Limit-match.txt
8.9. Pid-owner.txt
8.10. Sid-owner.txt
8.11. Ttl-inc.txt
8.12. Iptables-save
A. Explicaciones detalladas sobre comandos especiales
A.1. Haciendo un listado del conjunto de reglas activo
A.2. Actualizando y "aseando" tus tablas
B. Problemas y preguntas frecuentes
B.1. Problemas en la carga de módulos
B.2. Paquetes cuyo estado es NEW pero cuyo bit SYN no se ha establecido
B.3. Paquetes SYN/ACK y NEW
B.4. Proveedores de Acceso a Internet que emplean direcciones IP asignadas
B.5. Permitir peticiones DHCP a través de iptables
B.6. Problemas con mIRC DCC
C. Tipos ICMP
D. Otras fuentes y enlaces
E. Agradecimientos
F. Historial
G. Licencia de Documentación Libre GNU
0. PREÁMBULO
1. APLICABILIDAD Y DEFINICIONES
2. COPIA LITERAL
3. COPIADO EN CANTIDAD
4. MODIFICACIONES
5. COMBINANDO DOCUMENTOS
6. COLECCIONES DE DOCUMENTOS
7. AGREGACIÓN CON TRABAJOS INDEPENDENTES
8. TRADUCCIÓN
9. TERMINACIÓN
10. REVISIONES FUTURAS DE ESTA LICENCIA
Cómo usar esta Licencia para sus documentos
Notas de la traducción
H. GNU Free Documentation License
0. PREAMBLE
1. APPLICABILITY AND DEFINITIONS
2. VERBATIM COPYING
3. COPYING IN QUANTITY
4. MODIFICATIONS
5. COMBINING DOCUMENTS
6. COLLECTIONS OF DOCUMENTS
7. AGGREGATION WITH INDEPENDENT WORKS
8. TRANSLATION
9. TERMINATION
10. FUTURE REVISIONS OF THIS LICENSE
How to use this License for your documents
I. Licencia Pública General GNU
0. Preámbulo
1. TÉRMINOS Y CONDICIONES PARA LA COPIA, DISTRIBUCIÓN Y MODIFICACIÓN
2. Cómo aplicar estos términos a los nuevos programas
J. GNU General Public License
0. Preamble
1. TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
2. How to Apply These Terms to Your New Programs
K. Código fuente de los scripts de ejemplo
K.1. Script de ejemplo rc.firewall
K.2. Script de ejemplo rc.DMZ.firewall
K.3. Script de ejemplo rc.UTIN.firewall
K.4. Script de ejemplo rc.DHCP.firewall
K.5. Script de ejemplo rc.flush-iptables
K.6. Script de ejemplo rc.test-iptables
List of Tables
3-1. Host local de destino (nuestra propia máquina)
3-2. Host local de origen (nuestra própia máquina)
3-3. Paquetes Reenviados (Forwarded)
4-1. Estados de espacio de usuario
4-2. Estados internos
6-1. Tablas
6-2. Comandos
6-3. Opciones
6-4. Comparaciones genéricas
6-5. Comparaciones TCP
6-6. Comparaciones UDP
6-7. Comparaciones ICMP
6-8. Opciones de comparación límite
6-9. Opciones de la comparación MAC
6-10. Opciones de la comparación de marca
6-11. Opciones de comparación multipuerto
6-12. Opciones de comparación de propietario
6-13. Comparaciones de Estado
6-14. Comparaciones TOS
6-15. Comparaciones TTL
6-16. Objetivo DNAT
6-17. Opciones del objetivo LOG
6-18. Opciones del objetivo MARK
6-19. Objetivo MASQUERADE
6-20. Objetivo REDIRECT
6-21. Objetivo REJECT
6-22. Objetivo SNAT
6-23. Objetivo TOS
6-24. Objetivo TTL
6-25. Objetivo ULOG
C-1. Tipos ICMP