Šajā rakstā mēs parādīsim 3 starpniekservera konfigurāciju speciālā serverī, ko darbina ArchLinux/CentOS operētājsistēma. 3proxy ir viens no visatbilstošākajiem un funkcionālajiem rīkiem. Tā atbalsta dažāda veida protokolus: HTTP, HTTPS, FTP, SOCKS un citus. Tas palīdzēs jums dažu minūšu laikā iestatīt savu starpniekserveri.
Rakstā ir ietverti detalizēti norādījumi par utilītas instalēšanu un tās turpmāko konfigurāciju. Tiek apskatītas tādas problēmas kā instalēšana no oficiāla avota, konfigurācijas failu iestatīšana, nestandarta portu atvēršana, kā arī aprakstītas izplatītākās kļūdas un sniegti praktiski ieteikumi to risināšanai. Pirms palaišanas jums jāpasūta a VPS or Serveris darbina CentOS vai ArchLinux operētājsistēma. Visas piemērā minētās darbības tiks veiktas speciālā serverī, ko darbina CentOS7 operētājsistēma ar vienu īpašu statisku publisko IP adresi.
uzstādīšana
solis 1
3proxy tiek instalēts tieši no avotiem. GCC tiks izmantots kā kompilators. Mēs izveidojam savienojumu ar serveri kā root (superlietotājs) un instalējam kompilatoru.
yum install gcc
solis 2
Tagad ir nepieciešams lejupielādēt 3proxy avota failus. To var izdarīt, dodoties uz oficiālā mājas lapa un kopējot saiti uz pašreizējo versiju:
Ja ir nepieciešama arhivēta versija, varat arī lejupielādēt saiti tieši no GitHub:
Raksta rakstīšanas laikā pašreizējā versija ir 0.9.3. Lejupielādējiet to un nekavējoties izpakojiet to:
wget https://github.com/z3APA3A/3proxy/archive/0.9.3.tar.gz
tar -xvzf 0.9.3.tar.gz
solis 3
Dodieties uz direktoriju ar neizpakoto projektu un apkopojiet:
cd 3proxy-0.9.3/
make -f Makefile.Linux
solis 4
Mēs izveidojam direktorijus un kopējam 3proxy failu uz /usr/bin:
mkdir -p /var/log/3proxy
mkdir /etc/3proxy
cp bin/3proxy /usr/bin/
solis 5
Mēs izveidojam lietotāju darbam ar katalogu. Šajā gadījumā lietotājvārds ir 3 starpniekservera lietotājs:
useradd -s /usr/sbin/nologin -U -M -r 3proxyuser
Mēs piešķiram tiesības strādāt ar direktorijiem izveidotajam lietotājam:
chown -R 3proxyuser:3proxyuser /etc/3proxy
chown -R 3proxyuser:3proxyuser /var/log/3proxy
chown -R 3proxyuser:3proxyuser /usr/bin/3proxy
Tagad izveidosim konfigurācijas failu, izmantojot komandu:
touch /etc/3proxy/3proxy.cfg
Ja nepieciešams, varat iestatīt atļaujas konfigurācijas failam saknes lietotājam. Šis solis nav obligāts, bet papildinās aizsardzību:
chmod 600 /etc/3proxy/3proxy.cfg
3 starpniekservera konfigurācija
solis 6
Ir nepieciešams pareizi aizpildīt konfigurācijas failu, kas tika izveidots iepriekš. Vispirms noskaidrojiet lietotāja uid un gid, izmantojot komandu:
id 3proxyuser
Mūsu gadījumā tās ir šādas vērtības:
Lai aizpildītu konfigurācijas failu, varat veikt gatavas konfigurācijas vai izmantot dokumentācija oficiālajā tīmekļa vietnē. Arī fails ar piemēru jau ir iepriekš instalēts pēc noklusējuma; to var atrast pa ceļu: /cfg/3proxy.cfg.sample
Piemēram, mēs apsvērsim 2 konfigurācijas veidus: ar un bez mežizstrādes. Katrai rindai tiks pievienoti komentāri (tie ir atzīmēti ar simbolu “#”).
Šis ir gatavās konfigurācijas piemērs bez mežizstrādes:
# 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
Mēs apsvērām iespēju izveidot konfigurācijas failu bez reģistrēšanas. Tagad mēs izveidosim konfigurācijas failu ar reģistrēšana un lietotāja autorizācija; tas tiks izmantots vēlāk servera iestatīšanas laikā.
Noteikti norādiet autorizācijas informāciju, jo serveri var noteikt pat nestandarta portos.
# 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
Tas pabeidz galvenā konfigurācijas faila iestatīšanu. Mēs pārejam uz pēdējo posmu un sākam.
solis 7
Izveidojiet systemd inicializācijas failu:
touch /etc/systemd/system/3proxy.service
Izsniegt nepieciešamās tiesības:
chmod 664 /etc/systemd/system/3proxy.service
Kopējiet un ielīmējiet failā šādas vērtības un saglabājiet:
[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»
Lūdzu, ņemiet vērā: "ExecStop" vērtībā jānorāda lietotājvārds, kas tika izveidots 5. darbībā.
Pēc tam jums ir jāatjaunina dēmona konfigurācija ar komandu:
systemctl daemon-reload
solis 8
Vienīgais, kas mums nepieciešams, ir palaist konfigurēto 3 starpniekserveri, pievienot to automātiskajai palaišanai un arī atvērt ugunsmūra portus.
Pievienojiet to automātiskajai palaišanai, palaidiet un pārbaudiet statusu:
systemctl enable 3proxy
systemctl start 3proxy
systemctl status 3proxy
Pēc statusa pārbaudes mēs redzam informāciju, ka 3 starpniekserveris ir veiksmīgi palaists:
Atliek tikai atvērt portus:
firewall-cmd --zone=public --add-port=50001/tcp
firewall-cmd --zone=public --add-port=50002/tcp
firewall-cmd –reload
Ja nepieciešams, restartējiet serveri. Ir iespējams pārbaudīt, vai porti ir atvērti ar komandu:
firewall-cmd --list-all
Kādam jābūt:
Kā redzam, abas ostas ir veiksmīgi atvērtas un tiek noklausītas. http savienojums ir pirmajā portā, zeķes ir otrajā portā.
Pārbaudiet savienojumu, izmantojot jebkuru ērtu pakalpojumu:
Viss darbojas. No mūsu puses, mēs neiesakām izmantot neaizsargātu savienojumu bez pieteikšanās/paroles autorizācijas, kā arī ar standarta portu komplektu. Iestatot konfigurācijas failu, noteikti norādiet pieteikumvārdu un izveidojiet sarežģītu paroli, kā arī mainiet portus uz nestandarta. Izņēmuma gadījumos ir iespējams izmantot IP adreses autorizāciju
Biežas problēmas
Kaut kas nogāja greizi, un starpniekserveris nedarbojas? Iespējams, 3 starpniekservera konfigurācija tika veikta nepareizi. Apsvērsim visbiežāk sastopamās problēmas un to risinājumus utilīta instalēšanas un konfigurēšanas laikā.
Nav savienojuma
Visbiežāk sastopamā problēma daudziem lietotājiem ir nepieejams savienojums, ja šķiet, ka konfigurācijas faili ir pareizi konfigurēti. Ja esat pārliecināts, ka visi iestatījumi ir konfigurēti pareizi, mitināšanas pakalpojumu sniedzējs neierobežo izvēlēto portu un visi dati liecina par pakalpojumu, kas darbojas, problēma var būt ugunsmūrī vai, precīzāk, tā nepareizā konfigurācijā. Piemēram, sistēmā var būt instalētas vairāk nekā divas programmas, kas konfliktēs viena ar otru. Lai atrisinātu problēmu, pietiek ar vienu konkrētu ugunsmūri. Mēs iesakām izvēlēties tikai iptables vai firewall-cmd.
Pakalpojums netiek palaists
Pakalpojums nesākas pēc visu nepieciešamo konfigurācijas failu iestatīšanas. Tas notiek, ja tiek izlaists konfigurācijas solis, netiek piešķirtas atbilstošās tiesības vai konfigurācijas failos tiek pieļauta neliela kļūda. Mēs iesakām vēlreiz rūpīgi izpētīt instrukcijas soli pa solim, iespējams, esat palaidis garām kādu no darbībām. Ja nekas nepalīdz, būtu ieteicams pārinstalēt OS un veikt visas darbības no sākuma. Mēs iesakām izmantot paraugs kas atrodas vietnē /cfg/3proxy.cfg.sample, kā testa konfigurācija un iepriekš instalēta ugunsmūris-cmd kā ugunsmūris.
Mežizstrāde
Pēdējais, bet ne mazāk svarīgais jautājums attiecas uz failu glabāšanu. 3proxy instalēšanas laikā aizņem vairākus mb, bet lielumu var ievērojami palielināt tikai ar reģistrēšanu laika gaitā. Fakts ir tāds, ka daudzi lietotāji iespējo žurnālu ierakstīšanu atsevišķā failā, bet neiestata rotāciju un neizdzēš neatbilstošos žurnālus. Šīs problēmas risināšanai var izmantot trīs iespējas:
- Iespējot reģistrēšanu;
- Periodiski dzēst neatbilstošos žurnālus;
- Iespējot rotāciju, kā tas tika darīts iepriekš minētajā konfigurācijā. Piemēram, "rotate 30" konfigurācijas failā nozīmē, ka 3proxy saglabās tikai jaunākos 30 failus.
Secinājumi
3proxy instalēšana un konfigurēšana CentOS un ArchLinux operētājsistēmās ir diezgan vienkāršs, bet tajā pašā laikā efektīvs uzdevums. Rakstā tika aprakstītas nepieciešamo pakotņu instalēšanas, konfigurācijas failu konfigurēšanas un pakalpojuma palaišanas darbības. Iegūtās zināšanas ļaus bez grūtībām pašam uzstādīt un konfigurēt savu starpniekserveri.