V tomto článku si ukážeme konfiguraci 3proxy na dedikovaném serveru s operačním systémem ArchLinux/CentOS. 3proxy je jedním z nejdůležitějších a nejfunkčnějších nástrojů. Podporuje různé typy protokolů: HTTP, HTTPS, FTP, SOCKS a další. Pomůže vám nastavit si vlastní proxy server během několika minut.
Článek obsahuje podrobné pokyny k instalaci nástroje a jeho další konfiguraci. Jsou zvažovány problémy jako instalace z oficiálního zdroje, nastavení konfiguračních souborů, otevírání nestandardních portů, dále jsou popsány běžné chyby a uvedena praktická doporučení pro jejich řešení. Před spuštěním si musíte objednat a VPS or Dedikovaný server běží na operačním systému CentOS nebo ArchLinux. Všechny akce v příkladu budou provedeny na dedikovaném serveru poháněném operačním systémem CentOS7 s jednou vyhrazenou statickou veřejnou IP adresou.
Instalace
Krok 1
3proxy se instaluje přímo ze zdrojů. gcc bude použit jako kompilátor. Připojíme se k serveru jako root (superuser) a nainstalujeme kompilátor.
yum install gcc
Krok 2
Nyní je nutné stáhnout zdrojové soubory 3proxy. Můžete to udělat tak, že přejdete na oficiální webové stránky a zkopírováním odkazu na aktuální verzi:
Pokud potřebujete archivovanou verzi, můžete si také stáhnout odkaz přímo z GitHub:
V době psaní tohoto článku je aktuální verze 0.9.3. Stáhněte si jej a ihned rozbalte:
wget https://github.com/z3APA3A/3proxy/archive/0.9.3.tar.gz
tar -xvzf 0.9.3.tar.gz
Krok 3
Přejděte do adresáře s rozbaleným projektem a zkompilujte:
cd 3proxy-0.9.3/
make -f Makefile.Linux
Krok 4
Vytvoříme adresáře a zkopírujeme 3proxy soubor do /usr/bin:
mkdir -p /var/log/3proxy
mkdir /etc/3proxy
cp bin/3proxy /usr/bin/
Krok 5
Vytvoříme uživatele pro práci s katalogem. V tomto případě je uživatelské jméno 3proxyuser:
useradd -s /usr/sbin/nologin -U -M -r 3proxyuser
Vytvořenému uživateli udělujeme práva pro práci s adresáři:
chown -R 3proxyuser:3proxyuser /etc/3proxy
chown -R 3proxyuser:3proxyuser /var/log/3proxy
chown -R 3proxyuser:3proxyuser /usr/bin/3proxy
Nyní vytvoříme konfigurační soubor pomocí příkazu:
touch /etc/3proxy/3proxy.cfg
V případě potřeby můžete nastavit oprávnění ke konfiguračnímu souboru pro uživatele root. Tento krok není povinný, ale přidá ochranu:
chmod 600 /etc/3proxy/3proxy.cfg
Konfigurace 3 proxy
Krok 6
Je nutné správně vyplnit dříve vytvořený konfigurační soubor. Nejprve zjistěte uid a gid uživatele příkazem:
id 3proxyuser
V našem případě se jedná o následující hodnoty:
Chcete-li vyplnit konfigurační soubor, můžete si vzít hotové konfigurace nebo použít dokumentace na oficiálních stránkách. Také soubor s příkladem je již standardně předinstalován; najdete to po cestě: /cfg/3proxy.cfg.sample
Jako příklad uvážíme 2 typy konfigurace: s protokolováním a bez něj. Každý řádek bude doplněn komentáři (jsou označeny symbolem „#“).
Toto je příklad hotové konfigurace bez protokolování:
# 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
Zvažovali jsme možnost konfiguračního souboru bez logování. Nyní vytvoříme konfigurační soubor s přihlášení a autorizace uživatele; bude použit později během nastavení serveru.
Ujistěte se, že poskytujete informace o autorizaci, protože server lze detekovat i na nestandardních portech.
# 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
Tím je nastavení hlavního konfiguračního souboru dokončeno. Pokračujeme do poslední fáze a spouštíme.
Krok 7
Vytvořte inicializační soubor pro systemd:
touch /etc/systemd/system/3proxy.service
Vydejte potřebná práva:
chmod 664 /etc/systemd/system/3proxy.service
Zkopírujte a vložte následující hodnoty do souboru a uložte:
[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»
Upozornění: v hodnotě „ExecStop“ musíte zadat uživatelské jméno, které bylo vytvořeno v kroku č. 5.
Poté musíte aktualizovat konfiguraci démona pomocí příkazu:
systemctl daemon-reload
Krok 8
Jediné, co potřebujeme, je spustit nakonfigurovaný 3proxy, přidat jej do automatického spuštění a také otevřít porty ve firewallu.
Přidejte jej do automatického spouštění, spouštění a kontroly stavu:
systemctl enable 3proxy
systemctl start 3proxy
systemctl status 3proxy
Po kontrole stavu vidíme informaci, že 3proxy byl úspěšně spuštěn:
Zbývá pouze otevřít porty:
firewall-cmd --zone=public --add-port=50001/tcp
firewall-cmd --zone=public --add-port=50002/tcp
firewall-cmd –reload
V případě potřeby restartujte server. Zda jsou porty otevřené, je možné zkontrolovat příkazem:
firewall-cmd --list-all
Co by mělo být:
Jak vidíme, oba porty byly úspěšně otevřeny a naslouchají se. http připojení je na prvním portu, socks je na druhém portu.
Zkontrolujte připojení prostřednictvím jakékoli pohodlné služby:
Vše funguje. z naší strany nedoporučujeme používat nezabezpečené připojení bez autorizace přihlášením/heslem, stejně jako se standardní sadou portů. Při nastavování konfiguračního souboru nezapomeňte zadat přihlašovací jméno a vytvořit složité heslo a také změnit porty na nestandardní. Ve výjimečných případech je možné využít autorizaci IP adresy
Běžné problémy
Něco se pokazilo a proxy nefunguje? Možná byla konfigurace 3proxy provedena nesprávně. Podívejme se na nejčastější problémy a jejich řešení během instalace a konfigurace nástroje.
Žádné připojení
Nejčastějším problémem mnoha uživatelů je nepřístupné připojení, když se zdá, že konfigurační soubory jsou nakonfigurovány správně. Pokud jste si jisti, že všechna nastavení byla nakonfigurována správně, poskytovatel hostingu neomezuje vybraný port a všechna data ukazují na fungující službu, může být problém ve Firewallu, přesněji v jeho nesprávné konfiguraci. V systému mohou být například nainstalovány více než dva programy, které budou ve vzájemném konfliktu. K vyřešení problému stačí použít jeden konkrétní Firewall. Doporučujeme vám vybrat pouze iptables nebo firewall-cmd.
Služba se nespustí
Služba se nespustí po nastavení všech potřebných konfiguračních souborů. K tomu dochází, když chybí konfigurační krok, nejsou udělena příslušná práva nebo je v konfiguračních souborech provedena menší chyba. Doporučujeme vám znovu pečlivě prostudovat pokyny krok za krokem, možná jste některý z kroků přehlédli. Pokud nic nepomůže, bylo by dobré přeinstalovat OS a postupovat podle všech kroků od začátku. Doporučujeme používat vzorek na adrese /cfg/3proxy.cfg.sample jako testovací konfigurace a předinstalovaný firewall-cmd jako firewall.
Přihlášení
Poslední, ale neméně důležitá otázka se týká ukládání souborů. 3proxy zabere během instalace několik MB, ale velikost lze výrazně zvětšit pouze protokolováním s postupem času. Faktem je, že mnoho uživatelů povolí záznam protokolů do samostatného souboru, ale nenastaví rotaci a nemaže nepodstatné protokoly. Pro řešení tohoto problému lze použít tři možnosti:
- Povolit protokolování;
- Pravidelně mažte irelevantní protokoly;
- Povolte otáčení, jak bylo provedeno ve výše uvedené konfiguraci. Například "rotate 30" v konfiguračním souboru znamená, že 3proxy uloží pouze posledních 30 souborů.
Závěr
Instalace a konfigurace 3proxy na operačních systémech CentOS a ArchLinux je poměrně jednoduchý, ale zároveň efektivní úkol. Článek popisuje kroky k instalaci potřebných balíčků, konfiguraci konfiguračních souborů a spuštění služby. Získané znalosti vám umožní nainstalovat a nakonfigurovat proxy server sami bez jakýchkoli potíží.