1. Подготовка системы:
Установка необходимых пакетов. Архиваторов. Утилиту Screen.
2. Настройка ядра:
uname -a -> выдает Linux srv93 2.6.32-5-amd64 #1 SMP Sun May 6 04:00:17 UTC 2012 x86_64 GNU/Linux
aptitude install linux-source-2.6.32
tar xjf /usr/src/linux-source-2.6.32.tar.bz2
ln -s /usr/src/linux-source-2.6.32 /usr/src/linux
cd /usr/src/linux
make clean && make mrproper
cp /boot/config-2.6.32-5-amd64 ./.config
make menuconfig
Выставляем опции:
Processor type and features >> Timer frequency = 1000 Hz.
Processor type and features >> [*]High Resolution Timer Option
Device Drivers >> Character Devices >>
[*]HPET Timer Support
Device Drivers >> [*]Enchanced Real Time Clock Support
Library Routines >> [*]CONFIG_CRC_CCITT
make-kpkg clean
fakeroot make-kpkg --initrd --append-to-version=-mycustom kernel_image kernel_headers
dpkg -i *.deb
3. Настройка загрузки нового ядра:
grep menuentry /boot/grub/grub.cfg
nano /etc/default/grub
update-grub
grep menuentry /boot/grub/grub.cfg
reboot
uname -a -> выдает Linux srv93 2.6.32-mycustom #1 SMP Mon Jul 23 15:05:23 MSK 2012 x86_64 GNU/Linux
4. Установка пакетов Asterisk.
aptitude install asterisk-1.6.2 asterisk-config asterisk-mp3 libasterisk-agi-perl python-asterisk
Следующие НОВЫЕ пакеты будут установлены:
asterisk asterisk-config asterisk-core-sounds-en-gsm{a} asterisk-mp3 dahdi{a} dahdi-linux{a} debhelper{a} freetds-common{a} fxload{a} html2text{a}
libasound2{a} libasterisk-agi-perl libc-client2007e{a} libcorosync4{a} libdirectfb-1.2-9{a} libflac8{a} libgmime-2.0-2a{a} libgsm1{a} libiksemel3{a}
libjack-jackd2-0{a} libjpeg62{a} libnspr4-0d{a} libnss3-1d{a} libogg0{a} libopenais3{a} libopencore-amrnb0{a} libopencore-amrwb0{a} libopenr2-3{a}
libperl5.10{a} libpq5{a} libpri1.4{a} libradiusclient-ng2{a} libresample1{a} libsdl1.2debian{a} libsdl1.2debian-alsa{a} libsndfile1{a} libsnmp-base{a}
libsnmp15{a} libsox-fmt-alsa{a} libsox-fmt-base{a} libsox1b{a} libspandsp2{a} libspeex1{a} libspeexdsp1{a} libsqlite0{a} libss7-1{a} libsvga1{a}
libsybdb5{a} libsysfs2{a} libtiff4{a} libtonezone2.0{a} libts-0.0-0{a} libvorbis0a{a} libvorbisenc2{a} libvorbisfile3{a} libvpb0{a} libwavpack1{a}
libx86-1{a} mlock{a} module-assistant{a} odbcinst{a} odbcinst1debian2{a} python-asterisk sox{a} tsconf{a} unixodbc{a} vpb-driver-source{a}
0 пакетов обновлено, 67 установлено новых, 0 пакетов отмечено для удаления, и 0 пакетов не обновлено.
Необходимо получить 19,6 MB архивов. После распаковки 50,1 MB будет занято.
/etc/init.d/asterisk stop
5. Настройка fail2ban
Конфигурация fail2ban:
Создадим новый фильтр.
Код:
Содержимое файла /etc/fail2ban/filter.d/asterisk.conf должно быть таким:
в переменную ignoreregex через запятую, можете прописать ip, которые не будут блокироваться.
Следующим шагом мы редактируем файл /etc/fail2ban/jail.conf. В самый низ данного файла помещаем новый блок:
тут у нас следующая ситуация:
fail2ban@example.org - email куда будут отправляться репорты о банах
logpath = /var/log/asterisk/full - лог, который анализируется (смотрите куда пишется у вас лог)
maxretry = 5 - число неправильных попыток авторизации
bantime = 259200 - время бана в секундах
теперь включим полное логирование нашего asterisk:
Правим файл /etc/asterisk/logger.conf.
Должно получиться примерно такое:
ну и последний шаг, перезагрузим наши сервисы:
Создадим новый фильтр.
Код:
touch /etc/fail2ban/filter.d/asterisk.conf
Содержимое файла /etc/fail2ban/filter.d/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
#
failregex = NOTICE.* .*: Registration from '.*' failed for '' - Wrong password
NOTICE.* .*: Registration from '.*' failed for '' - No matching peer found
NOTICE.* .*: Registration from '.*' failed for '' - Username/auth name mismatch
NOTICE.* .*: Registration from '.*' failed for '' - Device does not match ACL
NOTICE.* .*: Registration from '.*' failed for '' - Peer is not supposed to register
NOTICE.*failed to authenticate as '.*'$
NOTICE.* .*: No registration for peer '.*' \(from\)
NOTICE.* .*: Hostfailed 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 =
в переменную ignoreregex через запятую, можете прописать ip, которые не будут блокироваться.
Следующим шагом мы редактируем файл /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/full
maxretry = 5
bantime = 259200
тут у нас следующая ситуация:
fail2ban@example.org - email куда будут отправляться репорты о банах
logpath = /var/log/asterisk/full - лог, который анализируется (смотрите куда пишется у вас лог)
maxretry = 5 - число неправильных попыток авторизации
bantime = 259200 - время бана в секундах
теперь включим полное логирование нашего asterisk:
Правим файл /etc/asterisk/logger.conf.
Должно получиться примерно такое:
- Код:
[general]
dateformat=%F %T;
; Logging Configuration
;
; In this file, you configure logging to files or to
; the syslog system.
;
; For each file, specify what to log.
;
; For console logging, you set options at start of
; Asterisk with -v for verbose and -d for debug
; See 'asterisk -h' for more information.
;
; Directory for log files is configures in asterisk.conf
; option astlogdir
;
[logfiles]
;
; Format is "filename" and then "levels" of debugging to be included:
; debug
; notice
; warning
; error
; verbose
;
; Special filename "console" represents the system console
;
;debug => debug
; The DTMF log is very handy if you have issues with IVR's
;dtmf => dtmf
;console => notice,warning,error
;console => notice,warning,error,debug
messages => notice,warning,error
full => notice,warning,error,debug,verbose
;syslog keyword : This special keyword logs to syslog facility
;
;syslog.local0 => notice,warning,error
;
ну и последний шаг, перезагрузим наши сервисы:
- Код:
/etc/init.d/fail2ban restart
- Код:
service iptables restart
cp /etc/asterisk /etasterisk/asterisk.bak
Установка закончена.
Комментариев нет:
Отправить комментарий