Páginas

viernes, 29 de noviembre de 2013

Firewall ipfilterscript freebsd

Generar automáticamente reglas de firewall

Es muy importante estar protegido por un firewall y para configurarlo están las páginas de manual y la ayuda que los tutoriales ofrecen. Con el tiempo y la molestia suficiente, podrías escribir una configuración de cortafuegos para cualquier situación. Todos son razonablemente similares, aunque, es posible generar la configuración contestando unas preguntas.

Ese es el propósito de la secuencia de comandos de configuración de IPFilter script: para generar reglas de configuración de cortafuegos SOHO típicos utilizando FreeBSD y IPFilter.  Todos los beneficios de un servidor de seguridad sin tener que aprender la sintaxis. Con este script , debe ser capaz de establecer un cortafuegos típico sin conocimientos de configuración de FreeBSD en absoluto para proteger los ordenadores de la red interna (LAN).

Un gran guión para tener los pc's seguros a medida que descubre el FreeBSD server. Ahora usted puede estar tranquilo al pensar que sus máquinas están protegidas.

Servidor FreeBSD con dos internafes de red.

em1 = 192.168.1.0/24 wan
em0 = 192.168.3.0/24 lan

IP router = 192.168.1.1

nic_externa="em1" IP 192.168..250
nic_interna="em0" IP 192.168.3.1

Compilar estáticamente el soporte para IPF en el kernel:

Entrar al servidor a través de conexión segura SSH:

$ ssh -l carlos -p 2222 192.168.3.1
Password:

$ hostname
freebsdsvr.linux.bcn

Si el directorio /usr/src/sys no existe quiere decir que las fuentes del kernel no están instaladas.

Es necesario tener el código fuente completo de FreeBSD para poder compilar el kernel.

Descargar las fuentes del kernel 9.1-RELEASE:

$ cd ~/descargas
$ wget ftp://ftp.freebsd.org/pub/FreeBSD/releases/amd64/9.1-RELEASE/src.txz

Descomprimir el archivo a /usr/src:
# tar -C / -xzvf src.txz

Ahora desde el directorio arch/conf copiar el archivo de configuración GENERIC utilizando cualquier nombre:

# cp /usr/src/sys/amd64/conf/GENERIC /usr/src/amd64/conf/NEWGENERIC

Añadir las siguientes opciones a /usr/src/sys/amd64/conf/NEWGENERIC
# ee /usr/src/sys/amd64/conf/NEWGENERIC

....
options IPFILTER
options IPFILTER_LOG
options IPFILTER_DEFAULT_BLOCK
....

# cd /usr/src
# make buildkernel KERNCONF=NEWGENERIC

# make installkernel KERNCONF=NEWGENERIC

El nuevo kernel se copiará al directorio raíz como /kernel y el viejo kernel tendrá de nombre kernel.old.

Reiniciar el sistema con el nuevo kernel

Descargar el script:
# wget http://www.bsdfreaks.nl/files/ipfilterscript.tar.gz

Instalación del script.

# cp ipfilterscript.tar.gz /tmp/ && cd /tmp
# tar -zxvf ipfilterscript.tar.gz
# ./ipfilter.pl

1: Would you like to setup PPPoE DSL connection (Choose 1)
2: Setup IP configuration, Firewalling and NAT (Choose 2) or
3: Setup a DHCP server (Choose 3 and hit enter)
4: Setup serial console support
5: Exit

#######################################################################

Elegir Nic externa, em1

#######################################################################

Elegir Nic interna, em0

#######################################################################

Ahora, el script necesita conocer la dirección IP del dispositivo de puerta de enlace, detrás de la cual están todas mis máquinas internas (lan).

Setting Internal nic IP 192.168.1.1

#######################################################################

192.168.3.1

Internal Nic netmask, Just hit enter for 255.255.255.0

255.255.255.0

#######################################################################

External Nic IP, or type "DHCP" for DHCP, for connections like ADSL type "NONE" for no dhclient on external nic

192.168.1.250

#######################################################################

External nic netmask, eg 255.255.255.0

255.255.255.0

#######################################################################

Do you want to enter a gateway default IP address? if you ISP provided you with a default gateway choose Yes Y/N, default = no

y

#######################################################################

Do you want statefull firewall or just allow everything and rely on IPNAT to protect you, I recommend firewalling :)
Choose: "y" for statefull firewall or "n" for allow everything

y

#######################################################################

y

#######################################################################

Do you want IP Filter to log denied packets? Y/N, default = yes
y

#### Denied packets will be logged to /var/log/firewall.log ####
#######################################################################

Do you want to install a /etc/ipfrestart script so you can easily reset
your rules? Handy if you are trying out new rulesets. Y/N, default = yes

y

#######################################################################

Do you want ftp active mode supprt? when ftping out behind a basic NAT
firewall, active mode ftp wont work.
This is because normal active mode ftp actually initiates a FTP
connection from the server back to YOU! and requires more then basic nat to work. The day FTP is gone and fully replaced by something more secure like  SSH's sftp will be a day when the internet is large degree more secure.
Choose: "y" to switch on active ftp support (recommended) or "n"

y

Going to write the data to these files
/etc/rc.conf
/etc/ipf.rules
/etc/ipnat.rules
/etc/newsyslog.conf


hit ctrl+c to abort

All done, type "reboot" for changes to take effect

########################################################################

Settings for internal machines behind the firewall:

Gateway: 192.168.3.1

Netmask: 255.255.255.0

DNS: (Your ISPS DNS)

Clients IP: 192.168.3.2 or higher

Settings for external

Gateway: 192.168.1.1

IP: 192.168.1.250

Netmask: 255.255.255.0

########################################################################

Por último, el script escribe la información necesaria a los archivos de configuración necesarios. Después de reiniciar, el sistema está completamente configurado para acceder al ISP y proporcionar servicios NAT y DHCP para la LAN interna, y protege todos los paquetes a través de su Firewall.

Listar reglas de NAT activas
#  ipnat -l


Listar reglas de filtrado input output:
# ipfstat -io


Listar la tabla de estados de IP Filter


Verificar el comportamiento del NAT


El archivo rc.conf modificado por el ipfilterscript:


Si queremos permitir conexiones al servidor web desde la www:

#permitir conexiones al servidor web /etc/ipnat.rules
rdr em1 0.0.0.0/0 port 80 -> 127.0.0.1 port 80 tcp/udp


Unix es genial!.

No hay comentarios:

Publicar un comentario