Использую именно его, т.к. вполне простой и хорошо настраиваемый.
Первый момент - это то, что метод входа в папку на этом сервере - chroot, а значит система следит за правами доступа на файлы. Чтобы не было проблем с удалением файлов и пр., те файлы которые создаются автоматически должны иметь имя/права корректного пользователя. Либо, как делаю я 777, а потом просто разделение политик READ/WRITE настройками самого сервера.
Тут я выложу свой шаблон конфига, точнее, его отличия от дефолтного:
UseIPv6 off
IdentLookups off # Чтобы не искал DNS
ServerType standalone # Не люблю работать через inetd. Множатся сущности.
TimesGMT off # Хорошая опция :) При ней корректно отображается время файлов при просмотре.
Все остальные опции можно легко найти в мануале по Proftpd.
Wednesday, December 22, 2010
Friday, December 10, 2010
Про защиту астериска.
Защита астериска, особенно, если о стоит на внешнем IP - первоочередная задача. Итак...
1. Настроим сам Астериск
sip.conf
[general]
context=nocontext ; Чтобы неавторизованные/левые звонки никуда не попадали
allowguest=no ; Вообще запретить неавторизованные вызовы
match_auth_username=no ; Честно, не скажу как это влияет на защиту, но пишут, что влияет. Имеет смысл в том случае, если UserID и AuthUserID - разные
alwaysauthreject=yes ; Не выдает доп. информацию при неудачной регистрации. spwar отказывается работать.
useragent=D-Link DVG-1402S ; Или любой другой - найдите в гугле реальное железо. так вы будете меньше привлекать внимание хацкеров которые ищут астериски в инете.
users.conf
[XXX]
...
deny = 0.0.0.0/0.0.0.0
premit = <подсеть, в которой будет этот телефон>/<маска подсети> ; Не дает возможности регистрироваться экстеншенам из левых подсетей
2. Fail2Ban. Банит IP по проваленным попыткам регистрации.
apt-get install fail2ban
cd /etc/fail2ban/filter.d
vi asterisk.conf
# Fail2Ban configuration file
#
#
# $Revision: 250 $
#
[INCLUDES]
# Read common prefixes. If any customizations available -- read them from
# common.local
#before = common.conf
[Definition]
#_daemon = asterisk
# Option: failregex
# Notes.: regex to match the password failures messages in the logfile. The
# host must be matched by a group named "host". The tag "" can
# be used for standard IP/hostname matching and is only an alias for
# (?:::f{4,6}:)?(?P\S+)
# Values: TEXT
#
# HOST надо поместить в <> скобки.
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.* .*: Registration from '.*' failed for ' HOST' - Peer is not supposed to register
NOTICE.* failed to authenticate as '.*'$
NOTICE.* .*: No registration for peer '.*' \(from\)
NOTICE.* .*: Host failed MD5 authentication for '.*' (.*)
NOTICE.* .*: Failed to authenticate user .*@.*
# Option: ignoreregex
# Notes.: regex to ignore. If this regex matches, the line is ignored.
# Values: TEXT
#
ignoreregex =
vi /etc/fail2ban/jail.conf
[asterisk-iptables]
enabled = true
filter = asterisk
action = iptables-allports[name=ASTERISK, protocol=all]
sendmail-whois[name=ASTERISK, dest=root, sender=fail2ban@example.org]
logpath = /var/log/asterisk/messages
maxretry = 5
bantime = 259200
vi /etc/asterisk/logger.conf
[general]
dateformat=%F %T
1. Настроим сам Астериск
sip.conf
[general]
context=nocontext ; Чтобы неавторизованные/левые звонки никуда не попадали
allowguest=no ; Вообще запретить неавторизованные вызовы
match_auth_username=no ; Честно, не скажу как это влияет на защиту, но пишут, что влияет. Имеет смысл в том случае, если UserID и AuthUserID - разные
alwaysauthreject=yes ; Не выдает доп. информацию при неудачной регистрации. spwar отказывается работать.
useragent=D-Link DVG-1402S ; Или любой другой - найдите в гугле реальное железо. так вы будете меньше привлекать внимание хацкеров которые ищут астериски в инете.
users.conf
[XXX]
...
deny = 0.0.0.0/0.0.0.0
premit = <подсеть, в которой будет этот телефон>/<маска подсети> ; Не дает возможности регистрироваться экстеншенам из левых подсетей
2. Fail2Ban. Банит IP по проваленным попыткам регистрации.
apt-get install fail2ban
cd /etc/fail2ban/filter.d
vi asterisk.conf
# Fail2Ban configuration file
#
#
# $Revision: 250 $
#
[INCLUDES]
# Read common prefixes. If any customizations available -- read them from
# common.local
#before = common.conf
[Definition]
#_daemon = asterisk
# Option: failregex
# Notes.: regex to match the password failures messages in the logfile. The
# host must be matched by a group named "host". The tag "
# be used for standard IP/hostname matching and is only an alias for
# (?:::f{4,6}:)?(?P
# Values: TEXT
#
# HOST надо поместить в <> скобки.
failregex = NOTICE.* .*: Registration from '.*' failed for '
NOTICE.* .*: Registration from '.*' failed for 'HOST
NOTICE.* .*: Registration from '.*' failed for '
NOTICE.* .*: Registration from '.*' failed for '
NOTICE.* .*: Registration from '.*' failed for '
NOTICE.*
NOTICE.* .*: No registration for peer '.*' \(from
NOTICE.* .*: Host
NOTICE.* .*: Failed to authenticate user .*@
# Option: ignoreregex
# Notes.: regex to ignore. If this regex matches, the line is ignored.
# Values: TEXT
#
ignoreregex =
vi /etc/fail2ban/jail.conf
[asterisk-iptables]
enabled = true
filter = asterisk
action = iptables-allports[name=ASTERISK, protocol=all]
sendmail-whois[name=ASTERISK, dest=root, sender=fail2ban@example.org]
logpath = /var/log/asterisk/messages
maxretry = 5
bantime = 259200
vi /etc/asterisk/logger.conf
[general]
dateformat=%F %T
Subscribe to:
Posts (Atom)