Está en la página 1de 24

Universidad Nacional de Ingeniera UNI

Servidor Proxy Deban Squeeze 6.0


Integrantes: Mara Alejandra Parrales Baltodano Ludwin Aarn Meja Carballo Francisco Geovanny Acua Hernndez

27-7-2012

Qu es Proxy? Un proxy, en una red, es un programa o dispositivo que realiza una accin en representacin de otro, esto es, si una mquina A solicita un recurso a una C, lo har mediante una peticin a B; C entonces no sabr que la peticin procedi originalmente de A. Esta situacin estratgica de punto intermedio suele ser aprovechada para soportar una serie de funcionalidades: proporcionar cach, control de acceso, registro del trfico, prohibir cierto tipo de trfico etc. Su finalidad ms habitual es la de servidor proxy, que consiste en interceptar las conexiones de red que un cliente hace a un servidor de destino, por varios motivos posibles como seguridad, rendimiento, anonimato, etc. Esta funcin de servidor proxy puede ser realizada por un programa o dispositivo.

Los servidores proxy no permiten un trfico directo entre las partes.

Qu es Squid? Squid es un popular programa de software libre que implementa un servidor proxy y un dominio para cach de pginas web, publicado bajo licenciaGPL. Tiene una amplia variedad de utilidades, desde acelerar un servidor web, guardando en cach peticiones repetidas a DNS y otras bsquedas para un grupo de gente que comparte recursos de la red, hasta cach de web, adems de aadir seguridad filtrando el trfico. Est especialmente diseado para ejecutarse bajo entornos tipo Unix.

Instalacin y configuracin Proxy-Squid


Para descarga y automticamente instalar Squid debemos hacer clic en Aplicaciones, Accesorios, Terminal.

Para entrar como administrador en la terminal ponemos el comando su nos pedir la contrasea del usuario root.

Lo primero que tenemos que hacer es configurar la ip de nuestro servidor como esttica para ello, en la terminal ponemos el siguiente comando nano /etc/network/interfaces

Abrir un archivo donde vamos a editar las configuraciones de las interfaces de red escribimos los siguiente parmetros.

Guardamos con Ctrl ms O, damos enter y salimos con Ctrl ms X. Dentro de la terminal ponemos el comando apt-get install squid con este comando descargamos e instalamos el paquete Squid.

Para verificar todos los servicios que se estn ejecutando en nuestro servidor, dentro del cual tiene que estar el servicio Squid, ponemos el comando service status-all

Verificamos si Squid se est ejecutando.

Como podemos observar nuestro servicio Squid se est ejecutando porque tiene el signo de + Ahora vamos a crear un archivo, el cual va a contener las pginas web que no van hacer permitidas, en nuestro caso el nombre que le pondremos a nuestro archivo ser bloqueadas, aqu pueden poner el nombre que ustedes deseen. Para crear el archivo, en la terminal ponemos el siguiente comando nano /etc/squid/bloqueadas

Dentro del archivo ponemos las pginas Web que no sern permitidas, en este caso www.youtube.com , www.facebook.com , www.hotmail.com , tambin pueden agregar palabras, a las cuales no se podr tener acceso a la hora de la

bsqueda ya que estas sern bloqueadas, en nuestro caso pondremos sexo y porno, luego Presionamos Ctrl mas O y damos enter, luego Ctrl ms X.

Para poder verificar que efectivamente se han guardado las pginas Web y las palabras que hemos bloqueado en la terminal ponemos el siguiente comando: cat /etc/squid/bloqueadas

Como pueden observar efectivamente nuestro archivo contiene las pginas Web y las palabras que vamos a bloquear.

Debemos de ir a la configuracin del Squid para especificar que el archivo que creamos se emplee como lista de restriccin, para eso utilizamos el comando gedit /etc/squid/squid.conf con este comando editamos el Squid.conf.

Nos mostrara un archivo bastante largo donde tendremos que buscar el INSERT YOUR OWN RULE (inserte tus propias reglas).

Debajo del insert agregamos las siguientes lneas: Visible_hostname Debian.Squeeze acl bloqueadas url_regex '/etc/squid/bloqueadas' http_access allow localhost Agregamos la siguiente lnea despus del And finally deny http_access dany all

visible_hostname Debian.squeeze: Con esto especificamos el nombre de la compaa o administrador en este caso Debian.squeeze acl (lista de acceso) bloqueadas url_regex para indicar la ruta que se encuentra en '/etc/squid/bloqueadas' http_access deny bloqueadas Con esto indicamos que se toma en cuenta el acceso a la lista que pusimos arriba, por medio de http-access, deny para denegar. El nombre de la lista de acceso que es bloqueado. Luego ms abajo donde dice deny all debemos cambiar all por el nombre del (bloqueadas) que indicamos, ya que el deny all bloquea todas las pginas y nosotros lo que queremos es bloquear las que estn en nuestro archivo bloqueadas.

