CONFIGURACION DEL FIREWALL Firewall Procederemos así: # apt-get install iptables Es importante saber y conocer las diferentes tables que existen. En total existen 3: filter, mangle o nat. Cada vez que utilicemos uno de los parámetros iptables en este documento, llamaremos la tabla correspondiente de la siguiente manera: Iptables –t [nombre de tabla] que puede ser filter, mangle o nat. La letra t con el signo de - (-t) indica cual será la tabla utilizada por defecto si no indicamos nada cuando llamamos a iptables. Vamos entonces a definir políticas generales para las tres cadenas, que se encuentran claro está en la misma tabla (en este caso filter). Iptables –t filter –P INPUT DROP Iptables –t filter –P FORWARD ACCEPT Iptables –t filter –P OUTPUT ACCEPT MIGUEL ANGEL DIAZ POLANCO Página 1 CONFIGURACION DEL FIREWALL Si queremos comprobar la configuración de nuestra IPtables solo tenemos que introducir el siguiente comando iptables-save. Si queremos entrar a cualquier página web, vamos a notar que estas van a estar bloqueadas por las iptables. Probamos con google.com. MIGUEL ANGEL DIAZ POLANCO Página 2 CONFIGURACION DEL FIREWALL Ahora bien si queremos permitir la entrada y salida de paquetes originadas desde nuestro servidor, indicaremos los siguientes parámetros iptables -t filter -A INPUT –m state - - state ESTABLISH RELATED –j ACCEPT. Probamos entonces con la página de google. Si queremos tener la certeza de que en este momento las iptables solo aceptan peticiones originadas desde nuestro servidor, revisamos cual es nuestra dirección IP con el comando ifconfig. Damos ping desde un cliente al servidor, para de esta manera confirmar que el Firewall está MIGUEL ANGEL DIAZ POLANCO Página 3 CONFIGURACION DEL FIREWALL rechazando o más bloqueando la conexión. Como pueden observar aunque estén bloqueadas las solicitudes de tráfico externo, solo las peticiones de nuestro servidor son permitidas. Si queremos listar las configuraciones que hasta ahora se han hecho en nuestro servidor, se verifican con la siguiente sintaxis iptables –t filter –L. Permitir puertos. Para tratar de configurar un puerto para conexiones entrantes con INPUT DROP configurado utilizamos la sintaxis descrita en la parte superior de la siguiente forma iptables –A INPUT –ptcp –dport 80 –j ACCEPT. Esto es para conexiones de tcp si queremos utilizar entonces conexiones udputilizamos la misma sintaxis pero en vez de ponerle tcp le ponemos udp. Es necesario saber la diferencia entre udp y tcp. Basándonos en algunos ejemplos específicos, aprendamos a como configurar conexiones entrantes y salientes para puertos específicos de nuestro sistema. Por ejemplo supongamos que tenemos todas las conexiones entrantes en modo DROP o mejor dicho bloqueo. Y queremos que se permitan ciertas conexiones entrantes, por parte del puerto 80 que es el http. El puerto 80 permite que nuestro navegador web pueda enviar y recibir datos de servidores http que se encuentran en todo el internet. MIGUEL ANGEL DIAZ POLANCO Página 4 CONFIGURACION DEL FIREWALL La sintaxis para configurar un puerto es iptables –A(acción, pusiendo ser tanto –I como –D y demás) [INPUT, OUTPUT o FORWARD] –p [tcp o udp] --dport [número de puerto] –j [ACCEPT o DROP]. Si desea modificar un puerto tanto de entrada, salida y a travez del servidor: MIGUEL ANGEL DIAZ POLANCO Página 5 CONFIGURACION DEL FIREWALL # iptables –A INPUT –p tcp –dport 80 –j ACCEPT. Con el siguiente comando podrás ver las configuraciones iptables-save. Si intentamos dar ping a la loopback veremos que no será posible ya que el Firewall, esta bloqueando todas las conexiones entrantes. Para esto debemos cambiar el modo INPUT a ACCEPT. Ahora probamos de nuevo MIGUEL ANGEL DIAZ POLANCO Página 6 CONFIGURACION DEL FIREWALL Bloqueando puertos específicos. Si queremos bloquear un puerto en específico lo podemos hacer de la siguiente manera, insertar el comando iptalbes -A INPUT –s (la direccion IP del hosts que queremos bloquear) –p icmp –j DROP y especificamos tanto para las conexión entrantes, salientes y de reenvió a través del servidor. Si queremos ver la configuración solo tenemos que insertar el siguiente comando iptables-save. Y si vamos al hots que bloqueamos, e intentamos dar ping hacia el servidor se dará cuenta que el ping fallara, porque el Firewall ha bloqueado ese puerto. MIGUEL ANGEL DIAZ POLANCO Página 7 CONFIGURACION DEL FIREWALL D e igual manera podemos ir al servidor y probar la conectividad con el cliente. MIGUEL ANGEL DIAZ POLANCO Página 8 CONFIGURACION DEL FIREWALL De la misma forma que podemos bloquear un host en específico, también podemos bloquear toda una red solo tenemos que insertar el comando iptalbes -A INPUT –s (la dirección IP de la red que queremos bloquear/seguido de la máscara) –p icmp –j DROP y especificamos tanto para las conexión entrantes, salientes y de reenvió a través del servidor. Si queremos ver la configuración solo tenemos que ingresar el siguiente comando iptables-save. Si hacemos una prueba con otra IP de la red el Firewall l bloqueara. MIGUEL ANGEL DIAZ POLANCO Página 9 CONFIGURACION DEL FIREWALL Observen como el Firewall bloquea la prueba de conectividad. MIGUEL ANGEL DIAZ POLANCO Página 10