jueves, 26 de noviembre de 2009

Como configurar shorewall basico

"Shorewall", es herramienta de alto nivel para la configuración de Netfilter. Shorewal permite la configuración de un firewall de host, de un servidor bastian, un firewall enrutador, y manejar complejas configuraciones. Shorewall cuenta con soporte para IPV4 e IPV6, actualmente IPV6 brinda una amplia gama de opciones de seguridad pero ha sido poco adoptada hasta el momento , en sig manual explicara la forma de configurar un firewall con IPV4.

Para comenzar indicaremos algunos conceptos basico :

Firewall : un software utilizado en redes de computadoras para controlar las comunicaciones, permitiéndolas o prohibiéndolas. existen múltiples generaciones de firewalls, pero al implementar uno de ellos debemos evaluar nuestras necesidades

Bastión host: Es una computadora en una red que ofrece un único punto de entrada y salida a Internet desde la red interna y viceversa. Un servidor bastión se usan para mitigar los riesgos de seguridad de una red, ofreciendo una barrera entre el área pública y privada.

DMZ: Es una zona desmilitarizada (DMZ, demilitarized zone) o red perimetral es una red local que se ubica entre la red interna de una organización y una red externa.

RED PRIVADA: una red privada es una red que usa el espacio de direcciones IP especificadas en el documento RFC 1918. A los terminales puede asignársele direcciones de este espacio de direcciones cuando se requiera que ellas deban comunicarse con otras terminales dentro de la red interna (una que no sea parte de Internet) pero no con Internet directamente.

NAT: (Network Address Translation - Traducción de Dirección de Red) es un mecanismo utilizado por routers IP para intercambiar paquetes entre dos redes que se asignan mutuamente direcciones incompatibles. Consiste en convertir en tiempo real las direcciones utilizadas en los paquetes transportados.

En ambientes complejos podemos utilizar multiples firewalls o routers para segregar las redes, o incrementar los niveles de seguridad en las dmz. en este manual explicaremos como hacer un firewall con filtro para la red privada, una dmz y salida a internet .

Instalamos los repositorios de Dag

### deposito yum para DAG WIERS

#rpm -Uhv http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.i386.rpm


Instalamos la paqueteria necesaria

# yum -y install shorewall

si requiere una explicación detallada de como configurar shorewall para 2 redes o standalone puede revisar la documentación de la siguiente forma.

# rpm -ql shorewall-common | fgrep three-interfaces
o
# rpm -ql shorewall-common | fgrep two-interfaces
o
# rpm -ql shorewall-common | fgrep one-interface


hacemos un respaldo de todos los archivos

# cd /etc/shorewall
# for i in 'ls' ; do cp $i $i.OLD

Editamos el archivo /etc/shorewall/shorewall.conf

# vi /etc/shorewall/shorewall.conf

modificamos los parámetros STARTUP_ENABLED=Yes y CLAMPMSS=Yes

editamos el archivo de zonas /etc/shorewall/zones

# vi /etc/shorewall/zones

==============================================

#ZONE TYPE OPTIONS IN OUT
# OPTIONS OPTIONS
fw firewall # firewall del host
net ipv4 # firewall de Internet
loc ipv4 # firewall de la red local
dmz ipv4 # firewall de la dmz
vpn ipv4 # firewall zona de vpn
==============================================

podemos agregar zonas como interfaz de red tengamos de red tengamos . en algunas versiones la zona de fw esta definida en el archivo shorewall.conf
Editamos el archivo de interfaces

#vi /etc/shorewall/interfaces

==============================================


#ZONE INTERFACE BROADCAST OPTIONS
#net ppp0 detect dhcp,tcpflags,norfc1918,routefilter,nosm
urfs,logmartians
net eth0 detect
loc eth1 detect
dmz eth2 detect
vpn tun+ detect


#LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE

==============================================

como pueden notar en la primera linea tengo comentada la interfaz "net ppp0 " , que anteriormente se utilizaba en conexiones directas a internet , actualmente ya no se usan.

Editamos el archivo /etc/shorewall/policy este archivo determinara desde que zona se puede conectar hacia otra , es importante solo habilitar las necesarias .

# vi /etc/shorewall/policy

