Загрузка и выгрузка модулей в Linux

В этой статье я приведу пример ручной и автоматической загрузки/выгрузки моделей в Linux.

Сначала переключимся на root пользователя если не под ним, например в Ubuntu это можно сделать так:

sudo su

Посмотрим список загруженных модулей:

lsmod

Посмотреть загружен ли конкретный модуль можно так (где NAME — имя модуля):

lsmod | grep NAME

Для загрузки/выгрузки модуля используются команды:

modprobe NAME
modprobe -r NAME

Когда выполняется команда загрузки модуля, modprobe ищет его в директории:

/lib/modules/$(uname -r)

Можно посмотреть какие есть например так:

ls /lib/modules/$(uname -r)
ls /lib/modules/$(uname -r)/kernel/net/netfilter/

Для загрузки/выгрузки модуля из другой директории можно выполнить команды:

insmod /path/to/module/name.ko
rmmod /path/to/module/name.ko

Посмотреть информацию о модуле и возможные параметры запуска можно так:

modinfo NAME

Можно посмотреть конкретную информацию о модуле, например где он находится:

modinfo --filename NAME

Чтобы модули запускались в самом начале запуска системы, то их нужно прописать в файл /etc/modules.conf, а чтобы запускались в последнюю очередь после запуска всех служб, то в файл /etc/rc.local.
Помимо файла /etc/modules.conf есть также директория /etc/modprobe.d/, где находятся подобные файлы с расширением .conf.

Например в rc.local модули прописываются так:

/sbin/modprobe NAME

В файле modules.conf прописываются так:

nf_nat_ftp

Чтобы запретить загрузку модуля, можно прописать слово blacklist перед названием модуля:

blacklist NAME

Установка панели управления Webuzo

Для примера установлю панель управления Webuzo в Ubuntu 16.04 LTS.

Переключимся на root пользователя:

sudo su

Скачаем скрипт установки:

wget -N http://files.webuzo.com/install.sh

Делаем файл скрипта исполняемым:

chmod 0755 install.sh

Запустим скрипт установки:

./install.sh

Дождемся завершения установки.
По завершению установки у меня отобразилось следующее:

———————————————————
Welcome to Webuzo Installer
———————————————————
Installation Logs : tail -f /root/webuzo-install.log
———————————————————
1) Installing Libraries and Dependencies
2) Setting UP WEBUZO
3) Downloading and Installing Webuzo
4) Downloading System Apps
—————————————————————-
/$$ /$$ /$$$$$$$$ /$$$$$$$ /$$ /$$ /$$$$$$$$ /$$$$$$
| $$ /$ | $$| $$_____/| $$__ $$| $$ | $$|_____ $$ /$$__ $$
| $$ /$$$| $$| $$ | $$ \ $$| $$ | $$ /$$/ | $$ \ $$
| $$/$$ $$ $$| $$$$$ | $$$$$$$ | $$ | $$ /$$/ | $$ | $$
| $$$$_ $$$$| $$__/ | $$__ $$| $$ | $$ /$$/ | $$ | $$
| $$$/ \ $$$| $$ | $$ \ $$| $$ | $$ /$$/ | $$ | $$
| $$/ \ $$| $$$$$$$$| $$$$$$$/| $$$$$$/ /$$$$$$$$| $$$$$$/
|__/ \__/|________/|_______/ \______/ |________/ \______/
—————————————————————-
Congratulations, Webuzo has been successfully installed
You can now configure Softaculous Webuzo at the following URL :
http://192.168.1.9:2004/
—————————————————————-
Thank you for choosing Webuzo !
—————————————————————-

После этого я открыл в браузере http://192.168.1.9:2004/, указал придуманное имя пользователя и пароль, email и имя домена/IP на котором будет работать Webuzo.
На этом установка была завершена и отобразилась следующая информация:

You can login to the Webuzo Admin Panel using your root details at the following URL :
http://192.168.1.9:2004/
To start installing Apps you can login with the following details :
URL : http://192.168.1.9:2002/
Username : admin
Password : (the one you entered)
We request you to please register for updates and notifications at :
http://www.softaculous.com/board/index.php?act=register It also inspires us when you register. Registration is free and just a one minute job.
If you need any support you can always count on us. Just drop in at our Support Board:
http://www.webuzo.com/forums
Alternatively, you can contact us via Email at support@webuzo.com
Thank you for choosing Webuzo!

