Recommended Posts

لإضافة بعض عناصر الآمان لخادم Asterisk يمكننا توظيف إمكانية عدم الاتصال بالخادم بمجرد عدم تمكنك من الولوج بكلمة المرور ورقم sip للحسابك مثلا 5 مرات ، وهذا يخلصنا من مشاكل هجوم القوة العمياء التي يتم استعمالها في تجربة كلمات المرور وأخذ قسط ليس بالسهل من سعة النقل للخادم

نبدأ

تثبيت fail2ban

في دبيان أو ابونتو يمكننا ذالك فقط عبر أمر

apt-get install fail2ban

عند تثبيته يمكننا أن نعمل عليه مباشرة وتفعيل الأدوار التي نحتاج تفعيلها، يتم تفعيل فلتر  ssh تلقائيا

إعداد Asterisk

نقوم بفتح الملف looger  لملفات السجل

vim /etc/asterisk/logger_logfiles_custom.conf

ونضيف سجل جديد بالمعلومات التي نريد، بإضافة security لسجل

messages => security,notice,warning,error

نحتاج في  asterisk وإعادة تحميل ملفات السجل لكي يقوم بعمل السجل الجديد

asterisk -rx "logger reload"

إعداد fail2ban

نقوم بنقل الملف الفلتر إذ لزمنا في المستقبل

cp /etc/fail2ban/filter.d/asterisk.conf /etc/fail2ban/filter.d/asterisk.conf.org

نقوم بفتح ملف  الفلتر أو مرشح

vim /etc/fail2ban/filter.d/asterisk.conf

ونقوم بتغير محتواه لتالي

[INCLUDES]

before = common.conf

[Definition]

log_prefix= \[\]\s*(?:NOTICE|SECURITY)%(__pid_re)s:?(?:\[\S+\d*\])? \S+:\d*

failregex = ^%(log_prefix)s Registration from '[^']*' failed for '<HOST>(:\d+)?' - Wrong password$
            ^%(log_prefix)s Registration from '[^']*' failed for '<HOST>(:\d+)?' - No matching peer found$
            ^%(log_prefix)s Registration from '[^']*' failed for '<HOST>(:\d+)?' - Username/auth name mismatch$
            ^%(log_prefix)s Registration from '[^']*' failed for '<HOST>(:\d+)?' - Device does not match ACL$
            ^%(log_prefix)s Registration from '[^']*' failed for '<HOST>(:\d+)?' - Peer is not supposed to register$
            ^%(log_prefix)s Registration from '[^']*' failed for '<HOST>(:\d+)?' - ACL error \(permit/deny\)$
            ^%(log_prefix)s Registration from '[^']*' failed for '<HOST>(:\d+)?' - Not a local domain$
            ^%(log_prefix)s Call from '[^']*' \(<HOST>:\d+\) to extension '\d+' rejected because extension not found in context 'default'\.$
            ^%(log_prefix)s Host <HOST> failed to authenticate as '[^']*'$
            ^%(log_prefix)s No registration for peer '[^']*' \(from <HOST>\)$
            ^%(log_prefix)s Host <HOST> failed MD5 authentication for '[^']*' \([^)]+\)$
            ^%(log_prefix)s Failed to authenticate (user|device) [^@]+@<HOST>\S*$
            ^%(log_prefix)s (?:handle_request_subscribe: )?Sending fake auth rejection for (device|user) \d*<sip:[^@]+@<HOST>>;tag=\w+\S*$
            ^%(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]+")?$

ignoreregex =
~             

بعد ذالك نحتاج تفعيله في ملف jail.conf عبر فتح الملف

vim /etc/fail2ban/jail.conf

وإضافة في آخر السطر التالي

[asterisk]
enabled  = true
port     = 5060,5061
filter   = asterisk
action   = %(banaction)s[name=%(__name__)s-tcp, port="%(port)s", protocol="tcp", chain="%(chain)s", actname=%(banaction)s-tcp]
           %(banaction)s[name=%(__name__)s-udp, port="%(port)s", protocol="udp", chain="%(chain)s", actname=%(banaction)s-udp]
           %(mta)s-whois[name=%(__name__)s, dest="%(destemail)s"]
logpath  = /var/log/asterisk/messages
maxretry = 5
bantime = 7200
  • maxretry هو عدد المحاولات
  • bantime الوقت التي ستكون محضور فيها رقم ip

أيضا نقوم بتغير في بريد المستقبل

destemail = mail@domain.com

والمرسل للبريد

sender = fail2ban@domain.com

تجربة عمل fail2ban

نقوم بإعادة تشغيل خدمة fail2ban

/etc/init.d/fail2ban restart

إذ كان لدينا حساب في asterisk فقط نحتاج تغير كلمة المرور وتجربة 5 مرات الدخول للحساب وسنلاحظ انه تم حضر ip ووصول بريد يتضمن معلومات بالحضر

root@voip:~# tail -f /var/log/fail2ban.log 
2017-11-09 11:22:45,232 fail2ban.jail   [27653]: INFO    Jail 'asterisk' uses pyinotify
2017-11-09 11:22:45,240 fail2ban.jail   [27653]: INFO    Initiated 'pyinotify' backend
2017-11-09 11:22:45,242 fail2ban.filter [27653]: INFO    Added logfile = /var/log/asterisk/messages
2017-11-09 11:22:45,244 fail2ban.filter [27653]: INFO    Set maxRetry = 5
2017-11-09 11:22:45,246 fail2ban.filter [27653]: INFO    Set findtime = 600
2017-11-09 11:22:45,247 fail2ban.actions[27653]: INFO    Set banTime = 7200
2017-11-09 11:22:45,308 fail2ban.jail   [27653]: INFO    Jail 'ssh' started
2017-11-09 11:22:45,312 fail2ban.jail   [27653]: INFO    Jail 'asterisk' started
2017-11-09 11:22:48,502 fail2ban.actions[27653]: WARNING [asterisk] Ban 85.80.52.80
2017-11-09 11:23:14,429 fail2ban.actions[27653]: WARNING [ssh] Ban 59.63.188.30

 

 

شارك هذه المشاركه


رابط المشاركه
شارك

انشئ حساب جديد او قم بتسجيل دخولك لتتمكن من اضافه تعليق جديد

يجب ان تكون عضوا لدينا لتتمكن من التعليق

انشئ حساب جديد

سجل حسابك الجديد لدينا في الموقع بمنتهي السهوله .

سجل حساب جديد

تسجيل دخول

هل تمتلك حساب بالفعل ؟ سجل دخولك من هنا.

سجل دخولك الان