[email protected]!

Gracias por tu visita, somos una comunidad en crecimiento, sería un placer te unieras a nosotros.

Recursos Premium para Webmasters, Soporte y Ayuda en Español GRATIS.

Unirme ahora! o

Tutorial Crea tu propio servidor proxy con Squid

moiseseccam

Observador

Registrado
25 Aug 2021
Mensajes
22
Un servidor proxy es un servidor que hace de intermediario en las peticiones de recursos que realiza un cliente a otro servidor.
1642001246716.png

En esta oportunidad voy a enseñarles a crear un proxy en su propio servidor, ya sea porque te gusta tener el control sobre los datos que envías a través de él o no confías en la protección de datos de los proveedores.

Para empezar, usaré un VPS en Estados Unidos con Ubuntu Server 20.04 de Hetzner
1642001470879.png

1. Primero nos conectamos mediante SSH al VPS y procedemos con la instalación de Squid, para ello digitamos
sudo apt-get update && sudo apt-get install squid y le damos Y para confirmar la instalación
1642001850228.png

2. Si usas Amazon o algún otro servicio que tenga Firewall externo, no olvides abrir el puerto correspondiente añadiendo una regla que lo permita.
1642003757569.png
La imagen es un ejemplo de Amazon Lightsail

3. Una vez que esté instalado todo, tendremos que ir al archivo de configuración, para ello vamos a la ruta /etc/squid/squid.conf para poder editar el archivo squid.conf
1642002027252.png
Yo estoy usando MobaXterm para navegar mediante SFTP pero si quieres editar desde consola puedes usar nano digitando sudo nano /etc/squid/squid.conf
De igual manera puedes usar tu gestor de SFTP favorito para editar/subir el archivo de configuración.

4. Abrimos el archivo squid.conf y copiamos la siguiente configuración. Recuerda configurar el puerto en el que estará abierto para que te conectes con el proxy

YAML:
# Configuraciones Sencillas

tcp_outgoing_address 0.0.0.0 all
dns_nameservers 8.8.8.8 8.8.4.4
#Puerto por el cual  te conectaras al proxy
http_port 8080

# Configuraciones Avanzadas

acl to_localhost dst all
acl localhost src all
http_access allow all
acl localnet src all
acl lan src all

# Configuraciones Seguridad

acl manager proto cache_object
acl Safe_ports port 0-65535
acl CONNECT method CONNECT
acl SSL_ports port 443

# Otras Configuraciones

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

# Proteger la Identidad

via off
forwarded_for off
follow_x_forwarded_for deny all
request_header_access Via deny all
request_header_access From deny all
request_header_access Link deny all
request_header_access Server deny all
request_header_access Pragma deny all
request_header_access X-Cache deny all
request_header_access Referer deny all
#request_header_access User-Agent deny all
request_header_access Keep-Alive deny all
request_header_access Cache-Control deny all
request_header_access X-Cache-Lookup deny all
request_header_access X-Forwarded-For deny all
request_header_access Proxy-Connection deny all
request_header_access WWW-Authenticate deny all

5. Guardamos la configuración y reiniciamos el servicio squid
sudo service squid restart

Para probarlo, voy a usar Firefox para conectarme mediante el proxy
1642003583729.png

Y ahora si entramos a páginas para ver la ip, veremos que estamos conectados mediante el servidor.
1642003521455.png

Hasta allí sabremos que el proxy funciona correctamente. En el archivo de configuración podremos limitar a las ip que pueden conectarse al servidor. Pero si queremos ponerle una contraseña, tendremos que añadir una cuantas líneas al archivo squid.conf y crear un archivo de contraseña.

6. Para poder ponerle contraseña, se necesita apache-utils, así que lo instalamos.
sudo apt-get install apache2-utils
1642004212083.png

7. Una vez instalado, configuraremos el usuario y contraseña, para ello digitamos en lo siguiente. En vez de davidmorales pongan el usuario que quieran (letra minúscula)
sudo touch /etc/squid/squid_passwd
sudo chown proxy /etc/squid/squid_passwd
sudo htpasswd -c /etc/squid/squid_passwd davidmorales

Les pedirá una contraseña para su usuario, así que digitan 2 veces el password.
1642007011313.png

8. Ahora añadimos las siguientes lineas debajo de la linea Configuraciones avanzadas
YAML:
# Configuraciones Avanzadas

auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/squid_passwd
auth_param basic realm proxy
acl authenticated proxy_auth REQUIRED
http_access allow authenticated

El archivo squid.conf en su totalidad quedaría así
YAML:
# Configuraciones Sencillas

tcp_outgoing_address 0.0.0.0 all
dns_nameservers 8.8.8.8 8.8.4.4
http_port 8080

# Configuraciones Avanzadas

auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/squid_passwd
auth_param basic realm proxy
acl authenticated proxy_auth REQUIRED
http_access allow authenticated

acl to_localhost dst all
acl localhost src all
http_access allow all
acl localnet src all
acl lan src all

# Configuraciones Seguridad

acl manager proto cache_object
acl Safe_ports port 0-65535
acl CONNECT method CONNECT
acl SSL_ports port 443

# Otras Configuraciones

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

# Proteger la Identidad

via off
forwarded_for off
follow_x_forwarded_for deny all
request_header_access Via deny all
request_header_access From deny all
request_header_access Link deny all
request_header_access Server deny all
request_header_access Pragma deny all
request_header_access X-Cache deny all
request_header_access Referer deny all
#request_header_access User-Agent deny all
request_header_access Keep-Alive deny all
request_header_access Cache-Control deny all
request_header_access X-Cache-Lookup deny all
request_header_access X-Forwarded-For deny all
request_header_access Proxy-Connection deny all
request_header_access WWW-Authenticate deny all

9. Guardamos el archivo y reiniciamos el servicio Squid
sudo service squid restart

Ahora cada vez que intentes ingresar mediante el proxy, te pedirá una contraseña para poder conectarte.
1642007061605.png

Eso sería prácticamente todo.
Hasta la próxima!
 
Arriba