În acest articol vom arăta configurația 3proxy pe un server dedicat alimentat de sistemul de operare ArchLinux/CentOS. 3proxy este unul dintre cele mai relevante și funcționale instrumente. Acceptă diferite tipuri de protocoale: HTTP, HTTPS, FTP, SOCKS și altele. Vă va ajuta să vă configurați propriul server proxy în câteva minute.
Articolul conține îndrumări pas cu pas despre instalarea utilitarului și configurarea ulterioară a acesteia. Sunt luate în considerare probleme precum instalarea dintr-o sursă oficială, configurarea fișierelor de configurare, deschiderea de porturi nestandard, precum și sunt descrise erori comune și sunt oferite recomandări practice pentru rezolvarea acestora. Înainte de lansare, trebuie să comandați un VPS or server dedicat alimentat de sistemul de operare CentOS sau ArchLinux. Toate acțiunile din exemplu vor fi efectuate pe un server dedicat alimentat de sistemul de operare CentOS7 cu o adresă IP publică statică dedicată.
Instalare
Etapa 1
3proxy este instalat direct din surse. gcc va fi folosit ca compilator. Ne conectăm la server ca root (superutilizator) și instalăm compilatorul.
yum install gcc
Etapa 2
Acum este necesar să descărcați fișierele sursă 3proxy. Puteți face acest lucru mergând la site oficial și copierea linkului către versiunea curentă:
Dacă este necesară o versiune arhivată, puteți descărca linkul direct de la GitHub:
La momentul scrierii acestui articol, versiunea actuală este 0.9.3. Descărcați-l și despachetați-l imediat:
wget https://github.com/z3APA3A/3proxy/archive/0.9.3.tar.gz
tar -xvzf 0.9.3.tar.gz
Etapa 3
Accesați directorul cu proiectul dezambalat și compilați:
cd 3proxy-0.9.3/
make -f Makefile.Linux
Etapa 4
Creăm directoare și copiem fișierul 3proxy în /usr/bin:
mkdir -p /var/log/3proxy
mkdir /etc/3proxy
cp bin/3proxy /usr/bin/
Etapa 5
Creăm un utilizator care să lucreze cu catalogul. În acest caz, numele de utilizator este 3proxyuser:
useradd -s /usr/sbin/nologin -U -M -r 3proxyuser
Acordăm drepturi de a lucra cu directoare utilizatorului creat:
chown -R 3proxyuser:3proxyuser /etc/3proxy
chown -R 3proxyuser:3proxyuser /var/log/3proxy
chown -R 3proxyuser:3proxyuser /usr/bin/3proxy
Acum să creăm un fișier de configurare folosind comanda:
touch /etc/3proxy/3proxy.cfg
Dacă este necesar, puteți seta permisiuni pentru fișierul de configurare pentru utilizatorul root. Acest pas nu este obligatoriu, dar va adăuga protecție:
chmod 600 /etc/3proxy/3proxy.cfg
3 configurație proxy
Etapa 6
Este necesar să completați corect fișierul de configurare care a fost creat mai devreme. Mai întâi, aflați uid-ul și gid-ul utilizatorului prin comanda:
id 3proxyuser
În cazul nostru, acestea sunt următoarele valori:
Pentru a completa fișierul de configurare, puteți lua configurații gata făcute sau puteți utiliza documentaţie pe site-ul oficial. De asemenea, un fișier cu un exemplu este deja preinstalat implicit; îl puteți găsi de-a lungul căii: /cfg/3proxy.cfg.sample
Ca exemplu, vom lua în considerare 2 tipuri de configurații: cu și fără logare. Fiecare rând va fi însoțit de comentarii (sunt marcate cu simbolul „#”).
Acesta este un exemplu de configurație gata făcută fără logare:
# 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
Am luat în considerare opțiunea unui fișier de configurare fără înregistrare. Acum vom crea un fișier de configurare cu logare și autorizarea utilizatorului; va fi folosit mai târziu în timpul configurării serverului.
Asigurați-vă că furnizați informații de autorizare, deoarece serverul poate fi detectat chiar și pe porturi 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
Aceasta completează configurarea fișierului principal de configurare. Trecem la etapa finală și lansăm.
Etapa 7
Creați un fișier de inițializare pentru systemd:
touch /etc/systemd/system/3proxy.service
Emite drepturile necesare:
chmod 664 /etc/systemd/system/3proxy.service
Copiați și inserați următoarele valori în fișier și salvați:
[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»
Vă rugăm să rețineți: în valoarea „ExecStop” trebuie să specificați numele de utilizator care a fost creat la pasul nr. 5.
După care trebuie să actualizați configurația Daemon cu comanda:
systemctl daemon-reload
Etapa 8
Singurul lucru de care avem nevoie este să lansăm 3proxy-ul configurat, să îl adăugăm la autostart și, de asemenea, să deschidem porturi în firewall.
Adăugați-l la pornire automată, lansare și verificați starea:
systemctl enable 3proxy
systemctl start 3proxy
systemctl status 3proxy
După verificarea stării, vedem informații că 3proxy a fost lansat cu succes:
Singurul lucru rămas este să deschideți porturile:
firewall-cmd --zone=public --add-port=50001/tcp
firewall-cmd --zone=public --add-port=50002/tcp
firewall-cmd –reload
Dacă este necesar, reporniți serverul. Este posibil să verificați dacă porturile sunt deschise cu comanda:
firewall-cmd --list-all
Ce ar trebui să fie:
După cum putem vedea, ambele porturi au fost deschise cu succes și sunt ascultate. Conexiunea http este pe primul port, socks este pe al doilea port.
Verificați conexiunea prin orice serviciu convenabil:
Totul funcționează. La noi, nu recomandăm utilizarea unei conexiuni nesecurizate fără autorizare de conectare/parolă, precum și cu un set standard de porturi. În timp ce configurați fișierul de configurare, asigurați-vă că specificați o autentificare și creați o parolă complexă și, de asemenea, schimbați porturile la unele non-standard. În cazuri excepționale, este posibil să utilizați autorizarea adresei IP
Probleme comune
Ceva a mers prost și proxy-ul nu funcționează? Poate că configurația 3proxy a fost făcută incorect. Să luăm în considerare cele mai frecvente probleme și soluțiile lor în timpul instalării și configurării utilitarului.
Nici o conexiune
Cea mai frecventă problemă pentru mulți utilizatori este o conexiune inaccesibilă atunci când fișierele de configurare par a fi configurate corect. Dacă sunteți sigur că toate setările au fost configurate corect, furnizorul de găzduire nu limitează portul selectat și toate datele indică un serviciu funcțional, problema poate fi în Firewall sau, mai precis, configurația incorectă a acestuia. De exemplu, pot exista mai mult de două programe instalate pe sistem care vor intra în conflict unul cu celălalt. Pentru a rezolva problema, este suficient să utilizați un firewall specific. Vă sfătuim să selectați numai iptables sau firewall-cmd.
Serviciul nu se lansează
Serviciul nu pornește după configurarea tuturor fișierelor de configurare necesare. Acest lucru se întâmplă atunci când un pas de configurare este ratat, drepturile corespunzătoare nu sunt acordate sau se face o eroare minoră în fișierele de configurare. Vă recomandăm să studiați cu atenție instrucțiunile pas cu pas din nou, poate ați ratat unul dintre pași. Dacă nimic nu ajută, ar fi o idee bună să reinstalați sistemul de operare și să urmați toți pașii de la început. Vă recomandăm să utilizați probă situat la /cfg/3proxy.cfg.sample, ca o configurație de testare și preinstalat firewall-cmd ca firewall.
Exploatari forestiere
Ultima problemă, dar nu mai puțin importantă, se referă la stocarea fișierelor. 3proxy durează câțiva mb în timpul instalării, dar dimensiunea poate fi mărită semnificativ doar prin înregistrarea în jurnal odată cu trecerea timpului. Faptul este că mulți utilizatori activează înregistrarea jurnalelor într-un fișier separat, dar nu configurează rotația și nu șterg jurnalele irelevante. Pentru rezolvarea acestei probleme pot fi utilizate trei opțiuni:
- Activați înregistrarea în jurnal;
- Ștergeți periodic jurnalele irelevante;
- Activați rotația, așa cum sa făcut în configurația de mai sus. De exemplu, „rotire 30” în fișierul de configurare înseamnă că 3proxy va stoca doar ultimele 30 de fișiere.
Concluzie
Instalarea și configurarea 3proxy pe sistemele de operare CentOS și ArchLinux este o sarcină destul de simplă, dar în același timp eficientă. Articolul a acoperit pașii pentru instalarea pachetelor necesare, configurarea fișierelor de configurare și lansarea serviciului. Cunoștințele dobândite vă vor permite să instalați și să configurați singur serverul proxy fără nicio dificultate.