3proxy je bezplatný proxy server s otvoreným zdrojovým kódom, ktorý sa používa na rôzne účely, napríklad na filtrovanie prevádzky, ukladanie do vyrovnávacej pamäte a blokovanie konkrétnych webových lokalít. Podporuje rôzne protokoly, ako napríklad SOCKS v4/v4a/v5, HTTP, HTTPS, FTP, POP3, SMTP, a podporuje metódy overovania, ako napríklad používateľské meno/heslo SOCKS5, NTLM, LDAP, Kerberos a SSO.
Server je vysoko prispôsobiteľný a poskytuje podrobnú správu využitia šírky pásma a parametrov pripojenia. Server 3proxy je možné nainštalovať na platformy Windows, Linux a macOS. Je to ľahký a ľahko použiteľný proxy server vhodný pre malé až stredne veľké siete. Je možné si prenajať proxy server vps.
Inštalácia 3proxy s podporou http(s) a socks5-proxy
Je potrebné dbať na opatrnosť, pretože inštalácia servera bez autorizácie je nežiaduca. Môže to viesť k neoprávnenému používaniu servera narušiteľmi na organizovanie rozosielania spamu a vysokej návštevnosti.
Na začiatku je potrebné nainštalovať niekoľko balíkov a závislostí.
V prípade systému AlmaLinux je to príkaz:
yum -y install gcc wget tar
a pre Debian:
apt install -y build-essential wget tar
Potom stiahnite súbory z oficiálnej stránky projektu 3proxy, rozbaľte archív a skompilujte stiahnuté súbory.
Potom vytvorte potrebné adresáre pre konfiguračné súbory a protokoly, preneste spustiteľný súbor 3proxy a vytvorte nového používateľa"proxyuser" a prideľte mu práva k adresárom. Ak chcete vytvoriť nový konfiguračný súbor, spustite príkaz:
touch /etc/3proxy/3proxy.cfg
Prideľte práva iba používateľovi root pomocou príkazu chmod 600 /etc/3proxy/3proxy.cfg.
Po vytvorení nového konfiguračného súboru je potrebné ho správne vyplniť. Na tento účel si zapíšte uid a gid používateľa"proxyuser" a potom pomocou textového editora skopírujte a vložte text z ukážkového konfiguračného súboru. Uložte zmeny do konfiguračného súboru a máme nainštalovaný 3proxy s podporou http(s) a socks5-proxy.
Konfiguračný súbor
Nižšie je uvedený vzorový konfiguračný súbor:
Konfigurácia servera na spustenie ako proxyuser
(vložte uid a gid nášho používateľa, ktoré sme sa naučili predtým). setgid 991 setuid 991
Zadajte správne menné servery. Pozrite si súbor /etc/resolv.conf: nserver 8.8.8.8.8.8 nserver 8.8.4.4
Použite predvolené časové limity a veľkosť vyrovnávacej pamäte pre dotazy DNS: 1 5 30 60 180 180 1800 1800 15 60 nscache 65536
Zadajte režim spúšťania ako démon: daemon
Zadajte IP adresu vonkajšieho rozhrania servera: 111.111.111.111.111.111 (alebo tento riadok ignorujte, ak je IP rovnaká).
Zadajte IP adresu vnútorného rozhrania servera::
(alebo ho ignorujte, aby proxy server počúval na všetkých IP).
Nakonfigurujte proxy server http na štandardnom porte 3128:
(zadajte svoj port, pričom sa vopred uistite, že funguje): proxy -p3128 -n -a.
Nakonfigurujte proxy server socks na štandardnom porte 1080:
(zadajte svoj port a vopred skontrolujte, či funguje).
Zadajte cestu k logom, formát logov a rotáciu: 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
Ďalej vytvorte inicializačný súbor pre systemd a nakonfigurujte správne oprávnenia:
# touch /etc/systemd/system/3proxy.service
# chmod 664 /etc/systemd/system/3proxy.service
Do tohto súboru by sa mal vložiť nasledujúci 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 konfiguráciu systemd:
# systemctl daemon-reload
Spustite 3proxy a pridajte ho do autoloadera:
# systemctl start 3proxy
# systemctl enable 3proxy
Konfigurácia je dokončená. Teraz máte http-proxy na porte 3128 a socks-proxy na porte 1080.
Riešenie niektorých problémov
Prvým problémom je možnosť, že po registrácii novej domény ju nebudete mať k dispozícii z dôvodu ukladania názvu domény do vyrovnávacej pamäte. Ak chcete tento problém vyriešiť, mali by ste počkať na aktualizáciu záznamov DNS alebo pridať IP adresu svojho servera a novú doménu do súboru hosts. To vám umožní prístup k novej doméne, kým sa záznamy DNS neaktualizujú.
Problém číslo dva - ak používate proxy server s predvolenými portami, skôr či neskôr môže byť server zistený. Na vyriešenie tohto problému sa odporúča zmeniť porty.
Môžete napríklad nastaviť port 7834 na serveri http proxy a 7835 na serveri Socks. Aj takéto porty však môžu byť detekované, preto môžete nakonfigurovať bránu firewall tak, aby povolila prístup k serveru len z určitých adries, zatiaľ čo ostatným bude prístup zamietnutý. Toto riešenie je pomerne spoľahlivé, aj keď nie príliš flexibilné, pretože nemusíte mať prístup k statickej adrese IP.
Tretím problémom je, že ak používate proxy server a uchovávate protokoly o všetkých pripojeniach, časom môžu byť dosť veľké a zaberať väčšinu voľného miesta na disku. Ak sa chcete vyhnúť tomuto problému, mali by ste sa postarať o rotáciu protokolov alebo neuchovávať protokoly vôbec.
Existujú rôzne metódy rotácie protokolov, ktoré umožňujú uchovávať len niekoľko posledných súborov protokolov a automaticky odstraňovať staršie protokoly. Preto je najlepšie nastaviť proces rotácie protokolov vopred, aby nedošlo k preplneniu disku. Pomôže to zachovať všetky údaje a zabrániť strate informácií pri používaní servera proxy.
Zjednodušená konfigurácia anonymného proxy servera http(s) na porte 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 tiež potrebné vytvoriť adresár pre protokoly a nastaviť oprávnenia (server spustíme s minimálnymi právami nikoho v systéme pomocou direktív setgid/setud):
mkdir /var/log/3proxy ; chown nobody /var/log/3proxy
Inštalácia servera 3proxy v aplikácii Docker
Uvažujme o inštalácii servera 3proxy do nástroja Docker.
Najprv musíme nainštalovať niektoré balíky (a v prípade nedávno nainštalovaných operačných systémov Debian a Ubuntu môžeme tiež potrebovať aktualizovať index balíkov apt pomocou # apt update).
Pre systémy AlmaLinux a CentOS:
# yum install docker docker-compose
Pre Ubuntu a Debian:
# apt install docker docker.io docker-compose
Stiahnite si obraz:
# docker pull 3proxy/3proxy
V predvolenom nastavení 3proxy používa bezpečné chroot prostredie v /usr/local/3proxy s uid 65535 a gid 65535 a očakáva, že konfiguračný súbor 3proxy bude umiestnený v /usr/local/etc/3proxy. Cesty v konfiguračnom súbore by mali byť zadané relatívne voči /usr/local/3proxy, t. j. namiesto /usr/local/3proxy/logs by to malo byť /logs. V chroote sa vyžaduje oprávnenie pre nserver.
Na tento účel vytvorte adresár a konfiguračný súbor 3proxy:
# mkdir -p /etc/dockerapp/3proxy
# touch /etc/dockerapp/3proxy/3poxy.conf
Potom použite ľubovoľný textový editor na úpravu vytvoreného konfiguračného súboru 3proxy .conf. Na spustenie 3proxy v Dockeri stačí minimálna konfigurácia:
nserver 8.8.8.8.8.8 socks -p3129
Ak chcete pridať logovanie a používateľa, musíte pridať do konfiguračného súboru 3proxy:
log /logs/3proxy.log
auth strong
users "proxyuser:CR:87beeef3f4ee4661ac1897eca216fc26"
Namiesto"87beeef3f4ee4661ac1897eca216fc26"musíte zadať MD5 hash hesla pre proxyuser. Hash MD5 môžete zistiť pomocou online generátorov.
Spustíme 3proxy pomocou docker-compose. To si bude vyžadovať vytvorenie konfiguračného súboru vo formáte .yml:
# touch /etc/dockerapp/3proxy/docker-compose.yml
Pomocou textového editora doň vložte nasledujúci text:
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žte. V tomto súbore sme zadali externý port 8080. Teraz ho môžeme spustiť:
# docker-compose -f /etc/dockerapp/3proxy/docker-compose.yml up -d
Dostaneme takúto odpoveď:
Vytvorenie siete"3proxy_default" s predvoleným ovládačom
Vytvorenie siete 3proxy ... hotovo
Test:
# docker ps
Dostaneme odpoveď s ID kontajnera, obrazom, stavom, použitými portami a názvom:
48cc0cd140cd 3proxy/3proxy:latest "/bin/3proxy /etc/3p..." 5