четверг, 10 мая 2018 г.

Защита от SIP флуда.

При получении более 20 SIP пакетов с одного адреса в течение секунды, генерируем событие флуда, которое ловит fail2ban. И блокируем трафик на следующую секунду.

# Пишем количество пакетов, соответствующих правилу, и IP-адрес их источника в список SIP.
-A INPUT -p udp --dport 5060 -i ens34 -m recent --set --name SIP
# Если за секунду поступило больше 20 пакетов, то пишем в лог и блокируем адрес.
-A INPUT -p udp --dport 5060 -i ens34 -m recent --update --seconds 1 --hitcount 20 --name SIP -j LOG --log-prefix "Iptables: SIP flood "
-A INPUT -p udp --dport 5060 -i ens34 -m recent --update --seconds 1 --hitcount 20 --name SIP -j REJECT

Правила нужно вставлять до общего разрешения RELATED,ESTABLISHED.

Далее отлавливаем событие с помощью fail2ban. Создаем новый джеил.
[sip_flood]
enabled = true
filter = sip_flood
port     = 5060,5061
action   = iptables-allports[name=SIP_FLOOD, protocol=all]
               sendmail[name=SIP_FLOOD, dest=admin@domain, sender=server@domain]
logpath  = /var/log/iptables.log
maxretry = 1
bantime  = 600 ; 10 min

В /etc/fail2ban/filter.d/sip_flood.conf.
[INCLUDES]
before = common.conf
[Definition]
failregex = ^(.*)Iptables: SIP flood(.*)SRC=<HOST>(.*)$
ignoreregex =

понедельник, 26 марта 2018 г.

Bash. Сравнения.

Сравнение файлов:

-d my_file Checks if its a folder.

-e my_file Checks if the file is available.

-f my_file Checks if its a file.

-r my_file Checks if it’s readable.

my_file –nt my_file2 Checks if my_file is newer than my_file2.

my_file –ot my_file2 Checks if my_file is older than my_file2.

-O my_file Checks if the owner of the file and the logged user match.

-G my_file Checks if the file and the logged user have the idetical group.

четверг, 22 марта 2018 г.

Настройка сервиса CallBack на LiveZilla 7.

Идея в том, чтобы заставить LiveZilla осуществлять исходящий вызов через Asterisk, при выборе клиентом функции "Обратный звонок".
Схема следующая: клиент на сайте заполняет форму "Обратный звонок", указывая свой телефон. LiveZilla создает запись в базе с признаком callback. В процедуру записи в базу вставляется строка, вызывающая PHP-скрипт на сервере Астериска с передачей параметров. PHP-скрипт создает call-файл, соединяющий оператора с клиентом.

вторник, 27 февраля 2018 г.

Ограничение роста бинарных логов

Бинарные логи mysql со временем разрастаются в количестве
mysqld-bin.000001
mysqld-bin.000002
mysqld-bin.000003
и т.д.
За количество логов отвечает переменная expire_logs_days.
Прописываем expire_logs_days=7 в my.cnf и рестартуем mysql.

Починка сразу всех таблиц всех баз данных

#mysqlcheck -u root -p --auto-repair --check --all-databases
Ну или всех таблиц одной базы
#mysqlcheck -u root -p DB_NAME --auto-repair --check --all-databases: