3proxy on ilmainen ja avoimen lähdekoodin välityspalvelin, jota käytetään eri tarkoituksiin, kuten liikenteen suodattamiseen, välimuistiin tallentamiseen ja tiettyjen verkkosivustojen estämiseen. Se tukee erilaisia protokollia, kuten SOCKS v4/v4a/v5, HTTP, HTTPS, FTP, POP3, SMTP, ja tukee todennusmenetelmiä, kuten SOCKS5-käyttäjänimi/salasana, NTLM, LDAP, Kerberos ja SSO.
Palvelin on hyvin mukautettavissa, ja se tarjoaa kaistanleveyden käytön ja yhteysparametrien yksityiskohtaisen hallinnan. 3proxy voidaan asentaa Windows-, Linux- ja macOS-alustoille. Se on kevyt ja helppokäyttöinen välityspalvelin, joka sopii pieniin ja keskisuuriin verkkoihin. On mahdollista vuokrata vps-välityspalvelin.
Varovaisuutta on noudatettava, sillä palvelimen asentaminen ilman lupaa ei ole suotavaa. Tämä voi johtaa siihen, että tunkeutujat käyttävät palvelinta luvattomasti roskapostin ja suuren liikenteen järjestämiseen.
Aluksi on asennettava useita paketteja ja riippuvuuksia.
AlmaLinuxissa komento:
yum -y install gcc wget tar
ja Debianille:
apt install -y build-essential wget tar
Lataa sitten tiedostot 3proxy-projektin viralliselta sivustolta, pura arkisto ja käännä ladatut tiedostot.
Seuraavaksi luodaan tarvittavat hakemistot konfiguraatiotiedostoille ja lokitiedostoille, siirretään 3proxy
executable ja luodaan uusi käyttäjä"proxyuser
" ja annetaan hänelle oikeudet hakemistoihin. Voit luoda uuden konfiguraatiotiedoston suorittamalla komennon:
touch /etc/3proxy/3proxy.cfg
Määritä oikeudet vain pääkäyttäjälle chmod 600 /etc/3proxy/3proxy.cfg
.
Uuden konfiguraatiotiedoston luomisen jälkeen se on täytettävä oikein. Kirjoita ylös käyttäjän"proxyuser
" uid
ja gid
ja kopioi ja liitä sitten tekstieditorilla teksti esimerkkikonfiguraatiotiedostosta. Tallenna muutokset konfiguraatiotiedostoon ja meillä on asennettu 3proxy, jossa on http(s)- ja socks5-proxy-tuki.
Alla on esimerkki konfiguraatiotiedostosta:
Palvelimen konfigurointi toimimaan proxyuserina.
(lisää aiemmin oppimamme käyttäjän uid
ja gid
). setgid 991
setuid 991
Määritä oikeat nimipalvelimet. Katso /etc/resolv.conf
: nserver 8.8.8.8.8.8.8.
nserver 8.8.4.4.4
Käytä DNS-kyselyissä oletusaikoja ja välimuistin kokoa: 1 5 30 60 180 180 1800 1800 1800 15 60 60
nscache 65536
Määritä käynnistystilaksi daemon: daemon
Määritä palvelimen ulkoisen liitännän IP-osoite: 111.111.111.111.111.111.111
(tai jätä rivi huomiotta, jos IP on sama).
Määritä palvelimen sisäisen liitännän IP-osoite: sisäinen 192.168.0.1
(tai jätä se huomiotta, jotta välityspalvelin kuuntelee kaikkia IP-osoitteita).
Määritä http-välityspalvelin vakioporttiin 3128: proxy -p3128 -n -a
(määritä portti ja varmista etukäteen, että se toimii).
Määritä socks-välityspalvelin vakioporttiin 1080: socks -p1080
(määritä porttisi ja tarkista etukäteen, että se toimii).
Määritä lokien polku, lokien muoto ja kierto: 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
Luo seuraavaksi systemd:
n alustustiedosto ja määritä oikeat käyttöoikeudet:
# touch /etc/systemd/system/3proxy.service
# chmod 664 /etc/systemd/system/3proxy.service
Tähän tiedostoon on lisättävä seuraava teksti:
[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
Tallenna ja päivitä systemd-konfiguraatio
:
# systemctl daemon-reload
Käynnistä 3proxy ja lisää se autoloaderiin:
# systemctl start 3proxy
# systemctl enable 3proxy
Konfigurointi on valmis. Sinulla on nyt http-proxy portissa 3128 ja socks-proxy
portissa 1080.
Ensimmäinen ongelma on, että on mahdollista, että kun olet rekisteröinyt uuden verkkotunnuksen, se ei ole käytettävissäsi verkkotunnusten välimuistitallennuksen vuoksi. Tämän ongelman ratkaisemiseksi sinun pitäisi odottaa DNS-tietueiden päivittämistä tai lisätä palvelimesi IP-osoite ja uusi verkkotunnus hosts-tiedostoon
. Näin voit käyttää uutta verkkotunnusta, kunnes DNS-tietueet on päivitetty.
Ongelma kaksi - jos käytät välityspalvelinta, jonka portit ovat oletusarvoisia, palvelin voidaan ennemmin tai myöhemmin havaita. Tämän ongelman ratkaisemiseksi on suositeltavaa muuttaa portteja.
Voit esimerkiksi asettaa portin 7834 http-välityspalvelimelle ja 7835 Socksille. Tällaiset portit voidaan kuitenkin myös havaita, joten voit määrittää palomuurin sallimaan pääsyn palvelimelle vain tietyistä osoitteista, kun taas muilta pääsy evätään. Tämä ratkaisu on melko luotettava, vaikkakaan ei kovin joustava, koska sinulla ei välttämättä ole käytettävissäsi staattista IP-osoitetta.
Kolmas ongelma on se, että jos käytät välityspalvelinta ja pidät lokitietoja kaikista yhteyksistä, niistä voi ajan mittaan tulla melko suuria ja ne voivat viedä suurimman osan levyn vapaasta tilasta. Tämän ongelman välttämiseksi kannattaa huolehtia lokien pyörittämisestä tai olla pitämättä lokeja lainkaan.
On olemassa erilaisia menetelmiä lokien kierrättämiseen, joiden avulla voit säilyttää vain viimeiset lokitiedostot ja poistaa vanhemmat lokit automaattisesti. Siksi lokien kierto kannattaa määrittää etukäteen, jotta levy ei pursuaisi liikaa. Tämä auttaa tallentamaan kaikki tiedot ja välttämään tietojen menettämisen välityspalvelinta käytettäessä.
users proxyuser:CL:password
daemon
log /var/log/3proxy/3proxy.log D
rotate 30
auth strong
proxy -n -a
setgid 65534
setuid 65534
On myös luotava hakemisto lokitiedostoille ja asetettava oikeudet (käynnistämme palvelimen minimaalisilla oikeuksilla (nobody) järjestelmässä käyttämällä setgid/setud
-direktiivejä):
mkdir /var/log/3proxy ; chown nobody /var/log/3proxy
Tarkastellaan 3proxyn asentamista Dockeriin.
Ensin meidän on asennettava joitakin paketteja (ja äskettäin asennetuissa Debian- ja Ubuntu-käyttöjärjestelmissä meidän on ehkä myös päivitettävä apt-pakettihakemisto
komennolla # apt update
).
AlmaLinuxin ja CentOS:n osalta:
# yum install docker docker-compose
Ubuntulle ja Debianille:
# apt install docker docker.io docker-compose
Lataa kuva:
# docker pull 3proxy/3proxy
Oletusarvoisesti 3proxy käyttää suojattua chroot-ympäristöä osoitteessa /usr/local/3proxy
, uid 65535
ja gid 65535
, ja odottaa, että 3proxyn konfigurointitiedosto on sijoitettu osoitteeseen /usr/local/etc/3proxy
. Määritystiedoston polut on määritettävä suhteessa /usr/local/3proxy
, eli sen on oltava /logs
eikä /usr/local/3proxy/logs
. Chrootissa tarvitaan nserverin
käyttöoikeus.
Luo tätä varten hakemisto ja 3proxy-konfiguraatiotiedosto
:
# mkdir -p /etc/dockerapp/3proxy
# touch /etc/dockerapp/3proxy/3poxy.conf
Käytä seuraavaksi mitä tahansa haluamaasi tekstieditoria muokkaamaan luotua 3proxy .conf-konfiguraatiotiedostoa
. Jos haluat käyttää 3proxyä Dockerissa, vähimmäiskokoonpano riittää:
nserver 8.8.8.8.8.8.8.
socks -p3129
Jotta voit lisätä lokituksen ja käyttäjän, sinun on lisättävä 3proxy-konfiguraatiotiedostoon
:
log /logs/3proxy.log
auth strong
users "proxyuser:CR:87beeef3f4ee4661ac1897eca216fc26"
"87beeef3f4ee4661ac1897eca216fc26
" sijasta sinun on määritettävä proxyuserin
salasanan MD5-hash. Voit selvittää MD5-hashin käyttämällä verkkogeneraattoreita.
Käynnistetään 3proxy käyttäen docker-composea
. Tämä edellyttää .yml-muotoisen
konfiguraatiotiedoston luomista:
# touch /etc/dockerapp/3proxy/docker-compose.yml
Lisää sinne seuraava teksti tekstieditorilla:
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
Tallenna. Tässä tiedostossa olemme määritelleet ulkoisen portin 8080. Nyt voimme suorittaa sen:
# docker-compose -f /etc/dockerapp/3proxy/docker-compose.yml up -d
Saamme tällaisen vastauksen:
Luodaan verkko"3proxy_default
" oletusajurilla.
Luodaan 3proxy ... done
Testaa:
# docker ps
Saamme vastauksen, jossa on kontin ID, kuva, tila, käytetyt portit ja nimi:
48cc0cd140cd 3proxy/3proxy:latest "/bin/3proxy /etc/3p..." 5