I den här artikeln kommer vi att visa 3proxy-konfigurationen på en dedikerad server som drivs av operativsystemet ArchLinux/CentOS. 3proxy är ett av de mest relevanta och funktionella verktygen. Den stöder olika typer av protokoll: HTTP, HTTPS, FTP, SOCKS och andra. Det hjälper dig att ställa in din egen proxyserver på några minuter.
Artikeln innehåller steg-för-steg-vägledning om installation av verktyget och dess vidare konfiguration. Problem som installation från en officiell källa, konfigurering av konfigurationsfiler och öppnande av icke-standardiserade portar behandlas, samt vanliga fel beskrivs och praktiska rekommendationer för att lösa dem ges. Innan lansering måste du beställa en VPS eller dedikerad server som drivs av operativsystemet CentOS eller ArchLinux. Alla åtgärder i exemplet kommer att utföras på en dedikerad server som drivs av operativsystemet CentOS7 med en dedikerad statisk offentlig IP-adress.
Installation
steg 1
3proxy installeras direkt från källkoden. gcc kommer att användas som kompilator. Vi ansluter till servern som root (superanvändare) och installerar kompilatorn.
yum install gcc
steg 2
Nu är det nödvändigt att ladda ner källfilerna för 3proxy. Du kan göra detta genom att gå till den officiella webbplatsen och kopiera länken till den aktuella versionen:
Om en arkiverad version behövs kan du också ladda ner länken direkt från GitHub :
När denna artikel skrevs är den aktuella versionen 0.9.3. Ladda ner den och packa upp den omedelbart:
wget https://github.com/z3APA3A/3proxy/archive/0.9.3.tar.gz
tar -xvzf 0.9.3.tar.gz
steg 3
Gå till katalogen med det uppackade projektet och kompilera:
cd 3proxy-0.9.3/
make -f Makefile.Linux
steg 4
Vi skapar kataloger och kopierar 3proxy-filen till /usr/bin:
mkdir -p /var/log/3proxy
mkdir /etc/3proxy
cp bin/3proxy /usr/bin/
steg 5
Vi skapar en användare som ska arbeta med katalogen. I det här fallet är användarnamnet 3proxyuser:
useradd -s /usr/sbin/nologin -U -M -r 3proxyuser
Vi ger rättigheterna att arbeta med kataloger till den skapade användaren:
chown -R 3proxyuser:3proxyuser /etc/3proxy
chown -R 3proxyuser:3proxyuser /var/log/3proxy
chown -R 3proxyuser:3proxyuser /usr/bin/3proxy
Låt oss nu skapa en konfigurationsfil med kommandot:
touch /etc/3proxy/3proxy.cfg
Om det behövs kan du ange behörigheter för konfigurationsfilen för root-användaren. Detta steg är inte obligatoriskt, men kommer att öka skyddet:
chmod 600 /etc/3proxy/3proxy.cfg
3 proxy-konfiguration
steg 6
Det är nödvändigt att korrekt fylla i konfigurationsfilen som skapades tidigare. Ta först reda på användarens uid och gid genom kommandot:
id 3proxyuser
I vårt fall är dessa värden:
För att fylla i konfigurationsfilen kan du använda färdiga konfigurationer eller använda dokumentationen på den officiella webbplatsen. En fil med ett exempel är också redan förinstallerad som standard; du hittar den längs sökvägen: /cfg/3proxy.cfg.sample
Som ett exempel ska vi betrakta två typer av konfiguration: med och utan loggning . Varje rad kommer att åtföljas av kommentarer (de är markerade med symbolen "#").
Detta är ett exempel på en färdig konfiguration utan loggning :
# 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
Vi övervägde alternativet med en konfigurationsfil utan loggning. Nu ska vi skapa en konfigurationsfil med loggning och användarautgivning ; den kommer att användas senare under serverinstallationen.
Se till att du anger auktoriseringsinformation, eftersom servern kan detekteras även på portar som inte är standard.
# 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
Detta slutför installationen av huvudkonfigurationsfilen. Vi går vidare till slutskedet och lanseringen.
steg 7
Skapa en initieringsfil för systemd:
touch /etc/systemd/system/3proxy.service
Utfärda nödvändiga rättigheter:
chmod 664 /etc/systemd/system/3proxy.service
Kopiera och klistra in följande värden i filen och spara:
[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»
Observera: i värdet "ExecStop" måste du ange användarnamnet som skapades i steg nr 5.
Därefter måste du uppdatera Daemon-konfigurationen med kommandot:
systemctl daemon-reload
steg 8
Det enda vi behöver är att starta den konfigurerade 3proxyn, lägga till den i autostart och även öppna portar i brandväggen.
Lägg till den för autostart, start och kontrollera status:
systemctl enable 3proxy
systemctl start 3proxy
systemctl status 3proxy
Efter att ha kontrollerat statusen ser vi information om att 3proxy har lanserats framgångsrikt:
Det enda som återstår är att öppna portar:
firewall-cmd --zone=public --add-port=50001/tcp
firewall-cmd --zone=public --add-port=50002/tcp
firewall-cmd –reload
Om det behövs, starta om servern. Det är möjligt att kontrollera om portarna är öppna med kommandot:
firewall-cmd --list-all
Vad ska vara:
Som vi kan se har båda portarna öppnats framgångsrikt och de lyssnas på. http-anslutningen finns på den första porten, strumpor finns på den andra porten.
Kontrollera anslutningen via någon bekväm tjänst:
Allt fungerar. Vi rekommenderar inte att använda en osäker anslutning utan inloggnings-/lösenordsbehörighet, samt med en standarduppsättning portar . När du konfigurerar konfigurationsfilen, se till att ange en inloggning och skapa ett komplext lösenord, och ändra även portarna till icke-standardiserade . I undantagsfall är det möjligt att använda IP-adressbehörighet.
Vanliga problem
Något gick fel och proxyn fungerar inte? Kanske gjordes 3proxy-konfigurationen felaktigt. Låt oss överväga de vanligaste problemen och deras lösningar under installation och konfigurering av verktyget.
Ingen förbindelse
Det vanligaste problemet för många användare är en otillgänglig anslutning när konfigurationsfilerna verkar vara korrekt konfigurerade. Om du är säker på att alla inställningar har konfigurerats korrekt, värdleverantören begränsar inte den valda porten och all data indikerar en fungerande tjänst, problemet kan vara i brandväggen, eller, mer exakt, dess felaktiga konfiguration. Till exempel kan det finnas fler än två program installerade på systemet som kommer i konflikt med varandra. För att lösa problemet räcker det att använda en specifik brandvägg. Vi rekommenderar att du endast väljer iptables eller brandvägg-cmd.
Tjänsten startar inte
Tjänsten startar inte efter att alla nödvändiga konfigurationsfiler har konfigurerats. Detta inträffar när ett konfigurationssteg missas, lämpliga rättigheter inte anges eller ett mindre fel görs i konfigurationsfilerna. Vi rekommenderar att du noggrant studerar instruktionerna steg för steg igen, kanske har du missat ett av stegen. Om ingenting hjälper är det en bra idé att installera om operativsystemet och följa alla steg från början. Vi rekommenderar att du använder exemplet som finns på /cfg/3proxy.cfg.sample som en testkonfiguration och den förinstallerade firewall-cmd som en brandvägg.
Loggning
Den sista, men inte mindre viktiga frågan gäller fillagring. 3proxy tar flera mb under installationen, men storleken kan ökas avsevärt endast genom loggning med tiden. Faktum är att många användare aktiverar logginspelning i en separat fil, men ställer inte in rotation och tar inte bort irrelevanta loggar. Tre alternativ kan användas för att lösa detta problem:
- Aktivera loggning;
- Ta bort irrelevanta loggar med jämna mellanrum;
- Aktivera rotation, som gjordes i konfigurationen ovan. Till exempel betyder "rotera 30" i konfigurationsfilen att 3proxy endast lagrar de senaste 30 filerna.
Slutsats
Att installera och konfigurera 3proxy på CentOS och ArchLinux operativsystem är en ganska enkel, men samtidigt effektiv uppgift. Artikeln täckte stegen för att installera de nödvändiga paketen, konfigurera konfigurationsfiler och starta tjänsten. Kunskapen du får kommer att tillåta dig att installera och konfigurera din proxyserver själv utan några svårigheter.