Búsqueda de sitios web

13 preguntas de la entrevista sobre el firewall de iptables de Linux


Nishita Agarwal, una visitante frecuente de Tecmint compartió con nosotros su experiencia (Preguntas y Respuestas) con respecto a la entrevista de trabajo que acababa de dar en una empresa de hosting privada en Pune. , India. Le hicieron muchas preguntas sobre una variedad de temas; sin embargo, ella es una experta en iptables y quería compartir esas preguntas y sus respuestas (que dio) relacionadas con iptables con otras personas que puedan estar visitando. dar una entrevista en un futuro próximo.

Todas las preguntas y sus respuestas se reescriben según la memoria de Nishita Agarwal.

"¡Hola amigos! Mi nombre es Nishita Agarwal. He obtenido una Licenciatura en Tecnología. Mi área de Especialización es UNIX y las Variantes de UNIX (BSD, Linux) me fascinan desde que lo escuché. Tengo más de 1 año de experiencia en almacenamiento. Estaba buscando un cambio de trabajo que terminara en una empresa de hosting en Pune, India. "

Aquí está la recopilación de lo que me preguntaron durante la entrevista. He documentado solo aquellas preguntas y sus respuestas que estaban relacionadas con iptables según mi memoria. Espero que esto te ayude a resolver tu entrevista.

1. ¿Has oído hablar de iptables y firewall en Linux? ¿Alguna idea de qué son y para qué se utiliza?

Respuesta: He estado usando iptables durante bastante tiempo y conozco tanto iptables como el firewall. Iptables es un programa de aplicación escrito principalmente en lenguaje de programación C y se publica bajo la licencia pública general GNU. Escrito para el punto de vista de la administración del sistema, la última versión estable es iptables 1.4.21.iptables puede considerarse como un firewall para sistemas operativos tipo UNIX que se pueden llamar como iptables/netfilter, más exactamente. El administrador interactúa con iptables a través de herramientas de interfaz gráfica de usuario/consola para agregar y definir reglas de firewall en tablas predefinidas. Netfilter es un módulo integrado dentro del kernel que realiza el trabajo de filtrado.

Firewalld es la última implementación de reglas de filtrado en RHEL/CentOS 7 (puede implementarse en otras distribuciones que quizás no conozca). Ha reemplazado la interfaz de iptables y se conecta a netfilter.

2. ¿Ha utilizado algún tipo de herramienta de interfaz gráfica de usuario para iptables o la línea de comandos de Linux?

Respuesta: Aunque he usado herramientas frontales basadas en GUI para iptables como Shorewall en conjugación de Webmin en GUI y acceso directo a iptables a través de la consola.Y debo Admito que el acceso directo a iptables a través de la consola Linux le da al usuario un inmenso poder en forma de un mayor grado de flexibilidad y una mejor comprensión de lo que sucede en segundo plano, si no cualquier otra cosa. La GUI es para administradores novatos, mientras que la consola es para administradores experimentados.

3. ¿Cuáles son las diferencias básicas entre iptables y firewalld?

Respuesta: iptables y firewalld tienen el mismo propósito (filtrado de paquetes) pero con un enfoque diferente. iptables elimina todas las reglas establecidas cada vez que se realiza un cambio, a diferencia de firewalld. Normalmente, la ubicación de la configuración de iptables se encuentra en '/etc/sysconfig/iptables', mientras que la configuración de firewalld se encuentra en '/etc/firewalld/', que es un conjunto de archivos XML. .Configurar un firewalld basado en XML es más fácil en comparación con la configuración de iptables; sin embargo, se puede lograr la misma tarea utilizando la aplicación de filtrado de paquetes, es decir, iptables y firewalld. Firewalld ejecuta iptables bajo su capó junto con su propia interfaz de línea de comandos y un archivo de configuración basado en XML como se mencionó anteriormente.

4. ¿Reemplazaría iptables con firewalld en todos sus servidores, si tuviera la oportunidad?

