Yn yr erthygl hon byddwn yn dangos cyfluniad 3proxy ar weinydd pwrpasol sy'n cael ei bweru gan system weithredu ArchLinux / CentOS. 3proxy yw un o'r offer mwyaf perthnasol a swyddogaethol. Mae'n cefnogi gwahanol fathau o brotocolau: HTTP, HTTPS, FTP, SOCKS, ac eraill. Bydd yn eich helpu i sefydlu eich gweinydd dirprwyol eich hun mewn ychydig funudau.
Mae'r erthygl yn cynnwys canllawiau cam wrth gam ar osod y cyfleustodau a'i ffurfweddiad pellach. Ystyrir materion fel gosod o ffynhonnell swyddogol, sefydlu ffeiliau ffurfweddu, agor porthladdoedd ansafonol, yn ogystal â disgrifio gwallau cyffredin a rhoi argymhellion ymarferol ar gyfer eu datrys. Cyn lansio, rhaid i chi archebu VPS neu weinydd pwrpasol sy'n cael ei bweru gan system weithredu CentOS neu ArchLinux. Bydd yr holl gamau gweithredu yn yr enghraifft yn cael eu perfformio ar weinydd pwrpasol sy'n cael ei bweru gan system weithredu CentOS7 gydag un cyfeiriad IP cyhoeddus statig pwrpasol.
Gosod
1 cam
Mae 3proxy wedi'i osod yn uniongyrchol o'r ffeiliau ffynhonnell. Bydd gcc yn cael ei ddefnyddio fel y crynhoydd. Rydym yn cysylltu â'r gweinydd fel gwraidd (uwchddefnyddiwr) ac yn gosod y crynhoydd.
yum install gcc
2 cam
Nawr mae angen lawrlwytho ffeiliau ffynhonnell y 3proxy. Gallwch wneud hyn drwy fynd i'r wefan swyddogol a chopïo'r ddolen i'r fersiwn gyfredol:
Os oes angen fersiwn wedi'i harchifo, gallwch hefyd lawrlwytho'r ddolen yn uniongyrchol o GitHub :
Ar adeg ysgrifennu'r erthygl hon, y fersiwn gyfredol yw 0.9.3. Dadlwythwch ef a'i ddadbacio ar unwaith:
wget https://github.com/z3APA3A/3proxy/archive/0.9.3.tar.gz
tar -xvzf 0.9.3.tar.gz
3 cam
Ewch i'r cyfeiriadur gyda'r prosiect heb ei bacio a lluniwch:
cd 3proxy-0.9.3/
make -f Makefile.Linux
4 cam
Rydym yn creu cyfeiriaduron ac yn copïo'r ffeil 3proxy i /usr/bin:
mkdir -p /var/log/3proxy
mkdir /etc/3proxy
cp bin/3proxy /usr/bin/
5 cam
Rydym yn creu defnyddiwr i weithio gyda'r catalog. Yn yr achos hwn, yr enw defnyddiwr yw 3proxyuser:
useradd -s /usr/sbin/nologin -U -M -r 3proxyuser
Rydym yn rhoi'r hawliau i weithio gyda chyfeiriaduron i'r defnyddiwr a grëwyd:
chown -R 3proxyuser:3proxyuser /etc/3proxy
chown -R 3proxyuser:3proxyuser /var/log/3proxy
chown -R 3proxyuser:3proxyuser /usr/bin/3proxy
Nawr, gadewch i ni greu ffeil ffurfweddu gan ddefnyddio'r gorchymyn:
touch /etc/3proxy/3proxy.cfg
Os oes angen, gallwch osod caniatâd ar y ffeil ffurfweddu ar gyfer y defnyddiwr gwraidd. Nid yw'r cam hwn yn orfodol, ond bydd yn ychwanegu diogelwch:
chmod 600 /etc/3proxy/3proxy.cfg
cyfluniad 3proxy
6 cam
Mae angen llenwi'r ffeil ffurfweddu a grëwyd yn gynharach yn gywir. Yn gyntaf, darganfyddwch uid a gid y defnyddiwr trwy'r gorchymyn:
id 3proxyuser
Yn ein hachos ni, dyma'r gwerthoedd canlynol:
I lenwi'r ffeil ffurfweddu, gallwch gymryd ffurfweddiadau parod neu ddefnyddio'r ddogfennaeth ar y wefan swyddogol. Hefyd, mae ffeil gydag enghraifft eisoes wedi'i gosod ymlaen llaw yn ddiofyn; gallwch ddod o hyd iddi ar hyd y llwybr: /cfg/3proxy.cfg.sample
Fel enghraifft, byddwn yn ystyried 2 fath o ffurfweddiad: gyda a heb logio . Bydd sylwadau'n cyd-fynd â phob llinell (maent wedi'u marcio â'r symbol "#").
Dyma enghraifft o ffurfweddiad parod heb logio :
# 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
Fe wnaethon ni ystyried yr opsiwn o ffeil ffurfweddu heb gofnodi. Nawr byddwn ni'n creu ffeil ffurfweddu gyda chofnodi ac awdurdodi defnyddwyr ; bydd yn cael ei defnyddio'n ddiweddarach yn ystod sefydlu'r gweinydd.
Gwnewch yn siŵr eich bod yn darparu gwybodaeth awdurdodi, gan y gellir canfod y gweinydd hyd yn oed ar borthladdoedd ansafonol.
# 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
Mae hyn yn cwblhau gosod y brif ffeil ffurfweddu. Symudwn ymlaen at y cam olaf a'r lansiad.
7 cam
Creu ffeil cychwyn ar gyfer systemd:
touch /etc/systemd/system/3proxy.service
Rhowch yr hawliau angenrheidiol:
chmod 664 /etc/systemd/system/3proxy.service
Copïwch a gludwch y gwerthoedd canlynol yn y ffeil a'u cadw:
[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»
Noder: yn y gwerth “ExecStop” rhaid i chi nodi’r enw defnyddiwr a grëwyd yng ngham Rhif 5.
Ar ôl hynny mae angen i chi ddiweddaru cyfluniad Daemon gyda'r gorchymyn:
systemctl daemon-reload
8 cam
Yr unig beth sydd ei angen arnom yw lansio'r 3proxy wedi'i ffurfweddu, ei ychwanegu at autostart, a hefyd agor porthladdoedd yn y wal dân.
Ychwanegwch ef at autostart, lansio a gwirio statws:
systemctl enable 3proxy
systemctl start 3proxy
systemctl status 3proxy
Ar ôl gwirio'r statws, gwelwn wybodaeth bod 3proxy wedi'i lansio'n llwyddiannus:
Yr unig beth sydd ar ôl yw agor porthladdoedd:
firewall-cmd --zone=public --add-port=50001/tcp
firewall-cmd --zone=public --add-port=50002/tcp
firewall-cmd –reload
Os oes angen, ailgychwynwch y gweinydd. Mae'n bosibl gwirio a yw'r porthladdoedd ar agor gyda'r gorchymyn:
firewall-cmd --list-all
Beth ddylai fod:
Fel y gallwn weld, mae'r ddau borthladd wedi'u hagor yn llwyddiannus ac yn cael eu gwrando. Mae cysylltiad http ar y porthladd cyntaf, mae sanau ar yr ail borthladd.
Gwiriwch y cysylltiad trwy unrhyw wasanaeth cyfleus:
Mae popeth yn gweithio'n iawn. O'n rhan ni, nid ydym yn argymell defnyddio cysylltiad heb ddiogelwch heb awdurdodiad mewngofnodi/cyfrinair, yn ogystal â set safonol o borthladdoedd . Wrth sefydlu'r ffeil ffurfweddu, gwnewch yn siŵr eich bod yn nodi mewngofnod ac yn creu cyfrinair cymhleth, a hefyd yn newid y porthladdoedd i rai ansafonol . Mewn achosion eithriadol, mae'n bosibl defnyddio awdurdodiad cyfeiriad IP.
Problemau cyffredin
Aeth rhywbeth o'i le ac nid yw'r dirprwy yn gweithio? Efallai bod y cyfluniad 3proxy wedi'i wneud yn anghywir. Gadewch i ni ystyried y problemau mwyaf cyffredin a'u hatebion wrth osod a ffurfweddu'r cyfleustodau.
Dim cysylltiad
Y broblem fwyaf cyffredin i lawer o ddefnyddwyr yw cysylltiad anhygyrch pan ymddengys bod y ffeiliau ffurfweddu wedi'u ffurfweddu'n gywir. Os ydych chi'n siŵr bod yr holl osodiadau wedi'u ffurfweddu'n gywir, nid yw'r darparwr cynnal yn cyfyngu ar y porthladd a ddewiswyd ac mae'r holl ddata'n nodi gwasanaeth sy'n gweithio, efallai bod y broblem yn y Firewall, neu, yn fwy manwl gywir, ei ffurfweddiad anghywir. Er enghraifft, efallai y bydd mwy na dwy raglen wedi'u gosod ar y system a fydd yn gwrthdaro â'i gilydd. I ddatrys y broblem, mae'n ddigon i ddefnyddio un Firewall penodol. Rydym yn eich cynghori i ddewis dim ond iptables neu firewall-cmd.
Nid yw'r gwasanaeth yn lansio
Nid yw'r gwasanaeth yn cychwyn ar ôl sefydlu'r holl ffeiliau ffurfweddu angenrheidiol. Mae hyn yn digwydd pan gollir cam ffurfweddu, pan nad yw'r hawliau priodol yn cael eu rhoi, neu pan wneir gwall bach yn y ffeiliau ffurfweddu. Rydym yn argymell eich bod yn astudio'r cyfarwyddiadau'n ofalus gam wrth gam eto, efallai eich bod wedi colli un o'r camau. Os nad oes dim yn helpu, byddai'n syniad da ailosod y system weithredu a dilyn yr holl gamau o'r dechrau. Rydym yn argymell defnyddio'r sampl a leolir yn /cfg/3proxy.cfg.sample, fel ffurfweddiad prawf, a'r firewall-cmd sydd wedi'i osod ymlaen llaw fel wal dân.
Logio
Mae'r mater olaf, ond nid llai pwysig, yn ymwneud â storio ffeiliau. Mae 3proxy yn cymryd sawl mb yn ystod y gosodiad, ond dim ond trwy logio gyda threigl amser y gellir cynyddu'r maint yn sylweddol. Y ffaith yw bod llawer o ddefnyddwyr yn galluogi cofnodi log mewn ffeil ar wahân, ond nid ydynt yn sefydlu cylchdro ac nid ydynt yn dileu logiau amherthnasol. Gellir defnyddio tri opsiwn i ddatrys y broblem hon:
- Galluogi logio;
- Dileu logiau amherthnasol o bryd i'w gilydd;
- Galluogi cylchdroi, fel y gwnaed yn y ffurfweddiad uchod. Er enghraifft, mae "cylchdroi 30" yn y ffeil ffurfweddu yn golygu y bydd 3proxy ond yn storio'r 30 ffeil diweddaraf.
Casgliad
Mae gosod a ffurfweddu 3proxy ar systemau gweithredu CentOS ac ArchLinux yn dasg eithaf syml, ond ar yr un pryd yn effeithiol. Roedd yr erthygl yn ymdrin â'r camau i osod y pecynnau angenrheidiol, ffurfweddu ffeiliau ffurfweddu, a lansio'r gwasanaeth. Bydd y wybodaeth a enillwyd yn caniatáu ichi osod a ffurfweddu eich gweinydd dirprwy eich hun heb unrhyw anawsterau.