Так как установлена бесплатная версия Webuzo, то много утилит и модулей станут доступны только после обновления на премиум версию Webuzo.

Решение ошибки в Thunderbird «IMAP-сервер не поддерживает выбранный метод аутентификации»

Поделюсь информацией по данной проблеме которая возникла у меня.
Заметил недавно на одном из компьютеров, что перестала загружаться почта в Mozilla Thunderbird и отображалось сообщение:

IMAP-сервер «…» не поддерживает выбранный метод аутентификации. Пожалуйста, измените «Метод аутентификации» в «Параметрах учетной записи | Параметры сервера».

До этого почта успешно загружалась, в конфигурации Thunderbird и на почтовом сервере ничего не менялось.
На соседнем компьютере с аналогичными параметрами проблемы не было.

Как я выяснил, проблема была в ESET NOD32 Internet Security и после выключения его защиты (не фаервола) — проблема исчезла.
Удивительно что проблема появилась не сразу, во время настройки почты например.

Так как на данном компьютере менялось железо и переустановили ОС, а также по ошибке установили ESET NOD32 Internet Security, я не стал выяснять причину блокирования, удалил его и установил ESET NOD32 Антивирус, который всегда стоял на данном компьютере, с надеждой продолжить исследовать проблему если она повторится, но после этого она исчезла и не появляясь.

Установка Certbot в Ubuntu

На тесте установлю ACME клиент Certbot в Ubuntu 16.04 (xenial), который поможет получить бесплатные SSL сертификаты Let’s Encrypt на 90 дней и автоматически обновлять их.
Для других версий Ubuntu клиент Certbot устанавливается аналогично.

Первым делом добавим репозиторий Certbot и выполним установку:

sudo apt-get update
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
sudo apt-get install python-certbot-apache

Теперь запустим Certbot чтобы получить SSL сертификат:

sudo certbot --apache

Чтобы вручную внести изменения в конфигурацию Apache2 и Certbot не изменял её, можно выполнить команду:

sudo certbot --apache certonly

После запуска команды, необходимо выбрать сайт для которого будет запрашиваться SSL сертификат.

После получения сертификата отобразилась информация:

IMPORTANT NOTES:
— Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/example.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/example.com/privkey.pem
Your cert will expire on 2018-08-01. To obtain a new or tweaked
version of this certificate in the future, simply run certbot again
with the «certonly» option. To non-interactively renew *all* of
your certificates, run «certbot renew»
— Your account credentials have been saved in your Certbot
configuration directory at /etc/letsencrypt. You should make a
secure backup of this folder now. This configuration directory will
also contain certificates and private keys obtained by Certbot so
making regular backups of this folder is ideal.

Создался отдельный файл конфигурации сайта для HTTPS, а в том что был добавились строки выполняющие переадресацию с HTTP на HTTPS, общем аналогичные изменения как я описывал в этой статье — Установка и настройка Let’s Encrypt SSL.

Для автоматического обновления необходимо выполнить команду:

sudo certbot renew

Команду также можно добавить в Cron для автоматического обновления, смотрите мою статью — Использование и настройка CRON

Пример добавления в Cron (каждый понедельник в 3:15):

sudo crontab -e
15 3 * * 1 certbot renew >> /var/log/certbot-renew.log

Для тестового обновления можно выполнить команду (конфигурация и сертификаты не будут затронуты):

sudo certbot renew --dry-run

Если срок сертификата еще не истекает и запустить обновление, то ничего не произойдет.

Установка и настройка Let’s Encrypt SSL

На тесте установлю Let’s Encrypt котоый позволяет установить бесплатные SSL сертификаты на 90 дней и автоматически перевыдавать их.

Допустим на Ubuntu Server установлен Apache2 и есть один сайт, для которого мы настроили один файл конфигурации /etc/apache2/sites-available/test.conf, и включили его:

sudo a2ensite test
sudo service apache2 restart

Смотрите пример конфигурации в моей статье — Установка и настройка веб-сервера Apache2
Сайт работает по HTTP на 80, теперь приступим к установке Let’s Encrypt:

sudo apt-get update
sudo apt-get install git
sudo git clone https://github.com/letsencrypt/letsencrypt /opt/letsencrypt

