Betalingsmåter Abuse

Installere 3proxy

05.06.2023, 23:17

3proxy er en gratis proxy-server med åpen kildekode som brukes til ulike formål, for eksempel filtrering av trafikk, caching og blokkering av bestemte nettsteder. Den støtter ulike protokoller som SOCKS v4/v4a/v5, HTTP, HTTPS, FTP, POP3, SMTP, og støtter autentiseringsmetoder som SOCKS5-brukernavn/passord, NTLM, LDAP, Kerberos og SSO.

Serveren kan i stor grad tilpasses, og gir detaljert styring av båndbreddebruk og tilkoblingsparametere. 3proxy kan installeres på Windows-, Linux- og macOS-plattformer. Det er en lett og brukervennlig proxy-server som egner seg for små og mellomstore nettverk. Det er mulig å leie en vps-proxy.

Installer 3proxy med støtte for http(s) og socks5-proxy

Vær forsiktig, da det ikke er ønskelig å installere serveren uten autorisasjon. Dette kan føre til at uvedkommende uautorisert bruker serveren til å organisere spamming og høy trafikk.

Til å begynne med må flere pakker og avhengigheter installeres.

For AlmaLinux er kommandoen:

yum -y install gcc wget tar

og for Debian:

apt install -y build-essential wget tar

Last deretter ned filene fra det offisielle nettstedet til 3proxy-prosjektet, pakk ut arkivet og kompiler de nedlastede filene.

Deretter oppretter du de nødvendige katalogene for konfigurasjonsfilene og loggene, overfører den kjørbare filen 3proxy og oppretter en ny bruker"proxyuser" og tildeler ham rettigheter til katalogene. Kjør kommandoen for å opprette en ny konfigurasjonsfil:

touch /etc/3proxy/3proxy.cfg

Tildel rettigheter kun til root-brukeren med chmod 600 /etc/3proxy/3proxy.cfg.

Når du har opprettet en ny konfigurasjonsfil, er det nødvendig å fylle den riktig. Dette gjør du ved å skrive ned uid og gid for brukeren"proxyuser", og deretter bruke et tekstredigeringsprogram til å kopiere og lime inn teksten fra eksempelkonfigurasjonsfilen. Lagre endringene i konfigurasjonsfilen, og vi har nå en installert 3proxy med støtte for http(s) og socks5-proxy.

Konfigurasjonsfil

Nedenfor er et eksempel på en konfigurasjonsfil:

Konfigurere serveren til å kjøre som proxyuser

(sett inn uid og gid for brukeren vår som vi lærte tidligere).
setgid 991
setuid 991

Angi de riktige navneserverne. Se /etc/resolv.conf:
nserver 8.8.8.8.8.8
nserver 8.8.4.4

Bruk standard tidsavbrudd og bufferstørrelse for DNS-spørringer:
timeouts 1 5 30 60 180 180 1800 1800 1800 15 60
nscache 65536

Angi oppstartsmodus som daemon:
daemon

Angi IP-adressen til det eksterne grensesnittet til serveren:
external 111.111.111.111.111.111.111 (eller ignorer linjen hvis IP-adressen er den samme).

Angi IP-adressen til serverens interne grensesnitt:
internal 192.168.0.1 (eller ignorer den slik at proxyen lytter til alle IP-er).

Konfigurer http-proxy på standardport 3128:
proxy -p3128 -n -a (spesifiser porten din, og sørg for at den fungerer på forhånd).

Konfigurer socks-proxy på standardport 1080:
socks -p1080 (spesifiser porten din, og kontroller at den fungerer på forhånd).

Angi sti til logger, loggformat og rotasjon:
log /var/log/3proxy/3proxy/3proxy/3proxy.log D
logformat "- +_L%t.%. %N.%p %E %E %U %C:%c %R:%r %O %I %h %T"
rotere 30

Deretter oppretter du en initialiseringsfil for systemd og konfigurerer de riktige tillatelsene:

# touch /etc/systemd/system/3proxy.service
# chmod 664 /etc/systemd/system/3proxy.service

Følgende tekst skal settes inn i denne filen:

[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

Lagre og oppdater systemd-konfigurasjonen:

# systemctl daemon-reload

Start 3proxy og legg den til i autoladeren:

# systemctl start 3proxy
# systemctl enable 3proxy
Husk å åpne http-proxy-porten i firewalld eller iptables.

Konfigurasjonen er fullført. Du har nå http-proxy på port 3128 og socks-proxy på port 1080.

Feilsøking av noen problemer

Det første problemet er at det er en sjanse for at du ikke får tilgang til et nytt domene etter at du har registrert det, på grunn av caching av domenenavn. For å løse dette problemet bør du vente på at DNS-postene oppdateres, eller legge til IP-adressen til serveren din og det nye domenet i hosts-filen. På denne måten får du tilgang til det nye domenet inntil DNS-postene er oppdatert.

Problem to - hvis du bruker en proxy-server med standardporter, kan serveren før eller senere bli oppdaget. For å løse dette problemet anbefales det å endre portene.

Du kan for eksempel angi port 7834 på http-proxy og 7835 på Socks. Imidlertid kan slike porter også oppdages, slik at du kan konfigurere brannmuren for å tillate tilgang til serveren bare fra bestemte adresser, mens andre vil bli nektet tilgang. Denne løsningen er ganske pålitelig, men ikke så fleksibel, siden du kanskje ikke har tilgang til en statisk IP-adresse.

Det tredje problemet er at hvis du bruker en proxy-server og fører logger over alle tilkoblinger, kan de etter hvert bli ganske store og ta opp mesteparten av den ledige plassen på disken din. For å unngå dette problemet bør du sørge for å rotere loggene eller la være å føre logger i det hele tatt.

Det finnes ulike metoder for loggrotasjon som gjør at du bare beholder de siste loggfilene og automatisk sletter eldre logger. Derfor er det best å sette opp loggrotasjonsprosessen på forhånd for å unngå at disken blir overfylt. På denne måten kan du lagre alle data og unngå å miste informasjon når du bruker en proxy-server.

Forenklet konfigurasjon av en anonym http(s)-proxyserver på port 3128

users proxyuser:CL:password

daemon

log /var/log/3proxy/3proxy.log D

rotate 30

auth strong

proxy -n -a

setgid 65534

setuid 65534

Det er også nødvendig å opprette en katalog for logger og angi tillatelser (vi starter serveren med minimale rettigheter for ingen i systemet ved hjelp av setgid/setud-direktiver):

mkdir /var/log/3proxy ; chown nobody /var/log/3proxy

Installere 3proxy i Docker

La oss se på installasjonen av 3proxy i Docker.

Først må vi installere noen pakker (og for nylig installerte Debian- og Ubuntu-operativsystemer kan det hende vi også må oppdatere apt-pakkeindeksen med # apt update).

For AlmaLinux og CentOS:

# yum install docker docker-compose

For Ubuntu og Debian:

# apt install docker docker.io docker-compose

Last ned image:

# docker pull 3proxy/3proxy

Som standard bruker 3proxy et sikkert chroot-miljø i /usr/local/3proxy med uid 65535 og gid 65535, og forventer at 3proxy-konfigurasjonsfilen er plassert i /usr/local/etc/3proxy. Stiene i konfigurasjonsfilen skal angis relativt til /usr/local/3proxy, dvs. det skal være /logs i stedet for /usr/local/3proxy/logs. I chroot kreves det tillatelse for nserver.

For å gjøre dette oppretter du en katalog og en 3proxy-konfigurasjonsfil:

# mkdir -p /etc/dockerapp/3proxy
# touch /etc/dockerapp/3proxy/3poxy.conf

Deretter bruker du et tekstredigeringsprogram til å redigere den opprettede konfigurasjonsfilen 3proxy .conf. For å kjøre 3proxy i Docker er minimumskonfigurasjonen tilstrekkelig:

nserver 8.8.8.8.8.8
sokker -p3129

For å legge til logging og bruker, må du legge til i 3proxy-konfigurasjonsfilen:

log /logs/3proxy.log 
auth strong 
users "proxyuser:CR:87beeef3f4ee4661ac1897eca216fc26"

I stedet for"87beeef3f4ee4661ac1897eca216fc26" må du spesifisere MD5-hashverdien av passordet for proxybrukeren. Du kan finne ut MD5-hashverdien ved hjelp av generatorer på nettet.

La oss starte 3proxy ved hjelp av docker-compose. Dette krever at du oppretter en konfigurasjonsfil i .yml-format:

# touch /etc/dockerapp/3proxy/docker-compose.yml

Sett inn følgende tekst der ved hjelp av en tekstredigerer:

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

Lagre. I denne filen har vi spesifisert den eksterne porten 8080. Nå kan vi kjøre den:

# docker-compose -f /etc/dockerapp/3proxy/docker-compose.yml up -d

Vi vil få et svar som dette:

Oppretter nettverk"3proxy_default" med standarddriveren
Oppretter 3proxy ... ferdig

Vi tester:

# docker ps

Vi får et svar med container-ID, image, status, porter som brukes og navn:

48cc0cd140cd 3proxy/3proxy:latest "/bin/3proxy /etc/3p..." 5