Tabla de Contenidos

IPCOP Firewall


Advertencia

Este documento es privado y es de uso exclusivo de sus autores y de SKINA TECH. Cualquier uso sin una autorización escrita es contra la ley de derechos de autor y de propiedad intelectual, y será motivo de una acción legal.


Descripción

 Este documento describe la forma en que se debe montar la distribución para firewall IPCOP con estandares de SKINA. 

Prerequistos

Procedimiento

 

A. Instalación básica

 

Meta el CD y hagale .. es bastante transparente. 

Las particiones estandar de IPCOP son 3

/ hda4El root ( 1G)
/boot hda1Donde dejan los kernels (15M) el mas pequeño
/var/loghda2Las bitacoras esta es la mas grande

 

B. Instalacion de modelo

Es un poco diferente de la instalacion habitual debido a que no contaremos con un mini ipcop. Toca hacer una instalacion basica con el cd de ipcop, este no da la opcion de personalizar el particionamiento, una vez instalado hace backup del kernel (/boot/*) y los modulos (/lib/modules/*). Luego de esto hace el procedimiento estandar de instalacion de modelo desde el principio y una vez descomprimido el modelo le restauran el backup del kernel y los modulos, configuran los links de las particiones y listo.

Instalacion y manejo de Paquetes 

IPCop no tiene manejador de paquetes entonces trabaja a punta de tar.gz, no hay repositorio pero muchos de los paquetes utilizados se pueden encontrar en los siguientes sitios:

-http://www.ipcop.org/index.php?module=pnWikka&tag=IPCopAddons
-http://www.ipadd.de/binary.html
-http://www.ban-solms.de/t/IPCop.html
-http://mh-lantech.css-hamburg.de/ipcop/download.php?view.205

NOTA: por el momento los paquetes se estan dejando en /root

Herramientas utiles

debe instalar los siguientes paquetes para tratar de acoplarlo un poco a los estandares de skina:

-para linea de comandos: mc , openssh, ncftp, nmap, lynx, rsync, telnet, iptraf, hping, mtr.
-para la interfaz web: hddtemp, jnettop, lsusb, mbmon, munin-ipcop, smartctl, autoshutdown, guiports, linetest, wio, xtgraphs.

-servicios: pptpd, sarg_ipcop, ZERINA, BlockOutTraffic, ipcop-advproxy, ipcop-calamaris, ipcop-urlfilter.

Usuarios

 Los usuarios en ipcop salen del estandar de skinatech ya que no me permite crear usuarios adicionales. Existen 3 usuarios en ipcop: root, admin y backup, entonces a root le dejamos la contraseña estandar del momento y a backup y admin se deja la contraseña estandar del uusuario skina. A la linea de comandos solo se puede ingresar con root, el usuario admin es para ingresar a la interfaz web de ipcop y el usuario backup es para realizar restauraciones de backups de configuracion.

C. Configuración

La Red

IPCop maneja sus interfaces de red o zonas por colores de la siguiente forma:

-red (roja)→Internet
-orange (naraja)→DMZ
-green (verde)→LAN
-blue (azul)→Inalambrica

-como root ejecuta el comando “setup” ahy en la opcion red define:

       tipo de configuracion de red
      deteccion de controladores y tarjetas asignadas
      el direccionamiento de las interfaces y el DNS

-si le quiere meter mano al script la configuracion de Red esta en /var/ipcop/ethernet/settings.

Compresion de bitacoras

Añadir a la configuración de la bitácora compresion, pa que no se llene:
- En /etc/logrotate.conf agregar la linea compress para que comprima todo

Estandares de calidad

Como siempre todos los aportes de skina deben estar en  /usr/local/skina

Munin

 

D. Servicios


DHCP IPCOP

Parámetros del servidor DHCP

Se puede configurar a través de la interfaz web en la opción de “Servidor de DHCPâ€? de la pestaña de servicios o en los archivos de configuración en /var/ipcop/dhcp/. Los parámetros del servicio que se pueden configurar son los siguientes:

Enabled/Activo: en la interfaz web es un check box para activar el servicio DHCP para la interfaz que desee sea green o blue; en el archivo de configuración /var/ipcop/dhcp/settings se define on  o off para activarlo o desactivarlo en la interfaz que desee.
ENABLE_BLUE=off
ENABLE_GREEN=on

Start Address/ Dirección inicial(opcional): aquí­ define el inicio del rango de direcciones ip que quiere que el servidor conceda.
START_ADDR_GREEN=192.168.1.x

End Address/Dirección final(opcional): define el final del rango de direcciones ip que va a conceder el servidor.
END_ADDR_GREEN=192.168.1.x

Base IP for fixed lease creation/IP Inicial para la creación de concesiones fijas(opcional):
BASE_IP_FIXED_LEASE_GREEN=192.168.1,x

Tiempo de concesión por defecto (mins): define el tiempo en que se da respuesta en el que el servidor renueva o re-confirma la información ip que esta entregando a los clientes.
DEFAULT_LEASE_TIME_GREEN=60

Máx tiempo de asignación (mins): tiempo máximo de concesiones que da el servidor, es decir si se realiza un cambio en la configuración el cambio sera tomado por el cliente después del tiempo estipulado.
MAX_LEASE_TIME_GREEN=120

Sufijo del nombre de dominio: define el dominio.
DOMAIN_NAME_GREEN=gunclub.com.co

Permitir clientes de bootp: activar/desactivar protocolo BOOTP
ENABLEBOOTP_GREEN=off

DNS primario(requerido)/secundario(opcional): define el servidor de nombres para los clientes
DNS1_GREEN=192.168.1.x
DNS2_GREEN=192.168.1.x

Servidor NTP primario/secundario(opcional): define el servidor de protocolo de tiempo
NTP1_GREEN=192.168.1.x
NTP2_GREEN=192.168.1.x
Dirección del servidor WINS primario/secundario(opcional): define la ip del servidor wins (si lo hay).
WINS1_GREEN=192.168.1.x
WINS2_GREEN=192.168.1.x

Opciones DHCP adicionales

puede agregar opciones adicionales en el servidor, en la interfaz web puede adicionarlas digitado el nombre de la opción o seleccionándola de una lista y agregando el valor en sus respectivos formularios, también se pueden adicionar en el archivo de configuración /var/ipcop/dhcp/advoptions con la siguiente sintaxis:

activa/inactiva      nombre_de_la_opción  valor_de_la_opción    off     off               

ejemplo, la primera linea la opción esta inactiva y la segunda activa

        nombre  valor   off     off
on      nombre  valor   off     off

Se pueden adicionar opciones a la lista desplegable definiendo las en el archivo /var/ipcop/dhcp/advoptions/advoptions-list

Ejemplo:

option all-subnets-local flag;

Concesiones fijas

Se puede definir concesiones fijas manualmente, esto es muy útil si necesitamos que  reservar ip's bien sea para impresoras, servidores, etc. Se puede configurar en el entorno web donde se define Dirección MAC, Dirección IP, Observación, Nombre del Host o FQDN, Dirección IP del router, Servidor DNS y opciones adicionales de boot pxe como next-server, filename, root-path. Estas concesiones queda definidas en  el archivo de configuración /var/ipcop/dhcp/fixleases como se muestra en el siguiente ejemplo:

dirección_mac,dirección_ip,activo/inactivo,off,next-server,filename,root-path,observación,nombre_del_host,ip_del_router,servidor_dns

00:19:b9:60:d9:44,192.168.1.200,,,,impresora,servidor,192.168.1.x,192.168.1.x
 

DNS IPCOP

Ipcop usa un servicio de dns-cache por defecto llamado dnsmasq que se encarga de resolver nombres al obtenerlos de los dns padres bien sea un servidor local o de Internet. Así­ como la información de caché de DNS de Internet, el DNS en IPCop le permite introducir manualmente   cuya dirección que desea resolver a nivel local. Estas podrí­an ser las direcciones de los equipos locales o máquinas en Internet cuya dirección es posible que desee anular.

La configuración en la interfaz web se encuentra en la pestaña de servicios la opción “corrija hostâ€?.

Agregar un host

Se definen los siguientes parámetros del host que va a añadir: Dirección IP del anfitrión, Nombre del Host, Nombre de dominio, si esta Activo/Inactivo. Los host definidos en esta configuración se reflejan en el archivo /etc/hosts y el archivo de configuración /var/ipcop/main/hosts.

Ordenadores actuales

Esta sección muestra las entradas DNS que se han configurado actualmente, las cuales se pueden editar y borrar

De igual forma se puede editar el archivo /var/ipcop/main/hosts.

En el siguiente ejemplo se muestra la primera linea definido un host activo y en la segunda uno inactivo:

on,192.168.1.x,nombre_host1,dominio.com.co
,192.168.1.x,nombre_host2,dominio.com.co
 

PROXY IPCOP

IPCop tiene un squid por defecto que se configura en la interfaz web en la pestaña servicios→proxy y el archivo de configuracion de squid esta en /var/ipcop/proxy/squid.conf. Lo malo es que es muy basico y no cumple con los estandares de skina, entoces se deben instalar los siguientes addons:

-ipcop-advproxy (configuracion avanzada de squid en gui)
-ipcop-calamaris (para reportes de proxy)
-ipcop-urlfilter (squidguard y configuracion en gui)
-sarg_ipcop (estadisticas de navegacion)

**Advanced Proxy (Squid)
**

ILa configuracion en web gui esta en la pestaña servicion opcion Advanced Proxy. Los parametrosque perimite configurar son los los que se mencionan a continuacion; si le quiere meter mano por consola el archivo de configuracion esta en /var/ipcop/proxy/advanced/settings (no estan todos los paramtros pero si la mayoria) o al archivo de configuracion de squid /var/ipcop/proxy/squid.conf o  /etc/squid/squid.conf (link).

Opciones generales

Habilitado en <Interfaz>
Aca habilita el servidor proxy para escuchar las solicitudes en el interfaz seleccionada (verde o azul).

Transparente en <Interfaz>
Si el modo transparente está habilitado, todas las solicitudes de destino el puerto 80 se remitirán a la del servidor proxy sin necesidad de ninguna configuración especial de los cambios a sus clientes.
NOTA: si pone proxy transparente solo redireccionara las peticiones del puerto 80 si hacen alguna por el 443 se baypasea el proxy; no se puede tener proxy transparente y autenticacion; para forzar el uso del proxy es bueno bloquear el trafico de los puertos 80,8080,8000,etc.

Puerto del proxy
í‰ste es el puerto del Servidor Proxy para escuchar solicitudes de clientes. El puerto por defecto es 800.

Nombre visible de host
Si quiere mostrar un nombre de host en especial en los mensajes de error o para los servidores proxy de subida (véase Proxy de Subida→Reenviar la direccion IP del proxy), entonces, lo define aqui. En caso contrario, el verdadero nombre de host del IPCop será utilizado.

E-mail del administrador de la caché
La direccion de correo que se mostrara en los mensajes de error del servidor proxy.

Idioma para los mensajes de error:
Selecciona el idioma con el cual se mostraran los mensajes de error del servidor proxy a los clientes

Formato de los mensajes de error.
Selecciona el estilo con el cual se mostraran los mensajes de error del servidor proxy a los clientes

Suprimir información de la versión
Esto desactiva la caché de información de la versión de Squid que se utilizará en los mensajes de error o en la cabecera HTTP.

Versión de la cache de Squid
Este elemento es de sólo lectura, muestra el release de la caché de Squid binario instalado.

Proxy de subida


Configuración del log

Log habilitado
Esto habilita la función de logs del Web Proxy. Todas las solicitudes de cliente se escribirán en un archivo de log y se puede ver dentro de la interfaz gráfica en “Registros /Registros del proxy”.

Registrar los terminos de la petición
Esto habilita el registro de url's consultadas

Registrar los useragents
Al habilitar esta opcion se ecribe una cadena de useragents en la bitacora /var/log/squid/useragent.log esta no se puede ver en el los registros de la interfaz grafica.

Administración de la caché

Puertos de destino

Puertos standard permitidos (uno por lí­nea)
Enumera los puertos de destino habilitados para el estandar HTTP y SSL solucitudes encriptadas HTTPS . Puede definir un solo puerto o un rango de puertos Ej:

80                    # http
1025-65535  # puertos sin registrar

Control de acceso basado en la red

Subredes permitidas
Todas las subredes listadas que tienen acceso al servidor proxy, por defecto las redes green y blue estan listadas aqui. Puede agregar otras subredes detras de la green en entornos largos de esta lista. Todas las subredes no listadas aqui tendran bloquedo el acceso web.

Deshabilitar el acceso mediante el proxy
Esta opción impide el acceso directo HTTP a través del servicio interno de proxy a los servidores web en las subredes, tal como se define en “Subredes permitidas”. Esta selección sobreescribe las dos opciones actuales, las cuales administran el acceso HTTP a green y proveniente de blue.

Deshabilitar el acceso mediante el proxy desde otras subredes hacia la interfaz Green
Esta opción impide el acceso directo HTTP a través del servicio interno de proxy aservidores web en green proveniente de cualquier otra subred.

Direcciones IP sin restricciones
Todas las ip's en esta lista se les anularan las siguientes restricciones:
- Restricciones de tiempo
- Limites para transferencias
- Limitacion de las descargas
- Navegador web
- Filtros de tipos MIME
- Authenticacion
- Inicios de sesión por usuario concurrente

Direcciones MAC sin restricciones
Las MAC en esta lista se les anularan las mismas restrcciones mencionadas en “Direcciones IP sin restricciones ”. Esto es util por si las ip's rotan por el servidor dhcp, cambio de segmento, etc. Esta regla solo funciona en las zonas de ipcop (green, orange, blue).

Direcciones IP baneadas
Todas las solucitudes de las ip's en esta lista seran bloqueadas.

Direcciones MAC baneadas
Todas las solucitudes de las MAC en esta lista seran bloqueadas, solo funciona en las zonas de ipcop (green, orange, blue)

Restricciones de tiempo

Aca define el tiempo de operacion del proxy. Define si va a permitir o denegar el acceso web. La aplicacion de “permitir” o “negar” dependerá de las normas sobre el tiempo que desee aplicar. Por defecto está configurado para permitir el acceso todos los dí­as las veinticuatro horas del dí­a.

Lí­mites para transferencias

Aca define las limitaciones del tamaño de cada solicitud de carga y/o descarga. Las cifras se dan en KB. Una de las razones de los lí­mites de transferencia podrí­a ser que usted desea evitar que la descarga de grandes archivos, como imágenes de CD. El valor por defecto es 0 KB para cargar y descargar. Este valor deshabilita cualquier limitación.
NOTA: los limites de carga aplican para todos.

Limitación de las descargas

Puede limitar el ancho de banda de las descargas en general, por cada host y dependiendo del contenido.
Define el limite por maquina o general de la zona (green, blue, orange) en 64, 128, 256, 384, 512, 1024, 3072, 5120  KBit/s.
Define limites basados en el contenido: Archivos binarios,Imágenes de CD y Multimedia.

Filtro de tipos MIME

Donde se listan tipo MIME para bloquear o denegar el acceso de cierto tipo de archivos o aplicaciones. Ej:
Para bloquear descarga de pdf's:
application/pdf
Para bloquear descarga de videos:
video/mpeg video/quicktime
Tambien tiene expresiones regulares lo cual permite reducir las lineas en la lista, por ejemplo si se coloca en la lista:
javascript
se bloquearan los tipos MIME:
application/x-javascript
text/javascript

Navegador web
Puede chequear los navegadores y seleccionar a que navegadores se les permite navegar y a cuales no, si no aparece el navegador en las opciones lo puede definir en el archivo de configuracion /var/ipcop/proxy/advanced/useragents, por ejemplo para agregar el navegador de en modo texto links, pone la siguiente linea:
LYNX,Lynx,(Lynx)
tal como se muestra se definen los valores de nombre, visualizacion y expresion regular separado por comas y sin espacios (solo pueden en la visializacion pone en vez \\- de los espacios).

Privacidad
Aca se definen useragent (informacion del navegador) y refer (informacion del proxy) falsos que se enviaran a los sitios visitados con el fin de protejer la privacidad.

Filtro de URL
Aqui habilita/deshabilita el addon Filtro url (SquidGuard)

Tipo de autentificación

Define el Tipo de autenticacion que van a usar Ninguno, Local, identd, LDAP, Windows o RADIUS. La vaina aqui es curiosa de primerazo al seleccionar algun tipo de autenticacion lo le aparecen los campos para llenarsegun el tipo escojido, tonces toca seleccionar alguno y hacer click en guardar para que nos bote el error de que no a definido parametros y con esto ya aparecen los campos.

Local


identd


Windows


LDAP

Las credenciales se verifican contra un servidor externo utilizando el Lightweight Directory Access Protocol (LDAP). Avanced proxy trabaja con estos tipos de servidores de LDAP:
-Active Directory (Windows 2000, 2003 y 2008 Server)
-Novell eDirectory (NetWare 5.x y NetWare 6)
-LDAP Version 2 y 3 (OpenLDAP)
Los protocolos LDAPS (LDAP seguro) no funcionan con Advanced Proxy.

 

Opciones generales para LDAP

 

DN base
Define el nombre distinguido de la raiz del arbol de LDAP po ejemlplo:
dc=skina,dc=com,dc=co

 

Tipo de directorio LDAP
Selecciona el tipo de directorio LDAP si es Active Directory, Novell eDirecroty, LDAP vesion 2 o LDAP version 3.

Servidor LDAP
Define la ip del servidor LDAP.

Puerto
Pone el puerto por el que se escucha el servicio de LDAP por defecto es el 389.
NOTA: el protocolo LDAPS (LDAP seguro por puerto 636) no esta soportado por Advanced Proxy

Opciones del DN de conexión

Usuario del DN de conexión
pone el nombre distinguido del usuario con el que se haran consultas en LDAP. Por ejemplo:
cn=Admin,dc=skina,dc=com,dc=co

Contraseña del DN de conexión
Define la contraseña del usuario con el que va a hacer las consultas.

SI TIENE HABILITADA LA UTENTICACION ANONIMA PUEDE DEJAR ESTOS DOS CAMPOS VACIOS.

Control de acceso basado en grupo

Define el nombre distinguido del grupo (rama en el arbo de LDAP) al que se le permitira el acceso, este parametro es opcional. Pro ejemplo solo quiero que los del grupo skina puedan tener acceso al proxy:
cn=skina,ou=Groups,dc=skina,dc=com,dc=co

 

RADIUS


 

Opciones generales de autentificación

Número de procesos de autentificación
Se indica el número de solucitudes de autentificación procesadas en background.

TTL para la caché de autentificación
Define cuantos minutos se deben conservar las credenciales de autentificacion en la cache por sesion. Cuando el tiempo expira el usuario debe volver a logearse.

Limitar número direcciones IP por usuario
Define el numero maximo de maquinas en que un usuario se puede autenticar al tiempo. Si lo quiere ilimitado deja el campo vacio.

TTL para la caché de usuario/IP
Define cuantos minutos se debe conservar las credenciales de autentificacion por ip.

Pedir autentificación para direcciones de origen sin restricciones
Por defecto se pide autenticacion a las ip's de origen que no tiene restricciones si desea lo contrario desactive esta opcion.

Mensaje del diálogo de autentificación
El mensaje que se muestra en el cuadro de dialigo de autentificacion. Por defecto muestra “IPCop Advanced Proxy Server”.

Dominios sin autentificación
Aca define la lista de los dominios a los cuales pueden ingresar sin tener que utenticarse. Puede definir hosts, dirrecciones ip's, url's completas o dominios y subdominios. Ej:
www.google.com
64.233.161.99
www.google.com/images
*.google.com

LISTO UNA VEZ DEFINIDOS LOS PARAMETROS QUE NECESITA HACE CLICK EN GUARDAR Y REINICIOAR PARA QUE GUARDE Y TOME TODOS LOS CAMBIOS REALIZADOS.

 

Filtro de URL (SquidGuard)

La configuracion se realiza a travez de la interfaz grafica en la pestaña de Servicios→Filtro URL alli se definen los parametros conocido de SquidGuard, si le quiere metr mano por consola el archivo de configuracion se encuentra en /var/ipcop/urlfilter/squidGuard.conf o /etc/squidGuard/squidGuard.conf (link).

(Vease Valores Agregados Otros servicios) https://zion/egw/index.php?menuaction=wiki.uiwiki.view&lang=es-es&page=Squid

 

Sarg (estadisticas de navegacion)

-Se edita el archivo de configuracion /var/ipcop/sarg/local/sarg/sarg.conf cambia el titulo y el idioma.

title “Reportes de Acceso de usuarios de IPCop”
language Spanish
graphs yes
graph_days_bytes_bar_color orange

-Verifica el cron con fcrontab -e

-Los reportes de sarg se pueden ver por interfaz grafica de ipcop en  Logs→Sarg.

 

FIREWALL IPCOP

-El NAT de IPCop se configura en Firewall→Reenvio de Puertos.

-Las reglas de acceso se configuran

 

Problemas

 

1. Red No sube

A) Revise que las tarjetas fueron detectadas en el dmesg y que los modulos (lspci) los esta cargando el kernel

B)  Actualice el inventario de las dependencias de los modulos

root@skfw:~# depmod -a

C) prueba carge el modulo al sisitema

root@skfw:~# modprobe sis900

D) puede usar el comando setup y en la opcion red puede configurar los \\“co ntroladores y  tarjetas asignadas\\” donde puede hacer que el sistema las detecte el modulo apropiado o los puede definir manualmente.

2. Se intercambian las interfaces de red

Es posible que en /var/ipcop/ethernet/ settings este definida una interfaz cargando un modulo que bien puede funcionar para mas de una tarjeta, esto hace que el sistema suba aleatoreamente el harware, para evitar esto hay que tenr en cuenta 2 cosas.

A) Procurar que las tarjetas de red sean de diferente tipo de harware (marca, version, fabricante, etc).

B) Si las tarjetas son diferentes es mejor no definir un modulo comun inclusive si este funciona, lo mas recomendable es que el sistema las dete cte, esto se puede hacer digitando el comando setup en la opcion red, \\“controladores y  tarjetas asignadas\\”.

C) Algunas veces la autodeteccion de modulos del sistema solo permite detectar la interfaz que no haya subido, lo mejor es continuar con el proceso y tomar nota del modulo que detecto para luego duplicar el problema reiniciando la maquina y al repitir el proceso obtener los otros modulos, de esta manera se puede editar manualmente el archivo de config uracion /var/ipcop/ethernet/settings y poner manualmente los modulos correctos para cada interfaz.

3. Bloquear trafico SMTP excepto para el servidor de correo

# permitir smtp para algunas ip's/sbin/iptables -A CUSTOMFORWARD -p tcp -i eth0 -s x.x.x.x --dport 25 -j ACCEPT/sbin/iptables -A CUSTOMFORWARD -p tcp -i eth0 -s x.x.x.x --dport 465 -j ACCEPT# reporte trfico que no proviene del servidor de correo/sbin/iptables -A CUSTOMFORWARD -p tcp -i eth0 -s ! y.y.y.y --dport 25 -j LOG --log-prefix "SMTP"/sbin/iptables -A CUSTOMFORWARD -p tcp -i eth0 -s ! y.y.y.y --dport 465 -j LOG --log-prefix "SMTP-SSL"# bloquear el resto de trafico SMTP saliente/sbin/iptables -A CUSTOMFORWARD -p tcp -i eth0 -s ! y.y.y.y --dport 25 -j REJECT/sbin/iptables -A CUSTOMFORWARD -p tcp -i eth0 -s ! y.y.y.y --dport 465 -j REJECT
Remplace x.x.x.x con las ip diferentes del servidor de correo a las que les va a permitir trfico SMTP.Remplace y.y.y.y por la ip del servidor de correo.

Referencias

-http://www.ipcop.org/1.4.0/en/admin/html/services.html

- http://www.ipadd.de/

-http://www.mhaddons.tk/

-http://www.ban-solms.de/

FIN

15-Marzo-2006 J.E.Gomez v1.0 Primera version

20-Febrero-2008 J.F Saganome v1.1

24-Marzo-2009 A. F. Vilardy v1.2

21-Abril-2009 A. F. Vilardy v1.3

18-Mayo-2009 A.F. Vilardy v1.4