VIDEOCHAT  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

fail2ban+iptables настройка

Новичком считается только что прочитавший «Астериск - будущее телефонии»
http://asterisk.ru/knowledgebase/books
и пытающийся сделать большее

Модераторы: april22, Zavr2008

skynetyar
Сообщения: 439
Зарегистрирован: 18 авг 2016, 13:25

fail2ban+iptables настройка

Сообщение skynetyar »

Добрый день!
Знаю статей на эту тему море с телегой,но часть из них устарела и не соответствуют современным технологиям взлома Asterisk.
Как новичок в этом деле хотел узнать у бывалых все ли я правильно сделал и может кто то чем то дополнит мои конфиги ?!
Использую FreePBX 13 + Asterisk 13 FreePBX Distro 10.13.66-32bit

jail.conf
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER:
[DEFAULT]
ignoreip = 127.0.0.1/8
bantime = 3600
findtime = 600
maxretry = 3
backend = auto
usedns = warn
jail.local
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER:
[DEFAULT]
ignoreip = 127.0.0.1 192.168.0.7 192.168.0.0/24
bantime = 5001800
findtime = 1800
maxretry = 1
backend = auto

[pbx-gui]
enabled = true
filter = freepbx
action = iptables-allports[name=SIP, protocol=all]
sendmail[name=SIP, dest=мыл, sender=мыл]
logpath = /var/log/asterisk/freepbx_security.log

[ssh-iptables]
enabled = true
filter = sshd
action = iptables-multiport[name=SSH, protocol=tcp, port=ssh]
sendmail[name=SSH, dest=мыл, sender=мыл]
logpath = /var/log/secure

[apache-tcpwrapper]
enabled = true
filter = apache-auth
action = iptables-multiport[name=apache-auth, protocol=tcp, port=http]
sendmail[name=apache-auth, dest=мыл, sender=мыл]
logpath = /var/log/httpd/error_log

[vsftpd-iptables]
enabled = true
filter = vsftpd
action = iptables-multiport[name=FTP, protocol=tcp, port=ftp]
sendmail[name=FTP, dest=мыл, sender=мыл]
logpath = /var/log/vsftpd.log

