Рабочая инструкция как имея действующий аккаунт лицензионного ключа Nod32 поднять в своей локальной сети действующий mirror сервис по обновлению антивируса и все ниже адаптировано под Ubuntu 20.04 Server. В роли клиента на рабочей станции выступает дистрибутив: ESET Endpoint Antivirus, версия 5.0.2271.3 Да, старая версия но вполне рабочая когда хочется минимализма с приятными настройками.

Также данная инструкция вынесена и применяется на моем блоге для тех кому я устанавливаю операционную систему и антивирус в придачу за N’ое количество денег.

ekzorchik@srv-us2004a:~$ sudo apt-get -y install nginx unrar curl unzip mc mercurial net-tools
ekzorchik@srv-us2004a:~$ sudo rm /var/www/html/index.nginx-debian.html
ekzorchik@srv-us2004a:~$ sudo mkdir /var/www/html/nod32/
ekzorchik@srv-us2004a:~$ hg clone  http://srv-wiki/hg/nod32mirror/
http authorization required for http://srv-wiki/hg/nod32mirror/
realm: Private Zone Project
user: ekzorchik
password: 
ekzorchik@srv-us2004a:~$ cp nod32mirror/master18012020.zip ~/
ekzorchik@srv-us2004a:~$ unzip master18012020.zip
ekzorchik@srv-us2004a:~$ mv nod32-update-mirror-master/ nod32
ekzorchik@srv-us2004a:~$ sudo cp -r nod32/nginx/html/* /var/www/html/nod32/
ekzorchik@srv-us2004a:~$ sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/nod32
ekzorchik@srv-us2004a:~$ sudo ln -s /etc/nginx/sites-available/nod32 /etc/nginx/sites-enabled/nod32
ekzorchik@srv-us2004a:~$ sudo unlink /etc/nginx/sites-enabled/default 
ekzorchik@srv-us2004a:~$ sudo unlink /etc/nginx/sites-available/default
ekzorchik@srv-us2004a:~$ sudo nano /etc/nginx/sites-available/nod32
server {
	listen 38000;
	server_name 172.33.33.117;
	root /var/www/html/nod32;
	charset utf-8;
	index index.html;

	 if ($http_user_agent ~* ^(Wget|aria2|NOD32view|perl|php|curl|Google|Yandex|Yahoo)|(Mirror|spider|bot|Parser|RSS|grab)) {
                        return 403;
         }
	
	 location ~* ^.+.(htaccess|htpasswd|pl|cqi|sh|sql|conf|tmp)$ {
                        return 403;
         }


	location / {
              autoindex  on;
		auth_basic "Restricted Content";
		auth_basic_user_file /var/www/html/.htpasswd;
         }

}
ekzorchik@srv-us2004a:~$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
ekzorchik@srv-us2004a:~$ sudo systemctl restart nginx && sudo systemctl status nginx | head -n5
● nginx.service - A high performance web server and a reverse proxy server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2020-01-18 01:00:00 MSK; 13ms ago
     Docs: man:nginx(8)
  Process: 20851 ExecStop=/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile /run/nginx.pid (code=exited, status=0/SUCCESS)
ekzorchik@srv-us2004a:~$
ekzorchik@srv-us2004a:~$ sudo netstat -tulpn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:38000           0.0.0.0:*               LISTEN      104716/nginx: maste 
tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      621/systemd-resolve 
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      704/sshd: /usr/sbin 
tcp6       0      0 :::22                   :::*                    LISTEN      704/sshd: /usr/sbin 
udp        0      0 127.0.0.53:53           0.0.0.0:*                           621/systemd-resolve 
udp        0      0 172.33.33.117:68        0.0.0.0:*                           619/systemd-network 
ekzorchik@srv-us2004a:~$ 

ekzorchik@srv-us2004a:~$ sudo sh -c "echo -n 'ekzorchik:' >> /var/www/html/.htpasswd"
ekzorchik@srv-us2004a:~$ sudo sh -c "openssl passwd -apr1 >> /var/www/html/.htpasswd"
Password: Aa1234567aA
Verifying - Password: Aa1234567aA
ekzorchik@srv-us2004a:~$
ekzorchik@srv-us2004a:~$ cat /var/www/html/.htpasswd
ekzorchik:$apr1$5QiXJPTg$J44btX6vXNU0z0seRTz5k0
ekzorchik@srv-us2004a:~$

ekzorchik@srv-us2004a:~$ cp nod32/src/nod32-mirror.sh ~/nod32/
ekzorchik@srv-us2004a:~$ cp -r nod32/src/include/ ~/nod32/
ekzorchik@srv-us2004a:~$ cp nod32/src/settings.conf ~/nod32
ekzorchik@srv-us2004a:~$ chmod +x ~/nod32/nod32-mirror.sh 

ekzorchik@srv-us2004a:~$ nano nod32/settings.conf
export NOD32MIRROR_DEBUG_MODE=0;
export NOD32MIRROR_USE_FREE_KEY=0;
export NOD32MIRROR_MIRROR_DIR="/var/www/html/nod32";
export NOD32MIRROR_SERVER_0='http://update.eset.com:80/eset_upd/ EAV-LOGIN PASSWORD';
export NOD32MIRROR_LANGUAGES='1033 1049';
export NOD32MIRROR_VERSIONS='pcu 5';
export NOD32MIRROR_LOG_PATH="/var/log/nod32/nod32mirror.log";
export NOD32MIRROR_CURL_BIN='false';
export NOD32MIRROR_TEST_URI='http://update.eset.com:80/v8-rel-sta/mod_010_smon_1036/em010_32_l0.nup';
export NOD32MIRROR_TIMESTAMP_FILE_NAME='lastevent.txt';
export NOD32MIRROR_VERSION_FILE_NAME='version.txt';

После не забываем сохранить внесенные изменения.

На заметку: Рабочий архив master18012020

Наполняем свое зеркало обновления для используемой версии антивируса на рабочем месте:

ekzorchik@srv-us2004a:~$ sudo ~/nod32/nod32-mirror.sh -u

[19:15:05] Checking server (http://update.eset.com:80/eset_upd/ [EAV-0293046026:**********]).. Available

[19:15:05] Starting mirroring "http://update.eset.com:80/eset_upd/" -> "/var/www/html/nod32"

[19:15:05] Download versions file (http://update.eset.com:80/eset_upd/update.ver).. Success

[19:15:06] Parsing & writing new (/var/www/html/nod32/update.ver) versions file (dots = skipped sections): #.........###...............###...............#.......###.......#####..........###....................#.......##.......###.......###.......##...............###...............###.......###.......###.......###.......###.......###.......###.......###.......###.......#...............#...............###.......##.......##.......###.......###.......###.....................###.......####.......#.......###.......##...............###...............#...............

[19:15:19] Download file "http://update.eset.com:80/v3-rel-sta/mod_021_horus_15225/em021_32_l0.nup" (1 of 94).. Success

[19:15:20] Download file "http://update.eset.com:80/v3-rel-sta/mod_021_horus_15282/em021_32_l1.nup" (2 of 94).. Success

ожидаю закачки файлов обновления….

[19:22:31] Mirroring "http://update.eset.com:80/eset_upd/v5/" -> "/var/www/html/nod32/v5" complete!

[19:22:31] Successfully downloaded files: 88, skipped: 0, with errors: 0

[19:22:31] Timestamp file created (lastevent.txt)

[19:22:31] Total updates (*.nup) files count: 164 file(s)

[19:22:31] Total updates (*.nup) files size: 277.5M

[19:22:31] Mirror directory size is 279M

ekzorchik@srv-us2004a:~$

Прописываю в планировщик проверку обновлений каждый час:

ekzorchik@srv-us2004a:~$ sudo crontab -e
* 1 * * * root /home/ekzorchik/nod32/nod32-mirror.sh -u > /dev/null 2>&1
* 1 * * * root chown -R www-data:www-data /var/www/html/nod32 > /dev/null 2>&1

Размер каталога /var/www/html/nod32 после скачивания обновлений:

ekzorchik@srv-us2004a:~$ sudo du -sh /var/www/html/nod32/

279M /var/www/html/nod32/

ekzorchik@srv-us2004a:~$ sudo chown -R www-data:www-data /var/www/html/nod32/

Прописываю настройки обновления на компьютере под управлением Windows 10 Pro x64

Настройка - Перейти к дополнительным настройкам... - Обновление - Общие - (Сервер обновлений) Изменить — указываю (Сервер обновлений): http://172.33.33.117:38000 и нажимаю "Добавить", затем указываю "Имя пользователя" и "Пароль" и нажимаю "OK".

Прописываем зеркало обновлений + логин + пароль

Идет процесс выкачивания обновлений

Информация об установленном антивирусе следующая:

Информация об установленном антивирусе следующая:

Если нужно добавить еще одну связку логин и пароль, то:

Создаем пароль:

ekzorchik@srv-us2004a:~$ openssl passwd -apr1

Password: Aa1234567

Verifying - Password: Aa1234567

$apr1$RMWiFCfQ$LULylbylYVFLzn8BfDbV20

ekzorchik@srv-us2004a:~$

Указываю произвольный логин и копириую через двоеточие после него сгенерированный выше пароль, получается вот так:

ekzorchik@srv-us2004a:~$ sudo nano /var/www/html/.htpasswd

ekzorchik:$apr1$engOQVIy$dLoN2HYuqLN1VZuhmY6Xm.

ekz:$apr1$8JOcSpoZ$RybJqyYbPrAB46z3wQ3q3/

После не забываем сохранить внесенные изменения.

Поправляем права доступа:

ekzorchik@srv-us2004a:~$ sudo chown www-data:www-data /var/www/html/.htpasswd

и прописываем логин и пароль на доступ к обновлению на клиенте с такого-то сервера + порт.

На заметку: Если нужны другие версии под используемый клиент на рабочем месте то следует отредактировать строку до вида:

export NOD32MIRROR_VERSIONS='pcu 4 5 6 7 8 9 10 11';

в конфигурационном файле

ekzorchik@srv-us2004a:~$ nano nod32/settings.conf

Итого заметка работоспособна.

На этом у меня всё, с уважением автор блога Олло Александр aka ekzorchik.