У каждого пира есть настройка
permit=<ipaddress>/<network mask>
deny=<ipaddress>/<network mask>
Однако есть список разрешенных сетей, достаточно большой и пополняемый несколько раз в неделю. Этот список пополняется через web и пишется в базу.
Т.е. как реализовать проверку валидности ip/mask при регистрации пира, а если эта регистрация прошла неудачно заносить в лог/базу/ipfw
через iptables. астериск вам не фаервол.
IRATE=20/minute
# REGISTER rate, per host.
RRATE=10/minute
# All other SIP methods rate, per host. Be careful with SUBSCRIBEs, OPTIONS, CANCELs, etc.
ORATE=60/minute
# Methods for this script to ignore. These SIP methods are always allowed.
IGMETH="OPTIONS"
# Burst
BURST=30
# Interface(s) to protect on INPUT. Seperate multiple interfaces with spaces.
# This will protect SIP services on THIS HOST.
IFACE="eth0"
# Search packet to this location. A larger offset looks further into the packet
# and takes more time but could catch more attacks (and false alarms).
# Remember, the method to match on is always in the beginning of the packet.
OFFSET=65
# тут чтото еще есть, много ;)
$IPTABLES -A sipdos -m string --string "INVITE sip:" --algo bm --to $OFFSET -j sipdosinvite
$IPTABLES -A sipdosinvite \
-m hashlimit --hashlimit $IRATE --hashlimit-burst $BURST \
--hashlimit-mode srcip,dstport --hashlimit-name sip_i_limit -j ACCEPT
# REGISTER limit
$IPTABLES -A sipdos -m string --string "REGISTER sip:" --algo bm --to $OFFSET -j sipdosregister
$IPTABLES -A sipdosregister \
-m hashlimit --hashlimit $RRATE --hashlimit-burst $BURST \
--hashlimit-mode srcip,dstport --hashlimit-name sip_r_limit -j ACCEPT
Задан: 2011-08-08 18:35:00 +0400
Просмотрен: 397 раз
Обновлен: Aug 10 '11
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.