3proxy je bezplatný proxy server s otevřeným zdrojovým kódem, který se používá k různým účelům, jako je filtrování provozu, ukládání do mezipaměti a blokování určitých webových stránek. Podporuje různé protokoly, například SOCKS v4/v4a/v5, HTTP, HTTPS, FTP, POP3, SMTP, a podporuje metody ověřování, například SOCKS5 uživatelské jméno/heslo, NTLM, LDAP, Kerberos a SSO.
Server je vysoce přizpůsobitelný a poskytuje podrobnou správu využití šířky pásma a parametrů připojení. Server 3proxy lze nainstalovat na platformách Windows, Linux a macOS. Jedná se o lehký a snadno použitelný proxy server vhodný pro malé až středně velké sítě. Proxy server vps je možné si pronajmout.
Instalace 3proxy s podporou http(s) a socks5-proxy.
Je třeba dbát zvýšené opatrnosti, protože instalace serveru bez autorizace je nežádoucí. To může vést k neoprávněnému použití serveru narušiteli k organizování rozesílání spamu a vysokého provozu.
Pro začátek je třeba nainstalovat několik balíčků a závislostí.
V případě systému AlmaLinux je to příkaz:
yum -y install gcc wget tar
a pro Debian:
apt install -y build-essential wget tar
Poté stáhněte soubory z oficiálních stránek projektu 3proxy, rozbalte archiv a zkompilujte stažené soubory.
Dále vytvořte potřebné adresáře pro konfigurační soubory a protokoly, přeneste spustitelný soubor 3proxy a vytvořte nového uživatele"proxyuser" a přidělte mu práva k adresářům. Chcete-li vytvořit nový konfigurační soubor, spusťte příkaz:
touch /etc/3proxy/3proxy.cfg
Přiřaďte práva pouze uživateli root příkazem chmod 600 /etc/3proxy/3proxy.cfg.
Po vytvoření nového konfiguračního souboru je nutné jej správně vyplnit. K tomu si zapište uid a gid uživatele"proxyuser" a poté pomocí textového editoru zkopírujte a vložte text z příkladového konfiguračního souboru. Uložte změny do konfiguračního souboru a máme nainstalovaný 3proxy s podporou http(s) a socks5-proxy.
Konfigurační soubor
Níže je uveden ukázkový konfigurační soubor:
Konfigurace serveru pro běh jako proxyuser
(vložte uid a gid našeho uživatele, které jsme se naučili dříve). setgid 991 setuid 991
Zadejte správné jmenné servery. Viz soubor /etc/resolv.conf: nserver 8.8.8.8.8.8 nserver 8.8.4.4
Použijte výchozí časové limity a velikost mezipaměti pro dotazy DNS: 1 5 30 60 180 180 1800 1800 15 60 nscache 65536
Zadejte režim spouštění jako démon: daemon
Zadejte IP adresu vnějšího rozhraní serveru: Vnější adresa serveru: 111.111.111.111.111.111 (nebo řádek ignorujte, pokud je IP stejná).
Zadejte IP adresu vnitřního rozhraní serveru::
(nebo jej ignorujte, aby proxy server naslouchal všem IP adresám).
Nakonfigurujte http proxy na standardním portu 3128: Proxy -p3128 -n -a (zadejte svůj port a předem se ujistěte, že funguje).
Nakonfigurujte proxy server socks na standardním portu 1080:
(zadejte svůj port a předem zkontrolujte, zda funguje).
Zadejte cestu k logům, formát logů a jejich rotaci: log /var/log/3proxy/3proxy/3proxy.log D logformat "- +_L%t.%. %N.%p %E %U %C:%c %R:%r %O %I %h %T" rotate 30
Dále vytvořte inicializační soubor pro systemd a nakonfigurujte správná oprávnění:
# touch /etc/systemd/system/3proxy.service
# chmod 664 /etc/systemd/system/3proxy.service
Do tohoto souboru by měl být vložen následující text:
[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
Uložte a aktualizujte konfiguraci systemd:
# systemctl daemon-reload
Spusťte 3proxy a přidejte jej do autoloaderu:
# systemctl start 3proxy
# systemctl enable 3proxy
Konfigurace je dokončena. Nyní máte http-proxy na portu 3128 a socks-proxy na portu 1080.
Řešení některých problémů
První problém spočívá v tom, že existuje možnost, že po registraci nové domény ji nebudete mít k dispozici z důvodu ukládání doménových jmen do mezipaměti. Tento problém vyřešíte tak, že počkáte na aktualizaci záznamů DNS nebo přidáte IP adresu svého serveru a novou doménu do souboru hosts. To vám umožní přístup k nové doméně, dokud nebudou aktualizovány záznamy DNS.
Problém druhý - pokud používáte proxy server s výchozími porty, dříve nebo později může být server detekován. Pro vyřešení tohoto problému se doporučuje porty změnit.
Můžete například nastavit port 7834 na http proxy serveru a 7835 na Socks. Tyto porty však mohou být také detekovány, takže můžete nastavit bránu firewall tak, aby umožňovala přístup k serveru pouze z určitých adres, zatímco ostatním bude přístup odepřen. Toto řešení je poměrně spolehlivé, i když není příliš flexibilní, protože nemusíte mít přístup ke statické IP adrese.
Třetím problémem je, že pokud používáte proxy server a uchováváte protokoly všech připojení, mohou být časem poměrně velké a zabírat většinu volného místa na disku. Abyste se tomuto problému vyhnuli, měli byste se postarat o rotaci protokolů nebo protokoly neuchovávat vůbec.
Existují různé metody rotace protokolů, které umožňují uchovávat pouze několik posledních souborů protokolů a automaticky odstraňovat starší protokoly. Proto je nejlepší nastavit proces rotace protokolů předem, aby nedošlo k přeplnění disku. To pomůže zachovat všechna data a zabránit ztrátě informací při používání proxy serveru.
Zjednodušená konfigurace anonymního proxy serveru http(s) na portu 3128.
users proxyuser:CL:password
daemon
log /var/log/3proxy/3proxy.log D
rotate 30
auth strong
proxy -n -a
setgid 65534
setuid 65534
Je také nutné vytvořit adresář pro protokoly a nastavit práva (server spouštíme s minimálními právy nikoho v systému pomocí direktiv setgid/setud):
mkdir /var/log/3proxy ; chown nobody /var/log/3proxy
Instalace serveru 3proxy v nástroji Docker
Uvažujme o instalaci serveru 3proxy v nástroji Docker.
Nejprve musíme nainstalovat některé balíčky (a v případě nedávno nainstalovaných operačních systémů Debian a Ubuntu možná budeme muset také aktualizovat index balíčků apt pomocí # apt update).
V případě systémů AlmaLinux a CentOS:
# yum install docker docker-compose
Pro Ubuntu a Debian:
# apt install docker docker.io docker-compose
Stáhněte si obraz:
# docker pull 3proxy/3proxy
Ve výchozím nastavení používá 3proxy bezpečné chroot prostředí v /usr/local/3proxy s uid 65535 a gid 65535 a očekává, že konfigurační soubor 3proxy bude umístěn v /usr/local/etc/3proxy. Cesty v konfiguračním souboru by měly být zadány relativně vůči /usr/local/3proxy, tj. místo /usr/local/3proxy/logs by to mělo být /logs. V chrootu je vyžadováno oprávnění pro nserver.
Za tímto účelem vytvořte adresář a konfigurační soubor 3proxy:
# mkdir -p /etc/dockerapp/3proxy
# touch /etc/dockerapp/3proxy/3poxy.conf
Poté pomocí libovolného textového editoru upravte vytvořený konfigurační soubor 3proxy .conf. Pro spuštění 3proxy v Dockeru stačí minimální konfigurace:
nserver 8.8.8.8.8.8 socks -p3129
Abyste mohli přidat přihlašování a uživatele, je třeba přidat do konfiguračního souboru 3proxy:
log /logs/3proxy.log
auth strong
users "proxyuser:CR:87beeef3f4ee4661ac1897eca216fc26"
Místo"87beeef3f4ee4661ac1897eca216fc26"je třeba zadat MD5 hash hesla pro proxyuser. Hash MD5 můžete zjistit pomocí online generátorů.
Spusťme 3proxy pomocí docker-compose. To bude vyžadovat vytvoření konfiguračního souboru ve formátu .yml:
# touch /etc/dockerapp/3proxy/docker-compose.yml
Vložte do něj následující text pomocí textového editoru:
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
Uložit. V tomto souboru jsme zadali externí port 8080. Nyní jej můžeme spustit:
# docker-compose -f /etc/dockerapp/3proxy/docker-compose.yml up -d
Dostaneme takovouto odpověď:
Vytvoření sítě"3proxy_default" s výchozím ovladačem
Vytvoření 3proxy ... hotovo
Test:
# docker ps
Dostaneme odpověď s ID kontejneru, obrazem, stavem, použitými porty a názvem:
3proxy/3proxy:latest "/bin/3proxy /etc/3p...". 5