Задача: Вогрузить на 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.