Una guía completa y práctica para configurar un proxy web en Ubuntu 24.04
Con esta guía, instale y configure fácilmente su proxy web en el servidor Ubuntu 24.04.

Una guía completa y práctica para configurar un proxy web en Ubuntu 24.04

Este artículo explica paso a paso cómo instalar y configurar un proxy web en un servidor Ubuntu 24.04 usando Squid, Dante y Nginx. Al leer este artículo, aprenderá a proteger y optimizar su proxy web.
0 acciones
0
0
0
0

¿Cómo configurar un proxy web seguro y eficiente en Ubuntu 24.04?

En esta guía operativa, lo guiaremos a través del proceso paso a paso de instalación, configuración y protección de un proxy web en un servidor. Ubuntu 24.04 Explicado. Ejemplos basados en Calamar (Proxy de reenvío HTTP/HTTPS), Dante (SOCKS5) y Nginx (proxy inverso y terminación TLS) e incluyen configuración de firewall, autenticación, registro y optimización del rendimiento.

¿Por qué utilizar un proxy web?

El proxy web tiene ventajas como: Control de acceso, Almacenamiento en caché de contenido Para reducir el ancho de banda, Ocultación de IP El cliente, y Distribución del tráfico Para aplicaciones sensibles como el comercio o los juegos, colocar el proxy más cerca del destino puede ser Latencia (ping) Reducir.

Tipos y usos de proxy

Los tipos más comunes de proxies incluyen:

  • Proxy de reenvío (por ejemplo, Squid):Para que los clientes accedan a Internet; adecuado para control, almacenamiento en caché y supervisión.
  • Proxy inverso (por ejemplo, Nginx):Se ubica frente a los servidores web para realizar TLS, equilibrio de carga y almacenamiento en caché.
  • SOCKS5 (Dante o SSH-D):Capa inferior, adecuada para diversas aplicaciones y tráfico TCP/UDP.
  • Proxy transparente:Para interceptar el tráfico de red (requiere cambios de NAT/fwd).

Requisitos y preparación del servidor

Primero, actualice el sistema e instale los paquetes básicos. Los paquetes deben seleccionarse según los requisitos; para SOCKS5, utilice servidor dante Y para TLS desde certbot Nosotros usamos.

sudo apt update && sudo apt upgrade -y
sudo apt install squid apache2-utils dante-server nginx certbot nftables fail2ban -y

Instalación y configuración de Squid (proxy de reenvío HTTP/HTTPS)

Esta sección explica la configuración básica, la habilitación de HTTPS (CONECTAR), la autenticación, las ACL y el almacenamiento en caché.

Configuración básica

Para instalar Squid:

sudo apt install squid -y

Antes de cambiar el archivo de configuración, haga una copia de seguridad:

sudo cp /etc/squid/squid.conf /etc/squid/squid.conf.bak

Ejemplo de un archivo de configuración básico (/etc/squid/squid.conf):

http_port 3128
# limit logging size
access_log /var/log/squid/access.log squid

# ACLs
acl localhost src 127.0.0.1/32
acl localnet src 10.0.0.0/8    # internal network
acl allowed_ips src 203.0.113.0/24  # example allowed client range

# permissions
http_access allow localhost
http_access allow allowed_ips
http_access deny all

# caching
cache_mem 256 MB
maximum_object_size_in_memory 512 KB
cache_dir ufs /var/spool/squid 10000 16 256
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern . 0 20% 4320

# DNS
dns_v4_first on

Después de guardar la configuración:

sudo systemctl restart squid
sudo systemctl enable squid

Habilitación de HTTPS (CONECTAR) y TLS

Para la tunelización HTTPS, Squid utiliza CONNECT. Ejemplo de ACL para permitir CONNECT:

acl SSL_ports port 443
acl Safe_ports port 80
acl Safe_ports port 443
http_access allow SSL_ports

Autenticación (básica/LDAP)

Para autenticación básica mediante htpasswd:

sudo apt install apache2-utils -y
sudo htpasswd -c /etc/squid/passwords username

En squid.conf agregue:

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

ACL y restricciones de acceso

Ejemplos comunes:

  • Restringir por IP: acl permitido_ips origen xxxx/xx
  • Restringir dominios: acl sitios bloqueados dstdomain .ejemplo.com
  • Tiempo límite: Horario de oficina de acl, horario de lunes a viernes de 8:00 a 18:00

Ejemplo de sitios rechazados:

acl blocked_sites dstdomain .youtube.com .facebook.com
http_access deny blocked_sites

Almacenamiento en caché y optimización del rendimiento

Configuraciones importantes para la caché:

  • memoria caché:Memoria RAM para almacenar en caché objetos pequeños.
  • directorio_de_caché:Ubicación del disco para caché de contenido de gran tamaño.
  • tamaño máximo del objeto:Tamaño máximo del objeto que se puede almacenar.
  • patrón de actualización:Control de validez de caché.

Ejemplo para mayor tráfico:

cache_mem 512 MB
maximum_object_size 20 MB
cache_dir ufs /var/spool/squid 50000 16 256

