Betalningsmetoder Abuse

Installera 3proxy

05.06.2023, 23:17

3proxy är en proxyserver med fri och öppen källkod som används för olika ändamål, t.ex. för att filtrera trafik, cachelagra och blockera specifika webbplatser. Den stöder olika protokoll som SOCKS v4/v4a/v5, HTTP, HTTPS, FTP, POP3, SMTP och stöder autentiseringsmetoder som SOCKS5 användarnamn/lösenord, NTLM, LDAP, Kerberos och SSO.

Servern är mycket anpassningsbar och ger detaljerad hantering av bandbreddsanvändning och anslutningsparametrar. 3proxy kan installeras på Windows-, Linux- och macOS-plattformar. Det är en lättviktig och lättanvänd proxyserver som passar för små till medelstora nätverk. Det är möjligt att hyra en vps-proxy.

Installera 3proxy med stöd för http(s) och socks5-proxy

Var försiktig eftersom det inte är önskvärt att installera servern utan tillstånd. Detta kan leda till att servern används av obehöriga för att organisera skräppost och hög trafik.

Till att börja med måste flera paket och beroenden installeras.

För AlmaLinux är kommandot:

yum -y install gcc wget tar

och för Debian:

apt install -y build-essential wget tar

Ladda sedan ner filerna från den officiella webbplatsen för 3proxy-projektet, packa upp arkivet och kompilera de nedladdade filerna.

Skapa sedan de nödvändiga katalogerna för konfigurationsfilerna och loggarna, överför den körbara filen 3proxy och skapa en ny användare"proxyuser" och tilldela honom rättigheter till katalogerna. För att skapa en ny konfigurationsfil kör du kommandot:

touch /etc/3proxy/3proxy.cfg

Tilldela endast root-användaren behörighet med chmod 600 /etc/3proxy/3proxy.cfg.

När du har skapat en ny konfigurationsfil är det nödvändigt att fylla i den korrekt. För att göra detta skriver du ner uid och gid för användaren"proxyuser" och använder sedan en textredigerare för att kopiera och klistra in texten från exempelkonfigurationsfilen. Spara ändringarna i konfigurationsfilen och vi har nu en installerad 3proxy med stöd för http(s) och socks5-proxy.

Konfigurationsfil

Nedan visas ett exempel på en konfigurationsfil:

Konfigurera servern så att den körs som proxyuser

(infoga uid och gid för vår användare som vi lärde oss tidigare).
setgid 991
setuid 991

Ange rätt namnservrar. Se /etc/resolv.conf:
nserver 8.8.8.8.8
nserver 8.8.4.4

Använd standardtimeouts och cachestorlek för DNS-frågor:
timeouts 1 5 30 60 180 180 1800 1800 1800 15 60
nscache 65536

Ange startläget som daemon:
daemon

Ange IP-adressen för serverns externa gränssnitt:
external 111.111.111.111.111.111 (eller ignorera raden om IP-adressen är densamma).

Ange IP-adressen för serverns interna gränssnitt:
internal 192.168.0.1 (eller ignorera den så att proxyn lyssnar på alla IP-adresser).

Konfigurera http-proxy på standardport 3128:
proxy -p3128 -n -a (ange din port, se till att den fungerar i förväg).

Konfigurera sockproxy på standardport 1080:
socks -p1080 (ange din port och kontrollera att den fungerar i förväg).

Ange sökväg till loggar, loggformat och rotation:
log /var/log/3proxy/3proxy/3proxy/3proxy.log D
logformat "- +_L%t.%. %N.%p %E %U %C:%c %R:%r %O %I %h %T"
rotera 30

Skapa sedan en initialiseringsfil för systemd och konfigurera rätt behörigheter:

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

Följande text ska infogas i denna 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

Spara och uppdatera systemd-konfigurationen:

# systemctl daemon-reload

Starta 3proxy och lägg till den i autoladdaren:

# systemctl start 3proxy
# systemctl enable 3proxy
Kom ihåg att öppna http-proxyporten i firewalld eller iptables.

