Задача: Вогрузить на Zabbix 5.0
сервис 3proxy
дабы в последствии настроить уведомления в Telegram
. А как известно, ну по крайней мере в России (Москва) работа Telegram
через провайдера NetBynet
работать не будет (Наверное, и с другими тоже), а значит на помощь придет Tor
и это хоть и костыль, а работать будет. Проверено на себе.
Шаг №1:
Есть развернутый по заметке на Ubuntu 18.04 Server
сервис Zabbix 5
Шаг №2:
Устанавливаю в систему утилиту whois
(необязательно).
Шаг №3:
По мотивам заметок, ниже указанных оформляю шаги воедино в рамках поставленной задачи этой заметки:
Шаг №4:
Скачиваю 3proxy
и собираю дабы пакет был проинсталлирован в системе:
ekzorchik@srv-zabbix:~$ cd /opt ekzorchik@srv-zabbix:/opt$ sudo git clone https://github.com/z3APA3A/3proxy.git ekzorchik@srv-zabbix:/opt$ cd 3proxy ekzorchik@srv-zabbix:/opt/3proxy$ sudo ln -s Makefile.Linux Makefile ekzorchik@srv-zabbix:/opt/3proxy$ sudo make ekzorchik@srv-zabbix:/opt/3proxy$ sudo make install ekzorchik@srv-zabbix:/opt/3proxy$ cd ~
Шаг №5:
Создаю конфигурационный файл 3proxy.cfg
и проверяю, что 3proxy
работает как сервис и я могу через него запрашивать другие интернет ресурсы, т.е. с другого внешнего WAN-IP:
ekzorchik@srv-zabbix:~$ sudo cp /etc/3proxy/3proxy.cfg /etc/3proxy/3proxy.cfg.backup ekzorchik@srv-zabbix:~$ sudo useradd 3proxy ekzorchik@srv-zabbix:~$ sudo passwd 3proxy Enter new UNIX password: 712mbddr@ Retype new UNIX password: 712mbddr@ passwd: password updated successfully ekzorchik@srv-zabbix:~$ ekzorchik@srv-zabbix:~$ id 3proxy uid=1001(3proxy) gid=1001(3proxy) groups=1001(3proxy) ekzorchik@srv-zabbix:~$ sudo nano /etc/3proxy/allow.txt #Ограничение по IP кто может подключаться к связке 3proxy 172.33.33.102 ekzorchik@srv-zabbix:~$ sudo chown 3proxy:3proxy /etc/3proxy/*.txt ekzorchik@srv-zabbix:~$ sudo rm -Rf /var/log/3proxy ekzorchik@srv-zabbix:~$ sudo mkdir /var/log/3proxy ekzorchik@srv-zabbix:~$ sudo mkdir /var/run/3proxy ekzorchik@srv-zabbix:~$ sudo chown -R 3proxy:3proxy /var/log/3proxy/ ekzorchik@srv-zabbix:~$ sudo nano /etc/3proxy/3proxy.cfg #!/bin/3proxy daemon pidfile /var/run/3proxy/3proxy.pid #id 3proxy setgid 1001 setuid 1001 nserver 8.8.8.8 nserver 8.8.4.4 nscache 65536 timeouts 1 5 30 60 180 1800 15 60 daemon daemon log /var/log/3proxy/3proxy.log D logformat "- +_L%t.%. %N.%p %E %U %C:%c %R:%r %O %I %h %T" rotate 30 fakeresolve allow * $"/etc/3proxy/allow.txt" socks -p1080 -a maxconn 50 ekzorchik@srv-zabbix:~$ sudo 3proxy /etc/3proxy/3proxy.cfg ekzorchik@srv-zabbix:~$ ls -l /var/log/3proxy/ total 4 -rw-r--r-- 1 3proxy 3proxy 113 Aug 31 11:29 3proxy.log.2020.08.31 ekzorchik@srv-zabbix:~$ sudo nano /lib/systemd/system/3proxy.service [Unit] Description=3Proxy SOCKS5 Daemon Wants=network-online.target After=network-online.target [Service] Type=forking ExecStart=/bin/3proxy /etc/3proxy/3proxy.cfg [Install] WantedBy=multi-user.target ekzorchik@srv-zabbix:~$ sudo systemctl enable 3proxy && sudo systemctl restart 3proxy | sudo systemctl status 3proxy Synchronizing state of 3proxy.service with SysV service script with /lib/systemd/systemd-sysv-install. Executing: /lib/systemd/systemd-sysv-install enable 3proxy ● 3proxy.service - 3Proxy SOCKS5 Daemon Loaded: loaded (/lib/systemd/system/3proxy.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2020-08-31 11:30:37 MSK; 3ms ago Process: 3252 ExecStart=/bin/3proxy /etc/3proxy/3proxy.cfg (code=exited, status=0/SUCCESS) Main PID: 3256 (3proxy) Tasks: 2 (limit: 2336) CGroup: /system.slice/3proxy.service └─3256 /bin/3proxy /etc/3proxy/3proxy.cfg Aug 31 11:30:37 srv-zabbix systemd[1]: Starting 3Proxy SOCKS5 Daemon... Aug 31 11:30:37 srv-zabbix systemd[1]: Started 3Proxy SOCKS5 Daemon. ekzorchik@srv-zabbix:~$
На заметку: Если после активации сервиса вносите в файл конфигурации (/lib/systemd/system/3proxy.service
) изменения, то нужно сделать:
ekzorchik@srv-zabbix:~$ sudo systemctl daemon-reload
Шаг №6:
Проверяю от имени кого запущен сервис 3proxy:
ekzorchik@srv-zabbix:~$ ps aux | grep 3proxy 3proxy 3173 0.0 0.2 77428 4580 ? Ssl 11:29 0:00 3proxy /etc/3proxy/3proxy.cfg 3proxy 3256 0.0 0.2 77428 4520 ? Ssl 11:30 0:00 /bin/3proxy /etc/3proxy/3proxy.cfg ekzorch+ 3290 0.0 0.0 15652 1012 pts/0 R+ 11:32 0:00 grep --color=auto 3proxy ekzorchik@srv-zabbix:~$
Шаг №7:
Проверяю, какой адрес через 3proxy
я имею:
ekzorchik@srv-zabbix:~$ curl -x socks://172.33.33.102:1080 ipecho.net/plain ; echo 176.195.158.101 ekzorchik@srv-zabbix:~$ whois 176.195.158.101 | egrep 'netname|descr' | head -n2 netname: NBN-NET descr: Net By Net Holding LLC
Шаг №8:
После того как поднят сервис 3proxy
дорабатываю настройкой связки с TOR:
ekzorchik@srv-zabbix:~$ sudo apt-get install -y tor curl ekzorchik@srv-zabbix:~$ sudo netstat -tulpn | grep tor tcp 0 0 127.0.0.1:9050 0.0.0.0:* LISTEN 3554/tor ekzorchik@srv-zabbix:~$ sudo nano /etc/3proxy/3proxy.cfg #!/bin/3proxy daemon pidfile /var/run/3proxy/3proxy.pid #id 3proxy setgid 1001 setuid 1001 nserver 8.8.8.8 nserver 8.8.4.4 nscache 65536 timeouts 1 5 30 60 180 1800 15 60 daemon log /var/log/3proxy/3proxy.log D logformat "- +_L%t.%. %N.%p %E %U %C:%c %R:%r %O %I %h %T" rotate 30 fakeresolve allow * $"/etc/3proxy/allow.txt" #socks -p1080 –a ##перенаправляем запросы на порт Tor parent 1000 socks5+ 127.0.0.1 9050 maxconn 50 socks -a -n -p50000 -i172.33.33.102 -e127.0.0.1 ekzorchik@srv-zabbix:~$ sudo systemctl restart 3proxy
Шаг №9:
Проверяю, какой адрес через 3proxy
я имею:
ekzorchik@srv-zabbix:~$ curl -x socks5://172.33.33.102:50000 ipecho.net/plain ; echo 185.220.100.241 ekzorchik@srv-zabbix:~$ ekzorchik@srv-zabbix:~$ whois 185.220.100.241 | egrep 'netname|descr' | head -n2 descr: Network for Tor-Exit traffic. netname: TOR-EXIT
Итого я на систему где у меня развернут Zabbix 5
взгромоздил сервис 3proxy + tor
дабы в последствии настроить связку отправки уведомления о триггерах. Задача выполнена. Далее я уже перейду к настройке взаимодействия Zabbix 5 & 3proxy
на отправку уведомлений. На этом у меня всё, с уважением автор блога Олло Александр aka ekzorchik.