Guardamos la configuracin, y reiniciamos el servicio con el comando /etc/init.d/squid restart

Como podemos observar se ha reiniciado nuestro servidor proxy sin ningn inconveniente, Ahora nos vamos a nuestro cliente Windows en opciones de internet le damos clic en conexiones.

Damos clic en configuracin LAN

Damos clic en usar un servidor proxy, ponemos la IP de nuestro servidor en este caso 192.168.0.20 y ponemos el puerto. El puerto que escucha Squid de manera predeterminada es el puerto 3128, por lo tanto debemos especificar ese puerto. Ahora vamos a verificar que efectivamente se han bloqueado las pginas que indicamos en el archivo de bloqueadas, para eso debemos nos vamos a nuestro cliente Windows que est conectado a esta red, estando en nuestro navegador en la barra de direcciones ponemos una de las pginas que hemos bloqueado en este caso www.youtube.com y nos saldr lo siguiente.

Como podrn observar no tenemos acceso a esta pgina, probremos con una de las palabras: porno.

Que es IPTables IPtables es un sistema de firewall vinculado al kernel de linux que se ha extendido enormemente a partir del kernel 2.4. Iptables no es como un servidor que lo iniciamos o detenemos o que se pueda caer por un error de programacin, iptables est integrado con el kernel, es parte del sistema operativo. Cmo se pone en ejecucin? Realmente lo que se hace es aplicar reglas. Para ello se ejecuta el comando iptables, con el que aadimos, borramos, o creamos reglas. Por ello un firewall de iptables no es sino un simple script en el que se van ejecutando las reglas de firewall.

Como se ve en el grfico, bsicamente se mira si el paquete est destinado a la propia maquina o si va a otra. Para los paquetes (o datagramas, segn el protocolo) que van a la propia maquina se aplican las reglas INPUT y OUTPUT, y para filtrar paquetes que van a otras redes o maquinas se aplican simplemente reglas FORWARD. INPUT, OUTPUT y FORWARD son los tres tipos de reglas de filtrado. Pero antes de aplicar esas reglas es posible aplicar reglas de NAT: estas se usan para hacer redirecciones de puertos o cambios en las IPs de origen y destino. E incluso antes de las reglas de NAT se pueden meter reglas de tipo MANGLE, destinadas a modificar los paquetes; son reglas poco conocidas. Por tanto tenemos tres tipos de reglas en iptables: - MANGLE - NAT: reglas PREROUTING, POSTROUTING

- FILTER: reglas INPUT, OUTPUT, FORWARD.

Reglas Iptables Las reglas para el filtrado de paquetes se ponen en funcionamiento ejecutando el comando iptables. Con frecuencia se utilizan los aspectos siguientes del paquete como el criterio: Tipo de paquete Dicta qu tipo de paquetes filtra el comando. Fuente/Destino del paquete Especfica cules paquetes filtra el comando basndose en el origen o destino del paquete. Objetivo Indica qu accin es tomada en paquetes que cumplen los criterios mencionados anteriormente. Estructura de las Opciones IPTables Muchos comandos iptables tienen la siguiente estructura:
iptables [-t <table-name>] <command> <chain-name> <parameter-1> \ <option-1> <parameter-n> <option-n>

La opcin <table-name> permite al usuario seleccionar una tabla diferente a la tabla predeterminada filter a usar con el comando. La opcin <command> indica una accin especfica a realizar, tal como anexar o eliminar la regla especificada por la opcin <chain-name>. Luego de la opcin <chain-name> se encuentran un par de parmetros y opciones que definen qu pasar cuando un paquete coincide con la regla. Cuando miramos la estructura de un comando iptables, es importante recordar que, al contrario que la mayora de los comandos, la longitud y complejidad de un comando iptables puede cambiar en funcin de su propsito. Un comando para borrar una regla de una cadena puede ser muy corto, mientras que un comando diseado para filtrar paquetes de una subred particular usando un conjunto de parmetros especficos y opciones puede ser mucho ms largo. Al crear comandos iptables puede ser de ayuda reconocer que algunos parmetros y opciones pueden crear la necesidad de utilizar otros parmetros y opciones para especificar ms an la peticin de la opcin anterior. Para construir una regla vlida, esto deber continuar hasta que todos los parmetros y opciones que requieran otro conjunto de opciones hayan sido satisfechos.

