U ovom ćemo članku prikazati 3proxy konfiguraciju na namjenskom poslužitelju koji pokreće ArchLinux/CentOS operativni sustav. 3proxy jedan je od najrelevantnijih i najfunkcionalnijih alata. Podržava različite vrste protokola: HTTP, HTTPS, FTP, SOCKS i druge. Pomoći će vam da postavite vlastiti proxy poslužitelj u nekoliko minuta.
Članak sadrži detaljne upute o instalaciji uslužnog programa i njegovoj daljnjoj konfiguraciji. Razmatraju se problemi poput instalacije iz službenog izvora, postavljanja konfiguracijskih datoteka, otvaranja nestandardnih portova, a opisuju se i uobičajene pogreške te se daju praktične preporuke za njihovo rješavanje. Prije pokretanja morate naručiti VPS ili namjenski poslužitelj s operativnim sustavom CentOS ili ArchLinux. Sve radnje u primjeru bit će izvedene na namjenskom poslužitelju s operativnim sustavom CentOS7 s jednom namjenskom statičkom javnom IP adresom.
Montaža
Korak 1
3proxy se instalira direktno iz izvornog koda. gcc će se koristiti kao kompajler. Spajamo se na poslužitelj kao root (superkorisnik) i instaliramo kompajler.
yum install gcc
Korak 2
Sada je potrebno preuzeti izvorne datoteke 3proxyja. To možete učiniti tako da posjetite službenu web stranicu i kopirate poveznicu na trenutnu verziju:
Ako vam je potrebna arhivirana verzija, možete je preuzeti i izravno s GitHuba :
U vrijeme pisanja ovog članka, trenutna verzija je 0.9.3. Preuzmite ga i odmah raspakirajte:
wget https://github.com/z3APA3A/3proxy/archive/0.9.3.tar.gz
tar -xvzf 0.9.3.tar.gz
Korak 3
Idite u direktorij s otpakiranim projektom i prevedite:
cd 3proxy-0.9.3/
make -f Makefile.Linux
Korak 4
Stvaramo direktorije i kopiramo 3proxy datoteku u /usr/bin:
mkdir -p /var/log/3proxy
mkdir /etc/3proxy
cp bin/3proxy /usr/bin/
Korak 5
Stvaramo korisnika za rad s katalogom. U ovom slučaju korisničko ime je 3proxyuser:
useradd -s /usr/sbin/nologin -U -M -r 3proxyuser
Kreiranom korisniku dajemo prava za rad s imenicima:
chown -R 3proxyuser:3proxyuser /etc/3proxy
chown -R 3proxyuser:3proxyuser /var/log/3proxy
chown -R 3proxyuser:3proxyuser /usr/bin/3proxy
Kreirajmo sada konfiguracijsku datoteku pomoću naredbe:
touch /etc/3proxy/3proxy.cfg
Ako je potrebno, možete postaviti dozvole za konfiguracijsku datoteku za root korisnika. Ovaj korak nije obavezan, ali će dodati zaštitu:
chmod 600 /etc/3proxy/3proxy.cfg
3proxy konfiguracija
Korak 6
Potrebno je ispravno popuniti prethodno kreiranu konfiguracijsku datoteku. Prvo saznajte uid i gid korisnika naredbom:
id 3proxyuser
U našem slučaju to su sljedeće vrijednosti:
Za popunjavanje konfiguracijske datoteke možete uzeti gotove konfiguracije ili koristiti dokumentaciju na službenoj web stranici. Također, datoteka s primjerom je već unaprijed instalirana prema zadanim postavkama; možete je pronaći na putanji: /cfg/3proxy.cfg.sample
Kao primjer, razmotrit ćemo 2 vrste konfiguracije: sa i bez zapisivanja . Svaki redak bit će popraćen komentarima (označeni su simbolom "#").
Ovo je primjer gotove konfiguracije bez logiranja :
# We specify the user's data that we found out in the previous command
setgid 995
setuid 997
# Type the NS-servers. It is possible to clarify your own servers at /etc/resolv.conf
nserver 1.1.1.1
nserver 8.8.8.8
# Cache size
nscache 65536
# Timeouts
timeouts 1 5 30 60 180 1800 15 60
# Authorization of users by login/password (if required). You may not to use it or specify the path to the file in which authorization data is stored, for example, users $/etc/3proxy/.authfile
# If you insert a password in md5 format, replace “CL” with “CR”, as indicated in the example. You can use 2 methods at the same time.
auth cache strong
users "userproxy:CL:passwordproxy"
users "userproxy2:CR:b89097a7ad0b94f13b3c313ae76699d4 "
# Launch mode. Daemon only.
Daemon
# We write the port through which the http connection will take place. The example shows the standard one. To establish a socks connection, use the command specified in the second line, the port is also standard.
proxy -p3128
socks -p1080
Razmotrili smo opciju konfiguracijske datoteke bez zapisivanja. Sada ćemo stvoriti konfiguracijsku datoteku s zapisivanjem i autorizacijom korisnika ; koristit će se kasnije tijekom postavljanja poslužitelja.
Obavezno navedite podatke za autorizaciju jer se poslužitelj može otkriti čak i na nestandardnim portovima.
# Configuring the server to launch from the userproxy user and the passwordproxy password.
users userproxy:CL:passwordproxy
# Specify the user's uid and gid
setgid 995
setuid 997
# Nameservers (NS-servers)
nserver 1.1.1.1
nserver 8.8.8.8
# Timeouts
timeouts 1 5 30 60 180 1800 15 60
# Cache size (standard)
nscache 65536
# Indicate the launch mode
daemon
# We install http proxy on a non-standard 50001 port. If there are several IP addresses on the server, be sure to specify a specific address for connecting the network. For example, "-e91.150.32.146". The argument "i" is a local address.
proxy –p50001
# In a same way as socks proxy, we conduct the installation on a 50002 port.
socks –p50002
# Path to the directory with logs, logs format and proxy rotation
Log /var/log/3proxy/3proxy.log D
logformat "- +_L%t.%. %N.%p %E %U %C:%c %R:%r %O %I %h %T"
rotate 30
Ovo dovršava postavljanje glavne konfiguracijske datoteke. Prelazimo na završnu fazu i pokretanje.
Korak 7
Napravite inicijalizacijsku datoteku za systemd:
touch /etc/systemd/system/3proxy.service
Izdajte potrebna prava:
chmod 664 /etc/systemd/system/3proxy.service
Kopirajte i zalijepite sljedeće vrijednosti u datoteku i spremite:
[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 3proxyuser`
RemainAfterExit=yes
Restart=on-failure
[Install]
WantedBy=multi-user.target»
Napomena: u vrijednosti "ExecStop" morate navesti korisničko ime koje je kreirano u koraku br. 5.
Nakon toga trebate ažurirati konfiguraciju Daemona naredbom:
systemctl daemon-reload
Korak 8
Jedino što trebamo je pokrenuti konfigurirani 3proxy, dodati ga u autostart i također otvoriti portove u vatrozidu.
Dodajte ga u automatsko pokretanje, pokretanje i provjeru statusa:
systemctl enable 3proxy
systemctl start 3proxy
systemctl status 3proxy
Nakon provjere statusa, vidimo informaciju da je 3proxy uspješno pokrenut:
Jedino što preostaje je otvoriti portove:
firewall-cmd --zone=public --add-port=50001/tcp
firewall-cmd --zone=public --add-port=50002/tcp
firewall-cmd –reload
Ako je potrebno, ponovno pokrenite poslužitelj. Moguće je provjeriti jesu li portovi otvoreni naredbom:
firewall-cmd --list-all
Što bi trebalo biti:
Kao što vidimo oba porta su uspješno otvorena i osluškuju se. http veza je na prvom portu, socks je na drugom portu.
Provjerite vezu putem bilo koje prikladne usluge:
Sve radi. Sa naše strane, ne preporučujemo korištenje nezaštićene veze bez autorizacije prijavom/lozinkom, kao ni sa standardnim skupom portova . Prilikom postavljanja konfiguracijske datoteke obavezno navedite prijavu i kreirajte složenu lozinku, a također promijenite portove u nestandardne . U iznimnim slučajevima moguće je koristiti autorizaciju putem IP adrese.
Uobičajeni problemi
Nešto nije u redu i proxy ne radi? Možda je konfiguracija 3proxyja učinjena netočno. Razmotrimo najčešće probleme i njihova rješenja tijekom instaliranja i konfiguriranja uslužnog programa.
Nema veze
Najčešći problem za mnoge korisnike je nedostupna veza kada se čini da su konfiguracijske datoteke ispravno konfigurirane. Ako ste sigurni da su sve postavke ispravno konfigurirane, pružatelj usluga hostinga ne ograničava odabrani priključak i svi podaci upućuju na radnu uslugu, problem može biti u Vatrozidu, točnije u njegovoj pogrešnoj konfiguraciji. Na primjer, u sustavu može biti instalirano više od dva programa koji će se međusobno sukobljavati. Da biste riješili problem, dovoljno je koristiti jedan određeni Firewall. Savjetujemo vam da odaberete samo iptables ili firewall-cmd.
Usluga se ne pokreće
Usluga se ne pokreće nakon postavljanja svih potrebnih konfiguracijskih datoteka. To se događa kada se propusti korak konfiguracije, nisu dodijeljena odgovarajuća prava ili je u konfiguracijskim datotekama napravljena manja pogreška. Preporučujemo da ponovno pažljivo proučite upute korak po korak, možda ste propustili neki od koraka. Ako ništa ne pomogne, bilo bi dobro ponovno instalirati OS i slijediti sve korake od početka. Preporučujemo korištenje uzorka koji se nalazi na /cfg/3proxy.cfg.sample kao testnu konfiguraciju i unaprijed instaliranu firewall-cmd kao vatrozid.
Sječa drveta
Posljednje, ali ništa manje važno pitanje odnosi se na pohranu datoteka. 3proxy uzima nekoliko mb tijekom instalacije, ali se veličina može značajno povećati samo logovanjem s vremenom. Činjenica je da mnogi korisnici omogućuju snimanje dnevnika u zasebnu datoteku, ali ne postavljaju rotaciju i ne brišu nebitne zapisnike. Za rješavanje ovog problema mogu se koristiti tri opcije:
- Omogući bilježenje;
- Povremeno brisanje nevažnih zapisa;
- Omogućite rotaciju, kao što je učinjeno u gornjoj konfiguraciji. Na primjer, "rotiraj 30" u konfiguracijskoj datoteci znači da će 3proxy pohraniti samo zadnjih 30 datoteka.
Zaključak
Instalacija i konfiguracija 3proxyja na operativnim sustavima CentOS i ArchLinux je prilično jednostavan, ali u isto vrijeme učinkovit zadatak. Članak je pokrivao korake za instaliranje potrebnih paketa, konfiguriranje konfiguracijskih datoteka i pokretanje usluge. Stečeno znanje omogućit će vam da sami instalirate i konfigurirate svoj proxy poslužitelj bez ikakvih poteškoća.