Архив

Публикации с меткой ‘Asterisk’

защита sip от перебора

20 октября 2010 Нет комментариев

 

fail2ban — достаточно удобный способ защиты сервисов от перебора паролей и других атак на основе анализа log файлов приложений.
представляет собой набор скриптов на phyton

имеется в портах freebsd и пекетах debian,ubuntu

настройки специфичные для asterisk:

The contents of /etc/fail2ban/filter.d/asterisk.conf should be the following:

 

# 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 "<HOST>" can
#          be used for standard IP/hostname matching and is only an alias for
#          (?:::f{4,6}:)?(?P<host>\S+)
# Values:  TEXT
#

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.* .*: Registration from '.*' failed for '<HOST>' - ACL error (permit/deny)
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>.*

# Option:  ignoreregex
# Notes.:  regex to ignore. If this regex matches, the line is ignored.
# Values:  TEXT
#
ignoreregex =

</code>
Next edit /etc/fail2ban/jail.conf to include the following section so that it uses the new filter. This does a 3-day ban on the IP that performed the attack. It is recommend to set the bantime in the [DEFAULT] section so if affects all attacks. It is also recommend to turn on an iptables ban for ssh, httpd/apache, and ftp if they are running on the system. Be sure to edit the sendmail-whois action to send notifications to an appropriate address:

[asterisk-iptables]
enabled  = true
filter   = asterisk
action   = iptables-allports[name=ASTERISK, protocol=all]
mail-whois[name=ASTERISK, dest=root, sender=sip3@unetcom.ru]
logpath  = /var/log/asterisk/full
maxretry = 4
bantime = 259200

To change this format, open /etc/asterisk/logger.conf and add the following line under [general] section (You may have to create this before the [logfiles] section). This causes the date and time to be formatted as Year-Month-Day Hour:Minute:Second, [2008-10-01 13:40:04] is an example.

[general]
dateformat=%F %T

для применения изменений перезапустим логгер
asterisk -rx "logger reload"

Categories: Asterisk, Linux Tags: ,

Установка Asterisk на UBUNTU

30 октября 2009 2 комментария

Устанавливаем недостающие пакеты:

apt-get install ntp build-essential linux-headers-`uname -r` php5-cli php5-mysql mysql-server php-pear php-db php5-gd curl sox libncurses5-dev libssl-dev libmysqlclient-dev subversion make bison flex g++ gcc apache2 php5 openssl libauthen-pam-perl libio-pty-perl libnet-ssleay-perl mc proftpd libtiff4-dev libxml2-dev phpmyadmin

Настраиваем синхронизацию времени:
/etc/ntp.conf:
server ntp0.zenon.net
server ntp1.imvp.ru
server ntp2.imvp.ru
server ru.pool.ntp.org
server europe.pool.ntp.org

Скачиваем исходники:
cd /usr/src

wget http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-1.6.2.6.tar.gz
wget http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-addons-1.6.2.1.tar.gz
wget http://mirror.freepbx.org/freepbx-2.7.0.tar.gz
wget http://www.soft-switch.org/downloads/spandsp/spandsp-0.0.6pre17.tgz

Распаковываем:
tar xzf asterisk-1.6*
tar xzf asterisk-addons-1.6*
tar xzf freepbx-2.7*
tar xzf spandsp-0.0.6*

Собираем spandsp — необходим для работы факсов:
cd /usr/src/spandsp-0.0.6*
./configure
make && make install

Собираем и устанавливаем asterisk:
cd /usr/src/asterisk-1.6*
./configure
make && make install && make samples

Устанавливаем asterisk-addons:
cd /usr/src/asterisk-addons-1.6*

# Патчим addons для хранения UNIQUE ID в базе:
# cdr/cdr_addon_mysql.c
# добавляем "#define MYSQL_LOGUNIQUEID" в начало файла

./configure
make && make install && make samples

Добавляем пользователя:
adduser asterisk --disabled-password --gecos "Asterisk PBX"
adduser www-data asterisk

Настраиваем конфиг Apache:
cp /etc/apache2/apache2.conf /etc/apache2/apache2.conf-orig
sed -i "s/\(^User *\)\(.*\)/\1asterisk/" /etc/apache2/apache2.conf
sed -i "s/\(^Group *\)\(.*\)/\1asterisk/" /etc/apache2/apache2.conf
chown -R asterisk:asterisk /var/www
chown -R asterisk:asterisk /etc/phpmyadmin
#chown -R asterisk:asterisk /var/lib/phpmyadmin
#chown -R asterisk:asterisk /usr/share/phpmyadmin

Подготавливаем базу:
cd /usr/src/freepbx-2.7*
mysqladmin -p create asterisk
mysqladmin -p create asteriskcdrdb
mysql -p asterisk < SQL/newinstall.sql

В консоли mysql выполняем следующие команды:
USE asteriskcdrdb;
CREATE TABLE IF NOT EXISTS `cdr` (
`calldate` datetime NOT NULL default '0000-00-00 00:00:00',
`clid` varchar(80) NOT NULL default '',
`src` varchar(80) NOT NULL default '',
`dst` varchar(80) NOT NULL default '',
`dcontext` varchar(80) NOT NULL default '',
`channel` varchar(80) NOT NULL default '',
`dstchannel` varchar(80) NOT NULL default '',
`lastapp` varchar(80) NOT NULL default '',
`lastdata` varchar(80) NOT NULL default '',
`duration` int(11) NOT NULL default '0',
`billsec` int(11) NOT NULL default '0',
`disposition` varchar(45) NOT NULL default '',
`amaflags` int(11) NOT NULL default '0',
`accountcode` varchar(20) NOT NULL default '',
`uniqueid` varchar(32) NOT NULL default '',
`userfield` varchar(255) NOT NULL default '',
KEY `calldate` (`calldate`),
KEY `userfield` (`userfield`),
KEY `clid` (`clid`),
KEY `src` (`src`),
KEY `dst` (`dst`),
KEY `billsec` (`billsec`),
KEY `lastapp` (`lastapp`),
KEY `uniqueid` (`uniqueid`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
GRANT ALL PRIVILEGES ON asterisk.* TO asteriskuser@localhost IDENTIFIED BY '____ПАРОЛЬ____';
GRANT ALL PRIVILEGES ON asteriskcdrdb.* TO asteriskuser@localhost IDENTIFIED BY '____ПАРОЛЬ____';

А теперь устанавливаем сам freepbx:
cd /usr/src/freepbx-2.7*
./install_amp

Изменяем настройки PHP:
cp /etc/php5/apache2/php.ini /etc/php5/apache2/php.ini-orig
sed -i "s/\(upload_max_filesize *= *\)\(.*\)/\120M/" /etc/php5/apache2/php.ini
sed -i "s/\(memory_limit *= *\)\(.*\)/\1100M/" /etc/php5/apache2/php.ini
sed -i "s/\(magic_quotes_gpc *= *\)\(.*\)/\1Off/" /etc/php5/apache2/php.ini
sed -i "s/\(^\s*DocumentRoot *\)\(.*\)/\1\/var\/www\/html/" /etc/apache2/sites-enabled/000-default

Перезапускаем apache:
/etc/init.d/apache2 restart

Автозапуск:
ln -s /usr/local/sbin/amportal /etc/init.d/amportal
update-rc.d amportal defaults

Добавляем дполнительные звуковые файлы:
wget http://downloads.asterisk.org/pub/telephony/sounds/asterisk-extra-sounds-en-ulaw-current.tar.gz
распаковываем в /var/lib/asterisk/sounds

использованы материалы: http://www.netbuild.ru/archives/34/comment-page-1

Categories: Asterisk Tags: ,

Asterisk + Radius

27 октября 2009 Нет комментариев
Categories: Asterisk Tags: ,

Установка и настройка Asterisk 1.6 + PostgreSQL на Debian

9 октября 2009 Нет комментариев
Categories: Asterisk Tags: , , ,

Asterisk RealTime (вместо конфигов БД)

9 октября 2009 Нет комментариев
Categories: Asterisk Tags: , , ,