In questo articolo mostreremo la configurazione di 3proxy su un server dedicato basato sul sistema operativo ArchLinux/CentOS. 3proxy è uno degli strumenti più rilevanti e funzionali. Supporta vari tipi di protocolli: HTTP, HTTPS, FTP, SOCKS e altri. Ti aiuterà a configurare il tuo server proxy in pochi minuti.
L'articolo contiene una guida dettagliata per l'installazione e la configurazione dell'utility. Vengono trattati argomenti quali l'installazione da una fonte ufficiale, la configurazione dei file e l'apertura di porte non standard. Vengono inoltre descritti gli errori più comuni e fornite soluzioni pratiche. Prima di iniziare, è necessario disporre di un VPS o di un server dedicato con sistema operativo CentOS o ArchLinux. Tutte le operazioni descritte nell'esempio verranno eseguite su un server dedicato con sistema operativo CentOS 7 e un indirizzo IP pubblico statico dedicato.
Installazione
Fase 1
3proxy viene installato direttamente dai sorgenti. Come compilatore verrà utilizzato gcc . Ci colleghiamo al server come root (superutente) e installiamo il compilatore.
yum install gcc
Fase 2
Ora è necessario scaricare i file sorgente di 3proxy. Puoi farlo andando sul sito ufficiale e copiando il link alla versione corrente:
Se è necessaria una versione archiviata, è possibile scaricare il link direttamente da GitHub :
Al momento in cui scrivo questo articolo, la versione corrente è 0.9.3. Scaricatela e decomprimetela immediatamente:
wget https://github.com/z3APA3A/3proxy/archive/0.9.3.tar.gz
tar -xvzf 0.9.3.tar.gz
Fase 3
Vai alla directory con il progetto decompresso e compila:
cd 3proxy-0.9.3/
make -f Makefile.Linux
Fase 4
Creiamo le directory e copiamo il file 3proxy in /usr/bin:
mkdir -p /var/log/3proxy
mkdir /etc/3proxy
cp bin/3proxy /usr/bin/
Fase 5
Creiamo un utente per lavorare con il catalogo. In questo caso il nome utente è 3proxyuser:
useradd -s /usr/sbin/nologin -U -M -r 3proxyuser
Concediamo i diritti di lavorare con le directory all'utente creato:
chown -R 3proxyuser:3proxyuser /etc/3proxy
chown -R 3proxyuser:3proxyuser /var/log/3proxy
chown -R 3proxyuser:3proxyuser /usr/bin/3proxy
Ora creiamo un file di configurazione utilizzando il comando:
touch /etc/3proxy/3proxy.cfg
Se necessario, è possibile impostare i permessi per l'utente root sul file di configurazione. Questo passaggio non è obbligatorio, ma aggiungerà protezione:
chmod 600 /etc/3proxy/3proxy.cfg
Configurazione 3proxy
Fase 6
È necessario compilare correttamente il file di configurazione creato in precedenza. Per prima cosa, scopri l'uid e il gid dell'utente tramite il comando:
id 3proxyuser
Nel nostro caso si tratta dei seguenti valori:
Per compilare il file di configurazione, è possibile utilizzare configurazioni predefinite oppure consultare la documentazione sul sito web ufficiale. Inoltre, un file di esempio è già preinstallato di default; lo si può trovare nel percorso: /cfg/3proxy.cfg.sample
A titolo di esempio, prenderemo in considerazione due tipi di configurazione: con e senza registrazione dei log . Ogni riga sarà accompagnata da commenti (contrassegnati dal simbolo “#”).
Questo è un esempio di configurazione predefinita senza registrazione dei log :
# We specify the user's data that we found out in the previous command
setgid 995
setuid 997
# Type the NS-servers. It is possible to clarify your own servers at /etc/resolv.conf
nserver 1.1.1.1
nserver 8.8.8.8
# Cache size
nscache 65536
# Timeouts
timeouts 1 5 30 60 180 1800 15 60
# Authorization of users by login/password (if required). You may not to use it or specify the path to the file in which authorization data is stored, for example, users $/etc/3proxy/.authfile
# If you insert a password in md5 format, replace “CL” with “CR”, as indicated in the example. You can use 2 methods at the same time.
auth cache strong
users "userproxy:CL:passwordproxy"
users "userproxy2:CR:b89097a7ad0b94f13b3c313ae76699d4 "
# Launch mode. Daemon only.
Daemon
# We write the port through which the http connection will take place. The example shows the standard one. To establish a socks connection, use the command specified in the second line, the port is also standard.
proxy -p3128
socks -p1080
Abbiamo valutato l'opzione di un file di configurazione senza registrazione degli eventi. Ora creeremo un file di configurazione con registrazione degli eventi e autorizzazione degli utenti ; questo verrà utilizzato in seguito durante la configurazione del server.
Assicurati di fornire le informazioni di autorizzazione, poiché il server può essere rilevato anche su porte non standard.
# Configuring the server to launch from the userproxy user and the passwordproxy password.
users userproxy:CL:passwordproxy
# Specify the user's uid and gid
setgid 995
setuid 997
# Nameservers (NS-servers)
nserver 1.1.1.1
nserver 8.8.8.8
# Timeouts
timeouts 1 5 30 60 180 1800 15 60
# Cache size (standard)
nscache 65536
# Indicate the launch mode
daemon
# We install http proxy on a non-standard 50001 port. If there are several IP addresses on the server, be sure to specify a specific address for connecting the network. For example, "-e91.150.32.146". The argument "i" is a local address.
proxy –p50001
# In a same way as socks proxy, we conduct the installation on a 50002 port.
socks –p50002
# Path to the directory with logs, logs format and proxy rotation
Log /var/log/3proxy/3proxy.log D
logformat "- +_L%t.%. %N.%p %E %U %C:%c %R:%r %O %I %h %T"
rotate 30
Questo completa l'impostazione del file di configurazione principale. Passiamo alla fase finale e al lancio.
Fase 7
Crea un file di inizializzazione per systemd:
touch /etc/systemd/system/3proxy.service
Rilasciare i diritti necessari:
chmod 664 /etc/systemd/system/3proxy.service
Copia e incolla i seguenti valori nel file e salva:
[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 3proxyuser`
RemainAfterExit=yes
Restart=on-failure
[Install]
WantedBy=multi-user.target»
Nota bene: nel campo "ExecStop" è necessario specificare il nome utente creato al punto 5.
Dopodiché è necessario aggiornare la configurazione del Daemon con il comando:
systemctl daemon-reload
Fase 8
Tutto ciò di cui abbiamo bisogno è avviare il 3proxy configurato, aggiungerlo all'avvio automatico e aprire le porte nel firewall.
Aggiungilo all'avvio automatico, al lancio e al controllo dello stato:
systemctl enable 3proxy
systemctl start 3proxy
systemctl status 3proxy
Dopo aver verificato lo stato, vediamo l'informazione che 3proxy è stato avviato correttamente:
Non resta che aprire le porte:
firewall-cmd --zone=public --add-port=50001/tcp
firewall-cmd --zone=public --add-port=50002/tcp
firewall-cmd –reload
Se necessario, riavviare il server. È possibile verificare se le porte sono aperte con il comando:
firewall-cmd --list-all
Cosa dovrebbe essere:
Come possiamo vedere, entrambe le porte sono state aperte con successo e sono in ascolto. La connessione http è sulla prima porta, quella SOCKS è sulla seconda.
Controlla la connessione tramite qualsiasi servizio conveniente:
Tutto funziona correttamente. Da parte nostra, sconsigliamo di utilizzare una connessione non protetta senza autenticazione tramite nome utente e password, nonché con un set di porte standard . Durante la configurazione del file, assicurarsi di specificare un nome utente e creare una password complessa, e di modificare le porte con porte non standard . In casi eccezionali, è possibile utilizzare l'autenticazione tramite indirizzo IP.
Problemi comuni
Qualcosa è andato storto e il proxy non funziona? Forse la configurazione di 3proxy è stata eseguita in modo errato. Consideriamo i problemi più comuni e le relative soluzioni durante l'installazione e la configurazione dell'utilità.
Nessuna connessione
Il problema più comune per molti utenti è una connessione inaccessibile quando i file di configurazione sembrano essere configurati correttamente. Se sei sicuro che tutte le impostazioni sono state configurate correttamente, il provider di hosting non limita la porta selezionata e tutti i dati indicano un servizio funzionante, il problema potrebbe essere nel Firewall o, più precisamente, nella sua configurazione non corretta. Ad esempio, potrebbero esserci più di due programmi installati sul sistema che entreranno in conflitto tra loro. Per risolvere il problema, è sufficiente utilizzare un Firewall specifico. Ti consigliamo di selezionare solo iptables o firewall-cmd.
Il servizio non si avvia
Il servizio non si avvia dopo aver configurato tutti i file necessari. Questo accade quando si salta un passaggio della configurazione, non vengono concessi i permessi appropriati o si verifica un piccolo errore nei file di configurazione. Si consiglia di rileggere attentamente le istruzioni passo passo, poiché è possibile che sia stato saltato un passaggio. Se il problema persiste, si consiglia di reinstallare il sistema operativo e di seguire tutti i passaggi dall'inizio. Si consiglia di utilizzare il file di esempio presente in /cfg/3proxy.cfg.sample come configurazione di prova e il firewall preinstallato firewall-cmd come firewall.
Registrazione
L'ultimo, ma non meno importante problema riguarda l'archiviazione dei file. 3proxy occupa diversi MB durante l'installazione, ma la dimensione può essere aumentata in modo significativo solo tramite la registrazione con il passare del tempo. Il fatto è che molti utenti abilitano la registrazione dei log in un file separato, ma non impostano la rotazione e non eliminano i log irrilevanti. Per risolvere questo problema si possono usare tre opzioni:
- Abilita la registrazione;
- Eliminare periodicamente i registri irrilevanti;
- Abilita la rotazione, come è stato fatto nella configurazione sopra. Ad esempio, "rotate 30" nel file di configurazione significa che 3proxy memorizzerà solo gli ultimi 30 file.
Conclusione
L'installazione e la configurazione di 3proxy sui sistemi operativi CentOS e ArchLinux è un compito abbastanza semplice, ma allo stesso tempo efficace. L'articolo ha trattato i passaggi per installare i pacchetti necessari, configurare i file di configurazione e avviare il servizio. Le conoscenze acquisite ti consentiranno di installare e configurare il tuo server proxy da solo senza alcuna difficoltà.