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.
Telepítse a 3proxy-t http(s) és socks5-proxy támogatással.
Ó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.
Konfigurációs fájl
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.
Néhány probléma elhárítása
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.
Egy anonim http(s) proxy-kiszolgáló egyszerűsített konfigurációja a 3128-as porton
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
A 3proxy telepítése Dockerben
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