Xiaohan explica Iptables: fácil de usar

Prefacio:

        El muro de protección de Linux funciona principalmente en la capa de red, filtrando y restringiendo los paquetes de datos TCP / IP, y es un firewall de filtrado de paquetes típico (o llamado firewall de capa de red). El sistema de firewall del sistema Linux se basa en la codificación del kernel, que tiene un rendimiento muy estable y una alta eficiencia.

En muchos materiales técnicos de seguridad, netfilter e iptables se utilizan para referirse a los firewalls de Linux. La diferencia entre los dos es la siguiente:

       Netfilter: se refiere a la estructura interna del cortafuegos de filtrado de paquetes en el kernel de Linux, que no existe en forma de programas o archivos, y pertenece al cortafuegos "modo kernel". (Espacio de kernel)

       Iptables: Se refiere al programa de comando utilizado para administrar el firewall de Linux, generalmente ubicado en el directorio / sbin / iptables, y pertenece al sistema de administración de firewall "modo de usuario". (Espacio de usuario, herramientas de gestión).

  • Mesa iptables, estructura cadena

       La función de Iptables es proporcionar reglas (o políticas) para la realización del mecanismo de filtrado de paquetes. A través de varias reglas, indique a netfilter qué hacer con los paquetes de datos de ciertas fuentes, para ciertos propósitos o con ciertas características de protocolo. tratar con. Para organizar y administrar las reglas del firewall de manera más conveniente, iptables usa una estructura jerárquica de "tablas" y "cadenas".

       Entre ellos, cada tabla de reglas es equivalente a un contenedor en el espacio del kernel, que se divide en cuatro tablas predeterminadas de acuerdo con los diferentes propósitos del conjunto de reglas; cada contenedor de tabla incluye diferentes cadenas de reglas, que se dividen en Cinco tipos de cadenas y las diversas reglas que determinan si filtrar o procesar paquetes de datos se colocan en las distintas cadenas de reglas en orden.

  • Tabla de reglas:

      Para diferenciar la función del conjunto de reglas, iptables gestiona cuatro tablas de reglas diferentes, cuyas funciones son implementadas por módulos del kernel independientes. Los nombres de las cuatro tablas, las cadenas que contienen y sus respectivos usos son los siguientes:

Tabla de       filtros : la tabla de filtros se utiliza para filtrar paquetes de datos y decidir cómo procesar un paquete de datos de acuerdo con reglas específicas. El módulo del núcleo correspondiente a la tabla Filter es iptable_filter, y la tabla contiene tres cadenas, a saber, INPUT, FORWARD y OUTPUT.

      Nat tabla : El (. Red dirección Trstion traducción de direcciones de red) tabla nat se utiliza principalmente para modificar la dirección IP, número de puerto y otra información del paquete de datos. El módulo correspondiente a la tabla Nat es iptable_nat, y la tabla contiene tres cadenas, a saber PREROUTING, POTROUTNG. OUTPUT. (Para conversión de direcciones)

Tabla de       alteración : la tabla de alteración se utiliza para modificar el TOS (tipo de servicio) y TTL (vida útil) del paquete de datos, o para establecer la marca Mark para el paquete de datos para implementar aplicaciones avanzadas como la configuración del tráfico y el enrutamiento de políticas. El módulo del kernel correspondiente a la tabla mangle es iptable_mangle, y la tabla contiene cinco cadenas, a saber, PREROUTING, POSTROUTING, INPUT, OUTPUT. FORWARD.

Tabla sin       procesar : la tabla sin procesar es una tabla de iptables recién agregada desde 1.2.9. Se utiliza principalmente para determinar si se deben ingresar paquetes de datos

Seguimiento del estado de la fila, el módulo del kernel correspondiente a la tabla sin procesar es iptable_raw La tabla contiene dos cadenas, a saber, OUTPUT y PREROUTING.

Entre las cuatro tablas de reglas de iptables, la tabla mangle y la tabla raw tienen relativamente pocas aplicaciones. Así que no lo presentaré aquí.

  • Cadena de reglas (que se adapta a varias reglas de firewall):

      Al procesar varios paquetes de datos, iptables se divide en cinco cadenas de datos de reglas diferentes por defecto de acuerdo con los diferentes tiempos de intervención de las reglas de firewall. Los nombres de estas cinco cadenas y sus respectivos tiempos de intervención son los siguientes:

Cadena       INPUT : Cuando se recibe un paquete de datos (entrante) que accede a la dirección local del firewall, se aplican las reglas de esta cadena.

Cadena de       SALIDA : cuando el firewall envía localmente paquetes de datos (salientes), se aplican las reglas de esta cadena.

Cadena       FORWARD : Cuando se reciben paquetes de datos (reenvío) que necesitan reenviarse a otras direcciones a través del firewall, se aplican las reglas de esta cadena.

Cadena       PREROUTING : aplique las reglas en esta cadena antes de enrutar paquetes de datos.

Cadena       POSTROUTING : Después de enrutar los paquetes de datos, se aplican las reglas de esta cadena.

Entre ellas, las cadenas INPUT y OUTPUT se utilizan principalmente en "cortafuegos de tipo host", es decir, cortafuegos que protegen principalmente servidores; y las cadenas FORWARD, PREROUTING y POSTROUTING se utilizan principalmente en "cortafuegos de tipo red", como el uso de un cortafuegos Linux como servidor de puerta de enlace. Control de seguridad entre la intranet de la empresa e Internet.

1) Escriba reglas de firewall:

Reglas básicas de Iptables:

