CONFIGURACION PROXY SQUID EN LINUX Y CONFIGURACION FIREWALL SIMPLE Instalación y Configuración de un servidor Proxy con En esta práctica se pretende instalar y configurar un servidor Proxy en Linux con Squid y un cortafuegos GuFW en el servidor Ubuntu. La administración del proxy se realizara mediante Webmin. En el servidor Proxy se creara una regla de acceso donde se prohibe la entrada a páginas relacionadas con sexo, pornografía, etc. El cortafuegos se configurara como permisivo y solo se cortaran los accesos entrantes y salientes a la aplicación amule como ejemplo. El documento contiene los siguientes apartados: 1. 2. 3. 4. Instalación del servidor Proxy y GuFW. Instalación de Webmin. Configuración Squid y pruebas realizadas. Configuración de GufW y pruebas. JUAN C TIRADO 1 CONFIGURACION PROXY SQUID EN LINUX Y CONFIGURACION FIREWALL SIMPLE Instalación del servidor Proxy y GuFW. Para la instalación del firewall GuFW abriremos una sesión de la terminal Bash en nuestra maquina Ubuntu y desde la misma ejecutaremos el comando “sudo aptitude install gufw” tal y como se aprecia en la captura siguiente, el sistema se encargara de descargar los paquetes necesarios para la instalación, y nos solicitara confirmación para la instalación, pulsaremos “y”… Acto seguido y como se aprecia a continuación el sistema comenzara la instalación en sí de GuFW… JUAN C TIRADO 2 CONFIGURACION PROXY SQUID EN LINUX Y CONFIGURACION FIREWALL SIMPLE Una vez termine la instalación de los paquetes que componen el firewall y los halla configurado, el sistema nos devuelve el control de la terminal bash, como se aprecia en la siguiente captura. Y el sistema nos habrá creado un lanzador a GuFW en Sistema, Administración tal y como se puede comprobar en la siguiente captura. Con esto habremos terminado la instalación del Cortafuegos GuFW. A continuación procederemos a la instalación del servidor proxy Squid en el sistema, para ello lo documentaremos 3 procedimientos de instalación distintos para el servidor Squid. JUAN C TIRADO 3 CONFIGURACION PROXY SQUID EN LINUX Y CONFIGURACION FIREWALL SIMPLE El primer procedimiento de descarga se realizara desde el Gestor de paquetes Synaptic, en el cual una vez iniciado desde sistema, administración, gestor de paquetes synaptic, introduciremos en el cuadro de búsqueda “squid”, y pulsaremos buscar tal y como se aprecia en la captura siguiente. El gestor de paquetes nos mostrara el resultado de la búsqueda y marcaremos para la instalación squid, el cual seleccionara los paquetes adicionales necesarios para su funcionamiento, y haremos clic en aplicar. JUAN C TIRADO 4 CONFIGURACION PROXY SQUID EN LINUX Y CONFIGURACION FIREWALL SIMPLE Una vez realizado lo anterior comenzara la instalación de los paquetes de Squid, y si pulsamos en detalles nos mostrara los detalles de la instalación mediante una consola. JUAN C TIRADO 5 CONFIGURACION PROXY SQUID EN LINUX Y CONFIGURACION FIREWALL SIMPLE Cuando finalice la instalación el servidor proxy Squid se habrá instalado en el sistema, otro procedimiento para la instalación de Squid es “apt-get install squid” tal y como se observa… JUAN C TIRADO 6 CONFIGURACION PROXY SQUID EN LINUX Y CONFIGURACION FIREWALL SIMPLE El ultimo procedimiento de instalación del servidor proxy Squid será llevado a cabo desde Unused Modules de la herramienta de administración web Webmin, (de la cual documentaremos su instalación en otro punto) donde seleccionaremos Squid Proxy Server en la lista de módulos no usados, y haremos clic en él, con lo que se nos mostrara la pantalla de la captura, en la cual habremos de hacer clic en “click here” (marcado en cuadro rojo) para que se realice su instalación. JUAN C TIRADO 7 CONFIGURACION PROXY SQUID EN LINUX Y CONFIGURACION FIREWALL SIMPLE Una vez realizado el clic se procede a la instalación del servidor de manera no asistida por el usuario, el sistema entiende que le has dado competencias para realizar la instalación sin necesidad de confirmación u otra intervención del usuario (notese la opcion en los parámetros de instalación “-y --force -yes -f” a continuación de apt-get) JUAN C TIRADO 8 CONFIGURACION PROXY SQUID EN LINUX Y CONFIGURACION FIREWALL SIMPLE El sistema nos informa no solo de la correcta instalación del servidor en sí, sino también de los paquetes necesarios para el correcto funcionamiento del servidor proxy tal y como se muestra en las siguientes capturas, instalación correcta de squid-langpack, squid-common, el propio squid, tal y como se muestra a continuación. JUAN C TIRADO 9 CONFIGURACION PROXY SQUID EN LINUX Y CONFIGURACION FIREWALL SIMPLE Para por último y una vez instalado el servidor poder acceder a la interfaz gráfica de administración y configuración que provee Webmin. JUAN C TIRADO 1 0 CONFIGURACION PROXY SQUID EN LINUX Y CONFIGURACION FIREWALL SIMPLE Instalación de Webmin. Para la instalación de webmin habremos de proceder de la siguiente manera, podremos bien dirigirnos directamente a la página de Webmin (www.webmin.com) y seleccionar downloads… En esa página procederemos a seleccionar la descarga que sea compatible con nuestra distro de Linux, en este caso Debian para debían, Ubuntu y otros derivados Linux, tal y como se observa en la captura, haremos clic para descargar. JUAN C TIRADO 1 1 CONFIGURACION PROXY SQUID EN LINUX Y CONFIGURACION FIREWALL SIMPLE Una vez descargada y en el sistema Ubuntu si hacemos doble clic sobre el archivo, aparecerá la opción de “abrir con” (tal y como se aprecia en la captura) el instalador de paquetes Gdebi que es el predeterminado para instalar descargas con la extensión “.deb” como es el caso de nuestra descarga “webmin_1620_all.deb”, pulsamos aceptar. JUAN C TIRADO 1 2 CONFIGURACION PROXY SQUID EN LINUX Y CONFIGURACION FIREWALL SIMPLE Cargara el instalador de paquetes GDebi y haremos clic en Instalar paquete arriba a la derecha… Lo que dará comienzo a la instalación propiamente dicha, si hacemos clic en terminal veremos el progreso de la instalación. Continuando la instalación de webmin… JUAN C TIRADO 1 3 CONFIGURACION PROXY SQUID EN LINUX Y CONFIGURACION FIREWALL SIMPLE Realizando la configuración de administrador… JUAN C TIRADO 1 4 CONFIGURACION PROXY SQUID EN LINUX Y CONFIGURACION FIREWALL SIMPLE Y notificándonos la finalización exitosa de la instalación de webmin. JUAN C TIRADO 1 5 CONFIGURACION PROXY SQUID EN LINUX Y CONFIGURACION FIREWALL SIMPLE Los pasos para instalar Webmin en Ubuntu desde la terminal son los siguientes, ejecutaremos “sudo aptitude update”, e instalamos una serie de paquetes que nos hacen falta para la instalación de Webmin y para que se configure con SSL mediante “sudo aptitude install perl libnet-ssleay-perl openssl libauthen-pam-perl libpam-runtime libio-pty-perl apt-show-versions” nos aseguraremos de estar en nuestro directorio personal “home” mediante el comando “wget http://downloads.sourceforge.net/webadmin/webmin_1.620_all” descargaremos la última versión de webmin y procederemos a su instalación mediante el comando “sudo dpkg -i webmin_1.620_all.deb” Una vez instalado podemos acceder a la interfaz web de Webmin usando un navegador y escribiendo la dirección IP del equipo donde está instalado seguida del puerto donde está escuchando, por defecto, el 10.000. Eso sí, debemos estar atentos porque en vez de usar el protocolo HTTP, usaremos el HTTPS, en nuestro caso la IP será https://192.168.0.199:10000 o lo que es lo mismo https://servidorweb:10000. Nos encontraremos con la siguiente advertencia si accedemos desde Firefox y añadiremos una excepción, por lo que hacemos clic sobre Obtener certificado y después sobre Confirmar excepción de seguridad. JUAN C TIRADO 1 6 CONFIGURACION PROXY SQUID EN LINUX Y CONFIGURACION FIREWALL SIMPLE Iniciaremos sesión en Webmin y nuestro nombre de usuario será el usuario del sistema con privilegios de administrador, en este caso sr05 y como clave 1. Y así accedemos a la interfaz de Webmin. JUAN C TIRADO 1 7 CONFIGURACION PROXY SQUID EN LINUX Y CONFIGURACION FIREWALL SIMPLE Configuración Squid y pruebas realizadas. Para la configuración de Squid proxy server se ha partido de cero sin que existiera ninguna “acl” ni restricción proxy en el servidor, habiendo suprimido todas aquellas que aparecían por defecto en la configuración del mismo. Una vez realizado esto, haremos clic en Access Control (marcado en cuadro rojo en la captura) para proceder a configurar nuestras listas de control de accesos. Una vez en la pantalla de Control de Acceso, para crear una nueva lista de control de acceso habremos de seleccionar el tipo de lista en el desplegable de la derecha (marcado rojo), y una vez seleccionado el tipo pulsar el botón crear nuevo de la izquierda. (Marcado azul) JUAN C TIRADO 1 8 CONFIGURACION PROXY SQUID EN LINUX Y CONFIGURACION FIREWALL SIMPLE Para definir la siguiente lista de control de acceso seleccionaremos el tipo Dirección de Cliente (client address) y pulsaremos crear nuevo, una vez nos presenta la imagen siguiente, en esta ocasión para el nombre de la lista (acl name) introduciremos “all” es una acl que verifica todos los equipos de la red, es equivalente a “acl all src 0.0.0.0/0.0.0.0” Posteriormente se utilizara para establecer una política preestablecida para denegarlo o aceptarlo todo, por lo tanto introduciremos 0.0.0.0 en el espacio (From ip), el espacio hasta ip (to ip) lo dejaremos vacio, y por ultimo introduciremos 0.0.0.0 en el espacio de mascara de red (netmask), y acto seguido pulsaremos salvar, y volveremos a acl haciendo clic en return to acls. JUAN C TIRADO 1 9 CONFIGURACION PROXY SQUID EN LINUX Y CONFIGURACION FIREWALL SIMPLE La siguiente lista de control de acceso seleccionaremos el tipo Dirección de Cliente (client address) y pulsaremos crear nuevo, una vez nos presenta la imagen siguiente, en esta ocasión para el nombre de la lista (acl name) introduciremos “localhost” y en el espacio desde ip (from ip) introduciremos la ip loopback del sistema 127.0.0.1 esta lista tiene por objeto registrar nuestra maquina como origen de conexiones y acto seguido pulsaremos salvar, y volveremos a acl haciendo clic en return to acls. JUAN C TIRADO 2 0 CONFIGURACION PROXY SQUID EN LINUX Y CONFIGURACION FIREWALL SIMPLE Para la siguiente lista de control de acceso seleccionaremos el tipo “url_regex” el cual permite especificar expresiones regulares para comprobar una url completa, desde el http:// inicial, y pulsaremos crear nuevo, en el nombre de esta lista introduciremos las iniciales de nuestro nombre y apellidos, en este caso JCTS, marcaremos la opción de ignore case para que ignore JUAN C TIRADO 2 1 CONFIGURACION PROXY SQUID EN LINUX Y CONFIGURACION FIREWALL SIMPLE las mayúsculas, no introduciremos nada en el cuadro de expresiones, y en la última fila “store acl values in file” almacenar valores en archivo marcaremos “separate file” archivo separado y haremos clic en el cuadro con los tres puntos para seleccionar el archivo de configuración y su ubicación y acto seguido pulsaremos salvar, y volveremos a acl haciendo clic en return to acls. Previamente a la selección del archivo que contendrá las expresiones a comprobar, habrá que crearlo e introducir en él lo que queramos comprobar, en este caso queremos que se bloquee el acceso a las páginas que contengan pornografía, para conseguirlo crearemos mediante la terminal bash un archivo llamado “porno.acl” en la carpeta “/etc/squid/”, para ello desde la terminal realizaremos “cd /etc/squid” y una vez en la carpeta deseada “nano porno.acl” con lo que nos creara dicho archivo. Una vez en dicho archivo el cual estamos editando añadiremos tantas expresiones como deseemos en este caso se han incluido 10 urls de páginas de contenido pornográfico, y aparte de estas 18 expresiones que pudieran conducir a una búsqueda de contenido pornográfico por medio de un buscador cualquiera, una vez configurado a nuestro gusto el archivo JUAN C TIRADO 2 2 CONFIGURACION PROXY SQUID EN LINUX Y CONFIGURACION FIREWALL SIMPLE pulsaremos control+o para guardar el contenido escrito en el archivo seleccionado y control+x para salir de nano. Una vez realizado lo anterior el aspecto que tendrá la pantalla de listas de control de acceso será el de la captura siguiente, una vez aquí seleccionaremos la pestaña “Proxy restrictions” (marcada en rojo) y haremos clic en ella. JUAN C TIRADO 2 3 CONFIGURACION PROXY SQUID EN LINUX Y CONFIGURACION FIREWALL SIMPLE Una vez en Editar restricciones de proxy, crearemos dos reglas de control de acceso, la primera de ellas será “allow” autorizar y seleccionaremos la acl “all” con ello habremos conseguido JUAN C TIRADO 2 4 CONFIGURACION PROXY SQUID EN LINUX Y CONFIGURACION FIREWALL SIMPLE una regla en la que todos tengan acceso, sin que se realice ninguna comprobación de expresión. Y a continuación crearemos la regla que comprobara las expresiones que hemos introducido en el archivo y si coincide alguna de ellas no permitirá la conexión, para ello seleccionaremos “deny” denegar y en la lista de coincidencias acl (match acl) seleccionaremos nuestra lista de control de acceso “JCTS”, y en la lista de no coincide acl (don´t match acl) localhost que es el equipo origen de las conexiones. JUAN C TIRADO 2 5 CONFIGURACION PROXY SQUID EN LINUX Y CONFIGURACION FIREWALL SIMPLE Solo queda ordenar las reglas de acceso para un correcto funcionamiento de nuestro servidor proxy squid, para ello por medio de las flechas pondremos en primer lugar la regla “deny JCTS!localhost” por encima de “allow all”, ya que si no se realizase esto no se comprobaría expresión alguna, ya que si no se coloca la regla más restrictiva primero, no pasa a analizar la segunda regla. Con ello tendríamos configurado el servidor proxy squid solo deberíamos pulsar “apply changes” , a continuación “stop squid” y una vez parado el servidor ponerlo en marcha de nuevo haciendo clic en “start squid”. JUAN C TIRADO 2 6 CONFIGURACION PROXY SQUID EN LINUX Y CONFIGURACION FIREWALL SIMPLE Una vez configurado y en marcha nuestro servidor proxy, solo nos queda configurar nuestro navegador para que haga uso de él, para ello en Firefox, en la opción de la barra de menús Editar haremos clic en preferencias, en la ventana que cargara, haremos clic en avanzado, y una vez allí, seleccionaremos la pestaña red en la que haremos clic en configuración. En la ventana de configuración de conexión, seleccionaremos la configuración manual del proxy e introduciremos los datos del mismo, nuestra dirección ip 192.168.0.199 y el puerto de escucha es el definido por defecto para squid 3128, hacer notar que se configurara el no usar proxy para localhost ni para 127.0.0.1 de manera automática. Una vez configurado pulsaremos aceptar. JUAN C TIRADO 2 7 CONFIGURACION PROXY SQUID EN LINUX Y CONFIGURACION FIREWALL SIMPLE PRUEBAS En Firefox una vez realizado lo anterior, introduciremos la url de una página pornográfica, la cual hemos hecho mención específica dentro del archivo “porno.acl” en concreto es.pornhub.com, comprobamos que el proxy bloquea el acceso a dicha página. Lo mismo ocurre con otra url nombrada en el archivo, www.babosas.com también es bloqueado por el proxy. JUAN C TIRADO 2 8 CONFIGURACION PROXY SQUID EN LINUX Y CONFIGURACION FIREWALL SIMPLE Comprobaremos ahora si la búsqueda en google de una de las expresiones nombradas en el archivo nos devuelve algún tipo de dirección, en este caso haremos la búsqueda con la expresión “sex”, y comprobamos como ha sido bloqueada por squid. Lo mismo sucede con otra expresión incluida también en el archivo, en este caso “anal”, que también son bloqueados los resultados por squid. JUAN C TIRADO 2 9 CONFIGURACION PROXY SQUID EN LINUX Y CONFIGURACION FIREWALL SIMPLE Sin embargo cualquier otra búsqueda no coincidente con las expresiones del archivo “porno.acl” devuelve resultados y permiten el acceso normalmente, como se aprecia en la imagen. JUAN C TIRADO 3 0 CONFIGURACION PROXY SQUID EN LINUX Y CONFIGURACION FIREWALL SIMPLE Por ultimo una captura de ventana del sistema con una búsqueda bloqueada por el servidor proxy, una búsqueda no bloqueada, la página de inicio de Firefox, y la información de la conexión del sistema. JUAN C TIRADO 3 1 CONFIGURACION PROXY SQUID EN LINUX Y CONFIGURACION FIREWALL SIMPLE Configuración de GufW y pruebas. Para la configuración de GuFW primero lo iniciaremos, por lo que iremos a sistema, administración, seleccionaremos configuración del cortafuegos. Se nos solicitara que introduzcamos nuestra contraseña… Con lo que se cargara nuestro cortafuegos, lo activaremos lo configuraremos en modo permisivo (marcado en rojo), y pulsaremos el botón añadir para introducirle las reglas que deseamos (marcado en azul). JUAN C TIRADO 3 2 CONFIGURACION PROXY SQUID EN LINUX Y CONFIGURACION FIREWALL SIMPLE Seleccionaremos la opción de Mostrar acciones extendidas y podremos escoger entre introducir las reglas pre configuradas en las cuales solo habremos de seleccionar el número de orden de la regla, si la regla es permitir o denegar, la conexión entrante o saliente, con registro sin registro o registro completo, si es un programa o servicio y el nombre del programa de una lista de varios. El modo simple el cual podremos seleccionar el número de orden de la regla, si la regla es permitir o denegar, el tipo de trafico entrante o saliente, con registro sin registro o registro completo, el protocolo TCP, UDP o ambos, y el nombre del programa. Y por último el modo Avanzado el número de orden de la regla, si la regla es permitir o denegar, el tipo de tráfico entrante o saliente, con registro sin registro o registro completo, el protocolo TCP, UDP o ambos, la dirección ip de inicio y la dirección ip del final así como los puertos que deseamos filtrar. En este caso hemos elegido la opción avanzada si bien hemos deseleccionado la opción mostrar acciones extendidas, y acto seguido hemos pasado a denegar la conexión entrante del protocolo TCP en la dirección ip 192.168.0.199 en el puerto 4662 que es el puerto de transferencias cliente a cliente P2P de amule por defecto. JUAN C TIRADO 3 3 CONFIGURACION PROXY SQUID EN LINUX Y CONFIGURACION FIREWALL SIMPLE Hemos pasado a denegar la conexión saliente del protocolo TCP en la dirección ip 192.168.0.199 en el puerto 4662 que es el puerto de transferencias cliente a cliente P2P de amule por defecto. Hemos pasado a denegar la conexión entrante del protocolo UDP en la dirección ip 192.168.0.199 en el puerto 4665 que es el puerto utilizado para recibir y enviar peticiones de búsqueda globales. (Éste siempre es el puerto anterior +3) Hemos pasado a denegar la conexión saliente del protocolo UDP en la dirección ip 192.168.0.199 en el puerto 4665 que es el puerto utilizado para recibir y enviar peticiones de búsqueda globales. JUAN C TIRADO 3 4 CONFIGURACION PROXY SQUID EN LINUX Y CONFIGURACION FIREWALL SIMPLE Hemos pasado a denegar la conexión entrante del protocolo UDP en la dirección ip 192.168.0.199 en el puerto 4672 que es el puerto utilizado para el protocolo eMule extendido: Queue Rating, File Reask Ping, etc. Hemos pasado a denegar la conexión saliente del protocolo UDP en la dirección ip 192.168.0.199 en el puerto 4672 que es el puerto utilizado para el protocolo eMule extendido: Queue Rating, File Reask Ping, etc. Quedando GuFW configurado con las siguientes reglas. JUAN C TIRADO 3 5 CONFIGURACION PROXY SQUID EN LINUX Y CONFIGURACION FIREWALL SIMPLE Con anterioridad a esto se instaló en el sistema el cliente aMule. Para proceder a la prueba de nuestro firewall, iniciaremos aMule desde aplicaciones, internet, aMule, hacer constar que a modo de prueba se ha utilizado aMule en el equipo para que comenzara a conectarse y a descargar como se observara a continuación. JUAN C TIRADO 3 6 CONFIGURACION PROXY SQUID EN LINUX Y CONFIGURACION FIREWALL SIMPLE Obsérvese que se encuentran dos descargas activas en aMule, y que la fecha de la última recepción de ambas es 17/02/2013 a las 22.36 y las 22.31 respectivamente. Observar que en las estadísticas de aMule se observa como a lo largo de la sesión 26.48 minutos no se ha descargado de la red, ni subido nada a la misma por parte de aMule, y en la JUAN C TIRADO 3 7 CONFIGURACION PROXY SQUID EN LINUX Y CONFIGURACION FIREWALL SIMPLE esquina inferior izquierda de aMule ha saltado el aviso de ID baja (marcado en rojo) esto indica que no ha sido posible establecer una comunicación correcta entre dos usuarios lo que ocasiona que descargas lentas, e incluso hay servidores que eliminan las fuentes con ID baja. También se observa que la red Kad se encuentra tras cortafuegos en la parte inferior derecha. Observar que el índice de descarga y subida no está disponible, que no existen ni subidas ni descargas activas… JUAN C TIRADO 3 8 CONFIGURACION PROXY SQUID EN LINUX Y CONFIGURACION FIREWALL SIMPLE JUAN C TIRADO 3 9