Бул макалада биз ArchLinux/CentOS операциялык системасы тарабынан иштетилген атайын серверде 3прокси конфигурациясын көрсөтөбүз. 3proxy эң актуалдуу жана функционалдык куралдардын бири. Ал протоколдордун ар кандай түрлөрүн колдойт: HTTP, HTTPS, FTP, SOCKS жана башкалар. Бул сизге бир нече мүнөттүн ичинде прокси сервериңизди орнотууга жардам берет.
Макалада утилитаны орнотуу жана аны андан ары конфигурациялоо боюнча этап-этабы менен көрсөтмөлөр камтылган. Расмий булактан орнотуу, конфигурация файлдарын орнотуу, стандарттуу эмес портторду ачуу сыяктуу маселелер каралат, ошондой эле кеңири таралган каталар сүрөттөлөт жана аларды чечүү боюнча практикалык сунуштар берилет. Ишке киргизүүдөн мурун, сиз CentOS же ArchLinux операциялык тутуму менен иштеген VPS же атайын серверге заказ беришиңиз керек . Мисалдагы бардык аракеттер бир атайын статикалык коомдук IP дареги бар CentOS7 операциялык тутуму менен иштеген атайын серверде аткарылат.
орнотуу
Step 1
3proxy түздөн-түз булактардан орнотулат. gcc компилятор катары колдонулат. Биз серверге root (супер колдонуучу) катары туташып, компиляторду орнотобуз.
yum install gcc
Step 2
Эми 3proxy булак файлдарын жүктөп алуу керек. Муну расмий веб-сайтка өтүп , шилтемени учурдагы версияга көчүрүү менен жасай аласыз:
Эгер архивделген версия керек болсо, шилтемени түз эле 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
Каталог менен иштөө үчүн колдонуучу түзөбүз. Бул учурда колдонуучу аты 3proxyuser:
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 дарегинде жайгашкан sampleди сыноо конфигурациясы катары, ал эми алдын ала орнотулган firewall-cmdди firewall катары колдонууну сунуштайбыз.
Logging
Акыркы, бирок андан кем эмес маанилүү маселе файлдарды сактоого тиешелүү. Орнотуу учурунда 3proxy бир нече мб талап кылынат, бирок убакыттын өтүшү менен анын өлчөмүн бир кыйла көбөйтүүгө болот. Чындыгында, көптөгөн колдонуучулар журналды өзүнчө файлга жаздырышат, бирок айланууну орнотпойт жана тиешеси жок журналдарды жок кылышпайт. Бул маселени чечүү үчүн үч вариантты колдонсо болот:
- Киргизүүнү иштетүү;
- Маал-маалы менен тиешеси жок журналдарды жок кылуу;
- Жогорудагы конфигурацияда жасалгандай, айланууну иштетүү. Мисалы, конфигурация файлындагы "30 айлантуу" 3proxy акыркы 30 файлды гана сактай турганын билдирет.
жыйынтыктоо
CentOS жана ArchLinux операциялык системаларында 3проксиди орнотуу жана конфигурациялоо өтө жөнөкөй, бирок ошол эле учурда натыйжалуу иш. Макалада керектүү пакеттерди орнотуу, конфигурациялоо файлдарын конфигурациялоо жана кызматты ишке киргизүү кадамдары камтылган. Алынган билим прокси сервериңизди эч кандай кыйынчылыксыз өзүңүз орнотууга жана конфигурациялоого мүмкүндүк берет.