Опишу пример настройки записи телефонных разговоров в Asterisk, первым делом убедимся что загружены необходимые модули.
Читать далее «Запись телефонных разговоров в Asterisk»Архивы рубрик:Linux
Резервное копирование на Yandex диск
Приведу пример скрипта для создания резервных копий на Yandex диск.
Читать далее «Резервное копирование на Yandex диск»Как изменить порт SSH в Ubuntu
На тесте изменю порт SSH в Ubuntu Server 14.0.4 LTS и Ubuntu Server 16.0.4 LTS.
Откроем конфигурацию SSH например в текстовом редакторе nano (в nano клавиши Ctrl+X для выхода, y/n для сохранения или отмены изменений):
sudo nano /etc/ssh/sshd_config
Найдем строчку «Port 22» и изменим её например на «Port 58222«.
Чтобы применить изменения перезапустим ssh (на разных системах он может перезагружаться по разному, по этому приведу список возможных команд):
sudo service ssh restart sudo /etc/init.d/ssh restart sudo /etc/init.d/sshd restart
После перезапуска SSH, он станет доступен по новому порту, а текущая сессия на старом останется активной, по этому не отключаясь для проверки попробуем подключиться по новому порту, если не пускает, то возможно в системе работает фаервол и нужно в нем разрешить новый порт, например в iptables это делается так (где 58222 наш новый порт):
sudo iptables -A INPUT -p tcp --dport 58222 -j ACCEPT
Можно разрешить средствами iptables подключение к SSH только с указанного диапазона IP адресов:
sudo iptables -A INPUT -d 192.168.0.0/24 -p tcp --dport 58222 -j ACCEPT
Если все ок, подключаемся через новый порт и можем удалить старое правило iptables, например так:
sudo iptables -D INPUT -p tcp --dport 22 -j ACCEPT
Пример команды для подключения из Linux к SSH по нестандартному порту:
ssh -p 58222 user@192.168.0.2
Посмотреть в системе на каком порту и на каких сетевых интерфейсах работает SSH можно так:
netstat -tulpan | grep ssh
Установка и использование Partclone
Partclone — утилита для клонирования и восстановления разделов диска.
Выполним установку Partclone в Ubuntu:
sudo apt-get update sudo apt-get install partclone
Partclone может работать со многими файловыми системами, при его запуске через точку обязательно указывается тип файловой системы, например:
partclone.btrfs (btrfs) partclone.ext2/ext3/ext4 (ext2, ext3, ext4) partclone.reiserfs (reiserfs 3.5) partclone.reiser4 (reiser 4) partclone.xfs (xfs) partclone.ufs (ufs/ufs2) partclone.jfs (jfs) partclone.hfs+/hfsplus (hfs plusfs) partclone.vmfs (vmfs) partclone.ntfs (ntfs) partclone.fat12/fat16/fat32 (fat12, fat16, fat32) partclone.exfat (exfat) partclone.minix (minix) partclone.f2fs (f2fs) partclone.nilfs2 (nilfs2)
Приведу возможные опции запуска:
-s ФАЙЛ, --source ФАЙЛ
Источник данных, указывается файл или раздел который будет клонироваться или из которого будут восстанавливаться данные.
-o ФАЙЛ, --output ФАЙЛ
Выходной файл в который будут сохраняться данные или раздел на который будут восстанавливаться данные.
-O ФАЙЛ, --overwrite ФАЙЛ
Перезаписать файл если он существует.
-c, --clone
Сохранение
-r, --restore
Восстановление
-b, --dev-to-dev
Режим копирования с устройства на устройство
-l ФАЙЛ, --logfile ФАЙЛ
Путь к файлу логов (стандартно /var/log/partclone.log)
-R, --rescue
Продолжить после ошибок чтения диска
-C, --no_check
Не проверять размер диска и количество свободного пространства
-N, --ncurse
Ncurses текстовый пользовательский интерфейс
-X, --dialog
Вывод сообщений в формате диалога
-I, --ignore_fschk
Игнорировать проверку файловой системы
--ignore_crc
Игнорировать crc ошибки
-F, --force
Принудительный режим
-f СЕКУНДЫ, --UI-fresh СЕКУНДЫ
Изменение интервала
-z РАЗМЕР, --buffer_size РАЗМЕР
Размер буфера чтения/записи (стандартно: 1048576)
-q, --quiet
Краткий режим, не будет отображаться информации о процессе выполнения
-dlevel, --debug level
Уровень режима отладки 1/2/3
-h, --help
Отображение справки
-v, --version
Отображение версии программы
Приведу примеры запуска partclone.
Сначала посмотрим какие диски в системе используются:
sudo fdisk -l | grep '/dev/'
Пример клонирования раздела в файл:
sudo partclone.ext3 -c -d -s /dev/sda1 -o sda1.img
Пример клонирования раздела в архив:
sudo partclone.ext3 -c -d -s /dev/sda1 | gzip -c > /dev/sdb2/sda1.gz
Восстанавливаем из файла раздел:
sudo partclone.ext3 -r -d -s sda1.img -o /dev/sda1
Восстановление раздела их архива:
sudo gzip -d /dev/sdb2/sda1.gz | partclone.ext3 -d -r -o /dev/sda1
Клонируем раздел в раздел другого диска:
sudo partclone.ext3 -b -d -s /dev/sda1 -o /dev/sdb2
Команды Asterisk
Опишу возможные команды Asterisk, которые можно вводить после подключения к консоли:
Читать далее «Команды Asterisk»Настройка Fail2Ban под Asterisk
На тесте буду использовать Asterisk 13.1.0 и Fail2Ban 0.9.3-1 установленные в Ubuntu Server 16.04.1 LTS.
Установим Fail2Ban как я писал в этой статье —
Откроем конфигурационный файл Asterisk отвечающий за логирование событий в /var/log/asterisk/messages:
sudo nano /etc/asterisk/logger.conf
Добавим security в messages:
messages => notice,warning,error,security
Перезапустим систему логирования asterisk:
sudo asterisk -rvv logger reload quit
Добавим файл настроек Asterisk в директорию с конфигурацией Fail2Ban тем самым активировав наблюдение его логов:
sudo nano /etc/fail2ban/jail.d/asterisk.conf
где 86400 в секундах = 24 часа, то есть злоумышленник будет блокироваться на сутки.
[asterisk] enabled = true bantime = 86400
Либо изменим в файле /etc/fail2ban/jail.conf где [asterisk-tcp] и [asterisk-udp] параметр false на true.
Перезапустим fail2ban чтобы новый файл настроек загрузился:
sudo fail2ban-client reload
Проверим работу:
sudo fail2ban-client status asterisk
Все, теперь Fail2Ban будет блокировать IP-адреса с которых не верно вводятся пароли к аккаунтам Asterisk.
Добавление SIP клиентов в Asterisk
SIP клиенты в Asterisk указываются в файле sip.conf, поэтому откроем его например в текстовом редакторе nano (Ctrl+X для выхода из редактора, y или n для сохранения или отмены изменений):
Читать далее «Добавление SIP клиентов в Asterisk»Установка и настройка HAProxy в Linux
HAProxy — прокси-сервер для балансировки нагрузки TCP и HTTP приложений, методом распределения на несколько серверов.
Команда установки HAProxy в Ubuntu/Debian:
sudo apt-get install haproxy
Для CentOS:
yum install haproxy
Посмотреть установленную версию можно командой:
haproxy -v
Проверим будет ли он автоматически запускаться при включении системы, должно быть ENABLED=1 (в редакторе nano CTRL+X для выхода, y/n для сохранения или отмены изменений):
sudo nano /etc/default/haproxy
В CentOS просто выполним команду:
chkconfig haproxy on
Сделаем копию конфигурационного файла на всякий случай:
sudo cp /etc/haproxy/haproxy.cfg{,.original}
Откроем в редакторе основной конфигурационный файл:
sudo nano /etc/haproxy/haproxy.cfg
Приведу пример конфигурации:
global log /dev/log local0 log /dev/log local1 notice chroot /var/lib/haproxy user haproxy group haproxy daemon defaults log global mode http option httplog option dontlognull contimeout 5000 clitimeout 50000 srvtimeout 50000 errorfile 400 /etc/haproxy/errors/400.http errorfile 403 /etc/haproxy/errors/403.http errorfile 408 /etc/haproxy/errors/408.http errorfile 500 /etc/haproxy/errors/500.http errorfile 502 /etc/haproxy/errors/502.http errorfile 503 /etc/haproxy/errors/503.http errorfile 504 /etc/haproxy/errors/504.http retries 3 listen webfarm 0.0.0.0:80 mode http stats enable stats uri /haproxy?stats stats auth user:password maxconn 5000 balance roundrobin option httpclose option forwardfor server webserver01 192.168.88.50:80 check server webserver02 192.168.88.51:80 check
Параметр maxconn 5000 определяет максимальное количество одновременных соединений, 0 используется для снятия лимита, если не указывать то будет стандартно 2000.
Например чтобы использовать Apache2 на этой же локальной машине, изменим в /etc/apache2/ports.conf и /etc/apache2/sites-enabled/ конфигурационных фалйах номер его порта с 80 например на 81, а в /etc/haproxy/haproxy.cfg укажем:
server webserver01 0.0.0.0:81 check
Каждый раз после изменений конфигурации необходимо выполнять перезапуск:
sudo service apache2 restart sudo service haproxy restart
На этом установка и основная настройка HAProxy завершена.
Установка Asterisk в Ubuntu Server
Приведу пример быстрой установки Asterisk на Ubuntu Server.
На тесте установлю на версиях 14.04 LTS и 16.04 LTS.
Установка Digium Asterisk GUI
Digium Asterisk GUI — web-интерфейс управления Asterisk.
Сегодня буду лепить его к Asterisk 11 на Ubuntu Server 14.04 LTS.
Переключимся сразу на root пользователя:
sudo -i
Скачаем его:
apt-get install subversion mkdir -p ~/asterisk-gui cd ~/asterisk-gui svn checkout http://svn.digium.com/svn/asterisk-gui/branches/2.0/
Скомпилируем и установим:
cd 2.0 ./configure make make install
На всякий случай сделаем копию файлов конфигурации Asterisk:
cp -r /etc/asterisk /etc/asterisk.original
Откроем конфигурационный файл manager.conf например в редакторе nano (Ctrl+X для выхода из редактора, y/n для сохранения или отмены изменений):
nano /etc/asterisk/manager.conf
Основные параметры которые должны быть настроены в конфигурационном файле manager.conf:
[general] enabled = yes webenabled = yes bindaddr = 0.0.0.0 [ИМЯ_ПОЛЬЗОВАТЕЛЯ] secret = ПАРОЛЬ read = system,call,log,verbose,command,agent,user,config write = system,call,log,verbose,command,agent,user,config
В самом конце файла заменим обязательно символ # на ; иначе не сможете зайти под прописанным выше логином и паролем.
Теперь отредактируем http.conf:
nano /etc/asterisk/http.conf
В нем укажем следующие параметры веб сервера:
enabled=yes enablestatic=yes bindaddr=0.0.0.0 prefix=asterisk
Выполним проверку настроек:
make checkconfig
Удалим пустую папку и укажем ссылку на реальную с файлами веб-сервера:
rmdir /usr/share/asterisk/static-http/ ln -s /var/lib/asterisk/static-http/ /usr/share/asterisk/
Перезапустим Asterisk:
/etc/init.d/asterisk restart
Теперь Digium Asterisk GUI должен открываться по ссылке http://192.168.56.102:8088/asterisk/static/config/index.html, где 192.168.56.102 это IP или домен севрера с Asterisk.
Для входа укажем логин и пароль прописанные ранее в файле manager.conf
Все.