Squid è un'applicazione proxy web con una varietà di configurazioni e usi. Squid ha un gran numero di controlli di accesso e supporta diversi protocolli, come HTTP, HTTPS, FTP e SSL. In questo post vedremo come utilizzare Squid come proxy HTTP.
La configurazione
Squid è un software piuttosto vecchio, maturo e comunemente usato. Viene generalmente fornito come pacchetto predefinito con varie distribuzioni Linux.
Configurazione per questo post:
192.168.10.2 - is our proxy server. 192.168.10.3 - Will redirect/cache traffic via the proxy server.
Installazione del proxy squid
Installa i pacchetti richiesti per squid proxy abilita l'avvio automatico del servizio squid all'avvio.
# yum install squid # systemctl enable squid # systemctl start squid
Potresti ricevere l'errore seguente se non disponi dell'ultima versione di openssl
Job for squid.service failed because the control process exited with error code. See "systemctl status squid.service" and "journalctl -xe" for details.
Per essere sicuro, aggiorna la versione di openssl usando il comando seguente:
# yum update openssl
Ora possiamo procedere e avviare il servizio quid.
# systemctl start squid
Configurazione del proxy squid
Il proxy squid per impostazione predefinita è in ascolto sulla porta 3128. È possibile modificare questa porta in quanto potrebbe essere una precauzione di sicurezza per alcune aziende. Modifica il file di configurazione di squid /etc/squid/squid.conf modificare le direttive http_port per la porta 3128 se si desidera modificare questa porta. Manterrò la porta come questa è una configurazione di prova.
# vim /etc/squid/squid.conf # Squid normally listens to port 3128 http_port 3128
Riavvia il servizio calamari per rendere effettive le modifiche.
# systemctl restart squid
Verifica se i processi di squid proxy sono stati avviati.
# 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
Puoi anche verificare se il proxy squid è in ascolto sulla porta 3128.
# ss -nlp | grep squid | grep 3128 tcp LISTEN 0 128 :::3128 :::* users:(("squid",pid=5405,fd=11))
Dobbiamo anche consentire la porta 3128 in firewalld, nel caso sia abilitata. Oppure puoi semplicemente disabilitare completamente il firewalld.
# firewall-cmd --add-port=3128/tcp --permanent
Imposta il server client per utilizzare squid
# export http_proxy=http://${PROXY_FQDN}:8080
Sul server remoto, per verificare di poterti connettere al proxy, puoi eseguire curl su 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