You are on page 1of 11

COMANDOS A EJECUTAR EN CONSOLA PARA INSTALAR LOS PAQUETES ?SQUID? E ?IPTABLES?

QUE IMPLEMENTAN EL PROXY Y EL FIREWALL RESPECTIVAMENTE:


PASO 1:
aptitude install squid iptables (se puede usar apt-get install squid iptables ) 1.
Posiblemente muestre un error al intentar iniciar el servicio con squid:
Restarting Squid HTTP proxy: squiddpkg: error al procesar squid (--configure):
el subproceso post-installation script devolvi el cdigo de salida de error 255
Se encontraron errores al procesar:
squid
E: Sub-process /usr/bin/dpkg returned an error code (1) Un paquete no se pudo instalar. Intentado
recuperarse: Configurando squid (2.6.5-6) ... Restarting Squid HTTP proxy: squid.
failed!
SI NO GENERA ESTE ERROR SEGUIR CON EL PASO 3, SOLO EN CASO DE QUE EXISTA ESTE
ERROR SE DEBEN SEGUIR CON EL PASO 2:
PASO 2:
aptitude install libfontconfig1 fontconfig fontconfig-config 1.
aptitude reinstall squid iptables 2.
AL OBSERVAR LA SIGUIENTE SALIDA EN LA CONSOLA SE SABE QUE LA INSTALACIN
TUVO EXITO:
Configurando squid (2.6.5-6) ... Restarting Squid HTTP proxy: squid.
Configurando iptables (1.3.6.0debian1-5) ...
DE ESTA FORMA SE TIENE INSTALADO SQUID E IPTABLES.
PASO 3:
SE PROCEDE ENTONCES CON LA CONFIGURACIN DE SQUID:
nano /etc/squid/squid.conf 1.
EL COMANDO ANTERIOR EDITA EL ARCHIVO DE CONFIGURACIN DE SQUID.
BSICAMENTE SON MUY POCAS LNEAS LAS QUE SE TIENEN QUE MODIFICAR. EL
SQUID.CONF ES UN ARCHIVO MUY LARGO (MS DE 3000 LNEAS) AS QUE SE DEBE
UTILIZAR ALGUNA HERRAMIENTA DE BSQUEDA DEL EDITOR DE TEXTO UTILIZADO (EN
ESTE CASO ES NANO, PERO PUEDE SER CUALQUIER OTRO EDITOR DE TEXTO).
Servodor_Proxy-Firewall
1
ENTONCES...
... SE DEBE BUSCAR LA LINEA QUE DICE:
http_port 3128
Y AGREGARLE LA PALABRA TRANSPARENT QUEDANDO DE LA SIGUIENTE MANERA:
http_port IP_DEL_SERVIDOR:3128 transparent
DONDE DICE ?IP_DEL_SERVIDOR? SE DEBE COLOCAR LA DIRECCION IP DONDE EL PROXY
ESCUCHARA PETICIONES WEB DE LOS CLIENTES. EN NUENTRO CASO SERIA:
http_port 172.16.16.1:3128 transparent
ESTO ACTIVA EL SOPORTE PARA QUE EL EL PROXY FUNCIONE EN MODO TRANSPARENTE.
BUSCAMOS LAS LINEAS QUE DICEN:
Recommended minimum configuration: 1.
acl all src 0.0.0.0/0.0.0.0
JUSTO DEBAJO DE ESTAS LINEAS APARECEN LAS LISTAS DE CONTROL DE ACCESO
DEFINIDAS POR DEFECTO. SE DEBE MODIFICAR EN FUNCION DE NUESTRA NECESIDAD:
LO MAS ESCENCIAL ES DEFINIR LO REFERENTE A NUESTRA RED LOCAL, EL LOCALHOST Y
SE PODRIA GENERAR ALGUNA LISTA DE CLIENTES A LOS QUE NO SE LE PERMITE UTILIZAR
EL PROXY.
EN ESTE CASO SOLO SE AGREGARAN LAS SIGUIENTES LISTAS DE CONTROL DE ACCESO
(ACL POR SUS SIGLAS EN INGLES):
acl localhost src 127.0.0.1/255.255.255.255 acl nuestraredlocal src 172.16.16.0/255.255.255.0 acl
nopermitidos src "/etc/squid/nopermitidos"
LOCALHOST: INTERFAZ LOCAL DEL SISTEMA NUESTRAREDLOCAL: SEGMENTO DE RED EN
DONDE SE ENCUENTRAN NUESTROS CLIENTES NOPERMITIDOS: ARCHIVO QUE DEBEMOS
CREAR CON LA RUTA /ETC/SQUID/NOPERMITIDOS EN CASO QUE SE DESEE , EN EL CUAL
INCLUIREMOS LAS IP'S DE LOS CLIENTES A LOS QUE LES QUEREMOS DENEGAR PETICIONES
(SE HACE POR COMODIDAD, DE MANERA DE NO COLOCAR UNA LINEA EN EL SQUID.CONF
POR CADA CLIENTE NO DESEADO DENTRO DE NUESTRA RED LOCAL).
ESTA SECCION DEBERIA VERSE ASI:
Recommended minimum configuration: 1.
Servodor_Proxy-Firewall
2
acl all src 0.0.0.0/0.0.0.0 acl manager proto cache_object acl localhost src 127.0.0.1/255.255.255.255 acl
nuestraredlocal src 172.16.16.0/255.255.255.0 acl nopermitidos src "/etc/squid/nopermitidos" acl
to_localhost dst 127.0.0.0/8 acl SSL_ports port 443 # https acl SSL_ports port 563 # snews acl SSL_ports
port 873 # rsync acl Safe_ports port 80 # http acl Safe_ports port 21 # ftp acl Safe_ports port 443 # https acl
Safe_ports port 70 # gopher acl Safe_ports port 210 # wais acl Safe_ports port 1025-65535 # unregistered
ports acl Safe_ports port 280 # http-mgmt acl Safe_ports port 488 # gss-http acl Safe_ports port 591 #
filemaker acl Safe_ports port 777 # multiling http acl Safe_ports port 631 # cups acl Safe_ports port 873 #
rsync acl Safe_ports port 901 # SWAT acl purge method PURGE acl CONNECT method CONNECT
ES IPORTANTE RECORDAR QUE SE DEBEN HACER LAS MODIFICACIONES EN FUNCION DE
LAS DIRECCIONES IP Y MASCARAS DE RED QUE SE MANEJAN EN LA RED DONDE PONDRA A
FUNCIONAR EL SERVIDOR.
LUEGO DE DEFINIR LAS LISTA DE CONTROL DE ACCESO SE DEBEN DEFINIR LAS REGLAS DE
CONTROL DE ACCESO:
BUSCAMOS LA LINEA QUE DICE:
Only allow cachemgr access from localhost 1.
Y AGREGAMOS LA SIGUIENTE LINEA:
http_access allow nuestraredlocal !nopermitidos
EL SIMBOLO ?!? COLOCADO AL INICIO DE ?NOPERMITIDOS? EN LA LINEA ANTERIOR INDICA
SE PERMITE EL ACCESO A TODO LO DEFINIDO EN ?NUESTRAREDLOCAL? EXCEPTO LO
DEFINIDO EN ?NOPERMITIDOS?, SIN EMBARGO TAMBIN ES POSIBLE AGREGAR LA LINEA
?http_access deny nopermitidos?.
ESTA SECCION DEBERIA VERSE ASI:
Only allow cachemgr access from localhost 1.
http_access allow manager localhost http_access allow nuestraredlocal !nopermitidos http_access deny
manager
Only allow purge requests from localhost 1.
http_access allow purge localhost http_access deny purge
Deny requests to unknown ports 1.
http_access deny !Safe_ports
Deny CONNECT to other than SSL ports 1.
http_access deny CONNECT !SSL_ports
1.
Servodor_Proxy-Firewall
3
We strongly recommend the following be uncommented to protect innocent 2.
web applications running on the proxy server who think the only 3.
one who can access services on "localhost" is a local user 4.
http_access deny to_localhost 5.
6. INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS 7.
Example rule allowing access from your local networks. Adapt 1.
to list your (internal) IP networks from where browsing should 2.
be allowed 3.
acl our_networks src 192.168.1.0/24 192.168.2.0/24 4.
http_access allow our_networks 5.
http_access allow localhost
And finally deny all other access to this proxy 1.
http_access deny all
LUEGO AL FINAL DEL ARCHIVO DEBEMOS AGREGAR LA LINEA:
visible_hostname www.servidor.proxy.algo
SOLO EN EL CASO QUE SE QUIERA MOSTRAR EN LOS MENSAJES DEL EXPLORADOR UN
NOMBRE DISTINTO AL NOMBRE DE LA MAQUINA DONDE ESTA INSTALADO EL SERVIDOR,
YA QUE ESTE NOMBRE ES EL QUE MUESTRA POR DEFECTO.
AHORA SE GUARDAN LOS CAMBIOS Y SE CIERRA EL ARCHIVO SQUID.CONF.
PASO 4: CREAR EL ARCHIVO ?NOPERMITIDOS?
touch /etc/squid/nopermitidos
ESTO CREA UN ARCHIVO VACION LLAMADO ?nopermitidos? EN LA CARPETA ?/etc/squid/? .
LO QUE QUEDA ES AGREGAR LAS DIRECCIONES IP DE LAS MAQUINAS CLIENTES QUE NO
QUEREMOS QUE TENGAN ACCESO WEB DESDE NUESTRA RED LOCAL.
SI EDITAMOS EL ARCHIVO ?nopermitidos? CON EL COMANDO ?nano /etc/squid/nopermitidos?
DEBERIAMOS VER ALGO PARECIDO A ESTO:
172.16.16.45 172.16.16.233 172.16.16.4 . . . . . 172.16.16.N
PASO 5:
SE DEBEN CREAR LAS REGLAS DE IPTABLES QUE SON NECESARIAS PARA QUE EL PROXY
FUNCIONE EN MODO TRANSPARENTE:
Servodor_Proxy-Firewall
4
La mejor Practica consiste en crear un script de modo que podamos Detener o reiniciar las reglas de
IPTABLES en caso de que deseemos efectuar alguna modificacin de manera rpida y practica. A SU VEZ,
CON ESTA PRACTICA GARANTIZAMOS QUE EN CASO DE REINICIARSE EL SERVIDOR,
CONSERVEMOS LAS REGLAS INTACTAS.
SE CREA EL UN ARCHIVO LLAMADO ?IPTABLES? (O EL NOMBRE QUE SE DESEE) EN LA
CARPETA /ETC/INIT.D CON EL SIGUIENTE COMANDO:
touch /etc/init.d/iptables 1.
ESTO GENERARA UN ARCHIVO VACIO CON EL NOMBRE iptables EN LA CARPETA /etc/init.d/ .
LE DAMOS PERMISOS DE EJECUCIN:
chmod +x /etc/init.d/iptables 1.
CREAMOS LOS ENLACES SIMBOLICOS A LOS RC DEL SISTEMA:
cd /etc/init.d 1.
update-rc.d iptables defaults 1.
EDITAMOS EL ARCHIVO:
nano /etc/init.d/iptables 1.
Y AGREGAMOS LAS SIGUIENTES REGLAS DE IPTABLES:
!/bin/sh 1.
/sbin/iptables -F /sbin/iptables -Z /sbin/iptables -X /sbin/iptables -t nat -F
/sbin/iptables -t nat -A POSTROUTING -s 172.16.16.0/24 -o eth1 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
/sbin/iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
SE GUARDAN LOS CAMBIOS Y SE CIERRA EL ARCHIVO.
NOTA: LO SIGUIENTE DEBE SER TOMADO EN CUENTA:
172.16.16.0/24: CORRESPONDE A LOS DATOS DE NUESTRA RED LOCAL. eth1: CORRESPONDE A
LA INTERFAZ QUE NOS DA SALIDA A INTERNET (INTERFAZ WAN). eth0: CORRESPONDE A LA
INTERFAZ QUE COMUNICA NUESTRA RED LOCAL CON EL SERVIDOR PROXY.
LISTO YA SE TIENE PROXY TRANSPARENTE INSTALADO Y CONFIGURADO PARA UN
FUNCIONAMIENTO BSICO.
PARA MAYOR INFORMACIN DE COMO AGREGAR FUNCIONALIDADES A AL SERVIDOR
Servodor_Proxy-Firewall
5
PROXY CON SQUID, REFERIRSE A SU PAGINA OFICIAL: http://www.squid-cache.org
CONFIGURACION DE FIREWALL CON IPTABLES.
LA ADECUADA CONSTRUCCION DE LAS REGLAS (CADENAS) DE UN FIREWALL IPTABLES
DEPENDERAN DE MULTIPLES FACTORES QUE SE DEBERAN CONSIDERAR DURANTE EL
DISEO DEL SCRIPT. EL MISMO DEBERA SER PENSADO EN FUNCION DE LA TOPOLOGIA
EXISTENTE EN LA RED, EL ROL DEL FIREWALL DENTRO DE LA MISMA (EN CASO DE EXISTIR
MULTIPLES FIREWALLS SI LA TOPOLOGIA ASI LO AMERITA), Y DE LOS SERVICIOS
IMPLEMENTADOS. ASI MISMO LAS POLITICAS DE SEGURIDAD EXISTENTES EN LA
ORGANIZACION DETERMINARAN EL CONJUNTO DE REGLAS A IMPLEMENTAR.
EMPEZEMOS POR ANALIZAR LAS CARACTERISTICAS GENERALES QUE COMPRONDRAN EL
SCRIPT:
Vaciado de reglas 1. 1.
iptables -F iptables -X iptables -Z iptables -t nat -F CUANDO NOS VEAMOS EN LA NECESIDAD DE
DETENER Y REINICIAR LAS REGLAS DE IPTABLES, ES MUY PROBLABLE QUE SEA PORQUE
HEMOS MODIFICADO DE ALGUNA MANERA LA ESTRUCTURA DE LAS MISMAS, POR LO
TANTO ES IMPORTANTE QUE INCLUYAMOS AL INICIO DEL SCRIPT ESTAS SENTENCIAS QUE
NOS PERMITEN INICIALIZAR LOS CONTADORES Y ELIMINAR DE LA MEMORIA LAS
CADENAS (INSTRUCCIONES, REGLAS) QUE HAYAN SIDO PREVIAMENTE CARGADAS. EL
SIGNIFICADO DE CADA UNA DE ESTAS INSTRUCCIONES ES EL SIGUIENTE:
iptables -F (flush): VACIADO DE TODAS AQUELLAS CADENAS QUE HAYAN SIDO DECLARADAS
PREVIAMENTE.
iptables -X (delete-Chain): BORRA DEFINITIVAMENTE DE LA MEMORIA TODAS AQUELLAS
CADENAS QUE HAYAN SIDO PREVIAMENTE VACIADAS, DEJANDO SOLAMENTE LAS REGLAS
POR DEFECTO DE IPTABLES.
iptables -Z (Zero): INICIALIZA TODOS LOS CONTADORES EN CERO, DE MANERA QUE
PODAMOS LLEVAR UN SEGUIMIENTO PRECISO DE LAS COINCIDENCIAS QUE PRODUZCAN
CON LAS REGLAS DEFINIDAS.
iptables -t nat -F (Nat-Flush): VACIADO DE LA TABLA DE TRADUCCIONES, NAT.
Politicas por defecto 1. 1.
iptables -P INPUT (ACCEPT|DROP|REJECT) iptables -P OUTPUT (ACCEPT|DROP|REJECT) iptables -P
FORWARD (ACCEPT|DROP|REJECT) iptables -t nat -P PREROUTING (ACCEPT|DROP|REJECT)
iptables -t nat -P POSTROUTING (ACCEPT|DROP|REJECT)
LAS POLITICAS POR DEFECTO SON AQUELLAS DE CARACTER GLOBAL QUE SE APLICAN EN
EL CASO DE QUE LA VERIFICACION DE UN PAQUETE NO COINCIDA CON NINGUNA DE LAS
REGLAS (CADENAS) DEFINIDAS.
EXISTEN 3 TIPOS DE POLITICAS DE FILTRADO DE PAQUETES POR DEFECTO GENERALES
QUE DEBEMOS CONOCER:
Servodor_Proxy-Firewall
6
INPUT: SE REFIERE A TODOS AQUELLOS PAQUETES QUE TENGAN COMO DESTINO EL
FIREWALL PROPIAMENTE.
OUTPUT: SE REFIERE A TODOS AQUELLOS PAQUETES QUE SE HAYAN ORIGINADO
PROPIAMENTE DESDE EL FIREWALL.
FORWARD: SE REFIERE A TODOS AQUELLOS PAQUETES QUE ATRAVIESAN EL FIREWALL (NI
ORIGINADOS EN EL MISMO NI TENIENDO EL MISMO COMO DESTINO. SE REFIERE A
AQUELLOS PAQUETES QUE EL FIREWALL ENRUTA ENTRE REDES.
EXISTEN 2 TIPOS DE POLITICAS DE NAT POR DEFECTO GENERALES QUE DEBEMOS
CONOCER: PREROUTING Y POSTROUTING, QUE HACEN REFERENCIA AL PROCESO DE
TRADUCCION DE DIRECCIONES APLICADO A LOS PAQUETES AL ENTRAR Y SALIR DEL
FIREWALL.
PARA ESTAS POLITICAS EXISTEN 3 OPCIONES:
ACCEPT: ACEPTAR. DROP: DESCARTAR SIN NOTIFICAR. REJECT: DESCARTAR CON
NOTIFICACION.
EXISTEN DOS APROXIMACIONES COMUNES A LA HORA DE ESTABLECER POLITICAS POR
DEFECTO: ACEPTAR TODO O DENEGAR TODO.
OTRA REGLA POR DEFECTO CUYO USO DEBEMOS CONSIDERAR ES LA SIGUIENTE:
Localhost 1.
/sbin/iptables -A INPUT -i lo -j ACCEPT
DE MANERA QUE ACEPTEMOS EN EL FIREWALL TODO AQUEL TRAFICO QUE SE ORIGINE EN
EL MISMO, CON EL FIN DE PERMITIR EL NORMAL FUNCIONAMIENTO DEL SISTEMA
OPERATIVO Y SUS TECNOLOGIAS DE RED IMPLEMENTADAS.
POR OTRO LADO ES IMPORTANTE QUE ACTIVEMOS LA OPCION DE ENRUTAR EN EL
FIREWALL SI VAMOS A UTILIZAR INSTRUCCIONES FORWARD, ESTO ES BASICO PARA TODO
TIPO DE FIREWALL SALVO LOS FIREWALLS PERSONALES (QUE SOLO POSEEN
INSTRUCCIONES INPUT Y OUTPUT).
Activacion del Forwarding de packetes a traves del firewall 1.
echo 1 > /proc/sys/net/ipv4/ip_forward
UNA VEZ CONSIDERADAS ESTAS INSTRUCCIONES GENERALES, EL ARCHIVO DE SCRIPT
MAS BASICO QUE TENDRIAMOS SERIA EL SIGUIENTE:
!/bin/sh
SCRIPT de IPTABLES - Version -0 1.
Firewall Clasico con politicas por defecto 2.
3. Jorge Cabrera/Carlos Linares/Ivan Lander 4.
jcabrerac@cnti.gob.ve clinares@cnti.gob.ve ilander@cnti.gob.ve 5.
1.
Servodor_Proxy-Firewall
7
Vaciado de reglas 1. 1.
iptables -F iptables -X iptables -Z iptables -t nat -F
Politicas por defecto 1. 1.
iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT iptables -t nat
-P PREROUTING ACCEPT iptables -t nat -P POSTROUTING ACCEPT
Activacion del Forwarding de packetes a traves del firewall 1.
echo 1 > /proc/sys/net/ipv4/ip_forward
Localhost 1.
/sbin/iptables -A INPUT -i lo -j ACCEPT
Fin del script 1.
UNA VEZ ESTABLECIDAS LAS CARACTERISTICAS GENERALES QUE DEBE POSEER UN
FIREWALL CLASICO, Y ANTES DE PROCEDER A CONSIDERAR LAS REGLAS ESPECIFICAS
DEBEMOS CONSIDERAR EL TIPO DE FIREWALL QUE SE DESEA IMPLEMENTAR EN FUNCION
DE LA TOPOLOGIA DE RED:
FIREWALL PERSONAL O DE HOST: ES EL TIPO MAS SENCILLO DE FIREWALL QUE SE PUEDE
IMPLEMENTAR, BASICAMENTE SE BASA EN LOS MECANISMOS DE PROTECCION
IMPLEMENTADOS DIRECTAMENTE SOBRE UN HOST DE RED (ESTACION DE TRABAJO O
SERVIDOR), ESTE TIPO DE FIREWALL UTILIZA SOLO POLITICAS DE TIPO INPUT Y OUTPUT,
DEBIDO A QUE EL TRAFICO SIEMPRE SERA ORIGINADO EN EL MISMO DISPOSITIVO, O LO
TENDRA COMO DESTINO.
FIREWALL PARA UNA RED LAN CON ACCESO A INTERNET: ESTE TIPO DE FIREWALL
NORMALMENTE TIENE DOS INTERFACES, UNA QUE ESTA CONECTADA A LA RED O REDES
INTERNAS Y UNA CONFIGURADA CONTRA LA CONECCION DE ACCESO A INTERNET, EN
ESTE TIPO DE FIREWALL TIENEN PREPONDERANCIA LAS REGLAS ASOCIADAS A FORWARD.
EN CASO DE QUE EL DISPOSITIVO DE RED SOLO TENGA UNA INTERFAZ, SE DEBERAN
SEGUIR LAS INSTRUCCIONES QUE APARECEN MAS ADELANTE EN EL APARTADO IPTABLES
CON VLANS.
FIREWALLS PARA UNA TOPOLOGIA CON DMZ: ESTE TIPO DE FIREWALL POSEE UNA
INTERFAZ ADICIONAL DONDE SE UBICAN LOS SERVIDORES PUBLICOS (WWW, EMAIL),
ENTONCES ESTE TIPO DE FIREWALL POSEE UNA INTERFAZ O CONJUNTO DE INTERFACES
LOCALES, UNA INTERFAZ O CONJUNTO DE INTERFACES QUE COLINDA CON LOS SERVICIOS
DE INTERNET Y UNA INTERFAZ DE SERVICIOS PUBLICOS O DMZ.
IMPLEMENTACION DE FIREWALL IPTABLES CON VLANS: CON REGULARIDAD SUCEDE QUE
LAS NECESIDADES DE INTERFACES EXCEDEN EL NUMERO DE INTERFACES QUE
FISICAMENTE POSEE O PUEDE POSEER UN DISPOSITIVO, EN ESOS CASOS SE DEBEN
CONFIGURAR SUBINTERFACES LOGICAS EN LAS TARJETAS, Y TAMBIEN ES BASTANTE
HABITUAL QUE ESTA MEDIDA SEA ACOMPAADA CON LA IMPLEMENTACION DE
INTERFACES TRONCALES CON SWITCHES QUE MANEJAN VLANS.
Servodor_Proxy-Firewall
8
EN ESTE CASO SE DEBEN SEGUIR LOS SIGUIENTES PASOS:
PASO 1:
aptitude install vlan (se puede usar apt-get install vlan)
ESTE PASO INSTALA EL MDULO DE CONTROL DE VLAN.
PASO 2:
vconfig add interfaz-fisica numero-de-vlan
CON ESTE PASO SE CREARAN TANTAS VLANS ASOCIADAS A UNA INTERFAZ FISICA COMO
NECESITEMOS.
EN CASO DE QUE SE DEBA ELIMINAR ALGUNA VLAN SE PUEDE USAR LA SIGUIENTE
SINTAXIS:
vconfig rem interfaz-fisica numero de vlan 1.
PASO 3:
ifconfig interfaz-fisica.numero-de-vlan
SE DEBERAN CONFIGURAR LAS INTERFACES EN EL ARCHIVO DE CONFIGURACION EN
/ETC/INTERFACES/NETWORK
ESTABLECIMIENTO DE REGLAS ENTRE INTERFACES O VLANS:
UNA VEZ EFECTUADA LA CONFIGURACION BASICA DEL FIREWALL RESTA DETERMINAR
CUALES SON LAS POLITICAS QUE SE DESEA IMPLEMENTAR EN EL FIREWALL, Y PARA ELLO
SE DEBEN CONSIDERAR MUCHOS ASPECTOS: POLITICAS DE SEGURIDAD DE LA
ORGANIZACION EN CASO DE EXISTIR, SERVICIOS IMPLEMENTADOS, DISPOSITIVOS Y
REDES EXISTENTES.
UNA VEZ RECOPILADA LA INFORMACION FUNDAMENTAL (POLITICAS, SERVICIOS
IMPLEMENTADOS, DIRECCIONAMIENTO Y NUMEROS DE PUERTO ASOCIADOS A LOS
SERVICIOS) SE PUEDE PROCEDER CON LA CREACION DE LAS REGLAS:
SINTAXIS GENERAL:
iptables -A (INPUT|OUTPUT|FORWARD) -i (INTERFAZ DE ENTRADA O ORIGEN) -s (RED O HOST
ORIGEN CON EL FORMATO XXX.XXX.XXX.XXX/XX, DIRECCION IP BARRA MASCARA DE
SUBRED) -o (INTERFAZ DE SALIDA O DESTINO) -p (TCP|UDP) -sport (#PUERTO ORIGEN) -dport
(#puerto destino) -j (ACCEPT|DROP|REJECT)
ESTA SINTAXIS A PESAR DE PARECER COMPLEJA ES DE LAS MAS SIMPLES QUE PUEDE
IMPLEMENTARSE CON IPTABLES, A CONTINUACION PRESENTAMOS UN ARCHIVO DE
CONFIGURACION DE EJEMPLO COMENTADO DONDE PUEDE OBSERVARSE LA
Servodor_Proxy-Firewall
9
CONSTRUCCION DE UN SCRIPT CON REGLAS EN UNA TOPOLOGIA DMZ QUE TIENE LAS
SIGUIENTES CARACTERISTICAS:
UN FIREWALL CON DOS INTERFACES eth0 (QUE REPRESENTA LAS REDES LOCALES Y DMZ)
Y UNA eth0 QUE REPRESENTA LA INTERFAZ CONECTADA A INTERNET, LA INTERFAZ eth0 SE
HA SUBDIDIVIDO EN VARIAS INTERFACES CON VLANS IMPLEMENTADAS, a saber:
eth0.50 ES LA RED LOCAL CON LA RED IP 172.16.16.0/24
eth0.100 ES LA DMZ CON LA RED IP 192.168.31.8/29
eth1 ES LA INTERFAZ CONECTADA A INTERNET.
!/bin/sh
SCRIPT de IPTABLES - Version 1.0 1.
Firewall Clasico Basico con Interfaz Outside, Inside y DMZ 2.
3. Jorge Cabrera/Carlos Linares/Ivan Lander 4.
jcabrerac@cnti.gob.ve clinares@cnti.gob.ve ilander@cnti.gob.ve 5.
1.
Vaciado de reglas 1.
iptables -F iptables -X iptables -Z iptables -t nat -F
Politicas por defecto 1.
iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP iptables -t nat -P
PREROUTING DROP iptables -t nat -P POSTROUTING DROP
Activacion del Forwarding de packetes a traves del firewall 1.
echo 1 > /proc/sys/net/ipv4/ip_forward
Localhost 1.
/sbin/iptables -A INPUT -i lo -j ACCEPT
Acceso al Firewall desde la red local 1.
iptables -A INPUT -s 172.16.16.0/24 -i eth0.50 -j ACCEPT
Acceso desde la red local a cualquier destino 1.
iptables -A FORWARD -i eth0.50 -o eth1 -s 172.16.16.0/24 -j ACCEPT
Acceso entre DMZ y Red Local para los servicios DNS POP y SMTP 1.
iptables -A FORWARD -i eth0.100 -o eth0.50 -p udp -s 192.168.31.8/29 --sport 53 --dport 1024:65535 -j
ACCEPT iptables -A FORWARD -i eth0.100 -o eth0.50 -p udp -s 192.168.31.8/29 --sport 110 --dport
1024:65535 -j ACCEPT iptables -A FORWARD -i eth0.100 -o eth0.50 -p udp -s 192.168.31.8/29 --sport 25
--dport 1024:65535 -j ACCEPT
Servodor_Proxy-Firewall
10
Restriccion del acceso de la DMZ a la LAN 1.
iptables -A FORWARD -s 192.168.31.8/29 -d 172.16.16.0/24 -j DROP iptables -A FORWARD -s
172.16.16.0/24 -d 192.168.31.8/29 -j DROP
Restriccion del acceso de la DMZ al propio firewall 1.
iptables -A INPUT -s 192.168.31.8/29 -i eth0.100 -j DROP
Fin del script 1.
PARA VERIFICAR QUE LAS REGLAS DEFINIDAS SE ESTEN IMPLEMENTANDO SE PUEDE
UTILIZAR EL COMANDO iptables -L -n y la variante iptables -L -v permite visualizar el numero de
coincidencias encontradas con cada una de las reglas.
PARA MAYOR INFORMACION SON MUY UTILES LAS SIGUIENTES FUENTES DE
INFORMACION:
MANUAL DE IPTABLES EN LINUX, QUE SE INVOCA CON EL COMANDO man iptables O iptables
-h
PAGINA WEB DEL PROYECTO NETFILTER QUE DESARROLLA IPTABLES:
www.netfilter.org
Servodor_Proxy-Firewall
11

You might also like