A 3proxy egy ingyenes és nyílt forráskódú proxy szerver, amelyet különböző célokra használnak, például forgalom szűrésére, gyorsítótárazásra és bizonyos weboldalak blokkolására. Támogatja a különböző protokollokat, mint például a SOCKS v4/v4a/v5, HTTP, HTTPS, FTP, POP3, SMTP, és támogatja az olyan hitelesítési módszereket, mint a SOCKS5 felhasználónév/jelszó, NTLM, LDAP, Kerberos és SSO.
A szerver nagymértékben testreszabható, és részletes sávszélesség-felhasználási és kapcsolati paraméterek kezelését teszi lehetővé. A 3proxy telepíthető Windows, Linux és macOS platformokra. Könnyű és könnyen használható proxy szerver, amely alkalmas kis és közepes méretű hálózatokhoz. Lehetőség van vps proxy bérlésére is.
Óvatosan kell eljárni, mivel nem kívánatos a szerver engedély nélküli telepítése. Ez ahhoz vezethet, hogy a szervert illetéktelen behatolók jogosulatlanul használják a spammelés és a nagy forgalom megszervezésére.
Kezdetben számos csomagot és függőséget kell telepíteni.
Az AlmaLinux esetében a parancs:
yum -y install gcc wget tar
és a Debian esetében:
apt install -y build-essential wget tar
Ezután töltse le a fájlokat a 3proxy projekt hivatalos oldaláról, csomagolja ki az archívumot és fordítsa le a letöltött fájlokat.
Ezután hozza létre a szükséges könyvtárakat a konfigurációs fájlok és naplók számára, vigye át a 3proxy
futtatható programot, hozzon létre egy új"proxyuser
" nevű felhasználót, és adjon neki jogokat a könyvtárakhoz. Egy új konfigurációs fájl létrehozásához futtassa a parancsot:
touch /etc/3proxy/3proxy.cfg
Csak a root felhasználónak adjon jogosultságokat a chmod 600 /etc/3proxy/3proxy.cfg
paranccsal.
Az új konfigurációs fájl létrehozása után szükség van annak helyes kitöltésére. Ehhez írja fel a"proxyuser"
felhasználó uid-jét
és gid-jét
, majd egy szövegszerkesztővel másolja ki és illessze be a példakonfigurációs fájl szövegét. Mentse el a változtatásokat a konfigurációs fájlba, és máris van egy telepített 3proxy http(s) és socks5-proxy támogatással.
Az alábbiakban egy minta konfigurációs fájl látható:
A kiszolgáló konfigurálása proxyfelhasználóként való futtatásra
(illesszük be a korábban tanult felhasználónk uid
és gid
azonosítóját). setgid 991
setuid 991
Adjuk meg a megfelelő névszervereket. Lásd az /etc/resolv.conf állományt
: nserver 8.8.8.8.8.8.8
nserver 8.8.4.4.4
Használja az alapértelmezett időkorlátokat és a gyorsítótár méretét a DNS-lekérdezésekhez: 180 180 1800 1800 1800 1800 15 60 60
nscache 65536
Adja meg az indítási módot démonként: daemon
Adja meg a kiszolgáló külső interfészének IP-címét: 111.111.111.111.111.111.111.111
(vagy hagyja figyelmen kívül a sort, ha az IP azonos).
Adja meg a kiszolgáló belső interfészének IP-címét: belső 192.168.0.1
(vagy hagyja figyelmen kívül, hogy a proxy minden IP-t figyeljen).
A http proxy beállítása a 3128-as szabványos porton: proxy -p3128 -n -a
(adja meg a portot, és győződjön meg róla, hogy az előzetesen működik).
Konfigurálja a socks proxy-t a szabványos 1080-as porton: socks -p1080
(adja meg a portot, előzetesen ellenőrizve, hogy működik-e).
Adja meg a naplók elérési útvonalát, a napló formátumát és forgását: log /var/log/3proxy/3proxy/3proxy/3proxy.log D
logformat "- +_L%t.%. %N.%p %E %U %C:%c %R:%r %O %I %h %T"
rotate 30
Ezután hozzon létre egy inicializációs fájlt a systemd
számára, és állítsa be a megfelelő jogosultságokat:
# touch /etc/systemd/system/3proxy.service
# chmod 664 /etc/systemd/system/3proxy.service
Ebbe a fájlba a következő szöveget kell beilleszteni:
[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
Mentse és frissítse a systemd
konfigurációját:
# systemctl daemon-reload
Indítsa el a 3proxy-t, és adja hozzá az autoloaderhez:
# systemctl start 3proxy
# systemctl enable 3proxy
A konfiguráció befejeződött. Most már van http-proxy a 3128-as porton és socks-proxy
az 1080-as porton.
Az első probléma az, hogy van rá esély, hogy miután regisztráltál egy új tartományt, az nem lesz elérhető számodra a tartománynevek gyorsítótárazása miatt. A probléma megoldásához meg kell várni a DNS rekordok frissítését, vagy hozzá kell adni a szerver IP címét és az új tartományt a hosts
fájlhoz. Ez lehetővé teszi az új domain elérését, amíg a DNS-bejegyzések frissülnek.
Második probléma - ha alapértelmezett portokkal rendelkező proxy-kiszolgálót használ, előbb-utóbb a kiszolgálót észlelhetik. A probléma megoldása érdekében ajánlott a portok megváltoztatása.
Például a http proxynél beállíthatja a 7834-es portot, a Socksnál pedig a 7835-öt. Azonban az ilyen portok is észlelhetők, ezért beállíthatja a tűzfalat úgy, hogy csak bizonyos címekről engedélyezze a hozzáférést a szerverhez, míg másoktól megtagadja a hozzáférést. Ez a megoldás meglehetősen megbízható, bár nem túl rugalmas, mivel nem biztos, hogy hozzáférhetünk statikus IP-címhez.
A harmadik probléma az, hogy ha proxykiszolgálót használ, és minden kapcsolatról naplót vezet, akkor ezek idővel elég nagyra nőhetnek, és a lemezen lévő szabad hely nagy részét elfoglalhatják. Ennek a problémának az elkerülése érdekében gondoskodnia kell a naplók rotálásáról, vagy egyáltalán nem kell naplókat vezetnie.
A naplóforgatásnak különböző módszerei vannak, amelyek lehetővé teszik, hogy csak az utolsó naplófájlokat tartsa meg, és automatikusan törölje a régebbi naplókat. Ezért a legjobb, ha előre beállítja a naplóforgatás folyamatát, hogy elkerülje a lemez túlcsordulását. Ez segít megmenteni az összes adatot, és elkerülni az információvesztést proxykiszolgáló használata esetén.
users proxyuser:CL:password
daemon
log /var/log/3proxy/3proxy.log D
rotate 30
auth strong
proxy -n -a
setgid 65534
setuid 65534
Szükséges továbbá egy könyvtár létrehozása a naplók számára és a jogosultságok beállítása (a szervert a setgid/setud
direktívák segítségével a rendszerben minimálisan senki jogokkal indítjuk el):
mkdir /var/log/3proxy ; chown nobody /var/log/3proxy
Tekintsük át a 3proxy telepítését Dockerben.
Először is telepítenünk kell néhány csomagot (és a nemrég telepített Debian és Ubuntu operációs rendszerek esetében szükség lehet az apt
csomagindex frissítésére is az # apt update
segítségével).
AlmaLinux és CentOS esetén:
# yum install docker docker-compose
Ubuntu és Debian esetén:
# apt install docker docker.io docker-compose
Kép letöltése:
# docker pull 3proxy/3proxy
Alapértelmezés szerint a 3proxy biztonságos chroot környezetet használ a /usr/local/3proxy-ban
uid 65535
és gid 65
535
azonosítóval, és elvárja, hogy a 3proxy konfigurációs fájl a /usr/local/etc/3proxy-ban
legyen elhelyezve. A konfigurációs fájlban az elérési utakat a /usr/local/3proxy-hoz
képest kell megadni, azaz /logs
helyett /usr/local/3proxy/logs
. A chroot-ban az nserver
jogosultsága szükséges.
Ehhez hozzon létre egy könyvtárat és egy 3proxy
konfigurációs fájlt:
# mkdir -p /etc/dockerapp/3proxy
# touch /etc/dockerapp/3proxy/3poxy.conf
Ezután bármilyen szövegszerkesztővel szerkessze a létrehozott 3proxy .conf
konfigurációs fájlt. A 3proxy Dockerben történő futtatásához elegendő a minimális konfiguráció:
nserver 8.8.8.8.8.8.8.
socks -p3129
A naplózás és a felhasználó hozzáadásához hozzá kell adni a 3proxy
konfigurációs fájlhoz:
log /logs/3proxy.log
auth strong
users "proxyuser:CR:87beeef3f4ee4661ac1897eca216fc26"
A"87beeef3f4ee4661ac1897eca216fc26
" helyett a proxyuser
jelszavának MD5 hash-ját kell megadni. Az MD5 hash-t online generátorok segítségével tudod kideríteni.
Indítsuk el a 3proxy-t a docker-compose
segítségével. Ehhez létre kell hoznunk egy .yml
formátumú konfigurációs fájlt:
# touch /etc/dockerapp/3proxy/docker-compose.yml
Szúrjuk be oda a következő szöveget egy szövegszerkesztő segítségével:
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
Mentés. Ebben a fájlban megadtuk a 8080-as külső portot. Most már futtathatjuk is:
# docker-compose -f /etc/dockerapp/3proxy/docker-compose.yml up -d
Egy ilyen választ fogunk kapni:
3proxy_default
" hálózat létrehozása az alapértelmezett illesztőprogrammal.
3proxy létrehozása ... done
Teszt:
# docker ps
Választ kapunk a konténer azonosítójával, képével, állapotával, használt portjaival és nevével:
48cc0cd140cd 3proxy/3proxy:latest "/bin/3proxy /etc/3p..." 5