Ir al contenido principal

FIREWALL CON IPFW EN FREEBSD

ipfw es el software firewall avalado por freebsd, viene por defetco asi que no debemos hacer mucho. pues este ya sta en una instalacion base. hay otras maneras de establecer reglas, YO particularmente escogí crear un script y ahi colocar las reglas, el script luego se puede ejecutrar via sh.

para activarlo necesitamos agregar a rc.conf

# vi /etc/rc.conf

firewall_enable="YES"
firewall_type="open"
firewall_script="/etc/firewall"

Luego creamos y dento de /etc/firewall agregamos lo siguiente:

#!/bin/sh

#borrando antiguas reglas
ipfw -q flush

#permito lan y loopback
ipfw -q add allow all from any to any via rl0
ipfw -q add allow all from any to any via lo0

#importante para el nat del equipo
ipfw -q add divert natd ip from any to any via wlan0
ipfw -q add check-state

#states importantes para conexiones establecidas
ipfw -q add allow tcp from any to any established

#aceptando ssh dns http openvpn
#ipfw -q add allow tcp from any to any 2022 in via wlan0 keep-state
ipfw -q add allow tcp from any to any 22 out keep-state
ipfw -q add allow tcp from any to any 22 in keep-state
ipfw -q add allow tcp from any to 172.16.1.1 53 setup keep-state
ipfw -q add allow udp from any to 172.16.1.1 53 keep-state
ipfw -q add allow tcp from any to any 80 keep-state
ipfw -q add allow tcp from any to any 1194 via wlan0 keep-state

#denegar todo trafico tcp con reset
ipfw -q add reset log tcp from any to any

#denegar todo trafico udp con reset
ipfw -q add reset log udp from any to any

#denegando pings
ipfw -q add allow icmp from any to any keep-state

reinciamos el servicio

#service ipfw restart

y listo.


Ahora explicare un poco algunas reglas y parametros :

--> ipfw -q add allow all from any to any via rl0: Estoy agregando una regla permisiva "allow" para todo "all" desde cualquier origen "from any" hacia cualquier destino "to any" por la interfaz rl0 "via rl0". Básicamente permito que todo el trafico entre y salga por mi rl0.... rl0 (realtek0 asi las nombra Freebsd) es mi interfaz hacia la lan. Por defecto la ultima regla del firewall es denegar todo, esto es por seguridad, debemos permitir trafico LAN ya que sino se hace no podran haber servicios basicos como enrutamiento interno, resolucion d nombres, DHCP, etc.

--> ipfw -q add allow tcp from any to any established: "established" Estoy permitiendo basicamente dialogo tcp establecido(3 hand shake ack y rst).

--> ipfw -q add allow tcp from any to 172.16.1.1 53 setup keep-state: Pemito paquetes por el puerto 53 hacia mi dns 172.16.1.1. "setup" basicamente permite paquetes para establecer dialogo( 3-handshake syn solamente) "keep-state" marca los paquetes para que pasen tanto de entrada como de salida.

--> ipfw -q add reset log tcp from any to any: Con esta regla envio un reset al inicio del 3handshake , dandole al usuario un port unreachable y no un filter.

--> ipfw -q add allow icmp from any to any keep-state: permito protocolo icmp.

---> ipfw -q add divert natd ip from any to any via wlan0: esta regla es para NAT. Todo trafico entrante es enviado al demonio NAT para antes ver sus reglas. mas informacion en la seccion NAT en FREEBSD.


Espero les sirva de ayuda!!!
Saludos!!

Entradas populares de este blog

Manejo de discos en AIX

Hola a todos. En el siguiente tutorial, enseñaremos cómo particionar un disco (o physical volumen, PV) o en su defecto adicionarlo a un volumen. Cabe mencionar que en AIX el concepto de partición como tal no existe, sino que se manejan como volúmenes de grupos lógicos o VG. Partiremos de la premisa de que el PV ya está presentado al sistema operativo, por lo que el primero paso es actualizar o detectar el disco al sistema para que esté visible como un fichero en /dev. Esto se hace ejecutando: #cfgmgr  Podrémos ver el disco en el sistema si usamos el comando #lspv Un VG, se debe subdividir al ser creado en un subconjunto de particiones fisicas llamadas PP y todas deben ser de un tamaño identico. Así que crearemos el VG de nombre volgroup1 especificando que cada PP debe ser de 1024 megas y que se hará del disco con etiqueta hdisk1.  #mkvg -y volgroup1 -s 1024 hdisk1 Si, ya se ha creado el volumen previamente, y desean agregar el nuevo disco, lo hacemos con: #extendvg -f volgroup...

Solaris 11 Presentar disco ASM en LDOM

  A continuación se describe el proceso de presentar un disco como ASM para que se use en una BD Oracle en Solaris 11 a una LDOM. Ubicamos el disco a presentar: # find /dev/dsk/|grep c1d1s2 #find /dev/dsk/ | grep c1d1s2 /dev/dsk/c1d1s2  Lo agregamos al Virtual Disk Backend #ldm add-vdsdev /dev/dsk/c1d1s2  name-ldm_disc1@primary-vds0 Luego lo aderimos a la LDOM  #ldm add-vdisk id=100 name-ldm_disc1 name-ldm_disc1@primary-vds0 name-ldm El parametro id puede omitirse y el generará uno (tener en cuenta el ID para el siguiente paso). Ahora dentro de la LDOM buscamos el disco con el ID 100 slice 6 #find /dev/rdsk/ | grep c1d100s6 Dar label  #format c1d100s6 Ready to label disk, continue? yes #format> q Y damos los permisos correspondientes de oracle #ls -l find /dev/rdsk/c1d100s6 #chown oracle:oinstall /devices/virtual-devices@100/channel-devices@200/disk@11:g,raw #chmod g+rw o ../../devices/virtual-devices@100/channel-devices@200/disk@11:g,raw

INICIAR ENTORNO GRAFICO LightGDM/GDM y GNOME FREEBSD

Nota: Este manual lo He probado en Frebsd 8.1, 9.0, 14  ¿Nada tan rudo como no tener entorno grafico? lo minimo que queremos es eso para poder seguir aprendiendo de FREEBSD. Así que a continuación los pasos:  En Freebsd 8.1 y 9.0 se insatal  gdm y xorg ejecutando: #sysinstall o por los puertos. #cd /usr/local/x11/ o con pkg_add #pkg_add -r gdm xorg luego de estar seguros de que lo tenemos instalado,  editamos /etc/rc.conf y agregamos las lineas. gdm_enable="YES" gnome_enable="YES" guardamos y reiniciamos. y ahora deberiamos tener un lindo entorno grafico con manejador GDM. En FreeBSD 14 instalamos gdm xorg o lightdm sea ejecutando: pkg gdm xorg o pkg lightdm xorg  lightdm-gtk-greeter Agregar en /etc/rc.conf  lightgdm_enable="YES" gnome_enable="YES" y reiniciamos.