Para tráfico elevado, utilice discos NVMe y de alto IOPS o LVM.

Registro y gestión de registros

Squid inicia sesión /var/log/calamar/ Ejemplo de configuración de logrotate:

sudo nano /etc/logrotate.d/squid
/var/log/squid/*.log {
    weekly
    rotate 4
    compress
    delaycompress
    missingok
    notifempty
    create 640 proxy proxy
    sharedscripts
    postrotate
        systemctl reload squid >/dev/null 2>&1 || true
    endscript
}

Utilice herramientas como ELK o Grafana+Prometheus para analizar registros.

Configuración de SOCKS5 con Dante

Para aplicaciones que requieren SOCKS, Dante Es una buena opción.

Instalación y configuración:

sudo apt install dante-server -y

Ejemplo /etc/danted.conf:

logoutput: syslog
internal: 0.0.0.0 port = 1080
external: eth0
method: username none
user.privileged: proxy
user.notprivileged: nobody
client pass {
    from: 203.0.113.0/24 to: 0.0.0.0/0
    log: connect disconnect error
}
pass {
    from: 0.0.0.0/0 to: 0.0.0.0/0
    protocol: tcp udp
    log: connect disconnect error
}
sudo systemctl restart danted
sudo systemctl enable danted

Ejemplo de prueba con curl:

curl --socks5-hostname 127.0.0.1:1080 https://checkip.amazonaws.com

Configuración de Nginx como proxy inverso y terminación TLS

Nginx se puede utilizar para alojar la página de administración del proxy o la terminación TLS para aplicaciones detrás del proxy.

Ejemplo de bloque de servidor:

server {
    listen 80;
    server_name proxy.example.com;
    location / {
        proxy_pass http://127.0.0.1:3128;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

Para obtener un certificado TLS con Certbot:

sudo certbot --nginx -d proxy.example.com

Cortafuegos, seguridad y monitorización

Por seguridad, utilice nftables o ufw, fail2ban y registro y monitoreo.

Ejemplo de reglas básicas de nftables:

sudo nft add table inet filter
sudo nft 'add chain inet filter input { type filter hook input priority 0 ; policy drop; }'
sudo nft add rule inet filter input ct state established,related accept
sudo nft add rule inet filter input iif lo accept
sudo nft add rule inet filter input tcp dport 22 accept
sudo nft add rule inet filter input tcp dport 3128 accept # squid
sudo nft add rule inet filter input tcp dport 1080 accept # dante
sudo nft add rule inet filter input icmp type echo-request accept

Implementar la monitorización del rendimiento y la detección de ataques con las herramientas adecuadas.

Consejos prácticos para aplicaciones específicas (comercio, juegos, IA, renderizado)

Para los comerciantes: Elija un servidor con una ubicación cercana al servidor del broker; use una IP saliente fija para la lista blanca y habilite Anti-DDoS si la conexión es crítica.

Para jugadores: Elija un VPS con una red rápida y una ubicación cercana al servidor del juego y habilite BBR:

sudo sysctl -w net.core.default_qdisc=fq
sudo sysctl -w net.ipv4.tcp_congestion_control=bbr

Para que la configuración sea permanente, establezca los valores en /etc/sysctl.conf Agregar.

Para IA y renderizado: Utilice discos NVMe y caché de mayor tamaño para descargar conjuntos de datos y aprovechar las GPU en la nube para la inferencia distribuida.

Operaciones operativas y de mantenimiento

Consejos clave de mantenimiento:

  • Actualizaciones periódicas de paquetes: sudo apt update && sudo apt upgrade -y
  • Parche de seguridad, revisión de registros y copia de seguridad de la configuración.
  • Utilice herramientas de automatización como Ansible para una configuración y reversión rápidas.
  • Pruebe periódicamente el servicio con curl/wget y configure el monitoreo del tiempo de actividad.

¿Por qué utilizar una infraestructura en la nube con múltiples ubicaciones?

Implementar proxies más cerca de los usuarios o servidores de destino reduce el ping y proporciona un mejor control geográfico. El uso de CDN, BGP y anti-DDoS puede mejorar el rendimiento y la seguridad.

Recomendaciones finales de seguridad

Consejos de seguridad importantes:

  • Nunca deje un proxy público abierto sin autenticación.
  • Aplicar restricciones basadas en IP y tiempo.
  • La vigilancia y la alerta son esenciales para detectar abusos.
  • Utilice Anti-DDoS y redes privadas para aplicaciones sensibles.

Conclusión

En esta guía, instalación y configuración Calamar Para HTTP/HTTPS, configuración Dante Para SOCKS5 y configuración Nginx Se abordó el proxy inverso y TLS. También se abordaron firewalls, registros y consejos prácticos para el trading, los juegos y la IA.

Preguntas frecuentes

También te puede gustar

Cómo instalar IBSng en CentOS 6/7

Tutorial de instalación de IBSng en CentOS 6/7. En este artículo se proporciona un tutorial de instalación de IBSng en CentOS 6/7 para ayudarle…