# firewall-easy-lib 0.32
#
#	Configuracin de firewall-easy
#
#	Copyright (C) 2000:	Manel Marin <manel3@wanadoo.es>
#	Licence:		GNU GPL version >= 2
#
#
#	Please read "man firewall-easy-lib"
#
#
#	RECUERDA: hacer como root "firewall-easy reload" para activar cambios
#


#-------------------------------------------------------------------------------
# CONFIGURACION AUTOMATICA
#	En /etc/firewall-easy.conf se realiza una deteccin automtica
#	de IP, red/mascara, y servidores DNS
#
#	En caso necesario puedes editarlo y poner valores manualmente
#-------------------------------------------------------------------------------

 import /etc/firewall-easy.conf



# --- NO TOCAR ---
 SPOOF = "$LO_NETS $LOCALNETS $ALL_IPS"		# IPs mi red local, iface lo
 FORWARD_IFACES = $LOCALNET_IFACES	# Only for 2.4		# Solo para 2.4



#### ENMASCARAMIENTO DE IP #####################################################
# Enmascarar clientes hacia internet (FORWARD se activa solo si es preciso)
#MASQ	Proto	Local <> Remote_iface		Nombre
#--------------------------------------------------------------------

INTERFACE = $MASQ_IFACES
MASQUERADE *	$LOCALNETS > *			Aplicar enmascaramiento de IP



#### REGLAS PARA EL LOOPBACK ###################################################
#NO/>/*	Proto	Local <> Remote			Nombre
#--------------------------------------------------------------------

INTERFACE = lo
*	*	$LO_NETS <> $LO_NETS		Acceso para mi loopback
*	*	$LOCALNET_IPS <> $LOCALNET_IPS 	Conexiones locales
						# (no salen por eth)
*	*	1.1.1.1 > 1.1.1.1		Salidas de IP alias p. autotest



#### REGLAS PARA RED LOCAL INTERNA #############################################
# Destino de los paquetes de mis clientes
#NO/>/*	Proto	Local <> Remote			Nombre
#--------------------------------------------------------------------

INTERFACE = $LOCALNET_IFACES
*	*	* <> $LOCALNETS				Acceso de mi red local
*	udp	0.0.0.0:bootps < 255.255.255.255:bootpc	Peticiones DHCP win
						# si somos el servidor DHCP


#### REGLAS PARA EL ROUTER ADSL (IP por DHCP) ##################################
#NO/>/*	Proto	Local <> Remote			Nombre
#--------------------------------------------------------------------

INTERFACE = $ADSL_IFACES		# Esto hace un bucle con cada $IFACE
ADSL_IP1="`list-iface-ip $IFACE`"               # Nuestra IPs en un iface ADSL
ADSL_GW1="`list-iface-gw $IFACE`"               # IPs del GW en un router ADSL
*	udp	0.0.0.0:bootpc > 255.255.255.255:bootps     Paso DHCP INIT uno
*	udp	255.255.255.255:bootpc < $ADSL_GWS:bootps   Paso DHCP INIT dos	
>	udp	$ADSL_IPS:bootpc > $ADSL_GWS:bootps  	Paso DHCP RENEW uno
>	udp	$ADSL_IPS:bootpc < $ADSL_GWS:bootps 	Paso DHCP RENEW dos

NO	udp	$ADSL_IPS:bootps < $ADSL_GWS:bootpc	Peticiones del router



#### REGLAS PARA DEMAS INTERFACES (INTERNET) ###################################

INTERFACE = *
IPLOCAL = *
IPREMOTE = *


#### ANTI-SPOOF E IPs PROHIBIDAS ###############################################
#NO/>/*	Proto	Local <> Remote			Nombre
#--------------------------------------------------------------------

NO!	*	* < $SPOOF		IPs haciendose pasar por mi
NO!	*	* < $NO_IP		IPs prohibidas expresamente
NO	*	* < $NO_PRIV		Trafico de IPs privadas


