Այս հոդվածում մենք ցույց կտանք 3proxy-ի կոնֆիգուրացիան հատուկ սերվերի վրա, որը սնուցվում է ArchLinux/CentOS օպերացիոն համակարգով: 3proxy-ն ամենաարդիական և ֆունկցիոնալ գործիքներից մեկն է: Այն աջակցում է տարբեր տեսակի արձանագրությունների՝ HTTP, HTTPS, FTP, SOCKS և այլն: Այն կօգնի ձեզ հաշված րոպեների ընթացքում ստեղծել ձեր սեփական պրոքսի սերվերը:
Հոդվածը պարունակում է քայլ առ քայլ ուղեցույց օգտակար ծրագրի տեղադրման և դրա հետագա կարգավորման վերաբերյալ: Դիտարկվում են այնպիսի խնդիրներ, ինչպիսիք են պաշտոնական աղբյուրից տեղադրումը, կարգավորման ֆայլերի տեղադրումը, ոչ ստանդարտ պորտերի բացումը, ինչպես նաև նկարագրվում են տարածված սխալները և տրվում են դրանց լուծման գործնական առաջարկություններ: Գործարկումից առաջ դուք պետք է պատվիրեք VPS կամ նվիրված սերվեր, որը աշխատում է CentOS կամ ArchLinux օպերացիոն համակարգով: Օրինակում ներկայացված բոլոր գործողությունները կկատարվեն CentOS7 օպերացիոն համակարգով աշխատող նվիրված սերվերի վրա՝ մեկ նվիրված ստատիկ հանրային IP հասցեով:
տեղակայում
Քայլ 1
3proxy-ն տեղադրվում է անմիջապես սկզբնաղբյուրներից։ gcc-ն կօգտագործվի որպես կոմպիլյատոր։ Մենք միանում ենք սերվերին որպես root (սուպերօգտատեր) և տեղադրում ենք կոմպիլյատորը։
yum install gcc
Քայլ 2
Հիմա անհրաժեշտ է ներբեռնել 3proxy-ի սկզբնական ֆայլերը: Դուք կարող եք դա անել՝ այցելելով պաշտոնական կայք և պատճենելով ընթացիկ տարբերակի հղումը:
Եթե անհրաժեշտ է արխիվացված տարբերակ, կարող եք նաև ներբեռնել հղումը անմիջապես GitHub- ից ՝
Այս հոդվածը գրելու պահին ներկայիս տարբերակը 0.9.3 է: Ներբեռնեք այն և անմիջապես բացեք այն.
wget https://github.com/z3APA3A/3proxy/archive/0.9.3.tar.gz
tar -xvzf 0.9.3.tar.gz
Քայլ 3
Գնացեք չփաթեթավորված նախագծով գրացուցակ և կազմեք.
cd 3proxy-0.9.3/
make -f Makefile.Linux
Քայլ 4
Մենք ստեղծում ենք դիրեկտորիաներ և պատճենում ենք 3proxy ֆայլը /usr/bin:
mkdir -p /var/log/3proxy
mkdir /etc/3proxy
cp bin/3proxy /usr/bin/
Քայլ 5
Մենք ստեղծում ենք օգտատեր կատալոգի հետ աշխատելու համար։ Այս դեպքում օգտատիրոջ անունը 3proxyuser է։
useradd -s /usr/sbin/nologin -U -M -r 3proxyuser
Ստեղծված օգտատիրոջը տրամադրում ենք դիրեկտորիաների հետ աշխատելու իրավունքներ.
chown -R 3proxyuser:3proxyuser /etc/3proxy
chown -R 3proxyuser:3proxyuser /var/log/3proxy
chown -R 3proxyuser:3proxyuser /usr/bin/3proxy
Այժմ եկեք ստեղծենք կազմաձևման ֆայլ՝ օգտագործելով հրամանը.
touch /etc/3proxy/3proxy.cfg
Անհրաժեշտության դեպքում կարող եք սահմանել թույլտվություններ կարգավորման ֆայլի վրա root օգտատիրոջ համար: Այս քայլը պարտադիր չէ, բայց կավելացնի պաշտպանություն.
chmod 600 /etc/3proxy/3proxy.cfg
3 վստահված անձի կոնֆիգուրացիա
Քայլ 6
Անհրաժեշտ է ճիշտ լրացնել նախկինում ստեղծված կազմաձևման ֆայլը։ Նախ, պարզեք օգտվողի uid-ը և gid-ը հրամանով.
id 3proxyuser
Մեր դեպքում դրանք հետևյալ արժեքներն են.
Կարգավորման ֆայլը լրացնելու համար կարող եք վերցնել պատրաստի կարգավորումներ կամ օգտագործել պաշտոնական կայքում առկա փաստաթղթերը : Բացի այդ, օրինակով ֆայլը արդեն նախապես տեղադրված է լռելյայնորեն. այն կարող եք գտնել հետևյալ ուղու վրա՝ /cfg/3proxy.cfg.sample:
Որպես օրինակ, մենք կքննարկենք կարգավորման 2 տեսակ՝ գրանցման գրանցմամբ և առանց գրանցման ։ Յուրաքանչյուր տողին կուղեկցեն մեկնաբանություններ (դրանք նշված են «#» նշանով)։
Սա առանց գրանցման պատրաստի կարգավորման օրինակ է.
# 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
Մենք դիտարկեցինք առանց գրանցման կարգավորման ֆայլ ստեղծելու տարբերակը։ Հիմա մենք կստեղծենք կարգավորման ֆայլ՝ գրանցումներով և օգտատիրոջ լիազորություններով , որը կօգտագործվի ավելի ուշ՝ սերվերի կարգավորման ժամանակ ։
Համոզվեք, որ տրամադրում եք լիազորման տեղեկություններ, քանի որ սերվերը կարող է հայտնաբերվել նույնիսկ ոչ ստանդարտ միացքների վրա ։
# 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
Սա ավարտում է հիմնական կազմաձևման ֆայլի կարգավորումը: Անցնում ենք եզրափակիչ փուլ և մեկնարկում։
Քայլ 7
Ստեղծեք սկզբնավորման ֆայլ systemd-ի համար.
touch /etc/systemd/system/3proxy.service
Տրամադրել անհրաժեշտ իրավունքները.
chmod 664 /etc/systemd/system/3proxy.service
Պատճենեք և տեղադրեք հետևյալ արժեքները ֆայլի մեջ և պահպանեք.
[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»
Խնդրում ենք նկատի ունենալ. «ExecStop» արժեքում պետք է նշեք օգտատիրոջ անունը, որը ստեղծվել է 5-րդ քայլում:
Դրանից հետո դուք պետք է թարմացնեք Daemon կոնֆիգուրացիան հրամանով.
systemctl daemon-reload
Քայլ 8
Մեզ միայն անհրաժեշտ է գործարկել կազմաձևված 3proxy-ը, ավելացնել այն autostart-ին, ինչպես նաև բացել նավահանգիստները firewall-ում:
Ավելացրեք այն ավտոմատ մեկնարկին, գործարկեք և ստուգեք կարգավիճակը.
systemctl enable 3proxy
systemctl start 3proxy
systemctl status 3proxy
Կարգավիճակը ստուգելուց հետո մենք տեսնում ենք տեղեկատվություն, որ 3proxy-ը հաջողությամբ գործարկվել է.
Մնում է միայն բացել նավահանգիստները.
firewall-cmd --zone=public --add-port=50001/tcp
firewall-cmd --zone=public --add-port=50002/tcp
firewall-cmd –reload
Անհրաժեշտության դեպքում վերագործարկեք սերվերը: Հնարավոր է ստուգել, թե արդյոք նավահանգիստները բաց են հրամանով.
firewall-cmd --list-all
Ինչ պետք է լինի.
Ինչպես տեսնում ենք, երկու պորտերն էլ հաջողությամբ բացվել են և լսվում են։ http կապը առաջին պորտում է, գուլպաները՝ երկրորդ պորտում։
Ստուգեք կապը ցանկացած հարմար ծառայության միջոցով.
Ամեն ինչ աշխատում է։ Մեր կողմից մենք խորհուրդ չենք տալիս օգտագործել չպաշտպանված կապ առանց մուտքի/գաղտնաբառի հաստատման, ինչպես նաև ստանդարտ միացքներով ։ Կարգավորման ֆայլը կարգավորելիս անպայման նշեք մուտքանուն և ստեղծեք բարդ գաղտնաբառ, ինչպես նաև փոխեք միացքները ոչ ստանդարտներով ։ Բացառիկ դեպքերում հնարավոր է օգտագործել IP հասցեի հաստատում։
Ընդհանուր խնդիրներ
Ինչ-որ բան սխալ է տեղի ունեցել, և վստահված անձը չի աշխատում: Հավանաբար, 3proxy-ի կազմաձևումը սխալ է արվել: Դիտարկենք ամենատարածված խնդիրները և դրանց լուծումները կոմունալ ծրագիրը տեղադրելու և կազմաձևելու ընթացքում:
Կապ չկա
Շատ օգտատերերի համար ամենատարածված խնդիրը անհասանելի կապն է, երբ կազմաձևման ֆայլերը կարծես թե ճիշտ են կազմաձևված: Եթե համոզված եք, որ բոլոր կարգավորումները ճիշտ են կազմաձևվել, հոսթինգի մատակարարը չի սահմանափակում ընտրված նավահանգիստը և բոլոր տվյալները ցույց են տալիս աշխատող ծառայություն, խնդիրը կարող է լինել Firewall-ում, կամ, ավելի ճիշտ, դրա սխալ կազմաձևման մեջ: Օրինակ, համակարգում կարող են տեղադրված լինել երկուից ավելի ծրագրեր, որոնք հակասում են միմյանց: Խնդիրը լուծելու համար բավական է օգտագործել մեկ կոնկրետ Firewall: Խորհուրդ ենք տալիս ընտրել միայն iptables կամ firewall-cmd:
Ծառայությունը չի գործարկվում
Ծառայությունը չի մեկնարկում բոլոր անհրաժեշտ կարգավորման ֆայլերը կարգավորելուց հետո: Սա տեղի է ունենում, երբ կարգավորման քայլը բաց է թողնվում, համապատասխան իրավունքները չեն տրամադրվում կամ կարգավորման ֆայլերում աննշան սխալ է թույլ տրվում: Խորհուրդ ենք տալիս ուշադիր ուսումնասիրել հրահանգները քայլ առ քայլ, հնարավոր է՝ բաց եք թողել քայլերից մեկը: Եթե ոչինչ չի օգնում, լավ կլինի վերագործարկել օպերացիոն համակարգը և հետևել բոլոր քայլերին սկզբից: Խորհուրդ ենք տալիս օգտագործել /cfg/3proxy.cfg.sample հասցեում գտնվող sample ֆայլը որպես փորձարկման կարգավորում, իսկ որպես firewall՝ նախապես տեղադրված firewall-cmd ֆայլը:
Փայտամթերում
Վերջնական, բայց ոչ պակաս կարևոր խնդիրը վերաբերում է ֆայլերի պահպանմանը։ 3proxy-ը տեղադրման ընթացքում պահանջում է մի քանի mb, բայց չափը կարող է զգալիորեն մեծանալ միայն ժամանակի ընթացքում գրանցման միջոցով: Փաստն այն է, որ շատ օգտատերեր հնարավորություն են տալիս գրանցամատյանների ձայնագրումը առանձին ֆայլում, բայց չեն կարգավորում պտույտը և չեն ջնջում անհամապատասխան տեղեկամատյանները: Այս խնդրի լուծման համար կարելի է օգտագործել երեք տարբերակ.
- Միացնել գրանցումը;
- Պարբերաբար ջնջել անհամապատասխան տեղեկամատյանները;
- Միացնել ռոտացիան, ինչպես արվեց վերը նշված կազմաձևում: Օրինակ, «պտտել 30» կոնֆիգուրացիայի ֆայլում նշանակում է, որ 3proxy-ը կպահի միայն վերջին 30 ֆայլերը:
Եզրափակում
CentOS և ArchLinux օպերացիոն համակարգերում 3proxy-ի տեղադրումն ու կարգավորումը բավականին պարզ, բայց միևնույն ժամանակ արդյունավետ խնդիր է: Հոդվածում ներառված էին անհրաժեշտ փաթեթները տեղադրելու, կազմաձևման ֆայլերը կարգավորելու և ծառայությունը գործարկելու քայլերը: Ձեռք բերված գիտելիքները թույլ կտան առանց որևէ դժվարության տեղադրել և կարգավորել ձեր պրոքսի սերվերը: