Այս հոդվածում մենք ցույց կտանք 3proxy-ի կոնֆիգուրացիան հատուկ սերվերի վրա, որը սնուցվում է ArchLinux/CentOS օպերացիոն համակարգով: 3proxy-ն ամենաարդիական և ֆունկցիոնալ գործիքներից մեկն է: Այն աջակցում է տարբեր տեսակի արձանագրությունների՝ HTTP, HTTPS, FTP, SOCKS և այլն: Այն կօգնի ձեզ հաշված րոպեների ընթացքում ստեղծել ձեր սեփական պրոքսի սերվերը:
Հոդվածը պարունակում է քայլ առ քայլ ուղեցույց կոմունալ ծառայությունների տեղադրման և դրա հետագա կազմաձևման վերաբերյալ: Դիտարկվում են այնպիսի հարցեր, ինչպիսիք են պաշտոնական աղբյուրից տեղադրումը, կազմաձևման ֆայլերի տեղադրումը, ոչ ստանդարտ նավահանգիստների բացումը, ինչպես նաև նկարագրված են ընդհանուր սխալները և տրված գործնական առաջարկություններ դրանց լուծման համար: Գործարկումից առաջ դուք պետք է պատվիրեք ա VPS or նվիրված սերվեր սնուցվում է 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
Մենք օգտատեր ենք ստեղծում կատալոգի հետ աշխատելու համար: Այս դեպքում օգտագործողի անունը 3 proxyuser:
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
Անհրաժեշտության դեպքում դուք կարող եք թույլտվություններ սահմանել կազմաձևման ֆայլի վրա արմատային օգտագործողի համար: Այս քայլը պարտադիր չէ, բայց կավելացնի պաշտպանություն.
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 հասցեում, որպես թեստային կոնֆիգուրացիա և նախապես տեղադրված firewall-cmd որպես firewall.
Փայտամթերում
Վերջնական, բայց ոչ պակաս կարևոր խնդիրը վերաբերում է ֆայլերի պահպանմանը։ 3proxy-ը տեղադրման ընթացքում պահանջում է մի քանի mb, բայց չափը կարող է զգալիորեն մեծանալ միայն ժամանակի ընթացքում գրանցման միջոցով: Փաստն այն է, որ շատ օգտատերեր հնարավորություն են տալիս գրանցամատյանների ձայնագրումը առանձին ֆայլում, բայց չեն կարգավորում պտույտը և չեն ջնջում անհամապատասխան տեղեկամատյանները: Այս խնդրի լուծման համար կարելի է օգտագործել երեք տարբերակ.
- Միացնել գրանցումը;
- Պարբերաբար ջնջել անհամապատասխան տեղեկամատյանները;
- Միացնել ռոտացիան, ինչպես արվեց վերը նշված կազմաձևում: Օրինակ, «պտտել 30» կոնֆիգուրացիայի ֆայլում նշանակում է, որ 3proxy-ը կպահի միայն վերջին 30 ֆայլերը:
Եզրափակում
CentOS և ArchLinux օպերացիոն համակարգերում 3proxy-ի տեղադրումն ու կարգավորումը բավականին պարզ, բայց միևնույն ժամանակ արդյունավետ խնդիր է: Հոդվածում ներառված էին անհրաժեշտ փաթեթները տեղադրելու, կազմաձևման ֆայլերը կարգավորելու և ծառայությունը գործարկելու քայլերը: Ձեռք բերված գիտելիքները թույլ կտան առանց որևէ դժվարության տեղադրել և կարգավորել ձեր պրոքսի սերվերը: