Squid es una aplicación de proxy web con una variedad de configuraciones y usos. Squid tiene una gran cantidad de controles de acceso y admite diferentes protocolos, como HTTP, HTTPS, FTP y SSL. En esta publicación, veremos cómo usar Squid como un proxy HTTP.
La configuración
Squid es una pieza de software bastante antigua, madura y de uso común. Generalmente se envía como un paquete predeterminado con varias distribuciones de Linux.
Configuración para esta publicación:
192.168.10.2 - is our proxy server. 192.168.10.3 - Will redirect/cache traffic via the proxy server.
Instalando proxy de calamar
Instale los paquetes necesarios para el proxy de squid y habilite el servicio de squid para que se inicie automáticamente en el arranque.
# yum install squid # systemctl enable squid # systemctl start squid
Puede recibir el siguiente error si no tiene la última versión de openssl
Job for squid.service failed because the control process exited with error code. See "systemctl status squid.service" and "journalctl -xe" for details.
Para asegurarse, actualice la versión de openssl usando el siguiente comando:
# yum update openssl
Ahora podemos continuar y comenzar el servicio quid.
# systemctl start squid
Configuración del proxy squid
El proxy squid por defecto escucha en el puerto 3128. Puede cambiar este puerto ya que puede ser una medida de seguridad para algunas empresas. Edite el archivo de configuración de squid /etc/squid/squid.conf modifique las directivas http_port para el puerto 3128 si desea cambiar este puerto. Mantendré el mismo puerto ya que esta es una configuración de prueba.
# vim /etc/squid/squid.conf # Squid normally listens to port 3128 http_port 3128
Reinicie el servicio squid para que los cambios surtan efecto.
# systemctl restart squid
Verifique si se iniciaron los procesos de proxy de squid.
# ps -ef | grep squid root 5403 1 0 03:21 ? 00:00:00 /usr/sbin/squid -f /etc/squid/squid.conf squid 5405 5403 0 03:21 ? 00:00:00 (squid-1) -f /etc/squid/squid.conf squid 5406 5405 0 03:21 ? 00:00:00 (logfile-daemon) /var/log/squid/access.log root 5448 5158 0 03:24 pts/0 00:00:00 grep --color=auto squid
También puede verificar si el proxy squid está escuchando en el puerto 3128.
# ss -nlp | grep squid | grep 3128 tcp LISTEN 0 128 :::3128 :::* users:(("squid",pid=5405,fd=11))
También debemos habilitar el puerto 3128 en firewalld, en caso de que esté habilitado. O simplemente puede deshabilitar el firewall por completo.
# firewall-cmd --add-port=3128/tcp --permanent
Configurar servidor cliente para usar squid
# export http_proxy=http://${PROXY_FQDN}:8080
En el servidor remoto, para verificar que puede conectarse al proxy, puede ejecutar curl en google.com
# curl -v http://google.com | head -1 % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0* About to connect() to google.com port 80 (#0) * Trying 2607:f8b0:4009:804::200e... * Connected to google.com (2607:f8b0:4009:804::200e) port 80 (#0) > GET / HTTP/1.1 > User-Agent: curl/7.29.0 > Host: google.com > Accept: */* > < HTTP/1.1 301 Moved Permanently < Location: http://www.google.com/ < Content-Type: text/html; charset=UTF-8 < Date: Wed, 05 Jun 2019 07:28:26 GMT < Expires: Fri, 05 Jul 2019 07:28:26 GMT < Cache-Control: public, max-age=2592000 < Server: gws < Content-Length: 219 < X-XSS-Protection: 0 < X-Frame-Options: SAMEORIGIN < { [data not shown] 100 219 100 219 0 0 3145 0 --:--:-- --:--:-- --:--:-- 3173 * Connection #0 to host google.com left intact