In questu articulu mostreremu a cunfigurazione 3proxy in un servitore dedicatu alimentatu da u sistema operatore ArchLinux / CentOS. 3proxy hè unu di i strumenti più pertinenti è funziunali. Supporta diversi tipi di protokolli: HTTP, HTTPS, FTP, SOCKS, è altri. Vi aiuterà à stallà u vostru propiu servitore proxy in pochi minuti.
L'articulu cuntene una guida passu à passu nantu à l'installazione di l'utilità è a so ulteriore cunfigurazione. Prublemi cum'è l'installazione da una fonte ufficiale, a cunfigurazione di i fugliali di cunfigurazione, l'apertura di porti non standard sò presi in considerazione, è ancu errori cumuni sò descritti è sò date raccomandazioni pratiche per risolve li. Prima di u lanciu, duvete urdinà un VPS o un servitore dedicatu alimentatu da u sistema operativu CentOS o ArchLinux. Tutte l'azzioni in l'esempiu saranu realizate nantu à un servitore dedicatu alimentatu da u sistema operativu CentOS7 cù un indirizzu IP publicu staticu dedicatu.
stallanu
Step 1
3proxy hè stallatu direttamente da i surghjenti. gcc serà adupratu cum'è cumpilatore. Ci cunnettemu à u servitore cum'è root (superuser) è installemu u cumpilatore.
yum install gcc
Step 2
Avà hè necessariu scaricà i fugliali surghjenti di 3proxy. Pudete fà questu andendu à u situ ufficiale è copiendu u ligame à a versione attuale:
Sè avete bisognu di una versione archiviata, pudete ancu scaricà u ligame direttamente da GitHub :
À u mumentu di a scrittura di stu articulu, a versione attuale hè 0.9.3. Scaricatelo è sbulicà immediatamente:
wget https://github.com/z3APA3A/3proxy/archive/0.9.3.tar.gz
tar -xvzf 0.9.3.tar.gz
Step 3
Andate à u cartulare cù u prughjettu unpacked è compilate:
cd 3proxy-0.9.3/
make -f Makefile.Linux
Step 4
Creemu cartulari è copiemu u schedariu 3proxy in /usr/bin:
mkdir -p /var/log/3proxy
mkdir /etc/3proxy
cp bin/3proxy /usr/bin/
Step 5
Creemu un utilizatore per travaglià cù u catalogu. In questu casu, u nome d'utilizatore hè 3proxyuser:
useradd -s /usr/sbin/nologin -U -M -r 3proxyuser
Concedemu i diritti di travaglià cù cartulari à l'utilizatore creatu:
chown -R 3proxyuser:3proxyuser /etc/3proxy
chown -R 3proxyuser:3proxyuser /var/log/3proxy
chown -R 3proxyuser:3proxyuser /usr/bin/3proxy
Avà criemu un schedariu di cunfigurazione cù u cumandimu:
touch /etc/3proxy/3proxy.cfg
Sè necessariu, pudete definisce permessi nantu à u schedariu di cunfigurazione per l'utilizatore root. Stu passu ùn hè micca ubligatoriu, ma aghjunghjerà prutezzione:
chmod 600 /etc/3proxy/3proxy.cfg
3 cunfigurazione proxy
Step 6
Hè necessariu di cumplettà currettamente u schedariu di cunfigurazione chì hè statu creatu prima. Prima, scopre l'uid è gid di l'utilizatore cù u cumandimu:
id 3proxyuser
In u nostru casu, sò i seguenti valori:
Per cumpilà u schedariu di cunfigurazione, pudete piglià cunfigurazioni pronte o aduprà a ducumentazione nantu à u situ ufficiale. Inoltre, un schedariu cù un esempiu hè digià preinstallatu per difettu; pudete truvallu longu u percorsu: /cfg/3proxy.cfg.sample
Per esempiu, cunsideremu 2 tipi di cunfigurazione: cù è senza logging . Ogni linea serà accumpagnata da cumenti (sò marcati cù u simbulu "#").
Eccu un esempiu di una cunfigurazione pronta senza logging :
# 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
Avemu cunsideratu l'opzione di un schedariu di cunfigurazione senza registrazione. Avà creeremu un schedariu di cunfigurazione cù registrazione è autorizazione di l'utente ; serà adupratu dopu durante a cunfigurazione di u servitore.
Assicuratevi di furnisce l'infurmazioni d'autorizazione, postu chì u servitore pò esse rilevatu ancu nantu à i porti 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
Questu compie a cunfigurazione di u schedariu di cunfigurazione principale. Passemu à a tappa finale è lanciamu.
Step 7
Crea un schedariu d'inizializazione per systemd:
touch /etc/systemd/system/3proxy.service
Emette i diritti necessarii:
chmod 664 /etc/systemd/system/3proxy.service
Copia è incollà i seguenti valori in u schedariu è salvà:
[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: in u valore "ExecStop" duvete specificà u nome d'utilizatore chì hè statu creatu in u passu n. 5.
Dopu chì avete bisognu di aghjurnà a cunfigurazione Daemon cù u cumandimu:
systemctl daemon-reload
Step 8
L'unicu chì avemu bisognu hè di lancià u 3proxy cunfiguratu, aghjunghje à l'autostart, è ancu apertu porti in u firewall.
Aghjunghjite à l'autostart, lanciate è verificate u statutu:
systemctl enable 3proxy
systemctl start 3proxy
systemctl status 3proxy
Dopu avè verificatu u statutu, vedemu infurmazione chì 3proxy hè stata lanciata cun successu:
L'unica cosa chì resta hè di apre i porti:
firewall-cmd --zone=public --add-port=50001/tcp
firewall-cmd --zone=public --add-port=50002/tcp
firewall-cmd –reload
Se necessariu, reboot u servitore. Hè pussibule di verificà se i porti sò aperti cù u cumandimu:
firewall-cmd --list-all
Cosa deve esse:
Comu pudemu vede, i dui porti sò stati aperti cù successu è sò stati à sente. A cunnessione http hè nantu à u primu portu, i calzini sò in u sicondu portu.
Verificate a cunnessione attraversu qualsiasi serviziu cunvene:
Tuttu funziona. Da parte nostra, ùn ricumandemu micca di utilizà una cunnessione micca sicura senza autorizazione di login / password, è ancu cù un inseme standard di porti . Mentre cunfigurate u schedariu di cunfigurazione, assicuratevi di specificà un login è di creà una password cumplessa, è ancu di cambià i porti in quelli micca standard . In casi eccezziunali, hè pussibule aduprà l'autorizazione di l'indirizzu IP.
Prublemi cumuni
Qualcosa hè andatu male è u proxy ùn funziona micca? Forse a cunfigurazione 3proxy hè stata fatta in modu incorrectu. Cunsideremu i prublemi più cumuni è e so suluzioni durante a stallazione è a cunfigurazione di l'utilità.
Nisuna cunnessione
U prublema più cumuni per parechji utilizatori hè una cunnessione inaccessibile quandu i schedarii di cunfigurazione parevanu cunfigurati currettamente. Sè sicuru chì tutti i paràmetri sò stati cunfigurati currettamente, l'ospiti ùn limitanu micca u portu sceltu è tutti i dati indicanu un serviziu di travagliu, u prublema pò esse in u Firewall, o, più precisamente, a so cunfigurazione incorrecta. Per esempiu, ci pò esse più di dui prugrammi stallati nant'à u sistema chì vi cunflittu cù l 'altri. Per risolve u prublema, hè abbastanza à utilizà un Firewall specificu. Avemu cunsigliatu per selezziunate solu iptables o firewall-cmd.
U serviziu ùn hè micca lanciatu
U serviziu ùn si avvia micca dopu avè cunfiguratu tutti i fugliali di cunfigurazione necessarii. Questu accade quandu un passu di cunfigurazione hè mancatu, i diritti adatti ùn sò micca dati, o si face un errore minore in i fugliali di cunfigurazione. Vi cunsigliemu di studià attentamente l'istruzzioni passu à passu di novu, forse avete mancatu unu di i passi. Se nunda aiuta, seria una bona idea di reinstallà u sistema operativu è seguità tutti i passi da u principiu. Ricumandemu di utilizà un campione situatu in /cfg/3proxy.cfg.sample, cum'è cunfigurazione di prova, è u firewall-cmd preinstallatu cum'è firewall.
Logging
U prublema finali, ma micca menu impurtante, riguarda l'almacenamiento di schedari. 3proxy piglia parechji mb durante a stallazione, ma a dimensione pò esse aumentata significativamente solu per logu cù u passaghju di u tempu. U fattu hè chì parechji utilizatori permettenu a registrazione di log in un schedariu separatu, ma ùn stabiliscenu micca a rotazione è ùn sguassate micca logs irrilevanti. Trè opzioni ponu esse aduprate per a suluzione di stu prublema:
- Attivà u logu;
- Elimina periodicamente i logs irrilevanti;
- Abilita a rotazione, cum'è hè stata fatta in a cunfigurazione sopra. Per esempiu, "rotate 30" in u schedariu di cunfigurazione significa chì 3proxy guardà solu l'ultimi file 30.
cunchiusioni
Stallà è cunfigurà 3proxy nantu à i sistemi operativi CentOS è ArchLinux hè un compitu abbastanza simplice, ma à u stessu tempu efficace. L'articulu copre i passi per installà i pacchetti necessarii, cunfigurà i schedarii di cunfigurazione, è lancià u serviziu. A cunniscenza acquistata vi permetterà di stallà è cunfigurà u vostru servitore proxy stessu senza difficultà.