Перейдем в директорию с Let’s Encrypt и запросим сертификат для сайта:

cd /opt/letsencrypt
sudo ./letsencrypt-auto --apache -d example.com

Можно также запросить и для www поддомена:

sudo ./letsencrypt-auto --apache -d example.com -d www.example.com

Я заменил в статье настоящее имя сайта на example.com. Чтобы получить сертификат, сайт должен быть доступен по доменному имени из интернета.
Для ресурсов внутри сети, с серыми IP, получить сертификат не получится.

После получения сертификата у меня создался и активировался еще один файл конфигурации /etc/apache2/sites-available/test-le-ssl.conf со следующим содержимым:

<IfModule mod_ssl.c>
<VirtualHost *:443>
     ServerName example.com
     DocumentRoot /var/www/test/

     <Directory /var/www/test>
     Options -Indexes
     AllowOverride All
     Order allow,deny
     allow from all
     </Directory>

     ErrorLog /var/log/test.error.log
     CustomLog /var/log/test.access.log combined
SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
</IfModule>

Так как во время получения сертификата я согласился на переадресацию HTTP запросов на HTTPS, то в конце моего файла конфигурации /etc/apache2/sites-available/test.conf добавилось следующее:

RewriteEngine on
RewriteCond %{SERVER_NAME} =example.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]

По истечении срока действия сертификата, его можно обновить командой:

sudo /opt/letsencrypt/letsencrypt-auto renew

Команду также можно добавить в Cron для автоматического обновления, смотрите мою статью — Использование и настройка CRON

Пример добавления в Cron (каждый понедельник в 3:15):

sudo crontab -e
15 3 * * 1 /opt/letsencrypt/letsencrypt-auto renew >> /var/log/letsencrypt-renew.log

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

Saving debug log to /var/log/letsencrypt/letsencrypt.log
——————————————————————————-
Processing /etc/letsencrypt/renewal/example.com.conf
——————————————————————————-
Cert not yet due for renewal
——————————————————————————-
The following certs are not due for renewal yet:
/etc/letsencrypt/live/example.com/fullchain.pem expires on 2018-08-01 (skipped)
No renewals were attempted.
——————————————————————————-

Смотрите также:
Установка Certbot в Ubuntu

Настройка записи видео на FTP сервер с IP-камер и DVR Dahua

Настроил недавно очередную IP-камеру Dahua DH-IPC-HFW1320SP-W и решил использовать для записи FTP сервер.
Так как меню в основном одинаково на камерах и видеорегистраторах Dahua, то настраивается запись на FTP аналогично.

Откроем интерфейс устройства, например набрав в браузере IP-адрес.
Откроем вкладку «Setting», потом «Storage» — «Destination», во вкладке «Path», где «Motion Detection» и «Alarm», я отметил галочками FTP, кстати выбрать можно было только что-то одно, либо «Local (запись на карту памяти или HDD)», «FTP» либо «NAS». После выбора жмем «Save» чтобы сохранить изменения.

Теперь осталось перейти во вкладку «FTP», поставить галочку на «Enable» и указать параметры подключения в «Server Address», «Username», «Password» и нажать «Save» для сохранения изменений.

После этого устройство начало писать видео на FTP сервер в mp4 формате, однако просмотреть записи в истории через мобильное приложение и интерфейс камеры было нельзя.
Файлы на FTP сортируются в папки по дате и времени, как вариант видео можно просмотреть через любой FTP клиент с компьютера или телефона, если камера пишет на движение, то соответственно если нет движения, то не будет папок и записей.

Обязательно! В меню «Storage» — «Record Control» нужно выбрать «Stop» в «Disk Full», если будет выбрано «Overwrite», то после перезапуска камеры, в моем случае, удалялись все записи с FTP сервера.

Если FTP сервер запущен на Linux, то можно например добавить в Cron команду которая будет удалять директории старее 30 дней, чтобы не переполнился диск:

find /srv/ftp/ipcam/SNCAM/ -type d -mtime +30 -exec rm -rfv {} \; >> /srv/ftp/ipcam/remove.log

Смотрите также мои статьи:
Использование и настройка CRON
Программы для просмотра видео с DVR видеорегистраторов
Установка и настройка ProFTPd в Ubuntu
Установка и настройка Pure-FTPd в Ubuntu
Настройка FTP-сервера в Windows Server 2008 R2
Настройка FTP сервера на MikroTik Router OS

Настройка FTP-сервера в Windows Server 2008 R2

На тесте выполню настройку FTP-сервера в Windows Server 2008 R2.

Откроем «Диспетчер сервера», его можно найти в меню «Пуск» — «Администрирование».

Если установлена роль «Веб-сервер (IIS)», то выберем её и ниже нажмем «Добавить службы ролей» (не Добавить роли) отметим галочкой «FTP-Сервер» нажмем «Далее» и «Установить».

Если роль «Веб-сервер (IIS)» не установлена, то в «Роли» нажмем «Добавить роли», выберем «Веб-сервер (IIS)», снимем галочки с ненужных компонентов и отметим «FTP-Сервер», потом нажмем «Далее» и «Установить».

Откроем «Диспетчер служб IIS», нажмем «Добавить FTP сайт…», укажем любое имя и путь к директории где будут храниться данные, в следующем окне укажем каким пользователям разрешено подключаться.

Слева выберем созданный FTP сайт, откроем «Проверка подлинности FTP» и активируем «Обычная проверка подлинности».

На этом основная настройка FTP-сервера закончена и к нему можно подключаться.

Смотрите другие мои статьи на тему Windows Server.

UBNT с прошивкой 6.0 перестают работать

Когда-то лечил Ubiquiti Networks airMAX® M Series устройства с прошивками 5+ от эксплоита и обновлял прошивку на последнюю, на тот момент это была версия XM 6.0 и XW 6.0.
Смотрите мою статью — Удаление эксплоита с Ubiquiti устройств

В прошивке 6.0 была устранена уязвимость через которую эксплоит получал доступ, НО появились другие баги.

Буквально через пару недель я заметил что на некоторых мостах в режиме Access Point (AP) нет подключенных станций, со стороны станции пропадало электропитание, станция загрузилась и подключилась к AP, но в интерфейсе AP не отображалось подключенных станций и трафик не проходил, это как раз и есть баг.

Решить проблему помогала перезагрузка AP, в дальнейшем если на станции вновь пропадало электропитание или её перезагружали, то была большая вероятность повторения этой проблемы.

К счастью эту проблему позже устранили в новых прошивках, точно не смотрел в какой версии, но на устройствах с прошивкой 6.1+ её уже не наблюдалось.

Установка Docker CE в Ubuntu

Docker CE — программная платформа для развертывания приложений, упаковывает приложения в контейнер, добавляя в него библиотеки и все необходимые зависимости для запуска приложения, что позволяет быстро запускать код почти в любой среде. Есть бесплатная версия Docker Community Edition (CE) и расширенная Enterprise Edition (EE).

Для примера установлю Docker CE в Ubuntu 16.04 LTS (Xenial).

Удалим старые версии Docker, если они установлены:

sudo apt-get remove docker docker-engine docker.io

Добавим официальные GPG ключ Docker и убедимся что последняя команда покажет 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88:

sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo apt-key fingerprint 0EBFCD88

Теперь необходимо добавить stable репозиторий Docker:

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

И запустить установку из него:

sudo apt-get update
sudo apt-get install docker-ce

Если необходимо установить конкретную версию, то можно указать:

apt-cache madison docker-ce
sudo apt-get install docker-ce=18.03.0.ce

Но при обновлении системы будет выполнено обновление до последней.

После установки, Docker будет автоматически запущен, убедимся в этом:

sudo docker run hello-world

Для удаления Docker CE со всеми данными необходимо выполнить:

sudo apt-get purge docker-ce
sudo rm -rf /var/lib/docker

Настройка Fail2Ban под ProFTPd

Допустим Fail2Ban уже установлен, если нет, то смотрите мою статью — Установка и настройка Fail2ban.

В Fail2Ban по умолчанию уже есть фильтры для ProFTPd и он знает что файл логов находится по адресу /var/log/proftpd/proftpd.log, поэтому достаточно создать файл:

sudo nano /etc/fail2ban/jail.d/proftpd.local

И внести данные ниже, тем самым активировав проверку лог файла /var/log/proftpd/proftpd.log:

[proftpd]
enabled = true
bantime = 86400

Перезапустим Fail2Ban чтобы применить изменения:

sudo service fail2ban restart

Можно проверить статус:

sudo fail2ban-client status proftpd