Cómo crear un proxy HTTP usando Squid en CentOS 7/8

Cómo crear un proxy HTTP usando Squid en CentOS 7/8

Los proxies web existen desde hace bastante tiempo y han sido utilizados por millones de usuarios en todo el mundo. Tienen una amplia gama de propósitos, el más popular es el anonimato en línea, pero hay otras formas de aprovechar los proxies web. Aquí hay algunas ideas:

  • Anonimato en línea
  • Mejorar la seguridad en línea
  • Mejorar los tiempos de carga
  • Bloquear el tráfico malicioso
  • Registre su actividad en línea
  • Para eludir las restricciones regionales
  • En algunos casos, puede reducir el uso de ancho de banda

Cómo funciona el servidor proxy

El proxy servidor es una computadora que se utiliza como intermediario entre el cliente y otros servidores desde los cuales el cliente puede solicitar recursos. Un ejemplo simple de esto es cuando un cliente realiza solicitudes en línea (por ejemplo, quiere abrir una página web), primero se conecta al servidor proxy.

El servidor proxy luego verifica su caché de disco local y si el Los datos se pueden encontrar allí, devolverá los datos al cliente, si no se almacenan en caché, hará la solicitud en nombre del cliente utilizando la dirección IP del proxy (diferente de los clientes) y luego devolverá los datos al cliente. El servidor proxy intentará almacenar en caché los nuevos datos y los usará para futuras solicitudes realizadas al mismo servidor.

Qué es Squid Proxy

Squid. es un proxy web que usaba mi amplia variedad de organizaciones. Se usa a menudo como un proxy de almacenamiento en caché y mejora los tiempos de respuesta y reduce el uso del ancho de banda.

Para el propósito de este artículo, instalaré Squid. en un VPS Linode CentOS 7 y utilícelo como un servidor proxy HTTP.

Cómo instalar Squid en CentOS 7/8

freestar.config.enabled_slots.push (LocationName: “tecmint_incontent”, slotId: “tecmint_incontent”) ;

Antes de comenzar, debe saber que Squid. no tiene ningún requisito mínimo, pero la cantidad de uso de RAM puede variar dependiendo de los clientes que navegan por Internet a través del servidor proxy.

Squid. está incluido en el repositorio base y, por lo tanto, la instalación es simple y directa. Sin embargo, antes de instalarlo, asegúrese de que sus paquetes estén actualizados ejecutando.

# yum-y update

Continúe instalando squid, inícielo y habilítelo al iniciar el sistema usando los siguientes comandos.

# yum-y install squid # systemctl start squid # systemctl enable squid

En este punto, tu proxy web Squid ya debería estar ejecutándose y puedes verificar el estado del servicio con.

# systemctl status squid Salida de muestra . squid.service: proxy de almacenamiento en caché de Squid Cargado: cargado (/usr/lib/systemd/system/squid.service; habilitado; preset del proveedor: deshabilitado) Activo: activo (en ejecución). desde Thu 2018-09-20 10:07:23 UTC; Hace 5min PID principal: 2005 (squid) CGroup:/system.slice/squid.service ├─2005/usr/sbin/squid-f/etc/squid/squid.conf ├─2007 (squid-1)-f/etc/squid/squid.conf └─2008 (logfile-daemon)/var/log/squid/access.log 20 de septiembre 10:07:23 tecmint systemd [1]: Iniciando el proxy de almacenamiento en caché de Squid … 20 de septiembre 10:07: 23 tecmint squid [2005]: Squid Parent: iniciará 1 niños 20 de septiembre 10:07:23 tecmint squid [2005]: Squid Parent: (calamar-1) proceso 2007 iniciado el 20 de septiembre 10:07:23 tecmint systemd [1] : Se inició el proxy de almacenamiento en caché de Squid.

Aquí hay algunas ubicaciones de archivos importantes que debe conocer:

  • Archivo de configuración de Squid: /etc/squid/squid.conf
  • Registro de acceso de Squid: /var/log/squid/access.log
  • Registro de caché de Squid: /var/log/squid/cache.log.

Un archivo de configuración squid.conf mínimo (sin comentarios) se ve así:

acl localnet src 10.0.0.0/8 # RFC1918 posible red interna acl localnet src 172.16.0.0/12 # RFC1918 posible red interna acl localnet src 192.168.0.0/16 # RFC1918 posible red interna acl localnet src fc00 ::/7 # RFC 4193 rango de red privada local acl localnet src fe80 ::/10 # RFC 4291 link-local (conectado directamente) máquinas acl SSL_ports puerto 443 acl Safe_ports puerto 80 # http acl Safe_ports puerto 21 # ftp acl Safe_ports puerto 443 # https acl Safe_ports puerto 70 # gopher acl Safe_ports puerto 210 # wais acl Safe_ports puerto 1025-65535 # puertos no registrados acl Safe_ports puerto 280 # http-mgmt acl Safe_ports puerto 488 # gss-http acl Safe_ports puerto 591 # filemaker acl Safe_ports puerto 777 # multiling http acl Método CONNECT CONNECT http_access denegar! Safe_ports http_access deny CONNECT! SSL_ports http_access permitir localhost manager http_access deny manager http_access permitir localnet http_access permitir localhost http_access deny all http _port 3128 coredump_dir/var/spool/squid 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

Configuración de Squid como un proxy HTTP

Aquí, le mostraremos cómo configurar squid como un proxy HTTP utilizando solo la dirección IP del cliente para la autenticación.

Agregue las ACL de Squid

Si desea permitir que la dirección IP acceda a la web a través de su nuevo servidor proxy, deberá agregar una nueva línea ACL. ( lista de control de acceso. en el archivo de configuración.

# vim/etc/squid/squid.conf

La línea que debe agregar es:

acl localnet src XX.XX.XX.XX

Donde XX .XX.XX.XX. es la dirección IP real del cliente que desea agregar. La línea debe agregarse al principio del archivo donde se definen las ACL. Es una buena práctica agregar un comentario junto a ACL que describa quién usa esta dirección IP.

Es importante tener en cuenta que si Squid se encuentra fuera de su red local, debe agregar la dirección IP pública. del cliente.

Deberá reiniciar Squid para que los nuevos cambios surtan efecto.

# systemctl restart squid Abrir puertos proxy de Squid

Como puede haber visto en el archivo de configuración, solo se permiten ciertos puertos para la conexión. Puede agregar más editando el archivo de configuración.

acl Safe_ports port XXX

Donde XXX. es el puerto real que desea cargar. Nuevamente, es una buena idea dejar un comentario al lado que describirá para qué se usará el puerto.

Para que los cambios surtan efecto, deberá reiniciar squid una vez más.

# systemctl restart squid Squid Proxy Client Authentication

Lo más probable es que desee que sus usuarios se autentiquen antes de usar el proxy. Para ello, puede habilitar la autenticación HTTP básica. Es fácil y rápido de configurar.

Primero, necesitará httpd-tools. instalado.

# yum-y install httpd-tools

Ahora creemos un archivo que luego almacenará el nombre de usuario para la autenticación. Squid se ejecuta con el usuario “squid”. por lo que el archivo debe ser propiedad de ese usuario.

# touch/etc/squid/passwd # chown squid:/etc/squid/passwd

Ahora crearemos un nuevo usuario llamado “proxyclient”. y configuraremos su contraseña.

# htpasswd/etc/squid/passwd proxyclient. Nueva contraseña: Vuelva a escribir la nueva contraseña : Agregar contraseña para el cliente proxy de usuario

Ahora para configurar la autenticación, abra el archivo de configuración.

# vim/etc/squid/squid.conf

Después de los puertos ACL agregue las siguientes líneas:

auth_param programa básico/usr/lib64/squid/basic_ncsa_auth/etc/squid/passwd auth_param basic children 5 auth_param basic realm Squid Autenticación básica auth_param basic credentialsttl 2 horas acl auth_users proxy_auth REQUERIDO http_access permitir auth_users

Guarde el archivo y reinicie nuevos cambios pueden tener efecto:

# systemctl reiniciar los sitios web de Squid Block en Squid Proxy

Finalmente, crearemos una última ACL que nos ayudará a bloquear sitios web no deseados. Primero, cree el archivo que almacenará los sitios en la lista negra.

# touch/etc/squid/blacklisted_sites.acl

Puede agregar algunos dominios que desea bloquear. Por ejemplo:

.badsite1.com .badsite2.com

El punto anterior le dice a squid que bloquee todas las referencias a esos sitios, incluidos www.badsite1. subsite.badsite1.com,. etc.

Ahora abra el archivo de configuración de Squid.

# vim/etc/squid/squid.conf

Justo después de los puertos ACL agregue las siguientes dos líneas:

acl bad_urls dstdomain “/etc/squid/blacklisted_sites.acl” http_access deny bad_urls

Ahora guarde el archivo y reinicie squid: