Metodi di pagamento Abuse

Installazione di 3proxy

05.06.2023, 23:17

3proxy è un server proxy gratuito e open source che viene utilizzato per vari scopi, come il filtraggio del traffico, il caching e il blocco di siti web specifici. Supporta vari protocolli come SOCKS v4/v4a/v5, HTTP, HTTPS, FTP, POP3, SMTP e supporta metodi di autenticazione come SOCKS5 username/password, NTLM, LDAP, Kerberos e SSO.

Il server è altamente personalizzabile e fornisce una gestione dettagliata dell'utilizzo della larghezza di banda e dei parametri di connessione. 3proxy può essere installato su piattaforme Windows, Linux e macOS. È un server proxy leggero e facile da usare, adatto a reti di piccole e medie dimensioni. È possibile noleggiare un proxy vps.

Installare 3proxy con supporto http(s) e socks5-proxy

È necessario prestare attenzione perché non è auspicabile installare il server senza autorizzazione. Questo può portare a un uso non autorizzato del server da parte di intrusi per organizzare spamming e traffico elevato.

Per iniziare, è necessario installare diversi pacchetti e dipendenze.

Per AlmaLinux il comando:

yum -y install gcc wget tar

e per Debian:

apt install -y build-essential wget tar

Scaricare quindi i file dal sito ufficiale del progetto 3proxy, decomprimere l'archivio e compilare i file scaricati.

Quindi, creare le directory necessarie per i file di configurazione e i log, trasferire l'eseguibile 3proxy, creare un nuovo utente"proxyuser" e assegnargli i diritti sulle directory. Per creare un nuovo file di configurazione, eseguire il comando:

touch /etc/3proxy/3proxy.cfg

Assegnare i permessi solo all'utente root con chmod 600 /etc/3proxy/3proxy.cfg.

Dopo aver creato un nuovo file di configurazione, è necessario riempirlo correttamente. A tale scopo, annotare uid e gid dell'utente"proxyuser", quindi utilizzare un editor di testo per copiare e incollare il testo dal file di configurazione di esempio. Salvate le modifiche al file di configurazione e avrete installato 3proxy con supporto http(s) e socks5-proxy.

File di configurazione

Di seguito è riportato un file di configurazione di esempio:

Configurazione del server per l'esecuzione come proxyuser

(inserire l'uid e il gid del nostro utente che abbiamo imparato in precedenza).
setgid 991
setuid 991

Specificare i nameserver corretti. Vedere /etc/resolv.conf:
nserver 8.8.8.8.8
nserver 8.8.4.4

Utilizzare i timeout e la dimensione della cache predefiniti per le query DNS:
timeout 1 5 30 60 180 180 1800 1800 15 60
nscache 65536

Specificare la modalità di avvio come demone:
daemon

Specificare l'indirizzo IP dell'interfaccia esterna del server:
external 111.111.111.111.111.111 (o ignorare la riga se l'IP è lo stesso).

Specificare l'indirizzo IP dell'interfaccia interna del server:
internal 192.168.0.1 (oppure ignorarlo in modo che il proxy ascolti tutti gli IP).

Configurare il proxy http sulla porta standard 3128:
proxy -p3128 -n -a (specificate la vostra porta, assicurandovi prima che funzioni).

Configurare il proxy socks sulla porta standard 1080:
socks -p1080 (specificare la propria porta, verificando prima che funzioni).

Specificare il percorso dei log, il formato e la rotazione dei log:
log /var/log/3proxy/3proxy/3proxy.log D
logformat "- +_L%t.%. %N.%p %E %U %C:%c %R:%r %O %I %h %T"
rotazione 30

Successivamente, creare un file di inizializzazione per systemd e configurare i permessi corretti:

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

In questo file va inserito il seguente testo:

[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

Salvare e aggiornare la configurazione di systemd:

# systemctl daemon-reload

Avviare 3proxy e aggiungerlo all'autoloader:

# systemctl start 3proxy
# systemctl enable 3proxy
Ricordarsi di aprire la porta http proxy in firewalld o iptables.

La configurazione è completa. Ora si dispone di http-proxy sulla porta 3128 e di socks-proxy sulla porta 1080.

Risoluzione di alcuni problemi

Il primo problema è che c'è la possibilità che dopo aver registrato un nuovo dominio, questo non sia disponibile a causa del caching dei nomi di dominio. Per risolvere questo problema, è necessario attendere l'aggiornamento dei record DNS o aggiungere l'indirizzo IP del server e il nuovo dominio al file hosts. In questo modo sarà possibile accedere al nuovo dominio fino all'aggiornamento dei record DNS.

Secondo problema: se si utilizza un server proxy con porte predefinite, prima o poi il server potrebbe essere rilevato. Per risolvere questo problema, si consiglia di modificare le porte.

Ad esempio, è possibile impostare la porta 7834 sul proxy http e 7835 su Socks. Tuttavia, anche queste porte possono essere rilevate, quindi è possibile configurare il firewall in modo da consentire l'accesso al server solo da determinati indirizzi, mentre agli altri sarà negato l'accesso. Questa soluzione è abbastanza affidabile, anche se non troppo flessibile, dato che potreste non avere accesso a un indirizzo IP statico.

Il terzo problema è che se si utilizza un server proxy e si conservano i registri di tutte le connessioni, con il tempo questi possono diventare piuttosto grandi e occupare la maggior parte dello spazio libero sul disco. Per evitare questo problema, è necessario provvedere alla rotazione dei registri o non conservarli affatto.

Esistono vari metodi di rotazione dei registri che consentono di conservare solo gli ultimi file di registro e di eliminare automaticamente quelli più vecchi. Pertanto, è meglio impostare il processo di rotazione dei registri in anticipo per evitare di riempire eccessivamente il disco. In questo modo è possibile salvare tutti i dati ed evitare di perdere informazioni quando si utilizza un server proxy.

Configurazione semplificata di un server proxy http(s) anonimo sulla 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

È inoltre necessario creare una directory per i log e impostare i permessi (avviamo il server con i diritti minimi di nessuno nel sistema usando le direttive setgid/setud):

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

Installazione di 3proxy in Docker

Consideriamo l'installazione di 3proxy in Docker.

Prima di tutto, dobbiamo installare alcuni pacchetti (e per i sistemi operativi Debian e Ubuntu di recente installazione, potrebbe essere necessario aggiornare l'indice dei pacchetti apt con # apt update).

Per AlmaLinux e CentOS:

# yum install docker docker-compose

Per Ubuntu e Debian:

# apt install docker docker.io docker-compose

Scaricare l'immagine:

# docker pull 3proxy/3proxy

Per impostazione predefinita, 3proxy utilizza un ambiente chroot sicuro in /usr/local/3proxy con uid 65535 e gid 65535 e si aspetta che il file di configurazione di 3proxy sia collocato in /usr/local/etc/3proxy. I percorsi nel file di configurazione devono essere specificati relativamente a /usr/local/3proxy, cioè dovrebbero essere /logs invece di /usr/local/3proxy/logs. In chroot, sono necessari i permessi per nserver.

Per fare questo, creare una directory e un file di configurazione 3proxy:

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

Quindi, utilizzare un editor di testo a piacere per modificare il file di configurazione 3proxy .conf creato. Per eseguire 3proxy in Docker, è sufficiente la configurazione minima:

nserver 8.8.8.8.8
socks -p3129

Per aggiungere il logging e l'utente, è necessario aggiungerli al file di configurazione di 3proxy:

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

Al posto di"87beeef3f4ee4661ac1897eca216fc26" è necessario specificare l'hash MD5 della password del proxyuser. È possibile trovare l'hash MD5 utilizzando i generatori online.

Avviamo 3proxy usando docker-compose. Per questo è necessario creare un file di configurazione in formato .yml:

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

Inserire il seguente testo con un editor di testo:

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

Salva. In questo file abbiamo specificato la porta esterna 8080. Ora possiamo eseguirlo:

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

Otterremo una risposta come questa:

Creazione della rete"3proxy_default" con il driver predefinito
Creazione di 3proxy ... fatto

Test:

# docker ps

Otteniamo una risposta con l'ID del contenitore, l'immagine, lo stato, le porte utilizzate e il nome:

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