Formas de pagamento Abuse

Instalar o 3proxy

05.06.2023, 23:17

O 3proxy é um servidor proxy gratuito e de código aberto que é utilizado para vários fins, tais como filtragem de tráfego, armazenamento em cache e bloqueio de sítios Web específicos. Suporta vários protocolos como SOCKS v4/v4a/v5, HTTP, HTTPS, FTP, POP3, SMTP e suporta métodos de autenticação como nome de utilizador/palavra-passe SOCKS5, NTLM, LDAP, Kerberos e SSO.

O servidor é altamente personalizável, fornecendo uma gestão detalhada da utilização da largura de banda e dos parâmetros de ligação. O 3proxy pode ser instalado nas plataformas Windows, Linux e macOS. É um servidor proxy leve e fácil de usar, adequado para redes de pequena e média dimensão. É possível alugar um proxy vps.

Instalar o 3proxy com suporte para http(s) e socks5-proxy

Deve-se ter cuidado, pois não é desejável instalar o servidor sem autorização. Isso pode levar ao uso não autorizado do servidor por intrusos para organizar spamming e tráfego elevado.

Para começar, é necessário instalar vários pacotes e dependências.

Para AlmaLinux o comando:

yum -y install gcc wget tar

e para o Debian:

apt install -y build-essential wget tar

Depois descarregue os ficheiros do site oficial do projeto 3proxy, descompacte o arquivo e compile os ficheiros descarregados.

Em seguida, crie os diretórios necessários para os ficheiros de configuração e os logs, transfira o executável 3proxy, crie um novo utilizador"proxyuser" e atribua-lhe direitos sobre os diretórios. Para criar um novo ficheiro de configuração, execute o comando:

touch /etc/3proxy/3proxy.cfg

Atribuir permissões apenas ao utilizador root com chmod 600 /etc/3proxy/3proxy.cfg.

Depois de criar um novo ficheiro de configuração, é necessário preenchê-lo corretamente. Para isso, anote o uid e o gid do utilizador"proxyuser" e, em seguida, utilize um editor de texto para copiar e colar o texto do ficheiro de configuração de exemplo. Salve as alterações no arquivo de configuração e temos um 3proxy instalado com suporte a http(s) e socks5-proxy.

Ficheiro de configuração

Abaixo está um exemplo de ficheiro de configuração:

Configurar o servidor para funcionar como proxyuser

(insira o uid e o gid do nosso utilizador que aprendemos anteriormente).
setgid 991
setuid 991

Especifique os servidores de nomes corretos. Veja /etc/resolv.conf:
nserver 8.8.8.8.8
nservidor 8.8.4.4

Use timeouts padrão e tamanho de cache para consultas DNS:
timeouts 1 5 30 60 180 180 1800 1800 1800 15 60
nscache 65536

Especificar o modo de arranque como daemon:
daemon

Especifique o endereço IP da interface externa do servidor:
external 111.111.111.111.111.111.111 (ou ignore a linha se o IP for o mesmo).

Especifique o endereço IP da interface interna do servidor:
internal 192.168.0.1 (ou ignore-o para que o proxy escute todos os IPs).

Configurar o proxy http na porta padrão 3128:
proxy -p3128 -n -a (especifique sua porta, certificando-se de que ela funciona antes).

Configurar o proxy socks na porta padrão 1080:
socks -p1080 (especifique a sua porta, verificando previamente se funciona).

Especifique o caminho para os registos, o formato e a rotação dos mesmos:
log /var/log/3proxy/3proxy/3proxy.log D
logformat "- +_L%t.%. %N.%p %E %U %C:%c %R:%r %O %I %h %T"
rodar 30

A seguir, crie um ficheiro de inicialização para o systemd e configure as permissões corretas:

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

O seguinte texto deve ser inserido neste ficheiro:

[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

Guardar e atualizar a configuração do systemd:

# systemctl daemon-reload

Inicie o 3proxy e adicione-o ao autoloader:

# systemctl start 3proxy
# systemctl enable 3proxy
Lembre-se de abrir a porta proxy http no firewalld ou iptables.

A configuração está completa. Agora você tem o http-proxy na porta 3128 e o socks-proxy na porta 1080.

Resolução de alguns problemas

O primeiro problema é que existe a possibilidade de, depois de registar um novo domínio, este não estar disponível devido ao caching de nomes de domínio. Para resolver este problema, deve esperar que os registos DNS sejam actualizados ou adicionar o endereço IP do seu servidor e o novo domínio ao seu ficheiro hosts. Isto permitir-lhe-á aceder ao novo domínio até que os registos DNS sejam actualizados.

Segundo problema - se utilizar um servidor proxy com portas predefinidas, mais cedo ou mais tarde o servidor pode ser detectado. Para resolver este problema, é recomendável alterar as portas.

Por exemplo, pode definir a porta 7834 no proxy http e 7835 no Socks. No entanto, essas portas também podem ser detectadas, pelo que pode configurar a firewall para permitir o acesso ao servidor apenas a partir de determinados endereços, enquanto outros terão o acesso negado. Esta solução é bastante fiável, embora não seja muito flexível, uma vez que pode não ter acesso a um endereço IP estático.

O terceiro problema é que se utilizar um servidor proxy e mantiver registos de todas as ligações, com o tempo estes podem tornar-se bastante grandes e ocupar a maior parte do espaço livre no seu disco. Para evitar este problema, é necessário proceder à rotação dos registos ou não manter registos de todo.

Existem vários métodos de rotação de registos que lhe permitem manter apenas os últimos ficheiros de registo e eliminar automaticamente os registos mais antigos. Por conseguinte, é melhor configurar o processo de rotação de registos com antecedência para evitar que o disco fique cheio. Isto ajudará a guardar todos os dados e a evitar a perda de informações quando se utiliza um servidor proxy.

Configuração simplificada de um servidor proxy http(s) anónimo na porta 3128

users proxyuser:CL:password

daemon

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

rotate 30

auth strong

proxy -n -a

setgid 65534

setuid 65534

Também é necessário criar um diretório para logs e definir permissões (iniciamos o servidor com direitos mínimos de ninguém no sistema usando as diretivas setgid/setud):

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

Instalando o 3proxy no Docker

Vamos considerar a instalação do 3proxy no Docker.

Primeiro de tudo, precisamos instalar alguns pacotes (e para os sistemas operacionais Debian e Ubuntu instalados recentemente, também podemos precisar atualizar o índice de pacotes apt com # apt update).

Para AlmaLinux e CentOS:

# yum install docker docker-compose

Para Ubuntu e Debian:

# apt install docker docker.io docker-compose

Baixar imagem:

# docker pull 3proxy/3proxy

Por defeito, o 3proxy usa um ambiente chroot seguro em /usr/local/3proxy com uid 65535 e gid 65535, e espera que o ficheiro de configuração do 3proxy seja colocado em /usr/local/etc/3proxy. Os caminhos no ficheiro de configuração devem ser especificados relativamente a /usr/local/3proxy, ou seja, deve ser /logs em vez de /usr/local/3proxy/logs. No chroot, é necessária permissão para o nserver.

Para isso, crie um diretório e um ficheiro de configuração 3proxy:

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

Em seguida, use qualquer editor de texto que desejar para editar o arquivo de configuração 3proxy .conf criado. Para executar o 3proxy no Docker, a configuração mínima é suficiente:

nserver 8.8.8.8.8.8
socks -p3129

Para adicionar o registo e o utilizador, é necessário adicionar ao ficheiro de configuração 3proxy:

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

Em vez de"87beeef3f4ee4661ac1897eca216fc26" é necessário especificar o hash MD5 da palavra-passe para o utilizador proxy. Pode descobrir o hash MD5 utilizando geradores online.

Vamos iniciar o 3proxy usando o docker-compose. Para isso, é necessário criar um ficheiro de configuração em formato .yml:

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

Insira o seguinte texto usando um 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

Salvar. Neste ficheiro, especificámos a porta externa 8080. Agora podemos executá-lo:

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

Obteremos uma resposta como esta:

Criando a rede"3proxy_default" com o driver padrão
Criando 3proxy ... concluído

Teste:

# docker ps

Obtemos uma resposta com o ID do contentor, a imagem, o estado, as portas utilizadas e o nome:

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