3proxy ir bezmaksas atvērtā pirmkoda starpniekserveris, ko izmanto dažādiem mērķiem, piemēram, datplūsmas filtrēšanai, kešēšanai un konkrētu vietņu bloķēšanai. Tas atbalsta dažādus protokolus, piemēram, SOCKS v4/v4a/v5, HTTP, HTTPS, FTP, POP3, SMTP, un atbalsta tādas autentifikācijas metodes kā SOCKS5 lietotājvārds/parole, NTLM, LDAP, Kerberos un SSO.
Serveris ir īpaši pielāgojams, nodrošinot detalizētu joslas platuma izmantošanas un savienojuma parametru pārvaldību. 3proxy var instalēt Windows, Linux un macOS platformās. Tas ir viegls un viegli lietojams proxy serveris, kas piemērots maziem un vidēja izmēra tīkliem. Ir iespējams iznomāt vps proxy.
Jāievēro piesardzība, jo serveri nav vēlams instalēt bez atļaujas. Tas var novest pie tā, ka serveri neatļauti izmantos iebrucēji, lai organizētu surogātpasta sūtīšanu un lielu datplūsmu.
Sākumā ir jāuzinstalē vairākas pakotnes un atkarības.
AlmaLinux gadījumā jāizpilda komanda:
yum -y install gcc wget tar
un Debian:
apt install -y build-essential wget tar
Pēc tam lejupielādējiet failus no projekta 3proxy oficiālās vietnes, izaiņojiet arhīvu un kompilējiet lejupielādētos failus.
Pēc tam izveidojiet nepieciešamos direktorijus konfigurācijas failiem un žurnāliem, pārsūtiet izpildāmo programmu 3proxy
un izveidojiet jaunu lietotāju"proxyuser"
un piešķiriet viņam tiesības uz direktorijiem. Lai izveidotu jaunu konfigurācijas failu, izpildiet komandu:
touch /etc/3proxy/3proxy.cfg
Piešķiriet tiesības tikai lietotājam root ar chmod 600 /etc/3proxy/3proxy.cfg
.
Pēc jauna konfigurācijas faila izveides tas ir pareizi jāaizpilda. Lai to izdarītu, pierakstiet lietotāja"proxyuser
" uid
un gid
, pēc tam ar teksta redaktora palīdzību nokopējiet un ielīmējiet tekstu no konfigurācijas faila piemēra. Saglabājiet izmaiņas konfigurācijas failā, un mums ir instalēts 3proxy ar http(s) un socks5-proxy atbalstu.
Tālāk ir konfigurācijas faila paraugs:
Servera konfigurēšana darbam kā proxyuser
(ievietojiet mūsu lietotāja uid
un gid
, ko uzzinājām iepriekš). setgid 991
setuid 991
Norādiet pareizos nosaukumu serverus. Skatiet /etc/resolv.conf:
nserver 8.8.8.8.8.8.8
nserver 8.8.8.4.4
DNS vaicājumiem izmantojiet noklusējuma laika ierobežojumus un kešatmiņas lielumu: 1800 1800 1800 1800 15 60 15 60
nscache 65536
Norādiet starta režīmu kā dēmonu: daemon
Norādiet servera ārējās saskarnes IP adresi: 111.111.111.111.111.111.111
(vai ignorējiet rindu, ja IP ir tāds pats).
Norādiet servera iekšējā interfeisa IP adresi: 192.168.0.1
(vai ignorējiet to, lai proxy klausītos visus IP).
Konfigurējiet http starpniekserveri uz standarta portu 3128:
(norādiet savu ostu, pirms tam pārliecinoties, ka tā darbojas): proxy -p3128 -n -a
.
Konfigurējiet socks proxy uz standarta portu 1080: socks -p1080
(norādiet savu portu, pirms tam pārbaudot, vai tas darbojas).
Norādiet žurnālu ceļu, žurnālu formātu un rotāciju: Log /var/log/3proxy/3proxy/3proxy.log D
logformat "- +_L%t.%. %N.%p %E %U %C:%c %R:%r %O %I %h %T"
rotate 30
Pēc tam izveidojiet systemd
inicializācijas failu un konfigurējiet pareizās atļaujas:
# touch /etc/systemd/system/3proxy.service
# chmod 664 /etc/systemd/system/3proxy.service
Šajā failā jāievieto šāds teksts:
[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 proxyuser`
RemainAfterExit=yes
Restart=on-failure
[Install]
WantedBy=multi-user.target
Saglabāt un atjaunināt systemd
konfigurāciju:
# systemctl daemon-reload
Palaidiet 3proxy un pievienojiet to autoloader:
# systemctl start 3proxy
# systemctl enable 3proxy
Konfigurēšana ir pabeigta. Tagad jums ir http-proxy 3128 portā un socks-proxy
1080 portā.
Pirmā problēma ir tāda, ka pastāv iespēja, ka pēc jauna domēna reģistrēšanas tas nebūs pieejams domēna vārda kešēšanas dēļ. Lai atrisinātu šo problēmu, jāgaida, kamēr tiks atjaunināti DNS ieraksti, vai arī hosts
datnē jāpievieno sava servera IP adrese un jaunais domēns. Tas ļaus jums piekļūt jaunajam domēnam, līdz DNS ieraksti tiks atjaunināti.
Otra problēma - ja izmantojat starpniekserveri ar noklusējuma pieslēgvietām, agrāk vai vēlāk serveris var tikt atklāts. Lai atrisinātu šo problēmu, ieteicams mainīt porti.
Piemēram, varat iestatīt 7834 portu http proxy serverim un 7835 portu Socks serverim. Tomēr arī šādi porti var tikt atklāti, tāpēc varat konfigurēt ugunsmūri tā, lai atļautu piekļuvi serverim tikai no noteiktām adresēm, bet citiem piekļuve tiktu liegta. Šis risinājums ir diezgan uzticams, lai gan nav pārāk elastīgs, jo jums var nebūt piekļuves statiskai IP adresei.
Trešā problēma ir tā, ka, ja izmantojat starpniekserveri un saglabājat visu savienojumu žurnālus, laika gaitā tie var kļūt diezgan lieli un aizņemt lielāko daļu brīvās vietas jūsu diskā. Lai izvairītos no šīs problēmas, jārūpējas par žurnālu rotāciju vai arī žurnāli vispār netiek saglabāti.
Pastāv dažādas žurnālu rotācijas metodes, kas ļauj saglabāt tikai dažus pēdējos žurnālu failus un automātiski dzēst vecākus žurnālus. Tāpēc, lai izvairītos no diska pārpildīšanas, žurnālu rotācijas procesu vislabāk ir iestatīt iepriekš. Tas palīdzēs saglabāt visus datus un izvairīties no informācijas zaudēšanas, izmantojot starpniekserveri.
users proxyuser:CL:password
daemon
log /var/log/3proxy/3proxy.log D
rotate 30
auth strong
proxy -n -a
setgid 65534
setuid 65534
Ir nepieciešams arī izveidot direktoriju žurnāliem un iestatīt atļaujas (mēs palaižam serveri ar minimālām neviena tiesībām sistēmā, izmantojot setgid/setud
direktīvas):
mkdir /var/log/3proxy ; chown nobody /var/log/3proxy
Apskatīsim 3proxy instalēšanu Docker vidē.
Vispirms mums ir jāuzinstalē dažas paketes (un nesen instalētām Debian un Ubuntu operētājsistēmām var būt nepieciešams arī atjaunināt apt
pakešu indeksu, izmantojot # apt update
).
AlmaLinux un CentOS:
# yum install docker docker-compose
Ubuntu un Debian:
# apt install docker docker.io docker-compose
Lejupielādēt attēlu:
# docker pull 3proxy/3proxy
Pēc noklusējuma 3proxy izmanto drošu chroot vidi /usr/local/3proxy
ar uid 65535
un gid 65535
un sagaida, ka 3proxy konfigurācijas fails tiks ievietots /usr/local/etc/3proxy
. Ceļi konfigurācijas failā jānorāda relatīvi pret /usr/local/3proxy
, t. i., /logs
, nevis /usr/local/3proxy/logs
. Chroot režīmā ir nepieciešama nserver
atļauja.
Lai to izdarītu, izveidojiet direktoriju un 3proxy
konfigurācijas failu:
# mkdir -p /etc/dockerapp/3proxy
# touch /etc/dockerapp/3proxy/3poxy.conf
Pēc tam, izmantojot jebkuru sev tīkamu teksta redaktoru, rediģējiet izveidoto konfigurācijas failu 3proxy .conf.
Lai palaistu 3proxy operētājsistēmā Docker, pietiek ar minimālo konfigurāciju:
nserver 8.8.8.8.8.8.8.
socks -p3129
Lai pievienotu reģistrēšanu un lietotāju, jums ir nepieciešams pievienot 3proxy
konfigurācijas failu:
log /logs/3proxy.log
auth strong
users "proxyuser:CR:87beeef3f4ee4661ac1897eca216fc26"
"87beeef3f4ee4661ac1897eca216fc26"
vietā jānorāda proxyuser
paroles MD5 hash. MD5 hash var noskaidrot, izmantojot tiešsaistes ģeneratorus.
Palaidīsim 3proxy, izmantojot docker-compose
. Lai to izdarītu, būs jāizveido konfigurācijas fails .yml
formātā:
# touch /etc/dockerapp/3proxy/docker-compose.yml
Ievietojiet tajā šādu tekstu, izmantojot teksta redaktoru:
version: "2.1"
services:
3proxysvc:
image: 3proxy/3proxy:latest
container_name: 3proxy
volumes:
- /etc/dockerapp/3proxy/conf:/usr/local/3proxy/conf
ports:
- 8080:3129
restart: unless-stopped
Saglabāt. Šajā failā mēs esam norādījuši ārējo portu 8080. Tagad mēs varam to palaist:
# docker-compose -f /etc/dockerapp/3proxy/docker-compose.yml up -d
Mēs saņemsim šādu atbildi:
Izveidot tīklu"3proxy_default
" ar noklusējuma draiveri
Radīt 3proxy ... izdarīts
Tests:
# docker ps
Mēs saņemam atbildi ar konteinera ID, attēlu, statusu, izmantotajiem portiem un nosaukumu:
48cc0cd140cd 3proxy/3proxy:latest "/bin/3proxy /etc/3p..." 5