Šiame straipsnyje parodysime 3 tarpinio serverio konfigūraciją skirtame serveryje, kurį maitina „ArchLinux“ / „CentOS“ operacinė sistema. 3proxy yra vienas aktualiausių ir funkcionaliausių įrankių. Jis palaiko įvairių tipų protokolus: HTTP, HTTPS, FTP, SOCKS ir kitus. Tai padės per kelias minutes nustatyti savo tarpinį serverį.
Straipsnyje pateikiamos nuoseklios instrukcijos, kaip įdiegti programą ir ją toliau konfigūruoti. Aptariamos tokios problemos kaip diegimas iš oficialaus šaltinio, konfigūracijos failų nustatymas, nestandartinių prievadų atidarymas, taip pat aprašomos dažniausios klaidos ir pateikiamos praktinės rekomendacijos, kaip jas išspręsti. Prieš paleidimą turite užsisakyti VPS arba dedikuotą serverį, veikiantį „CentOS“ arba „ArchLinux“ operacinės sistemos pagrindu. Visi pavyzdyje pateikti veiksmai bus atliekami dedikuotame serveryje, veikiančiame „CentOS7“ operacinės sistemos pagrindu, turinčiame vieną dedikuotą statinį viešąjį IP adresą.
montavimas
žingsnis 1
„3proxy“ diegiamas tiesiai iš šaltinių. „gcc“ bus naudojamas kaip kompiliatorius. Prisijungiame prie serverio kaip root (superuser) ir įdiegiame kompiliatorių.
yum install gcc
žingsnis 2
Dabar reikia atsisiųsti „3proxy“ šaltinio failus. Tai galite padaryti apsilankę oficialioje svetainėje ir nukopijavę nuorodą į dabartinę versiją:
Jei reikia archyvuotos versijos, nuorodą taip pat galite atsisiųsti tiesiai iš „GitHub“ :
Šio straipsnio rašymo metu dabartinė versija yra 0.9.3. Atsisiųskite ir iš karto išpakuokite:
wget https://github.com/z3APA3A/3proxy/archive/0.9.3.tar.gz
tar -xvzf 0.9.3.tar.gz
žingsnis 3
Eikite į katalogą su išpakuotu projektu ir sukompiliuokite:
cd 3proxy-0.9.3/
make -f Makefile.Linux
žingsnis 4
Sukuriame katalogus ir nukopijuojame 3proxy failą į /usr/bin:
mkdir -p /var/log/3proxy
mkdir /etc/3proxy
cp bin/3proxy /usr/bin/
žingsnis 5
Sukuriame vartotoją darbui su katalogu. Šiuo atveju vartotojo vardas yra 3proxyuser:
useradd -s /usr/sbin/nologin -U -M -r 3proxyuser
Sukurtam vartotojui suteikiame teises dirbti su katalogais:
chown -R 3proxyuser:3proxyuser /etc/3proxy
chown -R 3proxyuser:3proxyuser /var/log/3proxy
chown -R 3proxyuser:3proxyuser /usr/bin/3proxy
Dabar sukurkime konfigūracijos failą naudodami komandą:
touch /etc/3proxy/3proxy.cfg
Jei reikia, galite nustatyti root vartotojo teises konfigūracijos faile. Šis žingsnis nėra privalomas, tačiau jis suteiks apsaugą:
chmod 600 /etc/3proxy/3proxy.cfg
3 tarpinio serverio konfigūracija
žingsnis 6
Būtina teisingai užpildyti anksčiau sukurtą konfigūracijos failą. Pirma, sužinokite vartotojo uid ir gid naudodami komandą:
id 3proxyuser
Mūsų atveju tai yra šios vertės:
Norėdami užpildyti konfigūracijos failą, galite naudoti paruoštas konfigūracijas arba naudoti oficialioje svetainėje pateiktą dokumentaciją . Taip pat pagal numatytuosius nustatymus jau yra iš anksto įdiegtas failas su pavyzdžiu, kurį galite rasti šiuo keliu: /cfg/3proxy.cfg.sample
Kaip pavyzdį panagrinėsime 2 konfigūracijos tipus: su registravimu ir be jo . Kiekviena eilutė bus papildyta komentarais (jie pažymėti simboliu „#“).
Štai paruoštos konfigūracijos be registravimo pavyzdys :
# 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
Apsvarstėme konfigūracijos failo be registravimo variantą. Dabar sukursime konfigūracijos failą su registravimu ir vartotojo autorizavimu ; jis bus naudojamas vėliau diegiant serverį.
Būtinai pateikite autorizacijos informaciją, nes serverį galima aptikti net ir naudojant nestandartinius prievadus.
# 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
Tai užbaigia pagrindinio konfigūracijos failo sąranką. Mes pereiname prie paskutinio etapo ir pradedame.
žingsnis 7
Sukurkite systemd inicijavimo failą:
touch /etc/systemd/system/3proxy.service
Išduokite reikiamas teises:
chmod 664 /etc/systemd/system/3proxy.service
Nukopijuokite ir įklijuokite šias reikšmes į failą ir išsaugokite:
[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»
Atkreipkite dėmesį: „ExecStop“ reikšmėje turite nurodyti vartotojo vardą, kuris buvo sukurtas 5 veiksme.
Po to turite atnaujinti „Daemon“ konfigūraciją komanda:
systemctl daemon-reload
žingsnis 8
Mums tereikia paleisti sukonfigūruotą 3proxy, pridėti jį prie automatinio paleidimo ir atidaryti ugniasienės prievadus.
Pridėkite jį prie automatinio paleidimo, paleiskite ir patikrinkite būseną:
systemctl enable 3proxy
systemctl start 3proxy
systemctl status 3proxy
Patikrinus būseną matome informaciją, kad 3proxy sėkmingai paleistas:
Liko tik atidaryti prievadus:
firewall-cmd --zone=public --add-port=50001/tcp
firewall-cmd --zone=public --add-port=50002/tcp
firewall-cmd –reload
Jei reikia, perkraukite serverį. Patikrinti, ar prievadai atidaryti, galima naudojant komandą:
firewall-cmd --list-all
Kas turėtų būti:
Kaip matome, abu prievadai buvo sėkmingai atidaryti ir yra klausomi. http ryšys yra pirmame prievade, kojinės yra antrame prievade.
Patikrinkite ryšį per bet kurią patogią paslaugą:
Viskas veikia. Mes nerekomenduojame naudoti neapsaugoto ryšio be prisijungimo / slaptažodžio autorizacijos, taip pat su standartiniu prievadų rinkiniu . Nustatydami konfigūracijos failą, būtinai nurodykite prisijungimo vardą ir sukurkite sudėtingą slaptažodį, taip pat pakeiskite prievadus į nestandartinius . Išimtiniais atvejais galima naudoti IP adreso autorizaciją.
Dažniausios problemos
Kažkas nutiko ir tarpinis serveris neveikia? Galbūt 3 tarpinio serverio konfigūracija buvo atlikta neteisingai. Apsvarstykite dažniausiai pasitaikančias problemas ir jų sprendimus diegiant ir konfigūruojant naudingumą.
Nėra ryšio
Dažniausia daugelio vartotojų problema yra nepasiekiamas ryšys, kai atrodo, kad konfigūracijos failai sukonfigūruoti teisingai. Jei esate tikri, kad visi nustatymai sukonfigūruoti teisingai, prieglobos paslaugų teikėjas neriboja pasirinkto prievado ir visi duomenys rodo, kad paslauga veikia, problema gali būti užkardoje, o tiksliau – neteisinga jos konfigūracija. Pavyzdžiui, sistemoje gali būti įdiegtos daugiau nei dvi programos, kurios prieštaraus viena kitai. Norėdami išspręsti problemą, pakanka naudoti vieną konkrečią ugniasienę. Patariame pasirinkti tik iptables arba firewall-cmd.
Paslauga nepaleidžiama
Paslauga nepaleidžiama nustačius visus reikiamus konfigūracijos failus. Taip nutinka, kai praleidžiamas konfigūravimo žingsnis, nesuteikiamos atitinkamos teisės arba konfigūracijos failuose padaroma nedidelė klaida. Rekomenduojame dar kartą atidžiai išnagrinėti instrukcijas žingsnis po žingsnio, galbūt praleidote kurį nors žingsnį. Jei niekas nepadeda, geriausia iš naujo įdiegti OS ir atlikti visus veiksmus nuo pradžių. Rekomenduojame naudoti pavyzdį, esantį /cfg/3proxy.cfg.sample, kaip bandomąją konfigūraciją, o iš anksto įdiegtą „firewall-cmd“ – kaip užkardą.
Miško ruoša
Paskutinis, bet ne mažiau svarbus klausimas yra susijęs su failų saugojimu. Diegiant 3proxy užtrunka keletą mb, tačiau dydį galima žymiai padidinti tik laikui bėgant registruojant. Faktas yra tas, kad daugelis vartotojų įgalina žurnalo įrašymą atskirame faile, tačiau nenustato sukimosi ir neištrina nesusijusių žurnalų. Šios problemos sprendimui gali būti naudojami trys variantai:
- Įjungti registravimą;
- Periodiškai ištrinti nesusijusius žurnalus;
- Įgalinkite sukimąsi, kaip buvo padaryta anksčiau pateiktoje konfigūracijoje. Pavyzdžiui, „pasukti 30“ konfigūracijos faile reiškia, kad 3proxy išsaugos tik 30 naujausių failų.
Išvada
3proxy įdiegimas ir konfigūravimas CentOS ir ArchLinux operacinėse sistemose yra gana paprasta, bet kartu ir efektyvi užduotis. Straipsnyje aprašyti būtinų paketų diegimo, konfigūracijos failų konfigūravimo ir paslaugos paleidimo veiksmai. Įgytos žinios leis be jokių sunkumų patiems įdiegti ir konfigūruoti tarpinį serverį.