==============================================
#SOURCE DEST POLICY LOG LEVEL LIMIT:BURST
loc net ACCEPT # da aceeso de la red internet
$FW net ACCEPT # da acceso al host al intert
loc $FW ACCEPT # permite a la red comunicase con el host
$FW loc ACCEPT # permite al host comunicase con la red
loc vpn ACCEPT # permite a la red hacia la vpn
vpn loc ACCEPT # permite a la vpn hacia la red
$FW vpn ACCEPT # permite el host hacia la vpn
vpn $FW ACCEPT # permite a la vpn al host
vpn net DROP info # niega el acceso de la vpn a internet
net vpn DROP info # niega el acceso de internet a la vpn
net all DROP info # niega los acceso de internet a todo
dmz net ACCEPT # acepta de la dmz a internet
dmz loc DROP # niega de la dmz a la red local
loc dmz ACCEPT # permite el acceso de la red a la dmz


# THE FOLLOWING POLICY MUST BE LAST
all all REJECT info #niega todas las reglas no establecias

==============================================

Editamos el archivo de /etc/shorewall/masq el cual permite hacer un mascarad entre las tarjetas de red

# vi /etc/shorewall/masq

==============================================

#INTERFACE              SUBNET          ADDRESS         PROTO   PORT(S) IPSEC
eth1                    eth0


#LAST LINE -- ADD YOUR ENTRIES ABOVE THIS LINE -- DO NOT REMOVE


==============================================
este ejemplo lo podemos hacer con solo un segmento de red  ..


==============================================

#INTERFACE              SUBNET          ADDRESS         PROTO   PORT(S) IPSEC
eth1                    192.168.0.1/36


#LAST LINE -- ADD YOUR ENTRIES ABOVE THIS LINE -- DO NOT REMOVE


==============================================



editamos el archivo de reglas /etc/shorewall/rules , el cual define cuales puertos pueden ser accesados ya sea por ip, zonas, subredes, protocolos, servicios etc. shorewall contiene archivos llamados macros con los servicios mas comunes los cuales se encuentran en /usr/share/shorewall/macro.Nombr_servicio


# vi /etc/shorewall/rules


==============================================

SSH/ACCEPT all $FW # habilita el ssh desde todas las interfaces
Ping/DROP all all # Niega el request del ping
Web/ACCEPT all all # acepta el trafico hacia el servido web
REJECT loc net udp 1863 # niega la salida por el puerto 1863
ACCEPT net $FW tcp 22,25,465,143,110 - - 10/sec:4 #
REDIRECT loc 3128 tcp 80 # redirecciona del 80 al 3128
DNAT all loc:192.158.1.2 udp 8080 # hace un DNAT de todas las interfaz al
REJECT net:201.238.235.131 all tcp # evitar conexiones de la net a cualquier


==============================================

estructura de un macro.Servicio

==============================================


#ACTION SOURCE  DEST    PROTO   DEST    SOURCE  ORIGINAL        RATE    USER/
#                               PORT    PORT(S) DEST            LIMIT   GROUP
PARAM   -       -       udp     
PARAM   -       -       tcp     
#LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE


==============================================

Podemos hacer un filtrado de paquetes por la mac adress  editamos en el /etc/shorewall/shorewall.conf  los parametros  "MACLIST_DISPOSITION=REJECT MACLIST_LOG_LEVEL=info "

# vi /etc/shorewall/shorewall.conf

editamos el archivo de interfaces


#vi /etc/shorewall/interfaces

y agregamos la siguiente linea .

==============================================


Wifi $WIFI_IF - maclist,dhcp

==============================================

editamos el archivo /etc/shorewall/maclist

# vi /etc/shorewall/maclist

==============================================

#DISPOSITION INTERFACE MAC IP ADDRESSES (Optional)
ACCEPT $WIFI_IF 00:04:5e:3f:85:b9 #WAP11
ACCEPT $WIFI_IF 00:06:25:95:33:3c #WET11
ACCEPT $WIFI_IF 00:0b:4d:53:cc:97 192.168.3.8 #TIPPER
ACCEPT $WIFI_IF 00:1f:79:cd:fe:2e 192.168.3.6 #Work Laptop

==============================================



No hay comentarios:

Publicar un comentario