Yn dit artikel sille wy 3proxy-konfiguraasje sjen litte op in tawijd server oandreaun troch it bestjoeringssysteem ArchLinux/CentOS. 3proxy is ien fan 'e meast relevante en funksjonele ark. It stipet ferskate soarten protokollen: HTTP, HTTPS, FTP, SOCKS, en oaren. It sil jo helpe om jo eigen proxy-tsjinner yn in pear minuten yn te stellen.
It artikel befettet stap-foar-stap begelieding oer de ynstallaasje fan it hulpprogramma en de fierdere konfiguraasje dêrfan. Problemen lykas ynstallaasje fan in offisjele boarne, it ynstellen fan konfiguraasjebestannen, it iepenjen fan net-standert poarten wurde beskôge, lykas faak foarkommende flaters wurde beskreaun en praktyske oanbefellings foar it oplossen dêrfan wurde jûn. Foar de lansearring moatte jo in VPS of tawijde server bestelle dy't oandreaun wurdt troch it CentOS- of ArchLinux-bestjoeringssysteem. Alle aksjes yn it foarbyld wurde útfierd op in tawijde server dy't oandreaun wurdt troch it CentOS7-bestjoeringssysteem mei ien tawijd statysk iepenbier IP-adres.
Ynstallaasje
Step 1
3proxy wurdt direkt fan 'e boarnekoade ynstalleare. gcc sil brûkt wurde as de compiler. Wy ferbine mei de server as root (superuser) en ynstallearje de compiler.
yum install gcc
Step 2
No is it nedich om de boarnebestannen fan 3proxy te downloaden. Jo kinne dit dwaan troch nei de offisjele webside te gean en de keppeling nei de aktuele ferzje te kopiearjen:
As in argyfearre ferzje nedich is, kinne jo de keppeling ek direkt fan GitHub downloade :
Op it momint fan it skriuwen fan dit artikel is de hjoeddeistige ferzje 0.9.3. Download it en pak it daliks út:
wget https://github.com/z3APA3A/3proxy/archive/0.9.3.tar.gz
tar -xvzf 0.9.3.tar.gz
Step 3
Gean nei de map mei it útpakte projekt en kompilearje:
cd 3proxy-0.9.3/
make -f Makefile.Linux
Step 4
Wy meitsje mappen en kopiearje it 3proxy-bestân nei /usr/bin:
mkdir -p /var/log/3proxy
mkdir /etc/3proxy
cp bin/3proxy /usr/bin/
Step 5
Wy meitsje in brûker oan om mei de katalogus te wurkjen. Yn dit gefal is de brûkersnamme 3proxyuser:
useradd -s /usr/sbin/nologin -U -M -r 3proxyuser
Wy jouwe de rjochten om mei mappen te wurkjen oan de oanmakke brûker:
chown -R 3proxyuser:3proxyuser /etc/3proxy
chown -R 3proxyuser:3proxyuser /var/log/3proxy
chown -R 3proxyuser:3proxyuser /usr/bin/3proxy
Litte wy no in konfiguraasjetriem oanmeitsje mei it kommando:
touch /etc/3proxy/3proxy.cfg
As it nedich is, kinne jo tagongsrjochten ynstelle foar it konfiguraasjebestân foar de root-brûker. Dizze stap is net ferplicht, mar sil beskerming tafoegje:
chmod 600 /etc/3proxy/3proxy.cfg
3 proxy konfiguraasje
Step 6
It is needsaaklik om it konfiguraasjetriem dat earder makke is korrekt yn te foljen. Fyn earst de uid en gid fan 'e brûker út troch it kommando:
id 3proxyuser
Yn ús gefal binne dit de folgjende wearden:
Om it konfiguraasjebestân yn te foljen, kinne jo klearmakke konfiguraasjes brûke of de dokumintaasje op 'e offisjele webside brûke. Ek is standert al in bestân mei in foarbyld ynstalleare; jo kinne it fine ûnder it paad: /cfg/3proxy.cfg.sample
As foarbyld sille wy 2 soarten konfiguraasje beskôgje: mei en sûnder logging . Elke rigel sil begelaat wurde troch opmerkings (se binne markearre mei it "#" symboal).
Dit is in foarbyld fan in klearmakke konfiguraasje sûnder 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
Wy hawwe de opsje fan in konfiguraasjebestân sûnder logging beskôge. No sille wy in konfiguraasjebestân oanmeitsje mei logging en brûkersautorisaasje ; it sil letter brûkt wurde by it opsetten fan 'e server.
Soargje derfoar dat jo autorisaasjeynformaasje leverje, om't de tsjinner sels op net-standert poarten detektearre wurde kin.
# 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
Dit foltôget de opset fan it haadkonfiguraasjetriem. Wy geane troch nei de lêste etappe en lansearje.
Step 7
Meitsje in inisjalisaasjebestân foar systemd:
touch /etc/systemd/system/3proxy.service
Jou de nedige rjochten út:
chmod 664 /etc/systemd/system/3proxy.service
Kopiearje en plakke de folgjende wearden yn it bestân en bewarje:
[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»
Tink derom: yn 'e wearde "ExecStop" moatte jo de brûkersnamme opjaan dy't yn stap nûmer 5 oanmakke is.
Hjirnei moatte jo de Daemon-konfiguraasje bywurkje mei it kommando:
systemctl daemon-reload
Step 8
It iennichste dat wy nedich binne is de konfigureare 3proxy te starten, it taheakje oan autostart, en ek havens iepenje yn 'e firewall.
Foegje it ta oan autostart, lansearje en kontrolearje status:
systemctl enable 3proxy
systemctl start 3proxy
systemctl status 3proxy
Nei it kontrolearjen fan de status, sjogge wy ynformaasje dat 3proxy mei súkses is lansearre:
It iennichste dat oerbleaun is om havens te iepenjen:
firewall-cmd --zone=public --add-port=50001/tcp
firewall-cmd --zone=public --add-port=50002/tcp
firewall-cmd –reload
As it nedich is, herstart de tsjinner. It is mooglik om te kontrolearjen oft de havens iepen binne mei it kommando:
firewall-cmd --list-all
Wat moat wêze:
Sa't wy sjen kinne, binne beide havens mei súkses iepene en wurde harke. http-ferbining is op 'e earste haven, sokken is op' e twadde haven.
Kontrolearje de ferbining fia elke handige tsjinst:
Alles wurket. Wy riede fan ús kant net oan om in ûnfeilige ferbining te brûken sûnder oanmeld-/wachtwurdautorisaasje, en ek mei in standert set poarten . Soargje derfoar dat jo by it ynstellen fan it konfiguraasjetriem in oanmeldnamme opjaan en in kompleks wachtwurd oanmeitsje, en feroarje ek de poarten nei net-standert poarten . Yn útsûnderlike gefallen is it mooglik om IP-adresautorisaasje te brûken.
Algemiene problemen
Der gie der mis en de proxy wurket net? Miskien is de 3proxy-konfiguraasje ferkeard dien. Litte wy de meast foarkommende problemen en har oplossingen beskôgje by it ynstallearjen en konfigurearjen fan it hulpprogramma.
Gjin ferbining
It meast foarkommende probleem foar in protte brûkers is in net tagonklike ferbining as de konfiguraasjetriemmen goed lykje te wêzen konfigureare. As jo der wis fan binne dat alle ynstellingen goed binne konfigureare, beheint de hostingprovider de selektearre poarte net en alle gegevens jouwe in wurkjende tsjinst oan, it probleem kin wêze yn 'e Firewall, of, krekter, de ferkearde konfiguraasje. D'r kinne bygelyks mear as twa programma's ynstalleare op it systeem dy't mei-inoar yn konflikt komme. Om it probleem op te lossen, is it genôch om ien spesifike Firewall te brûken. Wy advisearje jo om allinich iptables of firewall-cmd te selektearjen.
De tsjinst start net
De tsjinst begjint net nei it ynstellen fan alle nedige konfiguraasjebestannen. Dit bart as in konfiguraasjestap mist wurdt, de juste rjochten net jûn wurde, of in lytse flater makke wurdt yn 'e konfiguraasjebestannen. Wy riede jo oan om de ynstruksjes stap foar stap opnij sekuer te bestudearjen, miskien hawwe jo ien fan 'e stappen mist. As neat helpt, soe it in goed idee wêze om it bestjoeringssysteem opnij te ynstallearjen en alle stappen fan it begjin ôf te folgjen. Wy riede oan om it foarbyld te brûken dat te finen is op /cfg/3proxy.cfg.sample, as testkonfiguraasje, en de foarôf ynstalleare firewall-cmd as firewall.
Logging
It lêste, mar net minder wichtige probleem hat te krijen mei bestân opslach. 3proxy nimt ferskate mb tidens ynstallaasje, mar de grutte kin allinich signifikant wurde ferhege troch logging mei de tiid. It feit is dat in protte brûkers ynskeakelje log opname yn in aparte triem, mar net ynstelle rotaasje en net wiskje irrelevante logs. Trije opsjes kinne brûkt wurde foar oplossing fan dit probleem:
- Logging ynskeakelje;
- Periodysk wiskje irrelevante logs;
- Rotaasje ynskeakelje, lykas dien yn 'e konfiguraasje hjirboppe. Bygelyks, "rotearje 30" yn it konfiguraasjetriem betsjut dat 3proxy allinich de lêste 30 bestannen opslaan.
Konklúzje
It ynstallearjen en konfigurearjen fan 3proxy op CentOS en ArchLinux bestjoeringssystemen is in frij ienfâldige, mar tagelyk effektive taak. It artikel behannele de stappen om de nedige pakketten te ynstallearjen, konfiguraasjebestannen te konfigurearjen en de tsjinst te starten. De opdien kennis lit jo jo proxy-tsjinner sels sûnder problemen ynstallearje en konfigurearje.