Konfigurationen är klar. Du har nu http-proxy på port 3128 och socks-proxy på port 1080.

Felsökning av några problem

Det första problemet är att det finns en risk att när du registrerar en ny domän kommer den inte att vara tillgänglig för dig på grund av cachning av domännamn. För att lösa det här problemet bör du vänta på att DNS-posterna uppdateras eller lägga till IP-adressen för din server och den nya domänen i hosts-filen. På så sätt får du tillgång till den nya domänen tills DNS-posterna har uppdaterats.

Problem två - om du använder en proxyserver med standardportar kan servern förr eller senare upptäckas. För att lösa detta problem rekommenderas att du ändrar portarna.

Du kan t.ex. ställa in port 7834 på http-proxy och 7835 på Socks. Men sådana portar kan också upptäckas, så du kan konfigurera brandväggen för att tillåta åtkomst till servern endast från vissa adresser, medan andra kommer att nekas åtkomst. Denna lösning är ganska tillförlitlig, men inte alltför flexibel eftersom du kanske inte har tillgång till en statisk IP-adress.

Det tredje problemet är att om du använder en proxyserver och för loggar över alla anslutningar kan de med tiden bli ganska stora och ta upp det mesta av det lediga utrymmet på din disk. För att undvika detta problem bör du se till att rotera loggarna eller inte föra några loggar alls.

Det finns olika metoder för loggrotation som gör att du bara kan behålla de senaste loggfilerna och automatiskt radera äldre loggar. Därför är det bäst att ställa in loggrotationsprocessen i förväg för att undvika att överfylla skivan. Detta hjälper dig att spara alla data och undvika att förlora information när du använder en proxyserver.

Förenklad konfiguration 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 är också nödvändigt att skapa en katalog för loggar och ställa in behörigheter (vi startar servern med minimala rättigheter för ingen i systemet med hjälp av setgid/setud-direktiven):

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

Installera 3proxy i Docker

Låt oss överväga att installera 3proxy i Docker.

Först och främst måste vi installera några paket (och för nyligen installerade Debian- och Ubuntu-operativsystem kan vi också behöva uppdatera apt-paketindexet med # apt update).

För AlmaLinux och CentOS:

# yum install docker docker-compose

För Ubuntu och Debian:

# apt install docker docker.io docker-compose

Ladda ner bilden:

# docker pull 3proxy/3proxy

Som standard använder 3proxy en säker chroot-miljö i /usr/local/3proxy med uid 65535 och gid 65535, och förväntar sig att 3proxy-konfigurationsfilen placeras i /usr/local/etc/3proxy. Sökvägarna i konfigurationsfilen bör anges relativt /usr/local/3proxy, dvs. det bör vara /logs i stället för /usr/local/3proxy/logs. I chroot krävs behörighet för nserver.

För att göra detta skapar du en katalog och en 3proxy-konfigurationsfil:

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

Använd sedan valfri textredigerare för att redigera den skapade konfigurationsfilen 3proxy .conf. För att köra 3proxy i Docker räcker det med minimikonfigurationen:

nserver 8.8.8.8.8.8
strumpor -p3129

För att lägga till loggning och användare måste du lägga till i konfigurationsfilen 3proxy:

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

Istället för"87beeef3f4ee4661ac1897eca216fc26" måste du ange MD5-hashen för lösenordet för proxyanvändaren. Du kan ta reda på MD5-hashvärdet med hjälp av generatorer på nätet.

Låt oss starta 3proxy med hjälp av docker-compose. Detta kräver att du skapar en konfigurationsfil i .yml-format:

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

Infoga följande text där med hjälp av en textredigerare:

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

Spara. I den här filen har vi angett den externa porten 8080. Nu kan vi köra den:

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

Vi kommer att få ett svar som detta:

Skapar nätverket"3proxy_default" med standarddrivrutinen
Skapar 3proxy ... klar

Testar:

# docker ps

Vi får ett svar med container-ID, image, status, använda portar och namn:

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