Los comandos de iptables son los siguientes: -A Aade la regla iptables al final de la cadena especificada. Este es el comando utilizado para simplemente aadir una regla cuando el orden de las reglas en la cadena no importa. -C Verifica una regla en particular antes de aadirla en la cadena especificada por el usuario. Este comando puede ser de ayuda para construir reglas iptables complejas pidindole que introduzca parmetros y opciones adicionales. -D Borra una regla de una cadena en particular por nmero (como el 5 para la quinta regla de una cadena). Puede tambin teclear la regla entera e iptables borrar la regla en la cadena que corresponda. -E Renombra una cadena definida por el usuario. Esto no afecta la estructura de la tabla. -F Libera la cadena seleccionada, que borra cada regla de la cadena. Si no se especifica ninguna cadena, este comando libera cada regla de cada cadena. -h Proporciona una lista de estructuras de comandos, as como tambin un resumen rpido de parmetros de comandos y opciones. -I Inserta una regla en una cadena en un punto especificado por un valor entero definido por el usuario. Si no se especifica ningn nmero, iptables colocar el comando en el tope de la cadena. -L Lista todas las reglas de la cadena especificada tras el comando. Para ver una lista de todas las reglas en todas las cadenas en la tabla por defecto filter, no especifique ninguna cadena o tabla. De lo contrario, la sintaxis siguiente deber utilizarse para listar las reglas en una cadena especfica en una tabla en particular. -N Crea una nueva cadena con un nombre especificado por el usuario. -P Configura la poltica por defecto para una cadena en particular, de tal forma que, cuando los paquetes atraviesen la cadena completa sin cumplir ninguna regla, sern enviados a un objetivo en particular, como puedan ser ACCEPT o DROP. -R Reemplaza una regla en una cadena particular. El nmero de la regla debe ser especificado despus del nombre de la cadena. La primera regla en una cadena corresponde a la regla nmero uno. -X Borra una cadena especificada por el usuario. No se permite borrar ninguna de las cadenas predefinidas para cualquier tabla.

-Z Pone ceros en los contadores de byte y de paquete en todas las cadenas de una tabla en particular. Opciones de parmetros de iptables Una vez que se especifiquen ciertos comandos iptables, incluyendo aquellos para aadir, anexar, eliminar, insertar o reemplazar reglas dentro de una cadena, se requieren parmetros para construir una regla de filtrado de paquetes. -c Resetea los contadores de una regla en particular. Este parmetro acepta las opciones PKTS y BYTES para especificar qu contador hay que resetear. -d Configura el nombre de la mquina destino, direccin IP o red de un paquete que coincide con la regla. Cuando se coincida una red, se soportan los siguientes formatos de direcciones IP o mscaras de red: N.N.N.N/M.M.M.M Donde N.N.N.N es el rango de direcciones IP y M.M.M.M es la mscara de la red. N.N.N.N/M Donde N.N.N.N es el rango de direcciones IP y M es la mscara de bit. -f Aplica esta regla slo a los paquetes fragmentados. Usando la opcin! despus de este parmetro, nicamente se harn coincidir los paquetes no fragmentados. -i Configura la interfaz de red entrante, tal como eth0 o ppp0. Con iptables, este parmetro opcional puede ser usado solamente con las cadenas INPUT y FORWARD cuando es usado con la tabla filter y la cadena PREROUTING con las tablas nat y mangle. Este parmetro tambin soporta las siguientes opciones especiales: El carcter de exclamacin! Invierte la directriz, es decir, se excluye de esta regla cualquier interfaz especificada. El carcter de suma + Un carcter tipo comodn utilizado para coincidir todas las interfaces con una cadena de caracteres especificada. Por ejemplo, el parmetro -i eth+ aplicar esta regla a cualquier interfaz Ethernet pero excluir cualquier otra interfaz, tal como, ppp0. Si el parmetro -i se utiliza sin especificar ninguna interfaz, todas las interfaces estarn afectadas por la regla.

