Задача: Нужно ранее опубликованную заметку по развертыванию Nod32 Mirror
сервера вынести в интернет конечно не для всеобщего доступа, а обрести возможность подключения к нему из различных мест: «Дом», «Работа», «Коллеги», «Друзья».
К примеру у Вас есть собственный домен и хостинг при нем и вы имеете к нему доступ. Если все так, то ниже мой набор шагов которые я применил дабы вынести сервис обновления для Nod32
на свой ресурс вида: http://IP&DNS:PORT/
, т.е. http://nod.ekzorchik.ru:38000
Шаг №1:
Подключаемся к своему VPS
серверу:
ekzorchik@navy:~$ nano ~/.bashrc alias srv-vps='sshpass -p <PASSWORD> ssh -o "StrictHostKeyChecking no" ekzorchik@<IP> -p <PORT>' ekzorchik@navy:~$ ekzorchik@navy:~$ source ~/.bashrc ekzorchik@navy:~$ srv-vps
Шаг №2:
Скачиваю пакет nod32-update-mirror
ekzorchik@srv-vps:~$ wget https://github.com/tarampampam/nod32-update-mirror/archive/master.zip ekzorchik@srv-vps:~$ unzip master.zip ekzorchik@srv-vps:~$ rm master.zip ekzorchik@srv-vps:~$ mv nod32-update-mirror-master/ nod32
Шаг №3:
Создаю структуру каталогов для поддомена или домена:
ekzorchik@srv-vps:~$ sudo mkdir /var/www/html/nod ekzorchik@srv-vps:~$ sudo cp -r nod32/nginx/html/* /var/www/html/nod/ ekzorchik@srv-vps:~$ mkdir nod ekzorchik@srv-vps:~$ cp -r nod32/src/include/ ~/nod/ ekzorchik@srv-vps:~$ cp nod32/src/nod32-mirror.sh ~/nod ekzorchik@srv-vps:~$ chmod +x ~/nod/nod32-mirror.sh ekzorchik@srv-vps:~$ cp nod32/src/settings.conf ~/nod ekzorchik@srv-vps:~$ rm -Rf nod32/
Шаг №4:
Привожу настройки конфигурационного файла:
ekzorchik@srv-vps:~$ nano nod/settings.conf export NOD32MIRROR_DEBUG_MODE=0; export NOD32MIRROR_USE_FREE_KEY=0; export NOD32MIRROR_MIRROR_DIR="/var/www/html/nod"; export NOD32MIRROR_SERVER_0='http://update.eset.com:80/eset_upd/ <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';
Шаг №5:
Выкачиваю обновления для пятой версии:
ekzorchik@srv-vps:~$ sudo ~/nod/nod32-mirror.sh -u ekzorchik@srv-vps:~$ sudo chown -R www-data:www-data /var/www/html/nod/
Шаг №6:
У меня на данном VPS
используется Web
-сервис nginx
, а значит на нем и настрою доступ к URL
на доступ к nod32
:
ekzorchik@srv-vps:~$ sudo nano /etc/nginx/sites-available/nod.ekzorchik.ru server { if ($host = nod.ekzorchik.ru) { return 301 http://$host$request_uri; } listen 38000; server_name nod.ekzorchik.ru; return 301 http://$host$request_uri; } server { server_name nod.ekzorchik.ru; root /var/www/html/nod; 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/nod/.htpasswd; } } ekzorchik@srv-vps:~$ sudo ln -s /etc/nginx/sites-available/nod.ekzorchik.ru /etc/nginx/sites-enabled/nod.ekzorchik.ru ekzorchik@srv-vps:~$ 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-vps:~$ ekzorchik@srv-vps:~$ 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 Sun 2020-01-19 19:37:03 MSK; 22ms ago Process: 14983 ExecStop=/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile /run/nginx.pid (code=exited, status=2) Process: 3247 ExecReload=/usr/sbin/nginx -g daemon on; master_process on; -s reload (code=exited, status=0/SUCCESS) ekzorchik@srv-vps:~$
Шаг №7:
Защищаю доступ к корню поддомена nod.ekzorchik.ru
связкой логина и пароля, а корень — это возможность скачивания обновлений:
ekzorchik@srv-bionic:~$ sudo sh -c "echo -n 'ekzorchik:' >> /var/www/html/nod/.htpasswd" ekzorchik@srv-vps:~$ openssl passwd -apr1 Password: <PASSWORD> Verifying - Password: <PASSWORD> $apr1$p880XUG8$IW.9MKrvipGknXnLudvGb. ekzorchik@srv-vps:~$ ekzorchik@srv-vps:~$ sudo nano /var/www/html/nod/.htpasswd ekzorchik:$apr1$p880XXG8$IW.9MKrvipGqnXnLudvGb. ekzorchik@srv-vps:~$ sudo chown -R www-data:www-data /var/www/html/nod/
Шаг №8:
Создаю задачу в планировщик на обновление каждый час в 15
минут файлов обновлений и после правка прав на каталог /var/www/html/nod:
ekzorchik@srv-vps:~$ sudo crontab -e 15 * * * * sudo /home/ekzorchik/nod/nod32-mirror.sh -u > /dev/null 2>&1 15 * * * * sudo chown -R www-data:www-data /var/www/html/nod > /dev/null 2>&1 ekzorchik@srv-vps:~$ sudo nano /etc/rsyslog.d/50-default.conf cron.* /var/log/cron.log ekzorchik@srv-vps:~$ sudo service rsyslog restart ekzorchik@srv-vps:~$ sudo service cron restart ekzorchik@srv-vps:~$ sudo grep --color -i cron /var/log/cron.log
Шаг №9:
Но у меня на блоге еще работает брандмауэр и мне нужно для порта 38000
открыть доступ:
ekzorchik@srv-vps:~$ sudo ufw allow 38000/tcp Rule added ekzorchik@srv-vps:~$ sudo ufw reload Firewall reloaded
Шаг №10:
Проверяю, что доступ на Web
-адрес с браузера:
http://nod.ekzorchik.ru:38000
— авторизуюсь и вижу при наведении на иконку по центру с надписью дату и время последнего обновления, а также версию базы.
Шаг №11: Прописываю настройки обновления на рабочей станции где у меня установлен антивирус Eset Endpoint Antivirus
, версия 5.0.2271.3
и он успешно скачивает обновления.
Работает. Итого если делаешь что-то, как для себя, то и работает на славу. На этом я прощаюсь, с уважением автор блога Олло Александр aka ekzorchik.