# opciones de administración de iptables [-t nombre de tabla] [nombre de cadena] [condiciones coincidentes] [-j tipo de control]

       El nombre de la tabla y el nombre de la cadena se usan para especificar la tabla y la cadena que opera el comando iptables. Cuando no se especifica, la tabla de filtro se usa de manera predeterminada; las opciones de administración indican el modo de operación de las reglas de iptables, como insertar, agregar, eliminar, ver, etc .; las condiciones de coincidencia se usan para especificar No se procesarán las características del paquete de datos a procesar y el paquete de datos que no cumpla con las condiciones especificadas; el tipo de control se refiere al método de procesamiento del paquete de datos, tales como: permitir, denegar, descartar, etc.

       El tipo de control del firewall y los paquetes de datos es muy crítico, directamente relacionado con la liberación, el bloqueo y los registros de registro correspondientes de los paquetes de datos. En el sistema de firewall de iptables, los tipos de control más comúnmente utilizados son los siguientes:

   ACEPTAR : Permitir que los paquetes de datos pasen.

   DROP : suelta el paquete de datos directamente sin dar ninguna información de respuesta.

   RECHAZAR : Rechaza el paquete de datos para pasar y envía un mensaje de respuesta a los datos cuando sea necesario.

   REGISTRO : registre la información del registro en el archivo / var / log / message y luego pase el paquete de datos a la siguiente regla. El "emparejar y detener" de las reglas de firewall es un caso especial para las operaciones LOG. Porque LOG es solo una acción auxiliar y no procesa paquetes de datos.

2) Instrucciones simples para Iptables:

# service iptables iniciar | detener | reiniciar | guardar

Opciones:

  • -A: agrega una nueva regla al final de la cadena especificada
  • -D: elimina una regla en la cadena especificada, puede especificar el número de secuencia o el contenido específico de la regla
  • -I: Inserte una nueva regla en la cadena especificada, si no se especifica el número de secuencia, se utilizará por defecto la primera regla
  • -R: modifica o reemplaza una regla en la cadena especificada y especifica el número de regla o contenido específico
  • -L: enumera todas las reglas de la cadena especificada, si no se especifica el nombre de la cadena, se enumeran todas las cadenas de la tabla
  • -F: borra todas las reglas en la cadena especificada, si no se especifica el nombre de la cadena, borra todas las cadenas en la tabla
  • -P: establece la política predeterminada de la cadena especificada
  • -n: muestra los resultados de salida en forma digital, como mostrar la dirección IP en lugar del nombre de host
  • -v: muestra información detallada al ver la lista de reglas
  • -h: Ver información de ayuda del comando
  • --line-numbers: al ver la lista de reglas, también se muestra el número de secuencia de la regla en la cadena.

3) Campamento Práctico Xiaohan

1. Vea la política de firewall de iptables:

[root@hya ~]# iptables -L -n -v          默认是filter表的(结合使用时-L不要放在首位)

2. Ver otras tablas:

[root@hya ~]# iptables -t nat -n -v -L      如果你只希望查看特定的表,可以在 -t 参数后跟上要单独查看的表名。

3. Bloquear una dirección IP:

[root@hya ~]# iptables -A INPUT -s 192.168.253.100 -j DROP
如果你只想屏蔽 TCP 流量,可以使用 -p 参数的指定协议:
[root@hya ~]# iptables -A INPUT -p tcp -s 192.168.253.100 -j DROP

4. Desbloquea el escudo de una IP:

[root@hya ~]# iptables -D INPUT -s 192.168.253.100 -j DROP

5. IPtables cierra puertos específicos y evita conexiones salientes específicas:

[root@hya ~]# iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT

6. Bloquear conexiones entrantes específicas:

[root@hya ~]# iptables -A INPUT -p tcp --dport 80 -j ACCEPT

7. Usando multipuerto, podemos escribir varios puertos en una sola regla a la vez, por ejemplo:

[root@hya ~]# iptables -A INPUT  -p tcp -m multiport --dports 22,80,443 -j ACCEPT
[root@hya ~]# iptables -A OUTPUT -p tcp -m multiport --sports 22,80,443 -j ACCEPT

8. El rango de direcciones IP en IPtables se puede expresar directamente mediante CIDR, por ejemplo:

[root@hya ~]# iptables -A OUTPUT -p tcp -d 192.168.100.0/24 --dport 22 -j ACCEPT

9. A veces necesitamos reenviar cierto tráfico de servicio del servidor Linux a otro puerto. En este momento, podemos usar el siguiente comando (el comando anterior redirigirá todo el tráfico que llega al puerto 25 de la tarjeta de red eth0 al puerto 2525):

[root@hya ~]# iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 25 -j REDIRECT --to-port 2525

10. Para que Linux prohíba PING, puede utilizar las siguientes reglas para bloquear las conexiones entrantes ICMP:

[root@hya ~]# iptables -A INPUT -p icmp -i eth0 -j DROP

11. Acceso de bucle invertido (127.0.0.1), se recomienda que todos abran:

[root@hya ~]# iptables -A INPUT -i lo -j ACCEPT
[root@hya ~]# iptables -A OUTPUT -o lo -j ACCEPT

12. Utilice las siguientes reglas para bloquear la dirección MAC especificada:

 [root@hya ~]# iptables -A INPUT -m mac --mac-source 00:00:00:00:00:00 -j DROP

13. Para borrar la cadena de IPtables, puede usar el siguiente comando:

[root@hya ~]# iptables -F

14. Para borrar una tabla específica, puede usar el parámetro -t para especificar, por ejemplo:

[root@hya ~]# iptables -t nat -F

15. Utilice -line-number para averiguar el número de línea de la regla y luego elimine la regla por número de línea.

[root@hya ~]# iptables -nL --line-number
[root@hya ~]# iptables -D INPUT 2

 

Supongo que te gusta

Origin blog.csdn.net/yeyslspi59/article/details/108635992
Recomendado
Clasificación