[apache-badbots]
enabled = true
filter = apache-badbots
action = iptables-multiport[name=BadBots, protocol=tcp, port="http,https"]
sendmail[name=BadBots, dest=мыл, sender=мыл]
logpath = /var/log/httpd/*access_log

[recidive]
enabled = true
filter = recidive
logpath = /var/log/fail2ban.log*
action = iptables-allports[name=recidive, protocol=all]
sendmail[name=recidive, dest=мыл, sender=мыл]
bantime = 604800
findtime = 86400
maxretry = 1

[asterisk]
enabled = true
filter = asterisk
action = iptables-multiport[name=asterisk-tcp, port="5060,5061", protocol=tcp]
iptables-multiport[name=asterisk-udp, port="5060,5061", protocol=udp]
sendmail-whois[name=Asterisk, dest=мыл, sender=мыл]
logpath = /var/log/asterisk/full
maxretry = 1
bantime = 259200

[asterisk-iptables]
enabled = true
filter = asterisk
action = iptables-allports[name=SIP, protocol=all]
sendmail[name=SIP, dest=мыл, sender=мыл]
logpath = /var/log/asterisk/full
maxretry = 1
bantime = 259200
fail2ban.conf
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER:
[Definition]
loglevel = 3
logtarget = /var/log/fail2ban.log
socket = /var/run/fail2ban/fail2ban.sock
pidfile = /var/run/fail2ban/fail2ban.pid
fail2ban.local
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER:
[Definition]
logtarget = /var/log/fail2ban.log
asterisk.conf filter.d
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER:
[INCLUDES]

before = common.conf

[Definition]

_daemon = asterisk

__pid_re = (?:\[\d+\])

iso8601 = \d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d+[+-]\d{4}

# All Asterisk log messages begin like this:
log_prefix= (?:NOTICE|SECURITY)%(__pid_re)s:?(?:\[C-[\da-f]*\])? \S+:\d*( in \w+:)?

failregex = ^(%(__prefix_line)s|\[\]\s*)%(log_prefix)s Registration from '[^']*' failed for '<HOST>(:\d+)?' - (Wrong password|Username/auth name mismatch|No matching peer found|Not a local domain|Device does not match ACL|Peer is not supposed to register|ACL error \(permit/deny\)|Not a local domain)$
^(%(__prefix_line)s|\[\]\s*)%(log_prefix)s Call from '[^']*' \(<HOST>:\d+\) to extension '[^']*' rejected because extension not found in context
^(%(__prefix_line)s|\[\]\s*)%(log_prefix)s Host <HOST> failed to authenticate as '[^']*'$
^(%(__prefix_line)s|\[\]\s*)%(log_prefix)s No registration for peer '[^']*' \(from <HOST>\)$
^(%(__prefix_line)s|\[\]\s*)%(log_prefix)s Host <HOST> failed MD5 authentication for '[^']*' \([^)]+\)$
^(%(__prefix_line)s|\[\]\s*)%(log_prefix)s Failed to authenticate (user|device) [^@]+@<HOST>\S*$
^(%(__prefix_line)s|\[\]\s*)%(log_prefix)s hacking attempt detected '<HOST>'$
^(%(__prefix_line)s|\[\]\s*)%(log_prefix)s <HOST> tried to authenticate with nonexistent user.+$
^(%(__prefix_line)s|\[\]\s*)%(log_prefix)s <HOST> failed to authenticate as.+$
^(%(__prefix_line)s|\[\]\s*)%(log_prefix)s Request from '[^']*' failed for '<HOST>:\d+' .+ No matching endpoint found$
^(%(__prefix_line)s|\[\]\s*)%(log_prefix)s SecurityEvent="(FailedACL|InvalidAccountID|ChallengeResponseFailed|InvalidPassword)",EventTV="([\d-]+|%(iso8601)s)",Severity="[\w]+",Service="[\w]+",EventVersion="\d+",AccountID="(\d*|<unknown>)",SessionID=".+",LocalAddress="IPV[46]/(UDP|TCP|WS|WSS)/[\da-fA-F:.]+/\d+",RemoteAddress="IPV[46]/(UDP|TCP|WS|WSS)/<HOST>/\d+"(,Challenge="[\w/]+")?(,ReceivedChallenge="\w+")?(,Response="\w+",ExpectedResponse="\w*")?(,ReceivedHash="[\da-f]+")?(,ACLName="\w+")?$
# These WARNINGS do not have a file attribute, as they're generated dynamicly
^(%(__prefix_line)s|\[\]\s*WARNING%(__pid_re)s:?(?:\[C-[\da-f]*\])? )[^:]+: Friendly Scanner from <HOST>$
^(%(__prefix_line)s|\[\]\s*WARNING%(__pid_re)s:?(?:\[C-[\da-f]*\])? )Ext\. s: "Rejecting unknown SIP connection from <HOST>"$

ignoreregex =
Собственно настройки почти стандартны, добавлено несколько правил для SIP
Хотелось бы услышать какие нибудь добавления критику и.т.д, буду рад прочесть Ваш опыт!
Всё знают и всё понимают только дураки да шарлатаны.(с)А.П Чехов.
awsswa
Сообщения: 2390
Зарегистрирован: 09 июн 2012, 10:52
Откуда: Россия, Пермь skype: yarick_perm

Re: fail2ban+iptables настройка

Сообщение awsswa »

Вот с этим - Friendly Scanner from - осторожно !!!
Просто иногда с криво настроенным транком - бывает что эта надпись проскакивает - а бы будете гадать куда делся провайдер, был пару минут назад и пропал
платный суппорт по мере возможностей
skynetyar
Сообщения: 439
Зарегистрирован: 18 авг 2016, 13:25

Re: fail2ban+iptables настройка

Сообщение skynetyar »

Было дело один раз забанил провайдера :) но это сразу видно по пропадающей регистрации транков..

Хотелось бы услышать по этим правилам просто на сайтах многих эти правила пишутся по другому почему то ,например так
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER:
failregex = NOTICE.* .*: Registration from '.*' failed for '<HOST>:.*' - Wrong password
NOTICE.* .*: Registration from '.*' failed for '<HOST>:.*' - No matching peer found
NOTICE.* .*: Registration from '.*' failed for '<HOST>:.*' - Username/auth name mismatch
NOTICE.* .*: Registration from '.*' failed for '<HOST>:.*' - Device does not match ACL
NOTICE.* <HOST> failed to authenticate as '.*'$
NOTICE.* .*: No registration for peer '.*' \(from <HOST>\)
NOTICE.* .*: Host <HOST> failed MD5 authentication for '.*' (.*)
NOTICE.* .*: Failed to authenticate user .*@<HOST>.*
Но в 13 версии оно выглядит вот так
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER:
failregex = ^(%(__prefix_line)s|\[\]\s*)%(log_prefix)s Registration from '[^']*' failed for '<HOST>(:\d+)?' - (Wrong password|Username/auth name mismatch|No matching peer found|Not a local domain|Device does not match ACL|Peer is not su$
^(%(__prefix_line)s|\[\]\s*)%(log_prefix)s Call from '[^']*' \(<HOST>:\d+\) to extension '\d+' rejected because extension not found in context 'default'\.$
^(%(__prefix_line)s|\[\]\s*)%(log_prefix)s Host <HOST> failed to authenticate as '[^']*'$
^(%(__prefix_line)s|\[\]\s*)%(log_prefix)s No registration for peer '[^']*' \(from <HOST>\)$
^(%(__prefix_line)s|\[\]\s*)%(log_prefix)s Host <HOST> failed MD5 authentication for '[^']*' \([^)]+\)$
^(%(__prefix_line)s|\[\]\s*)%(log_prefix)s Failed to authenticate (user|device) [^@]+@<HOST>\S*$
^(%(__prefix_line)s|\[\]\s*)%(log_prefix)s (?:handle_request_subscribe: )?Sending fake auth rejection for (device|user) \d*<sip:[^@]+@<HOST>>;tag=\w+\S*$
^(%(__prefix_line)s|\[\]\s*)%(log_prefix)s SecurityEvent="(FailedACL|InvalidAccountID|ChallengeResponseFailed|InvalidPassword)",EventTV="[\d-]+",Severity="[\w]+",Service="[\w]+",EventVersion="\d+",AccountID="\d*",SessionID="$
^(%(__prefix_line)s|\[\]\s*WARNING%(__pid_re)s:?(?:\[C-[\da-f]*\])? )Ext\. s: "Rejecting unknown SIP connection from <HOST>"$
Может кто то еще чем то дополняет эти правила? поделитесь опытом?!
Всё знают и всё понимают только дураки да шарлатаны.(с)А.П Чехов.
skynetyar
Сообщения: 439
Зарегистрирован: 18 авг 2016, 13:25

Re: fail2ban+iptables настройка

Сообщение skynetyar »

Уважаемые, есть такая проблема.

Код: Выделить всё

chan_sip.c:26164 handle_request_invite: Failed to authenticate device 200<sip:200@ИП_СЕРВЕРА>;tag=5946938e
[2016-12-15 10:13:58] NOTICE[2679][C-00000281]: chan_sip.c:26164 handle_request_invite: Failed to authenticate device 200<sip:200@ИП_СЕРВЕРА>;tag=c337377d
Насколько я понял ,злоумышленник подменяет свой IP адрес , для устранения этой проблемы нужно пересобирать модуль Asteriska , что бы выдавать в лог его реальный IP, хотелось бы услышать мнения на этот счет?
Всё знают и всё понимают только дураки да шарлатаны.(с)А.П Чехов.
Vlad1983
Сообщения: 4251
Зарегистрирован: 09 авг 2011, 11:51

Re: fail2ban+iptables настройка

Сообщение Vlad1983 »

использовать security логи
ЛС: @rostel
skynetyar
Сообщения: 439
Зарегистрирован: 18 авг 2016, 13:25

Re: fail2ban+iptables настройка

Сообщение skynetyar »

Да но в FreePBX стоит галка Security но там не наблюдаю его IP все точно так же...
Скажите что делаю не так?

Нет похоже наврал...почему то нажал Submit и сразу посыпалось..,как исключить из лога определенный IP а то мой модуль спамит теперь в консоль..
Вложения
Joxi.jpg
Последний раз редактировалось skynetyar 15 дек 2016, 10:54, всего редактировалось 1 раз.
Всё знают и всё понимают только дураки да шарлатаны.(с)А.П Чехов.
virus_net
Сообщения: 2337
Зарегистрирован: 05 июн 2013, 08:12
Откуда: Москва

Re: fail2ban+iptables настройка

Сообщение virus_net »

мой SIP URI sip:virus_net@asterisk.ru
bitname.ru - Домены .bit (namecoin) .emc .coin .lib .bazar (emercoin)

ENUMER - звони бесплатно и напрямую.
skynetyar
Сообщения: 439
Зарегистрирован: 18 авг 2016, 13:25

Re: fail2ban+iptables настройка

Сообщение skynetyar »

Да,Спасибо за информацию, но похоже что что то было не так,как нажал Submit посыпались в консоли security лог, теперь другой вопрос, у нас по AMI есть юзер ,нужен для модуля, заспамил в консоль подключениями, советуется что нужно в manager.conf включить параметр displayconnects=no но я тогда могу не увидеть и эти фейковые подключения ?

Нет,это не прокатывает...
Всё знают и всё понимают только дураки да шарлатаны.(с)А.П Чехов.
skynetyar
Сообщения: 439
Зарегистрирован: 18 авг 2016, 13:25

Re: fail2ban+iptables настройка

Сообщение skynetyar »

Код: Выделить всё

### LOG
-A INPUT -m string --string "@MY_EXT_IP SIP" --algo kmp -j LOG --log-prefix "SIP EXTIP_DETECT: "

### DROP & REJECT Rules
-A INPUT -m string --string "@MY_EXT_IP SIP" --algo kmp -j REJECT
Такие правила прокатят?

Вот из лога

Код: Выделить всё

[2016-12-15 11:49:18] SECURITY[2842] res_security_log.c: SecurityEvent="ChallengeSent",EventTV="2016-12-15T11:49:18.634+0300",Severity="Informational",Service="SIP",EventVersion="1",AccountID="sip:101@МойИПСЕРВЕРА",SessionID="0xa191f3c",LocalAddress="IPV4/UDP/МОЙИП СЕРВЕРА/5060",RemoteAddress="IPV4/UDP/[b]185.40.4.178/5070[/b]",Challenge="78e008b4"
RemoteAddress= как бы и есть тот кто подменяет, но что то я запариваюсь правило для Fail2Ban написать?
Может кто поможет?
Всё знают и всё понимают только дураки да шарлатаны.(с)А.П Чехов.
skynetyar
Сообщения: 439
Зарегистрирован: 18 авг 2016, 13:25

Re: fail2ban+iptables настройка

Сообщение skynetyar »

Код: Выделить всё

^%(log_prefix)s SecurityEvent="(FailedACL|InvalidAccountID|ChallengeResponseFailed|InvalidPassword)",EventTV="[\d-]+",Severity="[\w]+",Service="[\w]+",EventVersion="\d+",AccountID="\d+",SessionID="0x[\da-f]+",LocalAddress="IPV[46]/(UD|TC)P/[\da-fA-F:.]+/\d+",RemoteAddress="IPV[46]/(UD|TC)P/<HOST>/\d+"(,Challenge="\w+",ReceivedChallenge="\w+")?(,ReceivedHash="[\da-f]+")?$
Похоже?
Всё знают и всё понимают только дураки да шарлатаны.(с)А.П Чехов.
Ответить
© 2008 — 2025 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH