Métodos de pago Abuse

Instalación de 3proxy

05.06.2023, 23:17

3proxy es un servidor proxy gratuito y de código abierto que se utiliza para diversos fines, como filtrar el tráfico, almacenar en caché y bloquear sitios web específicos. Soporta varios protocolos como SOCKS v4/v4a/v5, HTTP, HTTPS, FTP, POP3, SMTP, y admite métodos de autenticación como SOCKS5 nombre de usuario/contraseña, NTLM, LDAP, Kerberos y SSO.

El servidor es altamente personalizable y ofrece una gestión detallada del uso del ancho de banda y de los parámetros de conexión. 3proxy puede instalarse en plataformas Windows, Linux y macOS. Es un servidor proxy ligero y fácil de usar, adecuado para redes pequeñas y medianas. Es posible alquilar un vps proxy.

Instalar 3proxy con soporte http(s) y socks5-proxy

Se debe tener cuidado ya que no es deseable instalar el servidor sin autorización. Esto puede llevar a un uso no autorizado del servidor por parte de intrusos para organizar spam y alto tráfico.

Para empezar, es necesario instalar varios paquetes y dependencias.

Para AlmaLinux el comando:

yum -y install gcc wget tar

y para Debian:

apt install -y build-essential wget tar

A continuación, descargue los archivos del sitio oficial del proyecto 3proxy, descomprima el archivo y compile los archivos descargados.

A continuación, cree los directorios necesarios para los archivos de configuración y los registros, transfiera el ejecutable 3proxy y cree un nuevo usuario"proxyuser" y asígnele derechos sobre los directorios. Para crear un nuevo archivo de configuración, ejecuta el comando:

touch /etc/3proxy/3proxy.cfg

Asignar permisos sólo al usuario root con chmod 600 /etc/3proxy/3proxy.cfg.

Después de crear un nuevo fichero de configuración es necesario rellenarlo correctamente. Para ello, anote el uid y el gid del usuario"proxyuser" y, a continuación, utilice un editor de texto para copiar y pegar el texto del archivo de configuración de ejemplo. Guarda los cambios en el fichero de configuración y ya tenemos instalado 3proxy con soporte http(s) y socks5-proxy.

Fichero de configuración

A continuación se muestra un fichero de configuración de ejemplo:

Configurar el servidor para que se ejecute como proxyuser

(inserta el uid y gid de nuestro usuario que aprendimos antes).
setgid 991
setuid 991

Especificar los servidores de nombres correctos. Ver /etc/resolv.conf:
nserver 8.8.8.8.8
nserver 8.8.4.4

Utilice los tiempos de espera y el tamaño de caché predeterminados para las consultas DNS:
timeouts 1 5 30 60 180 180 1800 1800 15 60
nscache 65536

Especifique el modo de inicio como daemon:
daemon

Especifique la dirección IP de la interfaz externa del servidor:
external 111.111.111.111.111 (o ignore la línea si la IP es la misma).

Especifique la dirección IP de la interfaz interna del servidor:
internal 192.168.0.1 (o ignórela para que el proxy escuche todas las IP).

Configure el proxy http en el puerto estándar 3128:
proxy -p3128 -n -a (especifique su puerto, asegurándose de antemano de que funciona).

Configurar proxy socks en el puerto estándar 1080:
socks -p1080 (especifique su puerto, comprobando que funciona de antemano).

Especifique la ruta a los registros, el formato de registro y la rotación:
log /var/log/3proxy/3proxy/3proxy.log D
logformat "- +_L%t.%. %N.%p %E %U %C:%c %R:%r %O %I %h %T"
rotar 30

A continuación, crea un fichero de inicialización para systemd y configura los permisos correctos:

# touch /etc/systemd/system/3proxy.service
# chmod 664 /etc/systemd/system/3proxy.service

El siguiente texto debe ser insertado en este archivo:

[Unit] 
Description=3proxy Proxy Server 
After=network.target 
[Service] 
Type=simple 
ExecStart=/usr/bin/3proxy /etc/3proxy/3proxy.cfg 
ExecStop=/bin/kill `/usr/bin/pgrep proxyuser` 
RemainAfterExit=yes 
Restart=on-failure 
[Install] 
WantedBy=multi-user.target

Guarda y actualiza la configuración de systemd:

# systemctl daemon-reload

Inicia 3proxy y añádelo al autoloader:

# systemctl start 3proxy
# systemctl enable 3proxy
Recuerda abrir el puerto http proxy en firewalld o iptables.

La configuración está completa. Ahora tienes http-proxy en el puerto 3128 y socks-proxy en el puerto 1080.

Solución de algunos problemas

El primer problema es que existe la posibilidad de que después de registrar un nuevo dominio, éste no esté disponible debido al almacenamiento en caché del nombre de dominio. Para solucionar este problema, debes esperar a que se actualicen los registros DNS o añadir la dirección IP de tu servidor y el nuevo dominio a tu archivo hosts. Esto le permitirá acceder al nuevo dominio hasta que se actualicen los registros DNS.

Segundo problema: si utiliza un servidor proxy con puertos predeterminados, tarde o temprano el servidor puede ser detectado. Para solucionar este problema, se recomienda cambiar los puertos.

Por ejemplo, puede establecer el puerto 7834 en proxy http y 7835 en Socks. Sin embargo, estos puertos también pueden ser detectados, por lo que puede configurar el cortafuegos para permitir el acceso al servidor sólo desde ciertas direcciones, mientras que a otras se les denegará el acceso. Esta solución es bastante fiable, aunque no demasiado flexible, ya que puede que no tengas acceso a una dirección IP estática.

El tercer problema es que si utilizas un servidor proxy y guardas registros de todas las conexiones, con el tiempo pueden llegar a ser bastante grandes y ocupar la mayor parte del espacio libre de tu disco. Para evitar este problema, debes ocuparte de la rotación de los registros o de no mantenerlos en absoluto.

Existen varios métodos de rotación de registros que le permiten conservar sólo los últimos archivos de registro y eliminar automáticamente los registros más antiguos. Por lo tanto, es mejor configurar el proceso de rotación de registros con antelación para evitar desbordar el disco. Esto ayudará a guardar todos los datos y evitará perder información al utilizar un servidor proxy.

Configuración simplificada de un servidor proxy http(s) anónimo en el puerto 3128

users proxyuser:CL:password

daemon

log /var/log/3proxy/3proxy.log D

rotate 30

auth strong

proxy -n -a

setgid 65534

setuid 65534

También es necesario crear un directorio para los logs y establecer los permisos (arrancamos el servidor con los derechos mínimos de nadie en el sistema usando las directivas setgid/setud):

mkdir /var/log/3proxy ; chown nobody /var/log/3proxy

Instalación de 3proxy en Docker

Consideremos la instalación de 3proxy en Docker.

Primero, necesitamos instalar algunos paquetes (y para los sistemas operativos Debian y Ubuntu instalados recientemente, puede que también necesitemos actualizar el índice de paquetes apt con # apt update).

Para AlmaLinux y CentOS:

# yum install docker docker-compose

Para Ubuntu y Debian:

# apt install docker docker.io docker-compose

Descargar imagen:

# docker pull 3proxy/3proxy

Por defecto, 3proxy utiliza un entorno chroot seguro en /usr/local/3proxy con uid 65535 y gid 65535, y espera que el fichero de configuración de 3proxy se sitúe en /usr/local/etc/3proxy. Las rutas en el archivo de configuración deben especificarse relativas a /usr/local/3proxy, es decir, debe ser /logs en lugar de /usr/local/3proxy/logs. En chroot, se requiere permiso para nserver.

Para ello, cree un directorio y un archivo de configuración de 3proxy:

# mkdir -p /etc/dockerapp/3proxy
# touch /etc/dockerapp/3proxy/3poxy.conf

A continuación, utilice cualquier editor de texto que desee para editar el archivo de configuración 3proxy .conf creado. Para ejecutar 3proxy en Docker, la configuración mínima es suficiente:

nserver 8.8.8.8.8
socks -p3129

Para añadir logging y usuario, es necesario añadir al archivo de configuración de 3proxy:

log /logs/3proxy.log 
auth strong 
users "proxyuser:CR:87beeef3f4ee4661ac1897eca216fc26"

En lugar de"87beeef3f4ee4661ac1897eca216fc26" necesitas especificar el hash MD5 de la contraseña para el proxyuser. Puedes encontrar el hash MD5 usando generadores online.

Vamos a iniciar 3proxy usando docker-compose. Para ello será necesario crear un archivo de configuración en formato .yml:

# touch /etc/dockerapp/3proxy/docker-compose.yml

Inserta allí el siguiente texto usando un editor de texto:

version: "2.1" 
services: 
  3proxysvc: 
image: 3proxy/3proxy:latest 
container_name: 3proxy 
volumes: 
   - /etc/dockerapp/3proxy/conf:/usr/local/3proxy/conf 
ports: 
   - 8080:3129 
restart: unless-stopped

Guardar. En este fichero hemos especificado el puerto externo 8080. Ahora ya podemos ejecutarlo:

# docker-compose -f /etc/dockerapp/3proxy/docker-compose.yml up -d

Obtendremos una respuesta como esta

Creando red"3proxy_default" con el driver por defecto
Creando 3proxy ... hecho

Probando:

# docker ps

Obtenemos una respuesta con el ID del contenedor, imagen, estado, puertos utilizados y nombre:

48cc0cd140cd 3proxy/3proxy:latest "/bin/3proxy /etc/3p..." 5