-j Salta a un objetivo particular cuando un paquete coincide con una regla particular. Los objetivos vlidos a usar despus de la opcin -j incluyen las opciones estndar (ACCEPT, DROP, QUEUE y RETURN) as como tambin las opciones extendidas que estn disponibles a travs de los mdulos cargados por defecto con el paquete RPM de Red Hat Enterprise Linux iptables, como LOG, MARK y REJECT, entre otros. Consulte la pgina del manual de iptables para ms informacin sobre esto y otros objetivos. Puede tambin dirigir un paquete coincidiendo esta regla a una cadena definida por el usuario fuera de la cadena actual, para aplicar otras reglas al paquete. Si no especifica ningn objetivo, el paquete pasa la regla sin llevar a cabo ninguna accin. A pesar de todo, el contador para esta regla se sigue incrementando en uno. -o Configura la interfaz de red de salida para una regla y puede ser usada solamente con las cadenas OUTPUT y FORWARD en la tabla de filtro y la cadena POSTROUTING en las tablas nat y mangle. Estos parmetros de opciones son los mismos que aquellos de la interfaz de entrada (-i). -p Configura el protocolo IP para la regla, el cual puede ser icmp, tcp, udp, o all, para coincidir todos los protocolos soportados. Adems, se puede usar cualquier protocolo listado en /etc/protocols. Si esta opcin es omitida cuando se est creando una regla, la opcin all es la opcin por defecto. -s Configura la fuente para un paquete particular usando la misma sintaxis que el parmetro (-d). Crear un Firewall con iptables Para proteger una mquina que tiene conexin a internet o bien est en una red local, lo nico que tenemos que hacer es crear un script de Shell en el que iremos aplicando las reglas y luego debemos configurar el script de tal manera que se carguen las reglas cada vez que cargue la mquina, para ello seguiremos los siguientes pasos.

1. Abrir una terminal de Linux

2. Registrarse como usuario administrador con el comando su e introduciendo la clave de administrador colocada al momento de la instalacin del Sistema.

3. Luego crearemos nuestro script con el editor de texto nano o con cualquier otro editar que se tenga, para eso necesitamos especificar la ruta y nombre

de nuestro script de la /ruta/del/archivo/nombrearchivo.sh

siguiente

forma

#nano

4. Presionamos la tecla Enter y nos aparece nuestro archivo miscript.sh vaco, lo que nos indica que ahora podemos editar el archivo y agregar nuestras reglas Iptables, en nuestro archivo podemos incluir comentarios, delimitados por el carcter # y tambin podemos escribir mensajes de tal manera que cuando el archivo sea ejecutado nos muestre mensajes sobre las reglas que estar aplicando. Los mensajes los escribiremos de la siguiente forma echo n Mensaje (el n indica que una vez escrito el mensaje debe pasar a la siguiente lnea). Debemos empezar incluyendo las siguientes lneas a nuestro archivo, obligatorio. #!/bin/sh - Indica que nuestro archivo es un script que contiene comandos que pueden ser interpretados por el sistema operativo. Luego podemos escribir comentarios sobre el funcionamiento del script delimitados con el carcter #.

5. Luego podemos ir agregando nuestras reglas, las cuales deben de colocarse primeramente las permisivas y posteriormente las de filtrado.

6. Guardamos los cambios con la combinacin de teclas ctrl + O y salimos del editor con las teclas ctrl + x 7. Para visualizar el contenido del script utilizamos el comando cat pasndole la ruta del archivo, ejemplo cat /ruta/del/archivo/miarchivo.sh

8. Finalmente solo basta con ejecutar el script con el comando sh /ruta/del/archivo/miscript.sh y podemos verificar con el comando iptables L que nuestras reglas son agregadas satisfactoriamente.

El archivo de configuracin de las iptables puede ser tan grande y complejo a como lo desees, todo depende de que reglas y polticas deseas definir, aqu mostramos un archivo de configuracin un poco ms complejo, de tal manera que puedas ver la flexibilidad de trabajar con las iptables. Ejemplo de un Script ms Complejo. #!/bin/sh ## SCRIPT de IPTABLES ## Proteger Maquina Local echo -n Aplicando Reglas ## FLUSH de reglas iptables -F iptables -X iptables -Z iptables -t nat -F ## Establecemos politica por defecto iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT iptables -t nat -P PREROUTING ACCEPT iptables -t nat -P POSTROUTING ACCEPT ## Empezamos a filtrar # El localhost se deja (por ejemplo conexiones locales a mysql) /sbin/iptables -A INPUT -i lo -j ACCEPT # A nuestra IP le dejamos todo iptables -A INPUT -s 192.168.0.1 -j ACCEPT # Podemos dejar libre el puerto ftp para cierta maquina iptables -A INPUT -s 192.168.0.5 -p tcp -dport 20:21 -j ACCEPT # El puerto 80 de www debe estar abierto, es un servidor web. iptables -A INPUT -p tcp --dport 80 -j ACCEPT # Y el resto, lo cerramos iptables -A INPUT -p tcp --dport 20:21 -j DROP iptables -A INPUT -p tcp --dport 3306 -j DROP

iptables -A INPUT -p tcp --dport 22 -j DROP iptables -A INPUT -p tcp --dport 10000 -j DROP echo " OK . Verifique que lo que se aplica con: iptables -L -n" # Fin del script

También podría gustarte