Respuesta: Estoy familiarizado con iptables y está funcionando, y si no hay nada que requiera un aspecto dinámico de firewalld, no parece haber razón para migrar toda mi configuración de iptables a firewalld.En la mayoría de los casos, hasta ahora nunca he visto que iptables cree un problema. También la regla general de las tecnologías de la información dice “para qué arreglar si no está roto”. Sin embargo, este es mi pensamiento personal y no me importaría implementar firewalld si la Organización va a reemplazar iptables con firewalld.

5. Parece tener confianza con iptables y el punto positivo es que incluso estamos usando iptables en nuestro servidor.

¿Cuáles son las tablas utilizadas en iptables? Dé una breve descripción de las tablas utilizadas en iptables y las cadenas que soportan.

Respuesta: Gracias por el reconocimiento. Pasando a la parte de la pregunta, se utilizan cuatro tablas en iptables, a saber:

  1. Mesa Nat
  2. Mesa destrozada
  3. Tabla de filtros
  4. Mesa cruda

Tabla Nat: la tabla Nat se utiliza principalmente para la traducción de direcciones de red. Los paquetes enmascarados modifican su dirección IP según las reglas de la tabla. Los paquetes en la secuencia atraviesan la tabla Nat solo una vez. es decir, si un paquete de un chorro de paquetes está enmascarado, el resto de los paquetes en la secuencia no volverán a atravesar esta tabla. Se recomienda no filtrar en esta tabla. Las cadenas admitidas por la tabla NAT son la cadena PREROUTING, la cadena POSTROUTING y la cadena OUTPUT.

Tabla Mangle: Como su nombre indica, esta tabla sirve para manipular los paquetes. Se utiliza para la modificación de paquetes especiales. Se puede utilizar para alterar el contenido de diferentes paquetes y sus encabezados. La mesa Mangle no se puede utilizar para enmascararse. Las cadenas admitidas son cadena PREROUTING, cadena OUTPUT, cadena directa, cadena INPUT y cadena POSTROUTING.

Tabla de filtro: la tabla de filtro es la tabla predeterminada utilizada en iptables. Se utiliza para filtrar paquetes. Si no se definen reglas, la tabla de filtro se toma como tabla predeterminada y el filtrado se realiza en función de esta tabla. Las cadenas admitidas son cadena de ENTRADA, cadena de SALIDA y cadena ADELANTE.

Tabla sin formato: la tabla sin formato entra en acción cuando queremos configurar paquetes que estaban exentos anteriormente. Admite cadena PREROUTING y cadena OUTPUT.

6. ¿Cuáles son los valores objetivo (que se pueden especificar en el objetivo) en iptables y qué hacen? ¡Sea breve!

Respuesta: Los siguientes son los valores objetivo que podemos especificar en target en iptables:

    1. ACEPTAR: Aceptar paquetes
    2. QUEUE: Paquete Paas al espacio del usuario (lugar donde residen la aplicación y los controladores)
    3. DROP : Entregar paquetes
    4. RETURN: Devuelve el control a la cadena de llamadas y deja de ejecutar el siguiente conjunto de reglas para los paquetes actuales en la cadena.
7. Pasemos a los aspectos técnicos de iptables, por técnicos quiero decir prácticos.

¿Cómo verificará las rpm de iptables que se requieren para instalar iptables en CentOS?

Respuesta: iptables rpm se incluyen en la instalación estándar de CentOS y no necesitamos instalarlo por separado. Podemos comprobar las rpm como:

rpm -qa iptables

iptables-1.4.21-13.el7.x86_64

Si necesita instalarlo, puede hacer yum para obtenerlo.

yum install iptables-services
8. ¿Cómo comprobar y garantizar si el servicio iptables se está ejecutando?

Respuesta: Para verificar el estado de iptables, puede ejecutar el siguiente comando en la terminal.

service iptables status			[On CentOS 6/5]
systemctl status iptables			[On CentOS 7]

Si no se está ejecutando, se puede ejecutar el siguiente comando.

---------------- On CentOS 6/5 ---------------- 
chkconfig --level 35 iptables on
service iptables start

---------------- On CentOS 7 ---------------- 
systemctl enable iptables 
systemctl start iptables 

También podemos verificar si el módulo iptables está cargado o no, como:

lsmod | grep ip_tables
9. ¿Cómo revisarás las Reglas actuales definidas en iptables?

