HOW TO SOBRE FIREWALL 1- En este how to estaremos estableciendo algunas reglas con el firewall para bloquear el acceso, o permitirlo. Lo primero que haremos es abrir la consola, ubicada en aplicaciones, herramientas del sistema, terminal.
2- Con la terminal abierta procedemos a introducir el comando su para adquirir derecho de super administrador, luego de introducir la contraseña introducimos el comando iptables L para verificar las tablas configuradas o para listarlas, como nos damos cuenta existen varias tablas y aplicaciones de firewall corriendo en estos instantes.
3- para poder borrar toda esa configuración y poder comenzar de nuevo digitamos el comando iptables F, este comando lo que hará es limpiar la tabla de firewall así si introducimos de nuevo el comando iptables L, veremos que no existe nada.
4- Ahora bien ya que tenemos nuestra tabla vacía podemos comenzar a configurar las reglas que queremos, (es bueno decir antes de comenzar a configurar que normalmente estos comandos se escriben en un script para que desde el inicio el sistema arranque con ellos pero como nuestro objetivo es solo de prueba lo haremos viendo uno por uno, los básicos), para la primera regla que vamos a introducir, necesitamos verificar a que conexión estamos conectados, (en caso de que se tengan 2 tarjetas de red, que serán utilizadas más adelante en nat), esto lo haremos seleccionando la tarjeta de red que se quiere usar, mediante un click derecho donde se ven las 2 pc conectadas en la parte superior en la barra y simplemente haciendo click a una de las conexiones, haciendo esto ya sabemos por defecto en nuestro caso que estamos conectados a la Auto eth0, (en caso de solo tener una tarjeta de red, pues ya sabe a cuál está conectado, pues solo hay una), el estado de vuelta a la normalidad de las dos pc, después de reiniciarse nos indica que es a esa conexión a la cual estamos conectados.
5- Sabiendo que estamos conectados a la eth 0, insertamos el primer comando de iptables, que es iptables -A OUTPUT -o eth0 -j DROP la cual es utilizada para bloquear una interfaz para que no salga al internet, tras colocarla podemos digitar el comando iptables L para verificar si ahí esta y como allí se encuentra, para ver si es cierto que está funcionando tratamos de abrir cualquier página de internet al hacerlos nos damos cuenta que no abre.
6- Para comprobar esta sentencia que fuera por el comando que introducimos, digitamos el comando iptables F para borrar todas las iptables, y digitamos el comando iptables L para comprobar que la iptables no está ahí, luego de esto tratamos de acceder al internet y como vemos ya podemos, lo que comprueba que la iptables que introducimos es válida y funcional. No hay nada
7- La siguiente sentencia de iptables a comprobar es para bloquear una interfaz para que no entre desde el internet, es decir que cuando se haga un llamado o solicite una página esta no vendrá porque no puede entrar, esto se hace con el comando iptables -A INPUT -i eth0 -j DROP, la diferencia entre esta y la otra está en el OUTPUT e INPUT y en la i en vez de la o, hacemos el mismo procedimiento que la anterior listamos, verificamos que está allí, y luego comprobamos con una página en internet, como vemos no abre solo se queda en espera y luego de un tiempo nos muestra que no encuentra la página, esto es porque puede enviar información pero no puede recibir. Solo se queda cargando
8- Volvemos a la consola digitamos el comando iptables F para borrar las iptables, listamos las iptables con el comando iptables L para verificar que no está, intentamos entrar a la página y entra lo que comprueba que nuestra sentencia es válida y funcional, y que era eso que no está permitiendo que la página se abriera. Ya no esta
9- La próxima sentencia es para bloquear una red para que no salga al internet, antes de hacer esta iptables necesitamos saber cuál es nuestra red, esto lo averiguamos con el comando ifconfig, como vemos en nuestro caso la red es 192.168.146.0/24 (tengamos en cuenta que estamos usando la eth0), sabiendo esto digitamos el comando iptables -A OUTPUT -s 192.168.146.0/24 -j DROP, después de esto verificamos que esta iptable este en la tabla de iptables con el comando iptables L y después intentamos abrir una página de internet y como vemos no se puede abrir porque nuestra red esta bloqueada.
10- Volvemos a la consola digitamos el comando iptables F para borrar las iptables, y el comando iptables L para listar las iptables, como vemos ya no está, le damos refresh a nuestra página de internet y esta se abre sin ningún problema, lo que indica que nuestra iptable era funcional y estaba bloqueando la red.
11- La siguiente iptbles es para permitir el acceso a una red para que salga al internet, esta iptables se utiliza normalmente en combinación con otra pues se niega el acceso a las otras redes y solo se deja salir a una, a continuación dejaremos pasar una red en la cual nuestra pc no se encuantra y blouqueremos la red en que nuestra pc se encuentra, esto lo haremos con el comando iptables -A OUTPUT -s 192.168.145.0/24 -j ACCEPT y el comando iptables -A OUTPUT -s 192.168.146.0/24 -j DROP, verificamos que estén registradas en la tabla con el comando iptables L, y abrimos una página de internet y como nos damos cuenta no tenemos acceso al internet, porque nuestra red fue bloqueada.
12- Ahora haremos lo inverso, primero borramos la tabla (iptables F) y luego digitamos los comando para que bloque la red en donde no estamos y habilite la red donde estamos, esto lo haremos con los comandos iptables -A OUTPUT -s 192.168.145.0/24 -j DROP y iptables -A OUTPUT -s 192.168.146.0/24 -j ACCEPT, verificamos que estén listadas y luego abrimos la página y al hacer nos damos cuenta que tenemos acceso al internet lo que nos indica que nuestra iptable es funcional.
13- (Antes de comenzar esta parte digitar iptables F para borra la configuración anterior). La siguiente iptables que haremos es en conjunto con nuestra dirección ip, así que digitamos ifconfig para recordar la ip y no cometer equivocaciones, aquí lo que haremos es bloquear un usuario para que no salga al internet, mientras se le permite a una un usuario que salga al internet, es parecida a la anterior pero en esta se especifica más, es decir cambiamos de red a usuario, esto lo haremos bloqueando el acceso al usuario en uso (es decir el que estamos usando), y habilitándoselo a otro usuario cualquiera en la red, esto lo haremos con los comandos iptables -A OUTPUT -s 192.168.146.135 -j DROP y iptables -A OUTPUT -s 192.168.146.140 -j ACCEPT, verificamos que están en la tabla (iptables L), y luego intentamos abrir una página en internet, y como se ve en la imagen no se tiene acceso, pues nuestro usuario esta bloqueado. Al saber la ip de la maquina la muestra con el nombre
14- Ahora haremos lo inverso se le dará paso al usuario en uso (es decir el que estoy usando), y se bloqueara el otro usuario, lo primero que se hará será limpiar la tabla (iptables F) y luego se digitaran los comandos iptables -A OUTPUT -s 192.168.146.135 -j ACCEPT y iptables -A OUTPUT -s 192.168.146.140 -j DROP al hacerlo verificamos la tabla (iptables L) para ver si están, y después intentamos ingresar al internet y como vemos ya se puede, dejando esto dicho que nuestra iptables es funcional y estaba haciendo anteriormente el papel de bloquearnos.
15- (Antes de comenzar esta parte digitar iptables F para borra la configuración anterior). La siguiente prueba que haremos será bloquear un puerto para que no pueda ser utilizado, el puerto a bloquear será el 80 el de HTML, esto es para comprobar que no se tiene acceso a una página de internet, para boquear el puerto lo haremos con el comando iptables -A OUTPUT -p tcp --dport 80 -j DROP, después de esto revisamos la tabla para verificar (iptables L) e intentamos entrar a una página, pero como vemos no se puede, pues el puerto 80 está bloqueado.
16- Volvemos a la consola donde digitamos iptables F para borrar la configuración, y luego digitamos iptables L para ver la tabla y verificar que ya no este, tras hacer esto, intentamos abrir la misma página que anteriormente quisimos ver y como vemos ahora ya se puede ver pues la iptable que estaba listada ya no está, lo que comprueba la funcionabilidad de nuestra iptable.
17- (Para hacer esta configuración, es necesario tener 2 tarjetas de red, si está usando una máquina virtual puede agregársela, pero tendrá que apagar la máquina, para ver cómo se agrega una tarjeta de red ver el how to LTSP, si está usando una maquina física tendrá que conectar otra tarjeta y configurarla). En esta ocasión haremos NAT es decir nuestra máquina para esto se tendrá que tener 2 tarjetas de red, una configurada para la red interna o local y la otra será para la red exterior, como en mi caso estoy trabajando con una máquina virtual la mejor manera de configurar una tarjeta para local es simplemente seleccionando las opciones tarjeta de red de la máquina virtual y colocando la tarjeta en Bridge, en este caso esta red será la local (si está usando una maquina física puede configurarla manualmente).
18- Para verificar que estamos en redes diferente digitamos el comando ifconfig, y como vemos existen 2 direcciones ip desiguales, ahora para poder comunicarme con mi maquina física (es decir dar pin) y poder acceder al internet necesito configurar algunos comando de iptables los cuales son iptables -A FORWARD -i eth2 -j ACCEPT lo cual indica la interfaz de entrada para los paquetes que venga de afuera (es decir esta debe ser la interfaz al internet), y iptables -A FORWARD -o eth2 -j ACCEPT lo cual indica la interfaz de salida para los paquetes que van hacia afuera (es decir esta debe ser la interfaz al internet). Luego se digita el comando sysctl -w net.ipv4.ip_forward=2 para afirmarle al sistema que es la interfaz 2 (eth2) la que se utilizara para salir y entrar a la red del internet. Red Local Red Exterior
19- Después se configura el archivo sysctl.conf con el comando vi /etc/sysctl.conf, y allí se edita la primera línea, la cual dice net.ipv4.ip_forward = 0 y el cero se cambia a 1, luego que se logra este cambio se salva y se guarda el archivo, presionando shift q y luego wq.
20- Ya para culminar se verifican los cambios realizados en el archivo sysctl.conf, con el comando sysctl -p /etc/sysctl.conf y se ve que allí está el cambio realizado, luego se digita el comando iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE que es el comando que hace que la función del nat sea posible, ser verifica la tabla con el comando iptables L y se logra ver que ya la configuración está hecha.
21- Para comprobar que el nat está en función haremos dos pruebas utilizando las dos direcciones que tenemos la interna o local y la dirección de internet, la primer prueba que realizaremos es que mediante el nat y ya configurado tenemos que tener acceso al internet, así que comprobamos esto abriendo el navegador y entrando en cualquier página del internet, como vemos, tenemos acceso al internet lo que indica que nuestro host local recibe información del internet, es decir desde afuera.
22- La segunda prueba que haremos es que si nuestra máquina virtual está en bridge y con nat, debería dar pin a la maquina física (es decir debería verse con la maquina física) al mismo tiempo que entra al internet, así que, verificamos cual es la ip de nuestra maquina física y desde nuestra maquina virtual le damos pin y viceversa desde la maquina física le damos pin a la máquina virtual, y como vemos es posible la comunicación, lo que lleva a decir que nuestro nat con iptables es funcional y está corriendo. 00 IP de nuestra maquina virtual