Бул макалада биз ArchLinux/CentOS операциялык системасы тарабынан иштетилген атайын серверде 3прокси конфигурациясын көрсөтөбүз. 3proxy эң актуалдуу жана функционалдык куралдардын бири. Ал протоколдордун ар кандай түрлөрүн колдойт: HTTP, HTTPS, FTP, SOCKS жана башкалар. Бул сизге бир нече мүнөттүн ичинде прокси сервериңизди орнотууга жардам берет.
Макалада утилитаны орнотуу жана аны андан ары конфигурациялоо боюнча кадам-кадам көрсөтмөлөр камтылган. Расмий булактан орнотуу, конфигурация файлдарын орнотуу, стандарттуу эмес портторду ачуу сыяктуу маселелер каралат, ошондой эле жалпы каталар сүрөттөлүп, аларды чечүү боюнча практикалык сунуштар берилген. ишке киргизүү алдында, сиз заказ бериши керек a VPS or арналган Server CentOS же ArchLinux операциялык системасы менен иштейт. Мисалдагы бардык иш-аракеттер CentOS7 операциялык тутуму тарабынан кубатталган бир атайын статикалык коомдук IP дареги бар атайын серверде аткарылат.
орнотуу
Step 1
3прокси түз булактардан орнотулган. Туры компилятор катары колдонулат. Биз серверге root (супер колдонуучу) катары туташып, компиляторду орнотобуз.
yum install gcc
Step 2
Эми 3прокси булак файлдарын жүктөп алуу керек. Сиз муну төмөнкүгө баруу менен жасай аласыз расмий сайты жана учурдагы версияга шилтемени көчүрүү:
Архивделген версия керек болсо, шилтемени түз жерден жүктөп алсаңыз болот GitHub:
Бул макаланы жазып жаткан учурда, учурдагы версия 0.9.3. Аны жүктөп алып, дароо таңгактан чыгарыңыз:
wget https://github.com/z3APA3A/3proxy/archive/0.9.3.tar.gz
tar -xvzf 0.9.3.tar.gz
Step 3
Пакеттен чыгарылган долбоор менен каталогго өтүңүз жана компиляциялаңыз:
cd 3proxy-0.9.3/
make -f Makefile.Linux
Step 4
Биз каталогдорду түзүп, 3proxy файлын /usr/binге көчүрөбүз:
mkdir -p /var/log/3proxy
mkdir /etc/3proxy
cp bin/3proxy /usr/bin/
Step 5
Каталог менен иштөө үчүн колдонуучуну түзөбүз. Бул учурда колдонуучу аты болуп саналат 3прокси:
useradd -s /usr/sbin/nologin -U -M -r 3proxyuser
Биз түзүлгөн колдонуучуга каталогдор менен иштөө укугун беребиз:
chown -R 3proxyuser:3proxyuser /etc/3proxy
chown -R 3proxyuser:3proxyuser /var/log/3proxy
chown -R 3proxyuser:3proxyuser /usr/bin/3proxy
Эми буйрукту колдонуп конфигурация файлын түзөлү:
touch /etc/3proxy/3proxy.cfg
Зарыл болсо, сиз түпкү колдонуучу үчүн конфигурация файлына уруксаттарды орното аласыз. Бул кадам милдеттүү эмес, бирок коргоону кошот:
chmod 600 /etc/3proxy/3proxy.cfg
3прокси конфигурациясы
Step 6
Мурда түзүлгөн конфигурация файлын туура толтуруу керек. Биринчиден, буйрук менен колдонуучунун uid жана гидди табыңыз:
id 3proxyuser
Биздин учурда булар төмөнкү баалуулуктар:
Конфигурация файлын толтуруу үчүн сиз даяр конфигурацияларды алып же колдонсоңуз болот документтер расмий сайтында. Ошондой эле үлгүсү бар файл демейки боюнча алдын ала орнотулган; сиз аны жолдон таба аласыз: /cfg/3proxy.cfg.sample
Мисал катары, биз конфигурациянын 2 түрүн карап чыгабыз: менен жана журналсыз. Ар бир сап комментарийлер менен коштолот (алар “#” белгиси менен белгиленет).
Бул даяр конфигурациянын мисалы журналсыз:
# 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
Биз конфигурация файлынын вариантын журналга каттабастан карап чыктык. Эми биз конфигурация файлын түзөбүз каттоо жана колдонуучунун авторизациясы; ал кийинчерээк серверди орнотуу учурунда колдонулат.
Сервер стандарттуу эмес порттордо да табылышы мүмкүн болгондуктан, авторизация маалыматын бергениңизди текшериңиз.
# 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
Бул негизги конфигурация файлын орнотууну аяктайт. Биз акыркы баскычка өтүп, ишке киргизебиз.
Step 7
Systemd үчүн инициализация файлын түзүңүз:
touch /etc/systemd/system/3proxy.service
Керектүү укуктарды берүү:
chmod 664 /etc/systemd/system/3proxy.service
Көчүрүп, файлга төмөнкү маанилерди чаптаңыз жана сактаңыз:
[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»
Эскертүү: "ExecStop" маанисинде №5 кадамда түзүлгөн колдонуучунун атын көрсөтүү керек.
Андан кийин сиз Daemon конфигурациясын буйрук менен жаңыртышыңыз керек:
systemctl daemon-reload
Step 8
Бизге керек болгон нерсе - конфигурацияланган 3проксиди ишке киргизүү, аны автостартка кошуу, ошондой эле брандмауэрдеги портторду ачуу.
Аны автоматтык түрдө баштоого кошуу, ишке киргизүү жана абалды текшерүү:
systemctl enable 3proxy
systemctl start 3proxy
systemctl status 3proxy
Статусту текшергенден кийин, биз 3proxy ийгиликтүү ишке киргизилгенин көрөбүз:
Портторду ачуу гана калды:
firewall-cmd --zone=public --add-port=50001/tcp
firewall-cmd --zone=public --add-port=50002/tcp
firewall-cmd –reload
Зарыл болсо, серверди өчүрүп күйгүзүңүз. Бул команда менен порттордун ачык экендигин текшерүүгө болот:
firewall-cmd --list-all
Эмне болушу керек:
Көрүнүп тургандай, эки порт тең ийгиликтүү ачылып, угулуп жатат. http байланышы биринчи портто, байпак экинчи портто.
Каалаган ыңгайлуу кызмат аркылуу байланышты текшериңиз:
Баары иштеп жатат. Биз тараптан, биз логин/пароль авторизациясы жок, ошондой эле порттордун стандарттуу топтому менен корголбогон байланышты колдонууну сунуш кылбайбыз. Конфигурация файлын орнотуп жатканда, логинди көрсөтүүнү жана татаал сырсөздү түзүүнү, ошондой эле портторду стандарттуу эместерге өзгөртүүнү унутпаңыз. Өзгөчө учурларда, IP дарегин авторизациясын колдонууга болот
Жалпы көйгөйлөр
Бир жерден ката кетип, прокси иштебей жатабы? Балким, 3прокси конфигурациясы туура эмес жасалгандыр. Утилитаны орнотуу жана конфигурациялоодо эң көп кездешкен көйгөйлөрдү жана аларды чечүү жолдорун карап көрөлү.
Байланыш жок
Көптөгөн колдонуучулар үчүн эң кеңири таралган көйгөй конфигурация файлдары туура конфигурациялангандай көрүнгөндө, жеткиликсиз байланыш болуп саналат. Эгерде сиз бардык орнотуулар туура конфигурацияланганына ишенсеңиз, хостинг провайдери тандалган портту чектебейт жана бардык маалыматтар иштеген кызматты көрсөтүп турат, көйгөй Firewallда болушу мүмкүн, тагыраак айтканда, анын туура эмес конфигурациясында болушу мүмкүн. Мисалы, системада бири-бирине карама-каршы келе турган экиден ашык программа орнотулган болушу мүмкүн. Көйгөйдү чечүү үчүн, белгилүү бир Firewall колдонуу жетиштүү. Биз сизге iptables же Firewall-cmd гана тандоону сунуштайбыз.
Кызмат ишке кирбейт
Кызмат бардык керектүү конфигурация файлдарын орноткондон кийин башталбайт. Бул конфигурация кадамын өткөрүп жибергенде, тиешелүү укуктар берилбесе же конфигурация файлдарында кичине ката кетиргенде пайда болот. Инструкцияларды кылдаттык менен кайра этап менен окуп чыгууну сунуштайбыз, балким, сиз кадамдардын бирин өткөрүп жибердиңиз. Эч нерсе жардам бербесе, анда ОСти кайра орнотуп, башынан баштап бардык кадамдарды аткарганыңыз жакшы болмок. Биз колдонууну сунуштайбыз үлгү /cfg/3proxy.cfg.sample дарегинде тесттик конфигурация катары жайгашкан жана алдын ала орнотулган Firewall-cmd брандмауэр катары.
Logging
Акыркы, бирок андан кем эмес маанилүү маселе файлдарды сактоого тиешелүү. Орнотуу учурунда 3proxy бир нече мб талап кылынат, бирок убакыттын өтүшү менен анын өлчөмүн бир кыйла көбөйтүүгө болот. Чындыгында, көптөгөн колдонуучулар журналды өзүнчө файлга жаздырышат, бирок айланууну орнотпойт жана тиешеси жок журналдарды жок кылышпайт. Бул маселени чечүү үчүн үч вариантты колдонсо болот:
- Киргизүүнү иштетүү;
- Маал-маалы менен тиешеси жок журналдарды жок кылуу;
- Жогорудагы конфигурацияда жасалгандай, айланууну иштетүү. Мисалы, конфигурация файлындагы "30 айлантуу" 3proxy акыркы 30 файлды гана сактай турганын билдирет.
жыйынтыктоо
CentOS жана ArchLinux операциялык системаларында 3проксиди орнотуу жана конфигурациялоо өтө жөнөкөй, бирок ошол эле учурда натыйжалуу иш. Макалада керектүү пакеттерди орнотуу, конфигурациялоо файлдарын конфигурациялоо жана кызматты ишке киргизүү кадамдары камтылган. Алынган билим прокси сервериңизди эч кандай кыйынчылыксыз өзүңүз орнотууга жана конфигурациялоого мүмкүндүк берет.