Respuesta: Las reglas actuales en iptables se pueden revisar de manera tan simple como:

iptables -L

Resultado de muestra

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
ACCEPT     icmp --  anywhere             anywhere            
ACCEPT     all  --  anywhere             anywhere            
ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:ssh
REJECT     all  --  anywhere             anywhere             reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
REJECT     all  --  anywhere             anywhere             reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
10. ¿Cómo eliminarás todas las reglas de iptables o una cadena en particular?

Respuesta: Para vaciar una cadena de iptables en particular, puede utilizar los siguientes comandos.

 
iptables --flush OUTPUT

Para vaciar todas las reglas de iptables.

iptables --flush
11. Agregue una regla en iptables para aceptar paquetes de una dirección IP confiable (digamos 192.168.0.7)

Respuesta: El escenario anterior se puede lograr simplemente ejecutando el siguiente comando.

iptables -A INPUT -s 192.168.0.7 -j ACCEPT 

Podemos incluir barra diagonal estándar o máscara de subred en la fuente como:

iptables -A INPUT -s 192.168.0.7/24 -j ACCEPT 
iptables -A INPUT -s 192.168.0.7/255.255.255.0 -j ACCEPT
12. Cómo agregar reglas para ACEPTAR, RECHAZAR, DENEGAR y BORRAR el servicio ssh en iptables.

Respuesta: Esperando que ssh se esté ejecutando en el puerto 22, que también es el puerto predeterminado para ssh, podemos agregar una regla a iptables como:

Para ACEPTAR paquetes tcp para el servicio ssh (puerto 22).

iptables -A INPUT -s -p tcp --dport 22 -j ACCEPT 

Para RECHAZAR paquetes tcp para el servicio ssh (puerto 22).

iptables -A INPUT -s -p tcp --dport 22 -j REJECT

Para NEGAR paquetes tcp para el servicio ssh (puerto 22).

 
iptables -A INPUT -s -p tcp --dport 22 -j DENY

Para DROP paquetes tcp para el servicio ssh (puerto 22).

 
iptables -A INPUT -s -p tcp --dport 22 -j DROP
13. Déjame darte un escenario. Digamos que hay una máquina cuya dirección IP local es 192.168.0.6. Debe bloquear las conexiones en los puertos 21, 22, 23 y 80 de su máquina. ¿Qué vas a hacer?

Respuesta: Bueno, todo lo que necesito usar es la opción 'multiport' con iptables seguido de los números de puerto a bloquear y el escenario anterior se puede lograr de una sola vez como .

iptables -A INPUT -s 192.168.0.6 -p tcp -m multiport --dport 21,22,23,80 -j DROP

Las reglas escritas se pueden verificar usando el siguiente comando.

iptables -L

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
ACCEPT     icmp --  anywhere             anywhere            
ACCEPT     all  --  anywhere             anywhere            
ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:ssh
REJECT     all  --  anywhere             anywhere             reject-with icmp-host-prohibited
DROP       tcp  --  192.168.0.6          anywhere             multiport dports ssh,telnet,http,webcache

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
REJECT     all  --  anywhere             anywhere             reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Entrevistador: Eso es todo lo que quería preguntar. Eres un empleado valioso que no nos gustaría perder. Recomendaré su nombre a Recursos Humanos. Si tienes alguna pregunta puedes preguntarme.

Como candidato, no quería interrumpir la conversación, por lo tanto sigo preguntando sobre los proyectos que manejaría si fuera seleccionado y cuáles son las otras vacantes en la empresa. Sin mencionar que la ronda de recursos humanos no fue difícil de superar y tuve la oportunidad.

También me gustaría agradecer a Avishek y Ravi (con quienes soy amigo desde hace mucho tiempo) por tomarse el tiempo para documentar mi entrevista.

¡Amigos! ¿Si hubieran concedido alguna de estas entrevistas y les gustaría compartir su experiencia con millones de lectores de Tecmint en todo el mundo? luego envíe sus preguntas y respuestas a [email  o puede enviar su experiencia de entrevista utilizando el siguiente formulario.

¡Gracias! Manténgase conectado. También déjame saber si podría haber respondido una pregunta más correctamente de lo que lo hice.