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.
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.
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.
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.
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
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