По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие
наши статьи:
Многие слышали, но боялись "пощупать" страшного зверя по имени FreeSwitch (FS). Уверяю Вас, что страшного ничего нет. Правда придется перестроить свои мозги на его понимание. Он сильно отличается от Asterisk. И хотя FS такая же программная АТС как и Asterisk, но задачи у них разные. FS позиционируется как "провайдерская" АТС, а Asterisk офисный вариант. Несмотря на это, я его использую даже, как говорится, "для дома, для семьи", то есть дома на одноплатнике Orange PI Plus 2E. Так как на нем стоит Ubuntu 16, то описывать установку я буду для Ubuntu из исходников.
Если кому-то нужно попроще, то может установить на Debian (разработчики именно его рекомендуют.
Как поставить из пакетов можно почитать здесь https://freeswitch.org/confluence/display/FREESWITCH/Linux
А для самых искушенных даже на Windows :) https://freeswitch.org/confluence/display/FREESWITCH/Windows
Сначала необходимо выполнить обновление системы:
apt-get update
apt-get upgrade
Установим зависимости:
apt-get install autoconf automake devscripts gawk g++ git-core libjpeg-dev libncurses5-dev libtool make python-dev gawk pkg-config libtiff5-dev libperl-dev libgdbm-dev libdb-dev gettext libssl-dev libcurl4-openssl-dev libpcre3-dev libspeex-dev libspeexdsp-dev libsqlite3-dev libedit-dev libldns-dev libpq-dev libtool-bin libopus-dev libshout3-dev libmpg123-dev libmp3lame-dev libsndfile-dev libavresample-dev libswscale-dev libpng-dev libpng++-dev mpg123
После этого перезагружаемся:
reboot
Создаем папку и клонируем гит:
cd /usr/src
git clone -b v1.6 https://freeswitch.org/stash/scm/fs/freeswitch.git
cd /usr/src/freeswitch
./bootstrap.sh –j
Подключаем необходимые модули:
mcedit modules.conf
+ mod_rtmp
+ mod_directory
+ mod_callcenter
+ mod_dingaling
+ mod_shout
+ mod_cidlookup
+ mod_curl
+ mod_xml_curl
Мне нужно было использовать zrtp и хранить данные в базе PostgreSQL (кстати, разработчики считают MySQL недобазой :)) Собираем с ключами:
./configure --enable-zrtp --enable-core-pgsql-support
make
make install
Если при сборке FS ругается на openssl (switch_core_cert.lo) или что то подобное, то нужно проверить версию. Под 1.1.0 не устанавливается. Нужно ставить 1.0.2
Устанавливаем звуковые файлы:
8 kHz Standard Audio
make sounds-install
make moh-install
16 kHz High Definition Audio
make hd-moh-install
make hd-sounds-install
32 kHz Ultra High Definition Audio
make uhd-moh-install
make uhd-sounds-install
48 kHz CD Quality Audio
make cd-sounds-install
make cd-moh-install
Установим русские звуковые файлы:
make sounds-ru-install
make cd-sounds-ru-install
make uhd-sounds-ru-install
make hd-sounds-ru-install
Установим права и владельцев:
adduser --disabled-password --quiet --system --home /usr/local/freeswitch --gecos "FreeSWITCH Voice Platform" --ingroup daemon freeswitch
chown -R freeswitch:daemon /usr/local/freeswitch/
chmod -R o-rwx /usr/local/freeswitch/
Создадим init скрипт для запуска /etc/init.d/freeswitch:
#!/bin/bash
### BEGIN INIT INFO
# Provides: freeswitch
# Required-Start: $local_fs $remote_fs
# Required-Stop: $local_fs $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Description: Freeswitch debian init script.
# Author: Matthew Williams
#
### END INIT INFO
# Do NOT "set -e"
# PATH should only include /usr/* if it runs after the mountnfs.sh script
PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/bin
DESC="Freeswitch"
NAME=freeswitch
DAEMON=/usr/local/freeswitch/bin/$NAME
DAEMON_ARGS="-nc"
PIDFILE=/usr/local/freeswitch/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
FS_USER=freeswitch
FS_GROUP=daemon
# Exit if the package is not installed
[ -x "$DAEMON" ] || exit 0
# Read configuration variable file if it is present
[ -r /etc/default/$NAME ] && . /etc/default/$NAME
# Load the VERBOSE setting and other rcS variables
. /lib/init/vars.sh
# Define LSB log_* functions.
# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
. /lib/lsb/init-functions
#
# Function that sets ulimit values for the daemon
#
do_setlimits() {
ulimit -c unlimited
ulimit -d unlimited
ulimit -f unlimited
ulimit -i unlimited
ulimit -n 999999
ulimit -q unlimited
ulimit -u unlimited
ulimit -v unlimited
ulimit -x unlimited
ulimit -s 240
ulimit -l unlimited
return 0
}
#
# Function that starts the daemon/service
#
do_start()
{
# Set user to run as
if [ $FS_USER ] ; then
DAEMON_ARGS="`echo $DAEMON_ARGS` -u $FS_USER"
fi
# Set group to run as
if [ $FS_GROUP ] ; then
DAEMON_ARGS="`echo $DAEMON_ARGS` -g $FS_GROUP"
fi
# Return
# 0 if daemon has been started
# 1 if daemon was already running
# 2 if daemon could not be started
start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null --
|| return 1
do_setlimits
start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --background --
$DAEMON_ARGS
|| return 2
# Add code here, if necessary, that waits for the process to be ready
# to handle requests from services started subsequently which depend
# on this one. As a last resort, sleep for some time.
}
#
# Function that stops the daemon/service
#
do_stop()
{
# Return
# 0 if daemon has been stopped
# 1 if daemon was already stopped
# 2 if daemon could not be stopped
# other if a failure occurred
start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME
RETVAL="$?"
[ "$RETVAL" = 2 ] && return 2
# Wait for children to finish too if this is a daemon that forks
# and if the daemon is only ever run from this initscript.
# If the above conditions are not satisfied then add some other code
# that waits for the process to drop all resources that could be
# needed by services started subsequently. A last resort is to
# sleep for some time.
start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON
[ "$?" = 2 ] && return 2
# Many daemons don't delete their pidfiles when they exit.
rm -f $PIDFILE
return "$RETVAL"
}
#
# Function that sends a SIGHUP to the daemon/service
#
do_reload() {
#
# If the daemon can reload its configuration without
# restarting (for example, when it is sent a SIGHUP),
# then implement that here.
#
start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name $NAME
return 0
}
case "$1" in
start)
[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
do_start
case "$?" in
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
esac
;;
stop)
[ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
do_stop
case "$?" in
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
esac
;;
status)
status_of_proc -p $PIDFILE $DAEMON $NAME && exit 0 || exit $?
;;
#reload|force-reload)
#
# If do_reload() is not implemented then leave this commented out
# and leave 'force-reload' as an alias for 'restart'.
#
#log_daemon_msg "Reloading $DESC" "$NAME"
#do_reload
#log_end_msg $?
#;;
restart|force-reload)
#
# If the "reload" option is implemented then remove the
# 'force-reload' alias
#
log_daemon_msg "Restarting $DESC" "$NAME"
do_stop
case "$?" in
0|1)
do_start
case "$?" in
0) log_end_msg 0 ;;
1) log_end_msg 1 ;; # Old process is still running
*) log_end_msg 1 ;; # Failed to start
esac
;;
*)
# Failed to stop
log_end_msg 1
;;
esac
;;
*)
#echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
exit 3
;;
esac
exit 0
Установим ссылку на CLI
cd /usr/local/bin/
ln -s /usr/local/freeswitch/bin/fs_cli fs_cli
Проверим всё ли запускается:
cd /usr/local/freeswitch/bin
./freeswitch
freeswitch@s02d> sofia status (или просто нажимаем F5)
freeswitch@s02d> list_users
Если нет ошибок, и высветились профили и пользователи, то можно отключаться:
freeswitch@s02d> shutdown
Меняем стандартный пароль для всех пользователей (указав свой):
mcedit /usr/local/freeswitch/conf/vars.xml
<X-PRE-PROCESS cmd="set" data="default_password=lkhd456hkhggl2"/>
Включаем русский язык, если нужно:
mcedit /usr/local/freeswitch/conf/vars.xml
<X-PRE-PROCESS cmd="set" data="sound_prefix=$${sounds_dir}/ru/RU/elena"/>
<X-PRE-PROCESS cmd="set" data="default_language=ru"/>
После правки применяем изменения:
fs_cli -x "reloadxml"
Устанавливаем необходимые кодеки:
mcedit /usr/local/freeswitch/conf/vars.xml
<X-PRE-PROCESS cmd="set" data="global_codec_prefs=OPUS,PCMU,PCMA,VP8"/>
<X-PRE-PROCESS cmd="set" data="outbound_codec_prefs=OPUS,PCMU,PCMA,VP8"/>
Ну и в конце стартуем FS:
service freeswitch start
Для подключения к FS используем следующую команду:
fs_cli -rRS
Вот и всё. Мы установили и запустили FreeSwitch. О том, как настраивать пользователей, гейты, диалплан читайте в следующих статьях.
Как было рассмотрено ранее, IPS/IDS системы это устройства, которые предназначены для обнаружения атак на корпоративную сеть.
Подпись в рамках понятия IPS/IDS систем - это набор правил, который сопоставляет заранее настроенные шаблоны к проходящим через устройство пакетам. Системы обнаружения Cisco и предотвращения вторжений имеют тысячи настроенных по умолчанию шаблонов, которые нуждаются лишь в активации. С появлением все более изощренных атак, компания Cisco Systems постоянно создает дополнительные шаблоны.
На сегодняшний день, система обнаружения и предотвращения вторжений на базе IPS/IDS это самый существенный метод обнаружения атак.
Общая политика безопасности
Данный тип защиты от атак может быть реализован на основании политик безопасности компании. Например, компания имеет правило, что из внешней сети не должно быть доступа в определенный сетевой сегмент, например, серверную ферму. Доступ будет недоступен по протоколу Telnet, 23 порт. При поступлении пакета, с адресом назначения из сегмента серверной фермы и портом назначения 23, IPS оповестит систему мониторинга и сбросит данный пакет.
Проверка на базе нелинейности поведения
Проверка на нелинейность трафика – это еще один мощный инструмент в защите периметра сети. Примером работы алгоритма отслеживания нелинейности, может стать ситуация, при которой администратор сети заранее задает максимальное количество TCP запросов в минуту, который не получили ответ. Например, администратор задал максимум, в количестве 50 сессий. Как только максимальная отметка будет преодолена, IPS/IDS система оповестит систему мониторинга и начнет отбрасывать подобные пакеты. Такое поведение называется нелинейностью, или аномалией. Данный механизм используется для обнаружения «червей», которые пытаются попасть в сетевой корпоративный ландшафт.
Проверка на основании репутации
Данный механизм строится на базе уже совершенных кибер – атак. Устройство IPS, функционирующее на основании данного алгоритма, собирает данные с других систем предотвращения вторжения, которые находятся в глобальной сети. Как правило, блокировка осуществляется на основании IP – адресов, универсальных локаторов ресурса, или Uniform Resource Locator (URL), доменных систем и так далее.
Алгоритм
Преимущества
Недостатки
Проверка на базе подписи
Легкость конфигурации
Не может отследить атаки, выходящие за рамки настроенных правил. Порой, необходимо отключать подписи, которые запрещают нужный трафик. Необходимо периодическое обновление шаблонов.
Общая политика безопасности
Легкость настройки под конкретные нужды, простота и надежность.
Необходимость создания вручную. Имеет место человеческий фактор.
Трафик, создаваемый программным обеспечением станков и оборудования
Обеспечение доступной полосы пропускания минимум 256 кб/с
В открытом виде
Проверка нелинейности поведения
Обнаруживает «червей» на базе нелинейности трафика, даже если данный запрет не создан в подписях.
Трудность адаптации в больших сетях. Данный алгоритм может запрещать нужный трафик помимо вредоносного трафика.
Проверка на основании репутации
Техника раннего обнаружения. Предотвращает известные методы атак.
Необходимо периодическое обновление данных.
На сервера с системами семейства Linux всегда направлен большой уровень атак и сканирования портов В то время как правильно настроенный фаервол и регулярные обновления системы безопасности добавляют дополнительный уровень безопасности системы, вы также должны следить, не смог ли кто-нибудь пробраться через них.
Инструменты, представленные в этой статье, созданы для этих проверок безопасности и могут идентифицировать вирусы, вредоносные программы, руткиты и вредоносные поведения. Вы можете использовать эти инструменты для регулярного сканирования системы, например, каждую ночь и отправлять отчеты на ваш электронный адрес.
Lynis – Security Auditing and Rootkit Scanner
Lynis - это бесплатный, мощный и популярный инструмент с открытым исходным кодом для аудита и сканирования безопасности для операционных систем Unix или Linux. Это средство сканирования на наличие вредоносных программ и обнаружения уязвимостей, которое сканирует системы на наличие информации и проблем безопасности, целостности файлов, ошибок конфигурации; выполняет аудит брандмауэра, проверяет установленное программное обеспечение, права доступа к файлам и каталогам, а также многое другое.
Важно отметить, что он не выполняет автоматическое усиление защиты системы, однако просто дает предложения, позволяющие повысить уровень защиты вашего сервера.
Мы установим Lynis (версия 2.6.6) из исходных кодов, используя следующие команды.
# cd /opt/
# wget https://downloads.cisofy.com/lynis/lynis-2.6.6.tar.gz
# tar xvzf lynis-2.6.6.tar.gz
# mv lynis /usr/local/
# ln -s /usr/local/lynis/lynis /usr/local/bin/lynis
Теперь вы можете выполнить сканирование вашей системы с помощью команды ниже:
# lynis audit system
Initializing program
- Detecting OS... [DONE]
- Checking profiles... [DONE]
Program version: 2.6.6
Operating system: Linux
Operating system name: CentOS
Operating system version: CentOS Linux release 7.4.1708 (Core)
Kernel version: 4.17.6
Hardware platform: x86_64
Hostname: merionet
Profiles: /usr/local/lynis/default.prf
Log file: /var/log/lynis.log
Report file: /var/log/lynis-report.dat
Report version: 1.0
Plugin directory: /usr/local/lynis/plugins
Auditor: [Not Specified]
Language: en
Test category: all
Test group: all
- Program update status... [NO UPDATE]
Чтобы запускать Lynis автоматически каждую ночь, добавьте следующую запись cron, которая будет запускаться в 3 часа ночи и отправлять отчеты на ваш адрес электронной почты.
0 3 * * * /usr/local/bin/lynis --quick 2>&1 | mail -s "Lynis Reports of My Server" you@yourdomain.com
Chkrootkit – A Linux Rootkit Scanners
Chkrootkit - это еще один бесплатный детектор руткитов с открытым исходным кодом, который локально проверяет наличие признаков руткита в Unix-подобных системах. Он помогает обнаружить скрытые дыры в безопасности. Пакет chkrootkit состоит из сценария оболочки, который проверяет системные двоичные файлы на наличие изменений руткита, и ряда программ, которые проверяют различные проблемы безопасности.
Средство chkrootkit можно установить с помощью следующей команды в системах на основе Debian:
$ sudo apt install chkrootkit
В системах на базе CentOS вам необходимо установить его из источников, используя следующие команды:
# yum update
# yum install wget gcc-c++ glibc-static
# wget -c ftp://ftp.pangeia.com.br/pub/seg/pac/chkrootkit.tar.gz
# tar –xzf chkrootkit.tar.gz
# mkdir /usr/local/chkrootkit
# mv chkrootkit-0.52/* /usr/local/chkrootkit
# cd /usr/local/chkrootkit
# make sense
Чтобы проверить ваш сервер с помощью Chkrootkit, выполните следующую команду:
$ sudo chkrootkit
Или
# /usr/local/chkrootkit/chkrootkit
После запуска начнется проверка вашей системы на наличие известных вредоносных программ и руткитов, а после завершения процесса вы сможете увидеть отчет.
Чтобы запускать Chkrootkit автоматически каждую ночь, добавьте следующую запись cron, которая будет запускаться в 3 часа ночи, и отправляйте отчеты на ваш адрес электронной почты.
0 3 * * * /usr/sbin/chkrootkit 2>&1 | mail -s "chkrootkit Reports of My Server" you@yourdomain.com
Rkhunter – A Linux Rootkit Scanners
RKH (RootKit Hunter) - это бесплатный, мощный, простой в использовании и хорошо известный инструмент с открытым исходным кодом для сканирования бэкдоров, руткитов и локальных эксплойтов в POSIX-совместимых системах, таких как Linux. Как следует из названия, это средство для обнаружения руткитов, мониторинга и анализа безопасности, которое тщательно проверяет систему на наличие скрытых дыр в безопасности.
Инструмент rkhunter можно установить с помощью следующей команды в системах на основе Ubuntu и CentOS
$ sudo apt install rkhunter
# yum install epel-release
# yum install rkhunter
Чтобы проверить ваш сервер с помощью rkhunter, выполните следующую команду.
# rkhunter -c
Чтобы запускать rkhunter автоматически каждую ночь, добавьте следующую запись cron, которая будет работать в 3 часа ночи и отправлять отчеты на ваш адрес электронной почты.
0 3 * * * /usr/sbin/rkhunter -c 2>&1 | mail -s "rkhunter Reports of My Server" you@yourdomain.com
ClamAV – Antivirus Software Toolkit
ClamAV - это универсальный, популярный и кроссплатформенный антивирусный движок с открытым исходным кодом для обнаружения вирусов, вредоносных программ, троянов и других вредоносных программ на компьютере. Это одна из лучших бесплатных антивирусных программ для Linux и стандарт с открытым исходным кодом для сканирования почтового шлюза, который поддерживает практически все форматы почтовых файлов.
Он поддерживает обновления вирусных баз во всех системах и проверку при доступе только в Linux. Кроме того, он может сканировать архивы и сжатые файлы и поддерживает такие форматы, как Zip, Tar, 7Zip, Rar и многие другие.
ClamAV можно установить с помощью следующей команды в системах на основе Debian:
$ sudo apt-get install clamav
ClamAV можно установить с помощью следующей команды в системах на базе CentOS:
# yum -y update
# yum -y install clamav
После установки вы можете обновить сигнатуры и отсканировать каталог с помощью следующих команд.
# freshclam
# clamscan -r -i DIRECTORY
Где DIRECTORY - это место для сканирования. Опция -r означает рекурсивное сканирование, а -i - показать только зараженные файлы.
LMD – Linux Malware Detect
LMD (Linux Malware Detect) - это мощный и полнофункциональный сканер вредоносных программ для Linux с открытым исходным кодом, специально разработанный и предназначенный для общедоступных сред, но его можно использовать для обнаружения угроз в любой системе Linux. Он может быть интегрирован с модулем сканера ClamAV для повышения производительности.
Он предоставляет полную систему отчетов для просмотра текущих и предыдущих результатов сканирования, поддерживает оповещения по электронной почте после каждого выполнения сканирования и многие другие полезные функции.
LMD недоступен в онлайн-хранилищах, но распространяется в виде тарбола с веб-сайта проекта. Тарбол, содержащий исходный код последней версии, всегда доступен по следующей ссылке, где его можно скачать с помощью:
# wget http://www.rfxn.com/downloads/maldetect-current.tar.gz
Затем нам нужно распаковать архив и войти в каталог, в который было извлечено его содержимое. Там мы найдем установочный скрипт install.sh
# tar -xvf maldetect-current.tar.gz
# ls -l | grep maldetect
Далее запускаем скрипт
# ./install.sh
На этом пока все! В этой статье мы поделились списком из 5 инструментов для сканирования сервера Linux на наличие вредоносных программ и руткитов.