Betalingsmetoder Abuse

Installation af 3proxy

05.06.2023, 23:17

3proxy er en gratis og open source proxyserver, der bruges til forskellige formål som filtrering af trafik, caching og blokering af specifikke hjemmesider. Den understøtter forskellige protokoller som SOCKS v4/v4a/v5, HTTP, HTTPS, FTP, POP3, SMTP og understøtter autentificeringsmetoder som SOCKS5 brugernavn/password, NTLM, LDAP, Kerberos og SSO.

Serveren kan i høj grad tilpasses og giver detaljeret styring af båndbreddeforbrug og forbindelsesparametre. 3proxy kan installeres på Windows-, Linux- og macOS-platforme. Det er en let og brugervenlig proxyserver, der er velegnet til små og mellemstore netværk. Det er muligt at leje en vps-proxy.

Installer 3proxy med http(s) og socks5-proxy-understøttelse

Man bør være forsigtig, da det ikke er ønskeligt at installere serveren uden tilladelse. Det kan føre til uautoriseret brug af serveren af ubudne gæster til at organisere spamming og høj trafik.

Til at begynde med skal flere pakker og afhængigheder installeres.

For AlmaLinux er kommandoen:

yum -y install gcc wget tar

og for Debian:

apt install -y build-essential wget tar

Download derefter filerne fra 3proxy-projektets officielle side, pak arkivet ud, og kompiler de downloadede filer.

Opret derefter de nødvendige mapper til konfigurationsfilerne og logfilerne, overfør den eksekverbare 3proxy-fil, og opret en ny bruger"proxyuser", og giv ham rettigheder til mapperne. Kør kommandoen for at oprette en ny konfigurationsfil:

touch /etc/3proxy/3proxy.cfg

Tildel kun rettigheder til root-brugeren med chmod 600 /etc/3proxy/3proxy.cfg.

Når du har oprettet en ny konfigurationsfil, er det nødvendigt at udfylde den korrekt. For at gøre dette skal du skrive uid og gid for brugeren"proxyuser" ned og derefter bruge en teksteditor til at kopiere og indsætte teksten fra eksempelkonfigurationsfilen. Gem ændringerne i konfigurationsfilen, og vi har en installeret 3proxy med understøttelse af http(s) og socks5-proxy.

Konfigurationsfil

Nedenfor er et eksempel på en konfigurationsfil:

Konfiguration af serveren til at køre som proxyuser

(indsæt uid og gid for vores bruger, som vi lærte tidligere).
setgid 991
setuid 991

Angiv de korrekte navneservere. Se /etc/resolv.conf:
nserver 8.8.8.8.8
nserver 8.8.4.4

Brug standard timeouts og cache-størrelse for DNS-forespørgsler:
timeouts 1 5 30 60 180 180 1800 1800 15 60
nscache 65536

Angiv opstartstilstanden som daemon:
daemon

