Хочу адаптировать ранее опубликованные заметки к единому списку пошаговых действия, через которые я получу небольшую проверку системы Ubuntu 18.04 Server
на наличии вирусов которые она может получить если пользователь загружает файлы на нее: к примеру если это Samba
ресурс, блог, вики. Плюс с учетом политической ситуации отношения к России все блокируется для нас и как выйти и получать доступ к сервисам с учетом этого минуя вводимые ограничения. Благодаря данной заметке я адаптировался, а Вы? И на ее основе уже не только clamav
будет получать свежие обновления, но и любая другая консольная утилита систем Ubuntu.
Шаг №1:
Дабы получать доступ к ресурсам, которые заблокированы будет использовать связку 3proxy + Tor
.
О том, как практически поднять связку 3proxy + Tor
читать здесь: Как развернуть 3proxy на Ubuntu 18.04
Что самое интересное на момент 18.03
все в заметке работало и не один раз, а сейчас не нужен параметр pidfile
и не работает ограничение доступа с определенного(ых) адресов. Разберу чуть позже что поменялось.
sudo apt-get install -y git curl tor make gcc cd /opt sudo git clone https://github.com/z3APA3A/3proxy.git cd 3proxy/ sudo ln -s Makefile.Linux Makefile sudo make sudo make install cd ~/ sudo cp /etc/3proxy/3proxy.cfg /etc/3proxy/3proxy.cfg.backup 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" allow * #socks -p1080 –a ##перенаправляем запросы на порт Tor parent 1000 socks5+ 127.0.0.1 9050 maxconn 50 socks -a -n -p50000 -i172.33.33.155 -e127.0.0.1 sudo useradd 3proxy sudo passwd 3proxy id 3proxy uid=1001(3proxy) gid=1001(3proxy) groups=1001(3proxy) sudo rm -Rf /var/log/3proxy sudo mkdir /var/log/3proxy sudo mkdir /var/run/3proxy sudo chown -R 3proxy:3proxy /var/log/3proxy/ sudo chown -R root:root /var/run/3proxy sudo nano /lib/systemd/system/3proxy.service [Unit] Description=3Proxy SOCKS5 Daemon After=network-online.target [Service] Type=simple ExecStart=/bin/3proxy /etc/3proxy/3proxy.cfg ExecStop=/usr/bin/killall 3proxy RemainAfterExit=yes [Install] WantedBy=multi-user.target sudo systemctl enable 3proxy ekzorchik@srv-bionic:~$ sudo systemctl stop 3proxy && sudo systemctl start 3proxy && sudo systemctl status 3proxy && sudo netstat -tulpn | grep 3proxy ● 3proxy.service - 3Proxy SOCKS5 Daemon Loaded: loaded (/lib/systemd/system/3proxy.service; enabled; vendor preset: enabled) Active: active (exited) since Fri 2022-03-18 12:01:40 MSK; 11ms ago Process: 2773 ExecStop=/usr/bin/killall 3proxy (code=exited, status=0/SUCCESS) Process: 2777 ExecStart=/bin/3proxy /etc/3proxy/3proxy.cfg (code=exited, status=0/SUCCESS) Main PID: 2777 (code=exited, status=0/SUCCESS) Tasks: 2 (limit: 2333) CGroup: /system.slice/3proxy.service └─2779 /bin/3proxy /etc/3proxy/3proxy.cfg Mar 18 12:01:40 srv-bionic systemd[1]: Started 3Proxy SOCKS5 Daemon. tcp 0 0 172.33.33.155:50000 0.0.0.0:* LISTEN 2779/3proxy ekzorchik@srv-bionic:~$
На заметку: от 27.12.2022
ekzorchik@mail:~$ sudo /bin/3proxy /etc/3proxy/3proxy.cfg /var/log/3proxy/3proxy.log.2022.12.27: Permission denied Command: 'log' failed with code 1, line 12 ekzorchik@mail:~$ sudo chmod -R 774 /var/log/3proxy/ ekzorchik@mail:~$ sudo chown -R 3proxy:3proxy /var/log/3proxy/ ekzorchik@mail:~$ sudo ls -l /var/log/ | grep 3proxy drwxrwxr-- 2 3proxy 3proxy 4096 Dec 27 11:36 3proxy ekzorchik@mail:~$ ekzorchik@mail:~$ sudo systemctl start 3proxy ekzorchik@mail:~$ ps aux | grep 3proxy 3proxy 11827 0.0 0.2 77440 4500 ? Ssl 11:47 0:00 /bin/3proxy /etc/3proxy/3proxy.cfg ekzorch+ 11847 0.0 0.0 15656 1104 pts/0 R+ 11:48 0:00 grep --color=auto 3proxy ekzorchik@mail:~$ sudo netstat -tulpn | grep :50000 tcp 0 0 172.33.2.14:50000 0.0.0.0:* LISTEN 11827/3proxy ekzorchik@mail:~$
Если Вы вносили изменения в /lib/systemd/system/3proxy.service
, то для их активации нужна команда ниже:
sudo systemctl daemon-reload
Проверяю, что сервис 3proxy
работает:
curl -x socks5://172.33.33.155:50000 ipecho.net/plain ; echo 199.249.230.69
Шаг №2:
Устанавливаю из дефолтных репозитариев Ubuntu 18.04 Server
пакеты для антивирусной защиты:
ekzorchik@srv-bionic:~$ sudo apt-get install -y clamav clamav-daemon clamav-freshclam clamfs
установленная версия:
ekzorchik@srv-bionic:~$ clamscan --version ClamAV 0.103.5
Шаг №3:
Обновляем текущую антивирусную базу до самого актуального состояния:
ekzorchik@srv-bionic:~$ sudo freshclam Thu Mar 17 15:47:40 2022 -> ClamAV update process started at Thu Mar 17 15:47:40 2022 Thu Mar 17 15:47:40 2022 -> ^FreshClam previously received error code 429 or 403 from the ClamAV Content Delivery Network (CDN). Thu Mar 17 15:47:40 2022 -> This means that you have been rate limited or blocked by the CDN. Thu Mar 17 15:47:40 2022 -> 1. Verify that you're running a supported ClamAV version. Thu Mar 17 15:47:40 2022 -> See https://docs.clamav.net/faq/faq-eol.html for details. Thu Mar 17 15:47:40 2022 -> 2. Run FreshClam no more than once an hour to check for updates. Thu Mar 17 15:47:40 2022 -> FreshClam should check DNS first to see if an update is needed. Thu Mar 17 15:47:40 2022 -> 3. If you have more than 10 hosts on your network attempting to download, Thu Mar 17 15:47:40 2022 -> it is recommended that you set up a private mirror on your network using Thu Mar 17 15:47:40 2022 -> cvdupdate (https://pypi.org/project/cvdupdate/) to save bandwidth on the Thu Mar 17 15:47:40 2022 -> CDN and your own network. Thu Mar 17 15:47:40 2022 -> 4. Please do not open a ticket asking for an exemption from the rate limit, Thu Mar 17 15:47:40 2022 -> it will not be granted. Thu Mar 17 15:47:40 2022 -> ^You are still on cool-down until after: 2022-03-18 15:45:01 ekzorchik@srv-bionic:~$
судя по выводу я как гражданин, находящийся в России заблокирован CDN
на доступ к серверам обновления.
Шаг №4:
Значит нужно задействовать связку 3Proxy + Tor
для выкачивания антивирусных баз:
ekzorchik@srv-bionic:~$ curl -v -x socks5://172.33.33.155:50000 "http://database.clamav.net/main.cvd" --output main.cvd ekzorchik@srv-bionic:~$ file main.cvd main.cvd: Clam AntiVirus database 16 Sep 2021 08-32 -0400, version62, gzipped ekzorchik@srv-bionic:~$ ls -lh main.cvd -rw-rw-r-- 1 ekzorchik ekzorchik 163M Mar 17 16:06 main.cvd ekzorchik@srv-bionic:~$
как вижу антивирусный файл базы скачивается через tor
, значит я могу написать примитивный скрипт для выкачивания актуальных баз данных и подключенных баз от maldet:
ekzorchik@srv-bionic:~$ nano clamavupdate #!/bin/bash rm -Rf /tmp/clamav mkdir /tmp/clamav cd /tmp/clamav curl -v -x socks5://172.33.33.155:50000 "http://database.clamav.net/main.cvd" --output main.cvd curl -v -x socks5://172.33.33.155:50000 "http://database.clamav.net/daily.cvd" --output daily.cvd curl -v -x socks5://172.33.33.155:50000 "http://database.clamav.net/bytecode.cvd" --output bytecode.cvd curl -v -x socks5://172.33.33.155:50000 "http://www.rfxn.com/downloads/rfxn.ndb" --output rfxn.ndb curl -v -x socks5://172.33.33.155:50000 "http://www.rfxn.com/downloads/rfxn.hdb" --output rfxn.hdb mv -f daily.cvd /var/lib/clamav/ mv -f main.cvd /var/lib/clamav/ mv -f bytecode.cvd /var/lib/clamav/ mv -f rfxn.ndb /var/lib/clamav/ mv -f rfxn.hdb /var/lib/clamav/ chown -R clamav:clamav /var/lib/clamav/ /etc/init.d/clamav-freshclam restart #Current Version now" echo `freshclam --version` ekzorchik@srv-bionic:~$ chmod +x clamavupdate ekzorchik@srv-bionic:~$ sudo ./clamavupdate ClamAV 0.103.5/26485/Fri Mar 18 11:26:47 2022
Скрипт рабочий. И скачиваются обновления.
ekzorchik@srv-bionic:~$ sudo ls /var/lib/clamav/ bytecode.cvd daily.cvd freshclam.dat main.cvd
Шаг №5:
Настраиваем задание на получение самых последних баз раз в 6
часов:
ekzorchik@srv-bionic:~$ sudo crontab –e * */6 * * * root /home/ekzorchik/clamavupdate > /dev/null 2>&1
Шаг №6:
Теперь нужно изменить работу инструмента под названием freshclam
чтобы он не обращался к получению актуального состояние баз данных сигнатур:
ekzorchik@srv-bionic:~$ sudo systemctl disable clamav-freshclam.service ekzorchik@srv-bionic:~$ sudo killall freshclam ekzorchik@srv-bionic:~$ sudo systemctl start clamav-daemon.service
Шаг №7:
Чтобы просканировать всю систему полностью и файлы (и директории) на других файловых системах, попросту говоря смонтированных сетевых ресурсах:
ekzorchik@srv-bionic:~$ sudo clamscan / --recursive=yes --cross-fs=yes
Шаг №8:
Если же не хочется смотреть на консоль, когда антивирус проходит по всем файлам, то можно задать специальную опцию с целью показа только тех файлов, которые имеют место быть зараженными:
ekzorchik@srv-bionic:~$ sudo clamscan / -i --recursive=yes --cross-fs=yes
Шаг №9:
Проверить конкретный файл:
ekzorchik@srv-bionic:~$ cat /etc/passwd | clamscan - stdin: OK ----------- SCAN SUMMARY ----------- Known viruses: 8623303 Engine version: 0.103.5 Scanned directories: 0 Scanned files: 1 Infected files: 0 Data scanned: 0.00 MB Data read: 0.00 MB (ratio 0.00:1) Time: 23.231 sec (0 m 23 s) Start Date: 2022:03:18 14:16:03 End Date: 2022:03:18 14:16:26
Вообще все что написано в заметке "Антивирус Clamav на защите работы системы Ubuntu"
актуально и по сей день.
Дабы не загромождать заметку, завершусь, если что будет интересное, то вернусь и дополню. На этом пока все, с уважением автор блога Олло Александр aka ekzorchik.