Asterisk. Запись телефонных разговоров.

Запись разговоров – довольно удобная вещь. Можно всегда прослушать кто, что кому говорил. Настройка не сложная, достаточно включить в dialplan на обработку этого направления функции Monitor или MixMonitor. Отличие этих функций заключается в том, что Monitor пишет раздельно голос звонившего и голос звонящего, в разные файлы. А MixMonitor создает один файл, который содержит оба направления разговора.

В диалплане это выглядит для Monitor так:

[dial]
exten => _8.,1,Set(fname=${STRFTIME(${EPOCH},,%Y%m%d%H%M)}-${CALLERID(number)}-${EXTEN})
exten => _8.,2,Monitor(wav,/home/share/monitor/${fname},mb)
exten => _8.,3,Dial(SIP/prov1)

В этом примере первой строчкой, Set(fname и т.д. мы описываем имя файла в котором будет хранится запись разговора. В нашем случае имя файла будет состоять из даты и времени когда происходил звонок, номера звонящего абонента и куда он звонил. Запись как я уже писал будет состоять из двух файлов в конце будут соответственно добавлены цифры 1 и 2 соответственно номерам каналов.

И второй пример – использование MixMonitor, тут все так же просто:

exten => _8.,1,Set(fname=${STRFTIME(${EPOCH},,%Y%m%d%H%M)}-${CALLERID(number)}-${EXTEN})
exten => _8.,2,MixMonitor(/home/share/monitor/${fname}.wav)
exten => _8.,3,Dial(SIP/prov1)

Тут все то же самое, только меньше флагов в команде MixMonitor, тут вписывается только имя файла с расширением.

Защита от брутфорса ssh, ftp, http: fail2ban

fail2ban анализирует логи, и если встречает последовательности, определяемые регулярными выражениям, применяет правила iptables

Ставим
apt-get install fail2ban

Конфигурируем
nano /etc/fail2ban/jail.conf

Указываем свой почтовый ящик для алертов
destemail = root@yourdomain.tld

Если есть необходимость, то можно в включить логирование пакетов, попавших в бан
banaction = iptables-multiport-log

По умолчанию, проверяется и банится только ssh
В секциях, которые нам необходимы ставим
enabled = true

Например:
[proftpd]

enabled = true
port = ftp,ftp-data,ftps,ftps-data
filter = proftpd
logpath = /var/log/proftpd/proftpd.log
maxretry = 6

Для VPS openvz:
на ноде делаем следующее:

cp /etc/fail2ban/action.d/iptables-allports.conf /etc/fail2ban/action.d/iptables-allports-vps.conf

Копируем строки содержащие INPUT, и в скопированном INPUT меняем на FORWARD
и меняем на vps
также, в actionstart добавим проверку на существование записей в цепочках, чтобы начальные правила не дублировались.

nano /etc/fail2ban/action.d/iptables-allports-vps.conf

[Definition]
actionstart = iptables -N fail2ban-vps
iptables -n -L fail2ban-vps | grep RETURN || iptables -A fail2ban-vps -j RETURN
iptables -n -L INPUT | grep fail2ban-vps || iptables -I INPUT -p <protocol> -j fail2ban-vps
iptables -n -L FORWARD | grep fail2ban-vps || iptables -I FORWARD -p <protocol> -j fail2ban-vps

actionstop = iptables -D INPUT -p <protocol> -j fail2ban-vps
iptables -D FORWARD -p <protocol> -j fail2ban-vps
iptables -F fail2ban-vps
iptables -X fail2ban-vps

actioncheck = iptables -n -L INPUT | grep -q fail2ban-vps
iptables -n -L FORWARD | grep -q fail2ban-vps

actionban = iptables -I fail2ban-vps 1 -s <ip> -j DROP
actionunban = iptables -D fail2ban-vps -s <ip> -j DROP

[Init]
name = default
protocol = tcp
port = anyport

nano /etc/fail2ban/jail.conf

bantime = 3600
maxretry = 10
banaction = iptables-allports-vps
port = anyport

[ssh-local]

enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log

[1001-ssh]
enabled = true
filter = sshd
logpath = /vz/private/1001/var/log/auth.log

[1001-proftpd]
enabled = true
filter = proftpd
logpath = /vz/private/1001/var/log/proftpd/proftpd.log

[1002-ssh]
enabled = true
filter = sshd
logpath = /vz/private/1002/var/log/auth.log

[1002-proftpd]
enabled = true
filter = proftpd
logpath = /vz/private/1002/var/log/proftpd/proftpd.log

[1003-ssh]
enabled = true
filter = sshd
logpath = /vz/private/1003/var/log/auth.log

Теперь, при попытке перебора паролей на SSH или FTP, кулхацкеру будет закрыт TCP на все VPSы и ноду. Можно еще и UDP добавить, но в моем случае, в этом не было необходимости.

для проверки, реагиреут ли fail2ban на записи в логах можно воспользоваться утитлтой fail2ban-regex:

fail2ban-regex «line» «failregex»
fail2ban-regex /var/log/auth.log «Failed [-/\w]+ for .* from »
fail2ban-regex /vz/private/1002/var/log/auth.log /etc/fail2ban/filter.d/sshd.conf

Проверить конфигурацию
fail2ban-client -d

http://adminletters.blogspot.com/2009/07/ssh-ftp-http-fail2ban.html