No se que sucede con la wiki, pues estaba de vaca, por aca te dejo algo>
Para empezar lo primero que hacemos es instalar los paquetes necesarios
para poder tener shorewall en nuestro sistema.
#apt-get install shorewall shorewall-perl
Cuando termine la instalacion pasamos a realizar configuraciones
necesarias. Shorewall trae unos ejemplos para 1, 2 y para hasta 3
interfaces de configuración en /usr/share/doc/shorewall/examples/ que
debemos copiar a la carpeta /etc/shorewall para esto ejecutamos los
siguientes comandos (en este tutorial solo copiaremos los de una sola
interfaz):
#cd /usr/share/doc/shorewall/examples/one-interface/
#cp -p interfaces rules zones policy /etc/shorewall/
Ahora seguimos a configurar estos archivos. Y para eso nos vamos al
directorio /etc/shorewall/ donde copiamos todos los archivos de
configuracion basica.
Shorewall Zones
El primer archivo de configuración que vamos a modificar es el de
“zones”.
Shorewall ve la red donde se encuentra como un conjunto de zonas, para
el caso de una sola interfaz de red que estamos haciendo solo vamos a
tener dos zonas. Primero ejecutamos el siguiente comando:
#vim zones
#
# Shorewall version 4.0 - Sample Zones 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-zones"
###############################################################################
#ZONE TYPE OPTIONS IN OUT
# OPTIONS OPTIONS
fw firewall
net ipv4
~
Se verificara que el archivo tiene la linea de net ipv4, justo despues
de fw firewall debe verse como la imagen anterior, ya los ejemplos lo
traen por eso solo se va a verificar.
La 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
Shorewall interfaces
Ahora debemos de obtener el nombre de la interfaz externa como se
muestra en la siguiente imagen.
$ ip route ls
10.100.100.0/24 dev wlan0 proto kernel scope link src 10.100.100.42
metric 2
169.254.0.0/16 dev wlan0 scope link metric 1000
default via 10.100.100.254 dev wlan0 proto static
Por supuesto que la dirección IP de tu computadora puede ser distinta al
igual que el nombre de la interfaz en este caso eth1. Fijense que la
interfaz externa viene dado por la línea default via 192.168.0.1 dev
eth1. Esto es importante si se tiene más de una interfaz de red.
Con esta información procederemos a modificar el archivo “interfaces”,
ejecutamos el siguiente comando:
#vim interfaces
Y lo modificamos para que el archivo quede algo parecido a esto:
#
# Shorewall version 4.0 - Sample Interfaces 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-interfaces"
###############################################################################
#ZONE INTERFACE BROADCAST OPTIONS
net wlan0 detect dhcp,tcpflags,logmartians,nosmurfs,blacklist,routeback
~
Breve explicacion de lo anterior
ZONE: Aquí definimos la zona a la cual va a pertenecer la interfaz que
vamos a definir, en este caso la zona es net que ya definimos
anteriormente
INTERFACE: El nombre de la interfaz
BROADCAST: Es opcional. Aquí definimos que queremos que haga el
Shorewall con los paquetes de Broadcast en este caso con la opción
detect le decimos que detecte las direcciones de broadcast por nosotros.
Tambien podríamos colocar aquí la dirección IP de broadcast de nuestra
red.
OPTIONS: Esta es la parte más extensa, así se explicara las opciones
utilizadas aquí.
dhcp: Esta opción se debe colocar si tu computadora obtiene su dirección
IP vía DHCP, o si tu firewall está instalado en un servidor DHCP.
tcpflags: Esta opción hace que Shorewall revise los paquetes por
combinaciones ilegales de FLAGS (o banderas) TCP. Nunca está de más
tenerlo.
logmartians: Esta opción hace que Shorewall registre paquetes con
direcciones de origen imposibles, para esto tenemos que tener habilitado
el routefilter en la interfaz lo cual veremos más adelante como hacerlo.
nosmurfs: Filtra paquetes smurfs (paquetes que tienen como dirección de
origen una dirección de broadcast)
blacklist: Analiza los paquetes contra la lista negra que definiremos
más adelante en el archivo blacklist del shorewall
routeback:Permite que Shorewall filtre paquetes que se devuelven a esta
misma interfaz
Con esto el archivo de interfaces esta listo, lo guardamos y seguimos
con la configuración.
Nota: Para más información del archivo de interfaces y sus opciones
pueden ejecutar man shorewall-interfaces.
Shorewall Policy
Aqui vamos a definir una política que determina como Shorewall maneja la
conexión entre las distintas zonas. Es de destacar que las instrucciones
se ejecutan de arriba a abajo por lo que es importante mantener el orden
para que se ejecuten adecuadamente.
#vim policy
Y modificamos el archivo 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"
###############################################################################
#SOURCE DEST POLICY LOG LEVEL LIMIT:BURST
$FW net ACCEPT
net $FW DROP
net all DROP info
# The FOLLOWING POLICY MUST BE LAST
all all REJECT info
~
Lo 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 rules
Las reglas sirven para agregar excepciones a las politicas que
declaramos anteriormente, si dejamos las politicas como están sin
agregar ninguna regla pues no podremos ni siquiera navegar asi que vamos
a modificar el archivo de rules ejecutando para que nos quede de la
siguiente manera:
#vim rules
#
# For information on entries in this file, type "man shorewall-rules"
#############################################################################################################
#ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL RATE USER/ MARK
# PORT PORT(S) DEST LIMIT GROUP
# Drop Ping from the "bad" net zone.. and prevent your log from being
flooded..
#Ping(DROP) net $FW
# ENTRANTE
#
Ping/DROP net $FW
SSH/DROP net $FW
#FTP/ACCEPT net $FW
#DNS/ACCEPT net $FW
#web/ACCEPT net $FW
#SMTP/ACCEPT net $FW
#POP3/ACCEPT net $FW
#IMAP/ACCEPT net $FW
#
# Permit all ICMP traffic FROM the firewall TO the net zone
#ACCEPT $FW net icmp
# SALIENTE
#
Ping/ACCEPT $FW net
DNS/ACCEPT $FW net
Web/ACCEPT $FW net
FTP/ACCEPT $FW net
~
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 (net—>firewall) e invertido para las conexiones
salientes (firewall–>net).
Si quisieramos aplicar una regla sobre un puerto y protocolo específico
la declaramos de la siguiente forma:
ACCEPT $FW net tcp 873
REJECT $FW net udp 443
Ahora los útlimos retoques, vamos a modificar el archivo de
configuración de Shorewall:
vim /etc/shorewall/shorewall.conf
Asegurense que los siguientes valores están correctos:
STARTUP_ENABLED=Yes
ROUTE_FILTER=Yes
Con 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
Por ultimo, cambiar la linea startup=0 por startup=1 del archivo
/etc/default/shorewall
Para iniciar manualmente a Shorewall y probar nuestra configuración
ejecutamos:
shorewall start
Con esto nos dará algo parecido a esto:
Compiling...
Processing /etc/shorewall/shorewall.conf...
Loading Modules...
Compiling /etc/shorewall/zones...
Compiling /etc/shorewall/interfaces...
Determining Hosts in Zones...
Preprocessing Action Files...
Compiling ...
Pre-processing /usr/share/shorewall/action.Drop...
Pre-processing /usr/share/shorewall/action.Reject...
Compiling /etc/shorewall/policy...
Adding Anti-smurf Rules
Adding rules for DHCP
Compiling TCP Flags filtering...
Compiling Kernel Route Filtering...
Compiling Martian Logging...
Compiling MAC Filtration -- Phase 1...
Compiling /etc/shorewall/rules...
Generating Transitive Closure of Used-action List...
Processing /usr/share/shorewall/action.Reject for chain Reject...
Compiling ...
Processing /usr/share/shorewall/action.Drop for chain Drop...
Compiling MAC Filtration -- Phase 2...
Applying Policies...
Generating Rule Matrix...
Creating iptables-restore input...
Compiling iptables-restore input for chains blacklst mangle:...
Shorewall configuration compiled to /var/lib/shorewall/.start
Starting Shorewall....
Initializing...
Setting up Route Filtering...
Setting up Martian Logging...
Setting up Traffic Control...
Preparing iptables-restore input...
Running /sbin/iptables-restore...
done.
Con esto ya tendremos un firewall personal totalmente funcional
The Live Is LINUX
--
Tec.Richard Díaz Rodríguez
Administrador de Red
UEB Fibrocemento
Sancti Spíritus
TELF:(01) 41-861603
Grupo de Usuarios de Tecnologías Libres en Cuba
Admin-»http://blackhats.cubava.cu/
El 05-08-2015 08:43, Richard escribió:
Rafael la documentacion que hay es bastante, solo dime que neceita
hacer el y yo con gusto lo ayudo, pues llevo bastante tiempo en esto
de shorewall
--
Tec.Richard Díaz Rodríguez
Administrador de Red
UEB Fibrocemento
Sancti Spíritus
TELF:(01) 41-861603
Grupo de Usuarios de Tecnologías Libres en Cuba
Admin-»http://blackhats.cubava.cu/
El 05-08-2015 08:42, Rafael escribió:
El 05/08/15 08:21, Richard escribió:
Yo te puedo ayudar con todo lo que te haga falta ponte en contacto
conmigo al privado si asi lo deseas!!!!!!!!!!!
Saludos hermano, dime si me puedes colabora con documentación de
Shorewall para un colega que quiere implementarlo.
Saludos
PD: tienes abandonado el Blog, apenas publicas!
--
Este mensaje le ha llegado mediante el servicio de correo electronico
que ofrece Infomed para respaldar el cumplimiento de las misiones del
Sistema Nacional de Salud. La persona que envia este correo asume el
compromiso de usar el servicio a tales fines y cumplir con las
regulaciones establecidas
Infomed: http://www.sld.cu/
______________________________________________________________________
Lista de correos del Grupo de Usuarios de Tecnologías Libres de Cuba.
Gutl-l@jovenclub.cu
https://listas.jovenclub.cu/cgi-bin/mailman/listinfo/gutl-l
______________________________________________________________________
Lista de correos del Grupo de Usuarios de Tecnologías Libres de Cuba.
Gutl-l@jovenclub.cu
https://listas.jovenclub.cu/cgi-bin/mailman/listinfo/gutl-l
______________________________________________________________________
Lista de correos del Grupo de Usuarios de Tecnologías Libres de Cuba.
Gutl-l@jovenclub.cu
https://listas.jovenclub.cu/cgi-bin/mailman/listinfo/gutl-l