Instalación Servidor Proxy No Transparente
Instalación de Servidor Proxy no Transparente.odt (417,7 kB)
Instalación de Servidor Proxy no Transparente
Un proxy, en una red informática, es un programa o dispositivo que realiza una acción en representación de otro, esto es, si una hipotética máquina A solicita un recurso a una C, lo hará mediante una petición a B; C entonces no sabrá que la petición procedió originalmente de A. Esta situación estratégica de punto intermedio suele ser aprovechada para soportar una serie de funcionalidades: proporcionar caché, control de acceso, registro del tráfico, prohibir cierto tipo de tráfico, etc.
Su finalidad más 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 función de servidor proxy puede ser realizada por un programa o dispositivo.
El proxy puede servir para implementar funciones de filtrado de contenidos. Para ello es necesaria la configuración de una serie restricciones que indiquen lo que no se permite. Observar que esta funcionalidad puede ser aprovechada no sólo para que ciertos usuarios no accedan a ciertos contenidos sino también para filtrar ciertos ficheros que se pueden considerar como peligrosos como pueden ser virus y otros contenidos hostiles servidos por servidores web remotos.
Acerca de Squid
Squid es un Servidor Intermediario (Proxy) de alto desempeño que se ha venido desarrollando desde hace varios años y es hoy en día un muy popular y ampliamente utilizado entre los sistemas operativos como GNU/Linux y derivados de Unix. Es muy confiable, robusto y versátil y se distribuye bajo los términos de la Licencia Pública General GNU (GNU/GPL). Siendo sustento lógico libre, está disponible el código fuente para quien así lo requiera.
Squid consiste de un programa principal como servidor, un programa para búsqueda en servidores DNS, programas opcionales para reescribir solicitudes y realizar autenticación y algunas herramientas para administración y y herramientas para clientes.
Instalación
Comenzaremos instalando squid. Para ello digitamos en una terminal:
yum -y install squid
Configuración del archivo squid.config de squid
Ubicamos la carpeta donde esta instalado el servidor y procedemos a configurar el archivo squid.conf. Se cambia la configuración del Squid con las respectivas restricciones. Par ello:
gedit /etc/squid/squid.conf
El archivo de configuración de squid default contiene la configuración mínima recomendada y la función de caché de calamar funcionará sin realizar ningún cambio.
La configuración mínima recomendada es:
#
# Recommended minimum configuration:
#
acl manager proto cache_object
acl localhost src 127.0.0.1/32 ::1
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1
# Example rule allowing access from your local networks.
# Adapt to list your (internal) IP networks from where browsing
# should be allowed
acl localnet src 10.0.0.0/8 # RFC1918 possible internal network
acl localnet src 172.16.0.0/12 # RFC1918 possible internal network
acl localnet src 192.168.0.0/16 # RFC1918 possible internal network
acl localnet src fc00::/7 # RFC 4193 local private network range
acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged) machines
acl SSL_ports port 443
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 CONNECT method CONNECT
#
# Recommended minimum Access Permission configuration:
#
# Only allow cachemgr access from localhost
http_access allow manager localhost
http_access deny manager
# Deny requests to certain unsafe ports
http_access deny !Safe_ports
# Deny CONNECT to other than secure SSL ports
http_access deny CONNECT !SSL_ports
# We strongly recommend the following be uncommented to protect innocent
# web applications running on the proxy server who think the only
# one who can access services on "localhost" is a local user
#http_access deny to_localhost
#
# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
#
# Example rule allowing access from your local networks.
# Adapt localnet in the ACL section to list your (internal) IP networks
# from where browsing should be allowed
http_access allow localnet
http_access allow localhost
# And finally deny all other access to this proxy
http_access deny all
# Squid normally listens to port 3128
http_port 3128
# We recommend you to use at least the following line.
hierarchy_stoplist cgi-bin ?
# Uncomment and adjust the following to add a disk cache directory.
#cache_dir ufs /var/spool/squid 100 16 256
# Leave coredumps in the first cache dir
coredump_dir /var/spool/squid
# Add any of your own refresh_pattern entries above these.
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern . 0 20% 4320
Restringir el acceso a sitios web específicos
Por ejemplo, podemos ver la forma de bloquear facebook.com y gmail.com. Para esto creamos un archivo en el que adjuntaremos los sitios web a bloquear:
touch /etc/squid/blockedsites.squid
gedit /etc/squid/blockedsites.squid
El archivo editado quedaría así:
#blocked sites
www.facebook.com
www.gmail.com
Guardar y salir.
Ahora volvemos abrir el archivo squid.conf y lo editamos creando una nueva acl "blocksites" y tipo acl "dstdomain" en la sección acl como el siguiente:
gedit /etc/squid/squid.conf
acl Safe_ports port 777 # multiling http
acl CONNECT method CONNECT
# ACL blocksites
acl blocksites dstdomain "/etc/squid/blockedsites.squid"
y también se añade la siguiente línea "http_access deny blocksites" para http_section negar el acceso a la acl "blocksites".
# Recommended minimum Access Permission configuration:
#
# Only allow cachemgr access from localhost
http_access allow manager localhost
http_access deny manager
# Deny access to blocksites ACL
http_access deny blocksites
Guardamos y salimos.
Iniciando el servicios
Ya que tenemos instalado el squid,ahora hay que iniciar el servicio.
Para habilitar el servicio digitamos en la terminal:
chkconfig squid on
Para iniciar el servicio digitamos:
service squid start
Podemos observar que el servicio está habilitado e iniciado:
Configuración como el explorador se conecta a Internet
La PC que se va a conectar con Internet necesita algunos parámetros para que utilice el servidor proxy instalado.
Abrimos el explorador, elegimos la opción Editar y luego Preferencias:
Una vez abierta la ventana nos dirigimos a la pestaña:
Avanzado/Red/Conexión/Configuración
Procedemos a la configuración manual del proxy. Ubicamos la dirección IP del servidor en Proxy HTTP con su correspondiente puerto configurado en el archivo anterior en este caso: 3128 y ponemos Aceptar. Ahora al querernos conectar con una pagina no permitida, el servidor proxy nos negará el acceso y saldrá un mensaje de error.
Ejemplo: