Ushbu maqolada biz ArchLinux/CentOS operatsion tizimi tomonidan quvvatlanadigan maxsus serverda 3proksi konfiguratsiyasini ko'rsatamiz. 3proxy eng mos va funktsional vositalardan biridir. U har xil turdagi protokollarni qo'llab-quvvatlaydi: HTTP, HTTPS, FTP, SOCKS va boshqalar. Bu sizga bir necha daqiqada o'z proksi-serveringizni sozlashda yordam beradi.
Maqolada yordamchi dasturni o'rnatish va uning keyingi konfiguratsiyasi bo'yicha bosqichma-bosqich ko'rsatmalar mavjud. Rasmiy manbadan o'rnatish, konfiguratsiya fayllarini sozlash, nostandart portlarni ochish kabi masalalar ko'rib chiqiladi, shuningdek, keng tarqalgan xatolar tavsiflanadi va ularni hal qilish bo'yicha amaliy tavsiyalar beriladi. Ishga tushirishdan oldin siz a buyurtma berishingiz kerak VPS or bag'ishlangan server CentOS yoki ArchLinux operatsion tizimi tomonidan quvvatlanadi. Misoldagi barcha harakatlar bitta ajratilgan statik umumiy IP manzilga ega CentOS7 operatsion tizimi tomonidan quvvatlanadigan maxsus serverda amalga oshiriladi.
o'rnatish
Step 1
3proksi to'g'ridan-to'g'ri manbalardan o'rnatiladi. gcc kompilyator sifatida ishlatiladi. Biz serverga root (superuser) sifatida ulanamiz va kompilyatorni o'rnatamiz.
yum install gcc
Step 2
Endi 3 proksi manba fayllarini yuklab olish kerak. Buni ga o'tish orqali qilishingiz mumkin rasmiy veb-sayti va havolani joriy versiyaga nusxalash:
Arxivlangan versiya kerak bo'lsa, havolani to'g'ridan-to'g'ri saytdan yuklab olishingiz mumkin GitHub:
Ushbu maqolani yozish vaqtida joriy versiya 0.9.3. Uni yuklab oling va darhol paketdan chiqaring:
wget https://github.com/z3APA3A/3proxy/archive/0.9.3.tar.gz
tar -xvzf 0.9.3.tar.gz
Step 3
Ochilmagan loyiha bilan katalogga o'ting va kompilyatsiya qiling:
cd 3proxy-0.9.3/
make -f Makefile.Linux
Step 4
Biz kataloglarni yaratamiz va 3proksi faylni /usr/bin ga nusxalaymiz:
mkdir -p /var/log/3proxy
mkdir /etc/3proxy
cp bin/3proxy /usr/bin/
Step 5
Biz katalog bilan ishlash uchun foydalanuvchi yaratamiz. Bu holda foydalanuvchi nomi 3 proksi foydalanuvchi:
useradd -s /usr/sbin/nologin -U -M -r 3proxyuser
Biz yaratilgan foydalanuvchiga kataloglar bilan ishlash huquqini beramiz:
chown -R 3proxyuser:3proxyuser /etc/3proxy
chown -R 3proxyuser:3proxyuser /var/log/3proxy
chown -R 3proxyuser:3proxyuser /usr/bin/3proxy
Endi buyruq yordamida konfiguratsiya faylini yaratamiz:
touch /etc/3proxy/3proxy.cfg
Agar kerak bo'lsa, root foydalanuvchisi uchun konfiguratsiya fayliga ruxsatlarni o'rnatishingiz mumkin. Bu qadam majburiy emas, lekin himoya qo'shadi:
chmod 600 /etc/3proxy/3proxy.cfg
3 proksi konfiguratsiyasi
Step 6
Ilgari yaratilgan konfiguratsiya faylini to'g'ri to'ldirish kerak. Birinchidan, buyruq orqali foydalanuvchining uid va gid kodini bilib oling:
id 3proxyuser
Bizning holatlarimizda bu quyidagi qiymatlar:
Konfiguratsiya faylini to'ldirish uchun siz tayyor konfiguratsiyalarni olishingiz yoki foydalanishingiz mumkin hujjatlar rasmiy veb-saytida. Shuningdek, namunali fayl sukut bo'yicha oldindan o'rnatilgan; uni yo'lda topishingiz mumkin: /cfg/3proxy.cfg.sample
Misol sifatida biz konfiguratsiyaning 2 turini ko'rib chiqamiz: ro'yxatga olish bilan va holda. Har bir satr sharhlar bilan birga bo'ladi (ular "#" belgisi bilan belgilanadi).
Bu tayyor konfiguratsiyaga misol qayd qilmasdan:
# 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
Biz ro'yxatdan o'tmasdan konfiguratsiya fayli variantini ko'rib chiqdik. Endi biz konfiguratsiya faylini yaratamiz ro'yxatga olish va foydalanuvchi avtorizatsiyasi; u serverni sozlash vaqtida keyinroq ishlatiladi.
Avtorizatsiya ma'lumotlarini taqdim etganingizga ishonch hosil qiling, chunki server hatto nostandart portlarda ham aniqlanishi mumkin.
# 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
Bu asosiy konfiguratsiya faylini sozlashni yakunlaydi. Biz yakuniy bosqichga o'tamiz va ishga tushiramiz.
Step 7
Systemd uchun ishga tushirish faylini yarating:
touch /etc/systemd/system/3proxy.service
Kerakli huquqlarni berish:
chmod 664 /etc/systemd/system/3proxy.service
Quyidagi qiymatlarni faylga nusxalash va joylashtirish va saqlash:
[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»
Esda tuting: "ExecStop" qiymatida siz 5-bosqichda yaratilgan foydalanuvchi nomini ko'rsatishingiz kerak.
Shundan so'ng siz Daemon konfiguratsiyasini buyruq bilan yangilashingiz kerak:
systemctl daemon-reload
Step 8
Bizga kerak bo'lgan yagona narsa - sozlangan 3proxy-ni ishga tushirish, uni avtomatik ishga tushirishga qo'shish va xavfsizlik devoridagi portlarni ochish.
Uni avtomatik ishga tushirish, ishga tushirish va holatni tekshirishga qo'shing:
systemctl enable 3proxy
systemctl start 3proxy
systemctl status 3proxy
Vaziyatni tekshirgandan so'ng, biz 3proxy muvaffaqiyatli ishga tushirilganligi haqida ma'lumotni ko'ramiz:
Qolgan yagona narsa portlarni ochishdir:
firewall-cmd --zone=public --add-port=50001/tcp
firewall-cmd --zone=public --add-port=50002/tcp
firewall-cmd –reload
Agar kerak bo'lsa, serverni qayta ishga tushiring. Portlar ochiq yoki yo'qligini quyidagi buyruq yordamida tekshirish mumkin:
firewall-cmd --list-all
Nima bo'lishi kerak:
Ko'rib turganimizdek, ikkala port ham muvaffaqiyatli ochildi va tinglanmoqda. http ulanishi birinchi portda, paypoqlar ikkinchi portda.
Har qanday qulay xizmat orqali ulanishni tekshiring:
Hammasi ishlayapti. Biz tomondan, login/parol avtorizatsiyasisiz, shuningdek, standart portlar to'plami bilan xavfsiz ulanishdan foydalanishni tavsiya etmaymiz.. Konfiguratsiya faylini o'rnatishda, loginni ko'rsating va murakkab parol yarating, shuningdek portlarni nostandartlarga o'zgartiring. Istisno hollarda IP-manzil avtorizatsiyasidan foydalanish mumkin
Umumiy muammolar
Nimadir xato ketdi va proksi-server ishlamayaptimi? Ehtimol, 3proxy konfiguratsiyasi noto'g'ri qilingan. Yordamchi dasturni o'rnatish va sozlash paytida eng keng tarqalgan muammolarni va ularning echimlarini ko'rib chiqaylik.
Ulanish yo'q
Ko'pgina foydalanuvchilar uchun eng keng tarqalgan muammo - bu konfiguratsiya fayllari to'g'ri sozlanganga o'xshab ko'rinadigan bo'lsa, kirish imkoni bo'lmagan ulanishdir. Agar siz barcha sozlamalar to'g'ri sozlanganligiga ishonchingiz komil bo'lsa, hosting provayderi tanlangan portni cheklamaydi va barcha ma'lumotlar ishlaydigan xizmatni ko'rsatadi, muammo xavfsizlik devorida yoki aniqrog'i uning noto'g'ri konfiguratsiyasida bo'lishi mumkin. Misol uchun, tizimda bir-biriga zid keladigan ikkitadan ortiq dastur o'rnatilgan bo'lishi mumkin. Muammoni hal qilish uchun bitta maxsus xavfsizlik devoridan foydalanish kifoya. Sizga faqat iptables yoki firewall-cmd ni tanlashingizni maslahat beramiz.
Xizmat ishga tushmaydi
Barcha kerakli konfiguratsiya fayllarini o'rnatgandan so'ng xizmat ishga tushmaydi. Bu konfiguratsiya bosqichi o'tkazib yuborilganda, tegishli huquqlar berilmaganda yoki konfiguratsiya fayllarida kichik xatolikka yo'l qo'yilganda sodir bo'ladi. Ko'rsatmalarni asta-sekin diqqat bilan o'rganib chiqishingizni tavsiya qilamiz, ehtimol siz qadamlardan birini o'tkazib yuborgansiz. Hech narsa yordam bermasa, operatsion tizimni qayta o'rnatish va boshidan boshlab barcha bosqichlarni bajarish yaxshi bo'lar edi. Foydalanishni tavsiya qilamiz namuna sinov konfiguratsiyasi sifatida /cfg/3proxy.cfg.sample manzilida joylashgan va oldindan o'rnatilgan xavfsizlik devori-cmd xavfsizlik devori sifatida.
Ro'yxatga olish
Yakuniy, ammo unchalik muhim bo'lmagan masala fayllarni saqlash bilan bog'liq. O'rnatish vaqtida 3proxy bir necha mb oladi, lekin vaqt o'tishi bilan faqat logging orqali hajmini sezilarli darajada oshirish mumkin. Haqiqat shundaki, ko'p foydalanuvchilar alohida faylda jurnal yozishni faollashtiradi, lekin aylanishni o'rnatmaydi va ahamiyatsiz jurnallarni o'chirmaydi. Ushbu muammoni hal qilish uchun uchta variantdan foydalanish mumkin:
- Jurnalga kirishni yoqish;
- Vaqti-vaqti bilan ahamiyatsiz jurnallarni o'chirib tashlang;
- Yuqoridagi konfiguratsiyada bo'lgani kabi aylantirishni yoqing. Masalan, konfiguratsiya faylidagi "30 ni aylantirish" 3proksi faqat oxirgi 30 ta faylni saqlashini bildiradi.
Xulosa
CentOS va ArchLinux operatsion tizimlarida 3proxy-ni o'rnatish va sozlash juda oddiy, ammo ayni paytda samarali vazifadir. Maqolada kerakli paketlarni o'rnatish, konfiguratsiya fayllarini sozlash va xizmatni ishga tushirish bosqichlari ko'rib chiqildi. Olingan bilimlar proksi-serveringizni hech qanday qiyinchiliksiz o'zingiz o'rnatish va sozlash imkonini beradi.