cp /etc/apt/sources.list /etc/apt/sources.list.backupRecuerden que siempre es bueno realizar un respaldo de los archivos que vamos a modificar. Luego ejecutamos:
vim /etc/apt/sources.listTambien pueden utilizar gedit, nano o el editor de su preferencia. Agregamos estas dos líneas al final del archivo:
deb http://people.connexer.com/~roberto/debian/ etch main deb-src http://people.connexer.com/~roberto/debian/ etch mainGuardamos el archivo y luego agregamos la GnuPG key a nuestra lista de llaves para decir que confiamos en esta fuente y comprobar que estan firmados por su autor. Ejecutamos:
gpg --keyserver keyring.debian.org --recv-key B2B97BB1 gpg --export -a B2B97BB1 | sudo apt-key add -Por último actualizamos la lista de paquetes:
apt-get updateListo ya tenemos los paquetes de la última versión de Shorewall listo para instalarlos. Ahora ejecutamos:
apt-get install shorewall shorewall-perl
cd /usr/share/doc/shorewall-common/default-config
cp -p interfaces rules zones policy /etc/shorewallNota: En versiones anteriores de Shorewall encontraras los archivos esqueletos en /usr/share/shorewall/default-config/ solo en caso de que no encuentres los archivos en la ruta especificada. Nota: Utilizamos la opción -p de copy para que se mantengan todos los privilegios de los archivos para más información consulta man cp. Ahora que ya tenemos nuestros archivos de configuración base vamos a modificarlos:
vim /etc/shorewall/zonesPuedes utilizar tambien gedit, nano o el editor de tu preferencia. Aqui tenemos que agregarle al archivo la linea red ipv4 justo despues de fw firewall como se muestra a continuación:
# # Shorewall version 4 - Zones File # # For information about this file, type "man shorewall-zones" # # The manpage is also online at # http://www.shorewall.net/manpages/shorewall-zones.html # Tutorial de Shorewall Vensign http://www.vensign.com ############################################################################### #ZONE TYPE OPTIONS IN OUT # OPTIONS OPTIONS fw firewall red ipv4 #LAST LINE - ADD YOUR ENTRIES ABOVE THIS ONE - DO NOT REMOVELa zona fw firewall siempre debe existir ya que es la zona que reconoce Shorewall como suya, además será definida como una variable $FW en el shell una vez que ejecutemos el Shorewall y será referida durante toda la configuración. Para más información de las zonas puedes ejecutar man shorewall-zones o ir a la dirección http://www.shorewall.net/manpages/shorewall-zones.html
ip route lsy obtendrás algo como esto:
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.104
default via 192.168.1.1 dev eth0 metric 100Por supuesto que la dirección IP de tu computadora (u ordenador para nuestros amigos Españoles) puede ser distinta al igual que el nombre de la interfaz en este caso eth0. Fijense que la interfaz externa viene dado por la línea default via 192.168.1.1 dev eth0 metric 100. Esto es importante si se tiene más de una interfaz de red. Bueno ya con esta información podemos proceder a modificar el archivo /etc/interfaces, ejecutamos el siguiente comando:
vim /etc/shorewall/interfacesY agregamos la siguiente línea
red eth0 detect dhcp,tcpflags,logmartians,nosmurfs,blacklist,routebackPara que el archivo quede algo parecido a esto:
# # Shorewall version 4 - Interfaces File # # For information about entries in this file, type "man shorewall-interfaces" # # The manpage is also online at # http://www.shorewall.net/manpages/shorewall-interfaces.html # Tutorial Shorewall Vensign http://www.vensign.com/ ############################################################################### #ZONE INTERFACE BROADCAST OPTIONS red eth0 detect dhcp,tcpflags,logmartians,nosmurfs,blacklist,routeback #LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVEVamos a analizar un poco esto:
vim /etc/shorewall/policyY lo modificamos para que quede así:
# # Shorewall version 4.0 - Sample Policy File for one-interface configuration. # Copyright (C) 2006 by the Shorewall Team # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License, or (at your option) any later version. # # See the file README.txt for further details. #----------------------------------------------------------------------------- # For information about entries in this file, type "man shorewall-policy" # # The manpage is also online at # http://shorewall.net/manpages/shorewall-policy.html # Tutorial de Shorewall Vensign http://www.vensign.com/ ############################################################################### #SOURCE DEST POLICY LOG LEVEL LIMIT:BURST $FW red ACCEPT red $FW DROP info red all DROP info # The FOLLOWING POLICY MUST BE LAST all all REJECT info #LAST LINE -- ADD YOUR ENTRIES ABOVE THIS LINE -- DO NOT REMOVELo que estamos diciendo aquí es que todo lo que venga de $FW que lo definimos anteriormente es la zona de Firewall de Shorewall sea aceptado y que todo lo demás sea rechazado para que pase por las reglas que crearemos a continuación. Para más información pueden buscar las páginas de manual ejecutando man shorewall-policy.
# # Shorewall version 4 - Rules File # # For information on the settings in this file, type "man shorewall-rules" # # The manpage is also online at # http://www.shorewall.net/manpages/shorewall-rules.html # # Tutorial de Shorewall Vensign http://www.vensign.com/ ############################################################################################################################ #ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL RATE USER/ # PORT PORT(S) DEST LIMIT GROUP #SECTION ESTABLISHED #SECTION RELATED SECTION NEW # # ENTRANTE # Ping/ACCEPT red $FW SSH/ACCEPT red $FW #FTP/ACCEPT red $FW #DNS/ACCEPT red $FW #Web/ACCEPT red $FW #SMTP/ACCEPT red $FW #POP3/ACCEPT red $FW #IMAP/ACCEPT red $FW # # SALIENTE # Ping/ACCEPT $FW red DNS/ACCEPT $FW red Web/ACCEPT $FW red FTP/ACCEPT $FW red # #LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVEBueno todas las líneas que comienzan con # están comentadas por lo que no tendrán efecto, las reglas con nombre como Ping, SSH, etc nos describe el protocolo sobre el que vamos a efectuar la acción que puede ser ACCEPT. REJECT, DROP entre otras. Shorewall cuenta con varios MACROS, los MACROS no son más que reglas prehechas que estamos utilizando aquí como Ping, SSH, DNS, etc. Para ver una lista completa de los macros puedes ejecutar shorewall show macros. Luego de colocar el macro y la Acción pasamos a colocar el destino que en este caso es la zona red que declaramos al principio y luego colocamos el destino que es la zona Firewall en el caso de las conexiones entrantes (red--->firewall) e invertido para las coneciones salientes (firewall-->red). Si quisieramos aplicar una regla sobre un puerto y protocolo específico la declaramos de la siguiente forma:
ACCEPT $FW red tcp 873 REJECT $FW red udp 443Esto son ejemplos no los tomes como reglas reale. Para una lista detallada de los puertos y sus respectivos protocolos puedes ir aquí Otros tips si tienes un servidor web es una buena idea que habilites Web, FTP sino tus usuarios no podrán ver tus páginas. Para más información acerca de las reglas puedes leer man shorewall-rules.
STARTUP_ENABLED=Yes ROUTE_FILTER=YesCon STARTUP_ENABLED le decimos al Shorewall que inicie con el sistema, y con ROUTE_FILTER del cual hablamos ya arriba en la parte de Interfaces Para iniciar manualmente a Shorewall y probar nuestra configuración ejecutamos:
shorewall startCon esto nos dará algo parecido a esto:
Compiling... Initializing... Determining Zones... IPv4 Zones: red Firewall Zone: fw Validating interfaces file... Validating hosts file... Pre-processing Actions... Pre-processing /usr/share/shorewall/action.Drop... Pre-processing /usr/share/shorewall/action.Reject... Validating Policy file... Determining Hosts in Zones... red Zone: eth0:0.0.0.0/0 Deleting user chains... Compiling /etc/shorewall/routestopped ... Creating Interface Chains... ...... Creating action chain dropNotSyn Applying Policies... Activating Rules... done.Si dice done al final todo bien si nos da algun error debemos leer que nos indica y tratar de corregirlo. Shorewall registra todo a través del log del sistema para ver los logs podemos ejecutar los siguientes comandos:
Otros artículos que te pueden interesar
![]()
Este trabajo está licenciado bajo Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Unported License
Que tal me intereso mucho el manual para Instalar Shorewall Firewall para Debian quisiera saber donde puedo checar la segunda parte de este manual porque me intereso mucho, ademas de que esta bastante entendible, se los agradeceria mucho.
Hola Mary, gracias por tu comentario.
Estoy preparando un segundo tutorial para un ambiente tipo servidor con dos interfaces de red.
Creo que lo tendré listo para finales de esta semana.
Saludos
Olivers
Hola olivers gracias por contestarme, ahora si me intereso mas, tengo curiosidad por saber como instalar el cortafuegos y quiero saber como funciona utilizando esas 2 interfaces, crees q cambien mucho a diferencia de el primer manual, ojala lo termines me ayudarias mucho, bueno me despido, espero tener tu respuesta pronto y muchas gracias.
Olivers me gustaria que me mandaras el manual a mi correo te lo agradeceria mucho, espro y si puedas.
@Mary Hola Mary, hay algunos cambios en la configuración en cuanto a que tienes que declarar dos interfaces y puedes hacer muchas más zonas dependiendo lo que quieras. No prometo nada pero para el fin de semana quizas lo publique.
@Román Hola, al final de los tutoriales hay una barra, el primer botón es para enviarlo por correo (email), te recomiendo que te anotes a los Feeds para que te enteres cuando se publique.
Saludos
Olivers
Hola disculpa, como voy a saber si en realidad funciona mi firewall de una sola interfaz en mi computadora por que en realidad no se si este funcionando realmente
Hola Mary, pues va a depender de que politicas y reglas aplicaste.
Por ejemplo si colocas un Ping/REJECT y tratas de hacerle ping a tu computadora no deberias poder. Igualmente si bloqueas cualquier otro servicio o puerto no deberías poder acceder a el.
Tambien puedes comprobarlo haciendo un Telnet al puerto que bloqueaste.
Otra forma es ejecutar el siguiente comando que te va a dar los puertos que tienes abiertos en tu computadora:
nmap -sT -O localhost
Si no tienes instalado nmap ejecuta
apt-get install nmap
Por último si quieres ver si algun puerto en específico está siendo utilizado puedes ejecutar
netstat -anp | grep numero_puerto
Donde cambias numero_puerto por el que necesites comprobar
Espero que te haya servido cualquier otra duda estoy a la orden
Saludos
Olivers
Hola segui cada paso de el manual, pero quisiera saber como le puedo hacer para saber si esta funcionando realmente mi firewall, me puedes ayudar.
Disculpa para que es el nmap, para bloquear puertos y como puedo restringuir el acceso a mi pc a paginas que contengan contenido sexual con mi firewall disculpa pero de plano no se especificamente la funcion del firewall, gracias y disculpa tanta molestia.
es que cada vez que checo el manual me surgen + dudas por ejemplo para que me sirve declarar un puerto y en que parte de las reglas lo declaro, quisiera poder contactarte personalmente, para poder platicar acerca de el manual espero que me puedas seguir ayudando.
Hola Mary, varias cosas:
1. El nmap sirve para hacer un mapa de los puertos de tu computadora, no sirve para bloquear nada. Tambien sirve para hacer mapas lógicos de tu red y muchas otras cosas es una herramienta muy poderosa.
2. Un firewall sirve normalmente para bloquear y filtrar el tráfico de red entre tu red interna y el exterior. El bloqueo de puertos lo que evita es que quede expuesta tu red a posibles ataques del exterior. Esto es una definición simplificada pero creo que sirve en este caso.
3. Por lo que veo quieres proteger tu red y además filtrar las páginas por las que navegan tus usuarios. Una forma más sencilla de hacer esto es utilizar una plataforma como SmoothWall de la que hice un tutorial hace tiempo, hay una versión más actualizada y pronto sacaré un par de tutoriales acerca de esto. Este tipo de aplicaciones son faciles de instalar y de administrar y te permiten hacer lo que me estas planteando. Lo puedes encontrar aquí
4. Siempre estoy dispuesto a compartir mis conocimiento por lo que te envié un correo con mis datos para ponernos en contacto, espero escuchar de ti pronto.
Saludos
Olivers
Te felicito por tan excelente tutorial, agradeceria mefacilites informacion a cerca de como bloquear en una red determinados puertos a determinados equipos, por ejemplo quisiera que un host pueda ingresar a internet pero no pueda ingresar a mi servidor por ssh o cualquier otro puerto.
Gracias
ALEX DIAZ
MUchisimas Gracias Olivers por tu tutorial Gran Ayuda amigo es bueno para salir de la ingnoracia.
Gracias por compartir tu conocimiento
Felicidades
ATTE
Edgar Arreola
Muchas gracias por tus comentarios Edgar
Saludos
Olivers
hola, por favor me colaboras paso a paso para configurar un equipo como servidor para linux debian el firewall ayudenme se lo agradeceria.
Hola Harold en este tutorial puedes ver lo básico de como instalar el firewall, en la página de shorewall hay muchos ejemplos también puedes ver los tutoriales de smoothwall que están en este blog.
Saludos
Olivers
Podrias ayudarme para poder filtrar paginas web o conteniodos web, tengo linux ubuntu, se que es entrando por la consola pero no sé cuales son los comandos que tengo que dar, si puedes enviame un tutorial bien poderoso, quiero aprender a hacer esto.
Gracias por tu ayuda.
Para aquellos como Mary que quieran probar su FW, pueden utilizar un sitio como el de Gibsons research.
Su producto ‘ShieldsUp’ te hace un escaneo de puertos online y tiene información simple de leer para aquellos que se quieran adentrar en el tema. https://www.grc.com/
@Olivers: Me alegro que haya gente como vos que se toma el tiempo de hacer tutoriales como éste. Te felicito!
Hola Icarus antes que nada gracias por tus comentarios.
Es cierto que Steve Gibsons es una gran fuente de información en cuanto a seguridad y yo soy un gran fanatico de su podcast SecurityNow. ShieldsUp es un gran programa de Test para puertos aunque un poco orientado hacia Windows, prueba los principales puertos de conexión y vulnerabilidades.
También podrías utilizar un programa muy potente como nmap el cual puede hacer análisis aún más profundos.
Saludos
Olivers
segui los pasos pero no me instalo el archivo masq. ?
Hola Olivers me da mucho gusto encontrar personas como tu
en esta oportunidad quisiera q me ayudes a como armar un servidor que sirva de Firewall a una red.
muchas gracias
Thomm eso depende de que quieras filtrar que puertos necesitas abiertos etc. Con este tutorial puedes empezar, pero siempre hay que leer mucho e informarse en la pagina de shorewall hay varias configuraciones que ya están hechas, también si vas a dedicar ese servidor solo a firewall hay varias soluciones como SmoothWall, IPCop y muchos otros que estan destinados a ser firewall, proxy con interfaces Web, vienen en un CD instalable basados en Linux.
Espero que te sirva igualmente pronto publicaré unos tutoriales dedicados a firewall
Saludos
Olivers
Hola Oliver mi problema es este:
Compiling…
Initializing…
Determining Zones…
IPv4 Zones: red
Firewall Zone: fw
Validating interfaces file…
Validating hosts file…
Pre-processing Actions…
Pre-processing /usr/share/shorewall/action.Drop…
Pre-processing /usr/share/shorewall/action.Reject…
Validating Policy file…
ERROR: Undefined zone LEVEL
Terminated
Puedes ayudarme, te lo agradeceria.
Ok perdón, ya encontre el problema.
Hola israel, si quieres comparte como solucionaste el problema puede que otro tenga esa misma falla y lo puedas ayudar.
Gracias
Saludos
Olivers
Si Olivers, lo que pasa es que fue error mio, comente una linea de la configuración del archivo de policy. Ahora te pido de favor que nos platiques de como se haría con dos interfaces. Tus explicaciones son muy buenas, soy estudiante del Instituto Tecnológico de Celaya y busco esa información gracias.
Hola, disculpa por molestarte, creo no encuentro o no se si hiciste una publicación de como hacer un servidor que sirva de Firewall a una red. Me interesaría mucho que lo explicaras.
Gracias.
Hola israel, estoy trabajando en un tutorial para hacer un firewall, espero tenerlo listo pronto.
Con este tutorial puedes hacerte una idea de como es la configuración básica. También puedes ver los artículos que tengo de Smoothwall que es una distribución que sirve de Firewall, Proxy y muchas otras funciones.
De todas maneras está pendiente estaré publicando unos tutoriales este mes.
Saludos
Olivers
Gracias por la pronta respuesta Olvers, espero ver tu tutorial muy pronto, te agrego a mis feeds.
Esta muy bueno tu tutorial, lo acabo de probar con un Ubuntu Jaunty y todo funciono correctamente.
Hola helios muchas gracias por tu comentario, es bueno saber que funciona para Jaunty!
Saludos
Olivers
Hola Olivers,
me aparace este error con todos los paquetes que deseo instalar en mi debian 5 “todos tienen dependencia”
Los siguientes paquetes tienen dependencias incumplidas:
shorewall: Depende: shorewall-shell pero no va a instalarse
shorewall-perl: Depende: shorewall-common (>= 4.0.15) pero no va a instalarse
Depende: shorewall-common (< 4.0.16~) pero no va a instalarse
E: Paquetes rotos
Hola Juan Carlos, debes chequear tus repositorios. Primero ejecuta:
apt-get update
(Con privilegios de root)
Y luego intenta de nuevo, sino revisa que tienes en tus repositorios. Ejecuta:
apt-get install shorewall shorewall-perl shorewall-common
Saludos
Olivers
Hola, antes que nada gracias por tan buen tutorial, en segundo lugar tengo una enorme duda y es con respecto a las macros HTTP y Web no comprendo bien cual es la diferencia en si Web sería para controlar el tráfico www y en el caso de HTTP controla ? es lo que no comprendo, parácticamente ya probe con los dos para mi servidor web y con cualquiera tengo acceso, la pregunta del millón es: ¿Tengo que hábilitar los dos para mi servidor web? en caso de que no cual es el que tengo que habilitar.
Gracias desde ya, saludos.
Hola eduardodm, no entiendo mucho tu pregunta así que aquí va mi respuesta según lo que entendí.
HTTP es en una manera muy simple el protocolo que utilizan los servidores web para comunicarse con los navegadores, los navegadores envian una petición y los servidores web responden. Eso es a groso modo lo que hace HTTP.
www es una convención que se coloca a las páginas para saber que estas en el dominio de Internet World Wide Web (www) pero no es mas que eso y es opcional.
Con la opción que ves en el archivo de configuración arriba:
Web/ACCEPT red $FW
Estas diciendole al Firewall que acepte las solicitudes Web (un nombre por conveniencia) que quiere decir que acepte que un navegador haga peticiones al puerto 80 (que es puerto por defecto de HTTP) en el caso de saliente y cuando es entrante si tienes algún servidor Web como apache que acepte las solcitudes a ese puerto 80.
Por lo que si quieres evitar que tus usuarios naveguen debes colocar en Saliente:
Web/REJECT $FW red
Y en entrante si quieres que puedan accesar a tu servidor Web:
Web/ACCEPT red $FW
Simplemente descomenta la línea quitando el #.
www como tal no es un protocolo y por lo tanto no sirve de nada colocarlo en ninguna parte.
No se si esto es lo que me estabas preguntando. Pero espero que te aclare algo tu duda si sigues teniendo problemas o dudas vuelve a escribir y con gusto te ayudare.
Saludos
Olivers
Gracias Olivers poonta respuesta efectivamente ya me resolviste en parte mi duda sin embargo cuando tu escribes shorewall show macros en la terminal te muestra las macros predefinidas para bloquear o permitir ciertos servicios. Ahora efectivamente tengo un servidor WEB y tengo definida Web/ACCEPT tanto en tráfico entrante como saliente por obvias razones que ya explicaste mi problema es con la macro HTTP/ACCEPT de que me sirve en caso de mi servidor WEB o no me sirve de nada lo que sucede que probe tanto HTTP/ACCEPT en el archivo rules de shorewall y accedí a mi servidor al igual que si pongo Web/ACCEPT, espero ahora si haberme explicado un poco mejor, nuevamente muchas gracias
, y disculpa las molestias pero soy malo para explicarme =).
Saludos, buen inicio de semana.
Seguido al pie de la Letra.
Pero tengo acceso a Internet y todos los recursos.
Supuesta mente … no debería ni tener acceso a Internet.
Si no añado ninguna linea a en rules
Este Manual esta bugueado.
Nota, esta configurado y arrancado, sobre un sistema de virtualización.
Si alguien corrige el manual, que me avise.
Hola Veronica, no es así como dices, si seguiste el manual al pie de la letra debes haber habilitado el acceso Web.
Si lo quieres rechazar simplemente agregas una regla. Tambien debes verificar que el shorewall esté arriba y funcionando de lo contrario no aplicará ninguna regla.
Muchos han usado el tutorial y les ha funcionado.
Saludos
Olivers
Hola Olivers
Efectivamente esta correcto, ha sido un Fallo de mi compañera Veronica, yo personalmente he verificado, y funciona correctamente.
El fallo que tenia verónica es ajeno al tutorial.
Gracias y disculpe las molestias.
No obstante, puede eliminar el comentario, para no confundir al resto de los visitantes, ya que funciona correctamente.
un saludo y gracias.