An dësem Artikel weisen mir 3proxy Konfiguratioun op engem dedizéierten Server ugedriwwen vum ArchLinux/CentOS Betribssystem. 3proxy ass ee vun de relevantsten a funktionellsten Tools. Et ënnerstëtzt verschidden Aarte vu Protokoller: HTTP, HTTPS, FTP, SOCKS, an anerer. Et hëlleft Iech Ären eegene Proxy Server an e puer Minutten opzestellen.
Den Artikel enthält eng Schrëtt-fir-Schrëtt-Anleitung zur Installatioun vum Utility an zu senger weiderer Konfiguratioun. Problemer wéi d'Installatioun vun enger offizieller Quell, d'Astelle vu Konfiguratiounsdateien, d'Ouverture vun net-Standard-Ports ginn behandelt, souwéi heefeg Feeler beschriwwen a praktesch Empfehlungen fir se ze léisen ginn uginn. Virum Start musst Dir e VPS oder e dedizéierten Server bestellen , deen vum CentOS- oder ArchLinux-Betribssystem ugedriwwe gëtt. All Aktiounen am Beispill ginn op engem dedizéierten Server vum CentOS7-Betribssystem mat enger dedizéierter statescher ëffentlecher IP-Adress duerchgefouert.
Installatioun
Schrëtt 1
3proxy gëtt direkt vun de Quellcodes installéiert. gcc gëtt als Compiler benotzt. Mir verbannen eis mam Server als Root (Superuser) an installéieren de Compiler.
yum install gcc
Schrëtt 2
Elo musst Dir d'Quelldateien vum 3proxy eroflueden. Dir kënnt dat maachen, andeems Dir op déi offiziell Websäit gitt an de Link op déi aktuell Versioun kopéiert:
Wann eng archivéiert Versioun gebraucht gëtt, kënnt Dir de Link och direkt vu GitHub eroflueden :
Zu der Zäit vum Schreiwen vun dësem Artikel ass déi aktuell Versioun 0.9.3. Luet et erof an packt et direkt aus:
wget https://github.com/z3APA3A/3proxy/archive/0.9.3.tar.gz
tar -xvzf 0.9.3.tar.gz
Schrëtt 3
Gitt an de Verzeichnis mam ausgepackte Projet a kompiléiert:
cd 3proxy-0.9.3/
make -f Makefile.Linux
Schrëtt 4
Mir erstellen Verzeichnisser a kopéieren d'3proxy Datei op /usr/bin:
mkdir -p /var/log/3proxy
mkdir /etc/3proxy
cp bin/3proxy /usr/bin/
Schrëtt 5
Mir kreéieren e Benotzer fir mam Katalog ze schaffen. An dësem Fall ass de Benotzernumm 3proxyuser:
useradd -s /usr/sbin/nologin -U -M -r 3proxyuser
Mir ginn d'Rechter fir mat Verzeichnisser ze schaffen un de geschafene Benotzer:
chown -R 3proxyuser:3proxyuser /etc/3proxy
chown -R 3proxyuser:3proxyuser /var/log/3proxy
chown -R 3proxyuser:3proxyuser /usr/bin/3proxy
Loosst eis elo eng Konfiguratiounsdatei erstellen mam Kommando:
touch /etc/3proxy/3proxy.cfg
Wann néideg, kënnt Dir d'Rechter fir de Root-Benotzer an der Konfiguratiounsdatei festleeën. Dëse Schrëtt ass net obligatoresch, awer et erhéicht de Schutz:
chmod 600 /etc/3proxy/3proxy.cfg
3 Proxy Konfiguratioun
Schrëtt 6
Et ass néideg fir d'Konfiguratiounsdatei richteg auszefëllen, déi virdru erstallt gouf. Als éischt, entdeckt d'Uid an d'Gid vum Benotzer mam Kommando:
id 3proxyuser
An eisem Fall sinn dëst déi folgend Wäerter:
Fir d'Konfiguratiounsdatei auszefëllen, kënnt Dir fäerdeg Konfiguratiounen huelen oder d' Dokumentatioun op der offizieller Websäit benotzen. Och eng Datei mat engem Beispill ass standardméisseg scho virinstalléiert; Dir fannt se laanscht de Wee: /cfg/3proxy.cfg.sample
Als Beispill betruechte mir 2 Zorte vu Konfiguratioun: mat an ouni Logging . All Zeil gëtt vu Kommentarer begleet (si sinn mam Symbol "#" markéiert).
Dëst ass e Beispill vun enger fäerdeger Konfiguratioun ouni Logging :
# 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
Mir hunn d'Optioun vun enger Konfiguratiounsdatei ouni Logging iwwerluecht. Elo wäerte mir eng Konfiguratiounsdatei mat Logging an Benotzerautorisatioun erstellen ; déi gëtt spéider beim Server-Setup benotzt.
Vergewëssert Iech, datt Dir Autorisatiounsinformatioune gitt, well de Server och op net-Standardports erkannt ka ginn.
# 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
Dëst fäerdeg de Setup vun der Haaptkonfiguratiounsdatei. Mir ginn op déi lescht Etapp a starten.
Schrëtt 7
Erstellt eng Initialiséierungsdatei fir systemd:
touch /etc/systemd/system/3proxy.service
Gitt déi néideg Rechter aus:
chmod 664 /etc/systemd/system/3proxy.service
Kopéiert a paste déi folgend Wäerter an d'Datei a späichert:
[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»
Opgepasst: Am Wäert "ExecStop" musst Dir de Benotzernumm uginn, deen am Schrëtt Nr. 5 erstallt gouf.
Duerno musst Dir d'Daemon Konfiguratioun aktualiséieren mam Kommando:
systemctl daemon-reload
Schrëtt 8
Dat eenzegt wat mir brauchen ass de konfiguréierten 3proxy ze lancéieren, et op Autostart ze addéieren an och Ports an der Firewall opzemaachen.
Füügt et un Autostart, starten a kontrolléiert de Status:
systemctl enable 3proxy
systemctl start 3proxy
systemctl status 3proxy
Nodeems mir de Status iwwerpréift hunn, gesi mir Informatioun datt 3proxy erfollegräich gestart gouf:
Dat eenzegt wat bleift ass Ports opzemaachen:
firewall-cmd --zone=public --add-port=50001/tcp
firewall-cmd --zone=public --add-port=50002/tcp
firewall-cmd –reload
Wann néideg, de Server nei starten. Et ass méiglech ze kontrolléieren ob d'Ports op sinn mam Kommando:
firewall-cmd --list-all
Wat soll sinn:
Wéi mir kënne gesinn, béid Häfen goufen erfollegräich opgemaach a gi gelauschtert. http Verbindung ass um éischten Hafen, Socken ass um zweeten Hafen.
Kontrolléiert d'Verbindung duerch all praktesch Service:
Alles funktionéiert. Mir recommandéieren net, eng ongeséchert Verbindung ouni Login/Passwuert-Autorisatioun ze benotzen, souwéi mat engem Standard-Set vu Ports . Beim Opstelle vun der Konfiguratiounsdatei, gitt sécher, datt Dir e Login spezifizéiert an e komplex Passwuert erstellt, an och d'Ports op net-Standard Ports ännert . An aussergewéinleche Fäll ass et méiglech, d'IP-Adress-Autorisatioun ze benotzen.
Gemeinsam Problemer
Eppes ass falsch gaang an de Proxy funktionnéiert net? Vläicht gouf d'3proxy Konfiguratioun falsch gemaach. Loosst eis déi heefegste Probleemer an hir Léisunge betruechten wärend der Installatioun an der Konfiguratioun vum Utility.
Keng Verbindung
De heefegste Problem fir vill Benotzer ass eng onzougänglech Verbindung wann d'Konfiguratiounsdateien richteg konfiguréiert schéngen. Wann Dir sécher sidd datt all d'Astellunge richteg konfiguréiert sinn, limitéiert den Hosting Provider den ausgewielten Hafen net an all Daten weisen e funktionnéierende Service un, de Problem kann an der Firewall sinn, oder méi präzis seng falsch Konfiguratioun. Zum Beispill, kann et méi wéi zwee Programmer op de System installéiert ginn, datt mat all aner Konflikt wäert. Fir de Problem ze léisen, ass et genuch fir eng spezifesch Firewall ze benotzen. Mir roden Iech nëmmen iptables oder Firewall-cmd ze wielen.
De Service lancéiert net
De Service start net nodeems all néideg Konfiguratiounsdateien ageriicht goufen. Dëst geschitt wann e Konfiguratiounsschratt verpasst gëtt, déi entspriechend Rechter net ginn oder e klenge Feeler an de Konfiguratiounsdateien gemaach gëtt. Mir recommandéieren Iech, d'Instruktioune Schrëtt fir Schrëtt nach eng Kéier genau ze studéieren, vläicht hutt Dir ee vun de Schrëtt verpasst. Wann näischt hëlleft, wier et eng gutt Iddi, d'Betribssystem nei z'installéieren an all Schrëtt vun Ufank un ze verfollegen. Mir recommandéieren, d'Beispill ënner /cfg/3proxy.cfg.sample als Testkonfiguratioun an déi virinstalléiert Firewall-cmd als Firewall ze benotzen.
Logged
Déi lescht, awer net manner wichteg Fro ass mat der Dateilagerung. 3proxy hëlt e puer MB während der Installatioun, awer d'Gréisst kann erheblech erhéicht ginn nëmmen duerch d'Logéierung mat der Zäit. D'Tatsaach ass datt vill Benotzer d'Logopnam an enger separater Datei aktivéieren, awer d'Rotatioun net astellen an net irrelevant Logbicher läschen. Dräi Optiounen kënne benotzt ginn fir dëse Problem ze léisen:
- Logbuch aktivéieren;
- Periodesch läschen irrelevant Logbicher;
- Aktivéiert Rotatioun, wéi an der Konfiguratioun uewen gemaach. Zum Beispill, "30 rotéieren" an der Konfiguratiounsdatei bedeit datt 3proxy nëmmen déi lescht 30 Dateien späichert.
Conclusioun
3proxy op CentOS an ArchLinux Betribssystemer z'installéieren an ze konfiguréieren ass eng zimlech einfach, awer gläichzäiteg effektiv Aufgab. Den Artikel huet d'Schrëtt iwwerholl fir déi néideg Packagen z'installéieren, Konfiguratiounsdateien ze konfiguréieren an de Service ze starten. D'Wësse gewonnen erlaabt Iech Äre Proxy Server selwer ouni Schwieregkeeten z'installéieren an ze konfiguréieren.