#### SERVICIOS LOCALES ACCESIBLES DESDE INTERNET ###############################
# cerrados si no se abren expresamente con "*"
# ATENCION: No estan realmente abiertos si $ISSH="" (variable vacia) 
#NO/>/*	Proto	Local <> Remote			Nombre
#--------------------------------------------------------------------

*	tcp	ssh <> $ISSH		Secure Shell


#### PUERTOS LOCALES PROHIBIDOS ################################################
#NO/>/*	Proto	Local <> Remote			Nombre
#--------------------------------------------------------------------

    #OPCIONAL (REGLAS DE CONTEO)
NO!	tcp,udp	0 < *			Puerto cero cerrado
NO!	tcp	systat <  *		Lista de procesos y usuarios
NO!	tcp	ftp < * 		Servidor FTP
NO!	tcp	ssh < *			Secure Shell (tcp y udp?)
NO!	tcp	telnet < *		Telnet	
NO!	tcp	smtp < *		Servidor smtp
NO!	tcp	time < *		Servidor de hora
NO!	tcp,udp	domain < *		Servidor dns
NO!	tcp,udp	bootps:bootpc < *	Servidor y cliente bootp (tcp y udp?)
NO!	udp	tftp < *		Servidor tftp
NO!	tcp	finger <  *		Informacion de usuarios
NO!	tcp	www < *			Servidor web
NO!	tcp	pop-3 < *		Servidor pop-3
NO!	tcp	sunrpc < *		Portmap de servicios UDP
NO!	tcp	auth < *		Puerto de autorizacin
NO!	tcp,udp	135 < *			MS DCE RCP mapper para DCOM
NO!	   udp	137 < *			Servicios netbios
NO!	   udp	139 < *			Servicios netbios
NO!	tcp	143 < *			Servidor imap4
NO!	   udp	161 < *			SMTP conf & performance db
NO!	tcp,udp	512:514 < *		Unix "r" commands (tcp y udp?)
NO!	tcp	snpp < *		Servidor snpp de hylafax
NO!	tcp	printer < * 		spooler
NO!	   udp	535 < *			RPC CORBA IIOP
NO!	tcp,udp	635 < *			Linux mountd daemon

    #NECESARIO ( >1024)
#NO!	tcp	1024 < *		Gestor de displays X wdm (varia)
NO!	   udp	2049 < *		NFS unix Network File System
NO!	tcp	3128:3130 < *		Proxy web/cache squid
NO!	   udp	3130 < *			Proxy web/cache squid
NO!	tcp	mysql < *		Servidor mySQL
NO!	tcp	4557 < *		Servidor de FAX hylafax
NO!	tcp	4559 < *		Servidor de FAX hylafax
NO!	   udp	xdmcp < *		Servidor xdm (login grafico)
    # Entradas a X (6000:6000+nmero de servidores X)
NO!	tcp	6000 < *		Mis servidores X
NO!	tcp	7100 < *		Servidor fuentes xfs
NO!	tcp	7101 < *		Servidor fuentes xfstt
NO!	tcp	8080:8081 < *		Proxy web/cache wwwoffle


#### PUERTOS REMOTOS PROHIBIDOS (INCLUSO A SERVICIOS LOCALES) ##################
#NO/>/*	Proto	Local <> Remote			Nombre
#--------------------------------------------------------------------

NO!	tcp,udp	* <> 137:139		Servicios netbios externos
#NO!	tcp,udp	HI <> ircd		Servidores chat


#### CONEXIONES DE NUESTROS USUARIOS A SERVICIOS DE INTERNET ###################
# cerradas si no se abren expresamente con ">", o ">>"
#NO/>/*	Proto	Local <> Remote			Nombre
#------------------------------------------------------------------------

>	   udp	HI <> $DNS:domain	Servidores dns
>+	tcp	HI <> www		Servidores web
>	tcp	HI <> smtp		Servidores smtp
>	tcp	HI <> pop-3		Servidores pop-3
>	tcp	HI <> nntp		Servidores news
>	tcp	HI <> time		Servidores de hora
>	tcp	HI <> https		Servidores web seguros SSL

 #>	   udp	ntp <> $NTP:ntp		Servidores NTP (hora)
 #>	   udp	HI <> $NTP:ntp		Servidores NTP (hora)

>	tcp	HI <> 554		Real Audio
>	   udp	6970:7170 < *		Real Audio

>-	tcp	HI <> rsync		Servidores rsync


    # traceroute necesita 3 puertos UDP por nodo, 166=55 nodos
> 	   udp	* > 33434:33600 	Comando traceroute

    # ftp en modo pasivo
>	tcp	HI <> ftp		Servidores ftp
>-	tcp	HI <> HI		Desviado por ftp modo pasivo 
    # ftp en modo activo
>>-	tcp	HI <> $FTP:ftp-data	Desviado por ftp modo activo

>	tcp	HI <> *			Permito iniciar otras conexiones
					# Necesario para ftp pasivo? VERIFICAR


#### SALIDAS PARA RST ##########################################################
# si $RST_TO est definida (con 0/0) permitir salidas rechazando conexiones
#NO/>/*	Proto	Local <> Remote			Name
#------------------------------------------------------------------------
IPREMOTE = $RST_TO
*	tcp	* > *		Permitir tcp RST "rechazando" conexiones tcp
*	icmp	3 > *		Salidas Dest-un "rechazando" conexiones udp
IPREMOTE = *



#### ACCIONES SOBRE PAQUETES ICMP ##############################################
# Los paquetes icmp son de control de la comunicacin de los otros protocolos
#NO/>/*	Proto	Local <> Remote			Nombre
#-------------------------------------------------------------------------------

    # ENTRADAS ICMP
*	icmp	* < 0		Pong IN		--- para recibir PING/BING ---
*	icmp	* < 3		Dest-un	IN 	--- para la comunicacin ---
NO!	icmp	* < 4		Quench IN
NO!	icmp	* < 5		Redir IN
NO!	icmp	* < 8		Ping IN
*	icmp	* < 11		Time-ex IN 	--- para traceroute ---
 #NO	icmp	* < 12		Param IN
NO	icmp	* < *		Resto de ICMP

    # SALIDAS ICMP
NO!	icmp	0 > *		Pong OUT 
NO	icmp	3 > *		Dest-un OUT
 #NO	icmp	4 > *		Quench OUT
 #NO	icmp	5 > *		Redir OUT
*	icmp	8 > *		Ping OUT 	--- para hacer PING/BING ---
 #NO	icmp	11 > *		Time-ex OUT
NO!	icmp	12 > *		Param OUT
NO	icmp	* > *		Resto de ICMP


#### OPCIONES RELACIONADAS CON EL LOGGING ######################################
#NO/>/*	Proto	Local <> Remote			Nombre
#------------------------------------------------------------------------

    # NO LOG DE PAQUETES REINCIDENTES CONOCIDOS
NO	udp	68 > 255.255.255.255:67	Infovia plus al conectar

    # LOG POR DEFECTO DE PAQUETES NO ADMITIDOS
NO!	tcp,udp	0:1023 <> *		Puertos bajos
NO!	tcp,udp	* <> *			Log por defecto TCP y UDP
NO!	*	* <> *			Log por defecto ICMP y resto


#### REDIRECCION DE PUERTOS ####################################################
#FORWARD/PROXY	Proto	Local < Remote ->Redir(numbers)	Nombre
#------------------------------------------------------------------------

#FORWARD tcp	$IP_TO_REDIR:www < *	->1.2.3.4:80	Port forwarding
#PROXY	 tcp	www < *			->3128		Proxy transparente
