Katika makala haya tutaonyesha usanidi wa wakala 3 kwenye seva iliyojitolea inayoendeshwa na mfumo wa uendeshaji wa ArchLinux/CentOS. 3proksi ni mojawapo ya zana zinazofaa zaidi na zinazofanya kazi. Inasaidia aina mbalimbali za itifaki: HTTP, HTTPS, FTP, SOCKS, na wengine. Itakusaidia kusanidi seva yako ya wakala kwa dakika chache.
Makala hii ina mwongozo wa hatua kwa hatua kuhusu usakinishaji wa huduma na usanidi wake zaidi. Masuala kama vile usakinishaji kutoka chanzo rasmi, usanidi wa faili za usanidi, kufungua milango isiyo ya kawaida yanazingatiwa, pamoja na makosa ya kawaida yanaelezwa na mapendekezo ya vitendo ya kuyatatua yanatolewa. Kabla ya uzinduzi, lazima uagize VPS au seva maalum inayoendeshwa na mfumo endeshi wa CentOS au ArchLinux. Vitendo vyote katika mfano vitafanywa kwenye seva maalum inayoendeshwa na mfumo endeshi wa CentOS7 yenye anwani moja ya IP ya umma tuli iliyojitolea.
ufungaji
Hatua ya 1
3proxy imewekwa moja kwa moja kutoka kwa vyanzo. gcc itatumika kama kikusanyaji. Tunaunganisha kwenye seva kama mzizi (mtumiaji mkuu) na kusakinisha kikusanyaji.
yum install gcc
Hatua ya 2
Sasa ni muhimu kupakua faili za chanzo cha 3proxy. Unaweza kufanya hivi kwa kwenda kwenye tovuti rasmi na kunakili kiungo cha toleo la sasa:
Ikiwa toleo lililohifadhiwa linahitajika, unaweza pia kupakua kiungo moja kwa moja kutoka GitHub :
Wakati wa kuandika makala hii, toleo la sasa ni 0.9.3. Pakua na uipakue mara moja:
wget https://github.com/z3APA3A/3proxy/archive/0.9.3.tar.gz
tar -xvzf 0.9.3.tar.gz
Hatua ya 3
Nenda kwenye saraka na mradi ambao haujafunguliwa na ujumuishe:
cd 3proxy-0.9.3/
make -f Makefile.Linux
Hatua ya 4
Tunaunda saraka na kunakili faili ya wakala 3 kwa /usr/bin:
mkdir -p /var/log/3proxy
mkdir /etc/3proxy
cp bin/3proxy /usr/bin/
Hatua ya 5
Tunaunda mtumiaji wa kufanya kazi na katalogi. Katika hali hii jina la mtumiaji ni mtumiaji wa proksi 3:
useradd -s /usr/sbin/nologin -U -M -r 3proxyuser
Tunatoa haki ya kufanya kazi na saraka kwa mtumiaji aliyeundwa:
chown -R 3proxyuser:3proxyuser /etc/3proxy
chown -R 3proxyuser:3proxyuser /var/log/3proxy
chown -R 3proxyuser:3proxyuser /usr/bin/3proxy
Sasa wacha tuunda faili ya usanidi kwa kutumia amri:
touch /etc/3proxy/3proxy.cfg
Ikiwa ni lazima, unaweza kuweka ruhusa kwenye faili ya usanidi kwa mtumiaji mkuu. Hatua hii si ya lazima, lakini itaongeza ulinzi:
chmod 600 /etc/3proxy/3proxy.cfg
3 usanidi wa wakala
Hatua ya 6
Inahitajika kujaza kwa usahihi faili ya usanidi ambayo iliundwa mapema. Kwanza, tafuta uid na gid ya mtumiaji kwa amri:
id 3proxyuser
Kwa upande wetu, hizi ni maadili yafuatayo:
Ili kujaza faili ya usanidi, unaweza kuchukua usanidi uliotengenezwa tayari au kutumia nyaraka kwenye tovuti rasmi. Pia faili yenye mfano tayari imesakinishwa awali kwa chaguo-msingi; unaweza kuipata njiani: /cfg/3proxy.cfg.sample
Kwa mfano, tutazingatia aina 2 za usanidi: pamoja na na bila kuingia . Kila mstari utaambatana na maoni (yametiwa alama ya "#").
Huu ni mfano wa usanidi uliotengenezwa tayari bila kuingia :
# 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
Tulizingatia chaguo la faili ya usanidi bila kuingia kwenye kumbukumbu. Sasa tutaunda faili ya usanidi yenye kuingia kwenye kumbukumbu na idhini ya mtumiaji ; itatumika baadaye wakati wa usanidi wa seva.
Hakikisha unatoa taarifa za uidhinishaji, kwani seva inaweza kugunduliwa hata kwenye milango isiyo ya kawaida.
# 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
Hii inakamilisha usanidi wa faili kuu ya usanidi. Tunaendelea hadi hatua ya mwisho na kuzindua.
Hatua ya 7
Unda faili ya uanzishaji kwa systemd:
touch /etc/systemd/system/3proxy.service
Toa haki zinazohitajika:
chmod 664 /etc/systemd/system/3proxy.service
Nakili na ubandike maadili yafuatayo kwenye faili na uhifadhi:
[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»
Tafadhali kumbuka: katika thamani ya "ExecStop" lazima ueleze jina la mtumiaji lililoundwa katika hatua ya 5.
Baada ya hapo unahitaji kusasisha usanidi wa Daemon kwa amri:
systemctl daemon-reload
Hatua ya 8
Tunachohitaji tu ni kuzindua proksi 3 iliyosanidiwa, kuiongeza kwa kuanza kiotomatiki, na pia kufungua milango kwenye ngome.
Iongeze ili kuanza kiotomatiki, uzindue na uangalie hali:
systemctl enable 3proxy
systemctl start 3proxy
systemctl status 3proxy
Baada ya kuangalia hali, tunaona taarifa kwamba 3proksi imezinduliwa kwa ufanisi:
Kitu pekee kilichobaki ni kufungua bandari:
firewall-cmd --zone=public --add-port=50001/tcp
firewall-cmd --zone=public --add-port=50002/tcp
firewall-cmd –reload
Ikiwa ni lazima, fungua upya seva. Inawezekana kuangalia ikiwa bandari zimefunguliwa na amri:
firewall-cmd --list-all
Nini kinapaswa kuwa:
Kama tunavyoona, bandari zote mbili zimefunguliwa kwa mafanikio na zinasikilizwa. Uunganisho wa http uko kwenye bandari ya kwanza, soksi ziko kwenye bandari ya pili.
Angalia muunganisho kupitia huduma yoyote inayofaa:
Kila kitu kinafanya kazi. Kwa upande wetu, hatupendekezi kutumia muunganisho usio salama bila idhini ya kuingia/nenosiri, na pia na seti ya kawaida ya milango . Wakati wa kusanidi faili ya usanidi, hakikisha umetaja kuingia na kuunda nenosiri changamano, na pia ubadilishe milango kuwa isiyo ya kawaida . Katika hali za kipekee, inawezekana kutumia idhini ya anwani ya IP.
Shida za kawaida
Hitilafu fulani imetokea na seva mbadala haifanyi kazi? Labda usanidi wa wakala 3 ulifanyika vibaya. Hebu fikiria matatizo ya kawaida na ufumbuzi wao wakati wa kufunga na kusanidi matumizi.
Hakuna muunganisho
Tatizo la kawaida kwa watumiaji wengi ni muunganisho usioweza kufikiwa wakati faili za usanidi zinaonekana kusanidiwa kwa usahihi. Ikiwa una hakika kwamba mipangilio yote imeundwa kwa usahihi, mtoa huduma haipunguzi bandari iliyochaguliwa na data zote zinaonyesha huduma ya kufanya kazi, tatizo linaweza kuwa katika Firewall, au, kwa usahihi, usanidi wake usio sahihi. Kwa mfano, kunaweza kuwa na programu zaidi ya mbili zilizowekwa kwenye mfumo ambazo zitapingana na kila mmoja. Ili kutatua tatizo, inatosha kutumia Firewall moja maalum. Tunakushauri kuchagua iptables tu au firewall-cmd.
Huduma haizinduliwi
Huduma haianzi baada ya kusanidi faili zote muhimu za usanidi. Hii hutokea wakati hatua ya usanidi inakosekana, haki zinazofaa hazijatolewa, au hitilafu ndogo inapotokea katika faili za usanidi. Tunapendekeza ujifunze maagizo kwa uangalifu hatua kwa hatua tena, labda umekosa moja ya hatua. Ikiwa hakuna kinachosaidia, itakuwa wazo nzuri kusakinisha tena OS na kufuata hatua zote tangu mwanzo. Tunapendekeza kutumia sampuli iliyoko /cfg/3proxy.cfg.sample, kama usanidi wa majaribio, na firewall-cmd iliyosakinishwa awali kama firewall.
Logging
Suala la mwisho, lakini sio muhimu sana linahusiana na uhifadhi wa faili. 3proksi inachukua mb kadhaa wakati wa usakinishaji, lakini saizi inaweza kuongezeka kwa kiasi kikubwa tu kupitia ukataji miti na kupita kwa muda. Ukweli ni kwamba watumiaji wengi huwezesha kurekodi logi katika faili tofauti, lakini usiweke mzunguko na usifute kumbukumbu zisizo na maana. Chaguzi tatu zinaweza kutumika kutatua shida hii:
- Washa kumbukumbu;
- mara kwa mara futa kumbukumbu zisizo na maana;
- Washa mzunguko, kama ulivyofanywa katika usanidi hapo juu. Kwa mfano, "zungusha 30" katika faili ya usanidi inamaanisha kuwa 3proksi itahifadhi faili 30 za hivi karibuni pekee.
Hitimisho
Kufunga na kusanidi 3proksi kwenye mifumo ya uendeshaji ya CentOS na ArchLinux ni rahisi sana, lakini wakati huo huo kazi yenye ufanisi. Kifungu kilishughulikia hatua za kusakinisha vifurushi muhimu, kusanidi faili za usanidi, na kuzindua huduma. Ujuzi uliopatikana utakuruhusu kusakinisha na kusanidi seva yako ya wakala mwenyewe bila matatizo yoyote.