Angiv IP-adressen for serverens eksterne grænseflade:
external 111.111.111.111.111 (eller ignorer linjen, hvis IP'en er den samme).

Angiv IP-adressen på serverens interne grænseflade:
internal 192.168.0.1 (eller ignorer den, så proxyen lytter til alle IP'er).

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

Konfigurer socks-proxy på standardport 1080:
socks -p1080 (angiv din port, og sørg for, at den virker på forhånd).

Angiv sti til logfiler, logformat og rotation:
log /var/log/3proxy/3proxy/3proxy.log D
logformat "- +_L%t.%. %N.%p %E %U %C:%c %R:%r %O %I %h %T"
roter 30

Dernæst skal du oprette en initialiseringsfil til systemd og konfigurere de korrekte tilladelser:

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

Følgende tekst skal indsættes i denne fil:

[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

Gem og opdater systemd-konfigurationen:

# systemctl daemon-reload

Start 3proxy, og føj den til autoloaderen:

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

Konfigurationen er færdig. Du har nu http-proxy på port 3128 og socks-proxy på port 1080.

Fejlfinding af nogle problemer

Det første problem er, at der er en chance for, at når du har registreret et nyt domæne, vil det ikke være tilgængeligt for dig på grund af caching af domænenavne. For at løse dette problem skal du vente på, at DNS-posterne bliver opdateret, eller tilføje IP-adressen på din server og det nye domæne til din hosts-fil. På den måde kan du få adgang til det nye domæne, indtil DNS-posterne er opdateret.

Problem to - hvis du bruger en proxyserver med standardporte, kan serveren før eller siden blive opdaget. For at løse dette problem anbefales det at ændre portene.

Du kan f.eks. indstille port 7834 på http-proxy og 7835 på Socks. Men sådanne porte kan også blive opdaget, så du kan konfigurere firewallen til kun at tillade adgang til serveren fra bestemte adresser, mens andre vil blive nægtet adgang. Denne løsning er ret pålidelig, men ikke så fleksibel, da du måske ikke har adgang til en statisk IP-adresse.

Det tredje problem er, at hvis du bruger en proxyserver og gemmer logfiler over alle forbindelser, kan de med tiden blive ret store og optage det meste af den ledige plads på din disk. For at undgå dette problem bør du sørge for logrotation eller helt undlade at føre logs.

Der findes forskellige metoder til logrotation, som gør det muligt kun at gemme de sidste par logfiler og automatisk slette ældre logfiler. Derfor er det bedst at sætte logrotationsprocessen op på forhånd for at undgå at overfylde disken. Det vil hjælpe med at gemme alle data og undgå at miste information, når man bruger en proxyserver.

Forenklet konfiguration af 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ødvendigt at oprette en mappe til logfiler og indstille tilladelser (vi starter serveren med minimale rettigheder for ingen i systemet ved hjælp af setgid/setud-direktiver):

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

Installation af 3proxy i Docker

Lad os overveje at installere 3proxy i Docker.

Først skal vi installere nogle pakker (og for nyligt installerede Debian- og Ubuntu-operativsystemer skal vi muligvis også opdatere apt-pakkeindekset med # apt update).

For AlmaLinux og CentOS:

# yum install docker docker-compose

For Ubuntu og Debian:

# apt install docker docker.io docker-compose

Download billedet:

# docker pull 3proxy/3proxy

Som standard bruger 3proxy et sikkert chroot-miljø i /usr/local/3proxy med uid 65535 og gid 65535 og forventer, at 3proxy-konfigurationsfilen er placeret i /usr/local/etc/3proxy. Stierne i konfigurationsfilen skal angives i forhold til /usr/local/3proxy, dvs. det skal være /logs i stedet for /usr/local/3proxy/logs. I chroot kræves der tilladelse til nserver.

For at gøre dette skal du oprette en mappe og en 3proxy-konfigurationsfil:

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

Brug derefter en hvilken som helst teksteditor til at redigere den oprettede 3proxy .conf-konfigurationsfil. For at køre 3proxy i Docker er minimumskonfigurationen tilstrækkelig:

nserver 8.8.8.8.8
sokker -p3129

For at tilføje logning og bruger skal du tilføje til 3proxy-konfigurationsfilen:

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

I stedet for"87beeef3f4ee4661ac1897eca216fc26" skal du angive MD5-hashværdien af adgangskoden til proxybrugeren. Du kan finde ud af MD5-hash'en ved hjælp af online-generatorer.

Lad os starte 3proxy ved hjælp af docker-compose. Det kræver, at der oprettes en konfigurationsfil i .yml-format:

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

Indsæt følgende tekst med en teksteditor:

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

Gem. I denne fil har vi angivet den eksterne port 8080. Nu kan vi køre den:

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

Vi vil få et svar som dette:

Oprettelse af netværk"3proxy_default" med standarddriveren
Oprettelse af 3proxy ... færdig

Vi tester:

# docker ps

Vi får et svar med container-ID, image, status, anvendte porte og navn:

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