Настройка безопасности Ubuntu 12.04 LTS server

Эта статья написана на основе материалов собранных в интернете и собственных наблюдений.

Далее приведена пошаговая инструкция по усилению безопасности в Linux и в Ubuntu 12.04 LTS server в частности:

  1. Установка и настройка Firewall - ufw
  2. Настройка shared memory - fstab
  3. SSH - отключение root login, смена порта и пр.
  4. Ограничение su только для группы admin (по умолчанию)
  5. Настройка сетевых параметров sysctl
  6. Отключение Open DNS Recursion и Version Info - Bind9 DNS server
  7. Предотвращение IP Spoofing
  8. Настройка параметров PHP
  9. Ограничение информативности Apache
  10. Установка и настройка Apache application firewall - ModSecurity
  11. Защита от DDOS (Denial of Service) атак с помощью ModEvasive
  12. Сканирование логов и запрещение подозрительных IP - DenyHosts и Fail2Ban
  13. Обнаружение вторжений - PSAD
  14. Проверка на RootKits - RKHunter и CHKRootKit
  15. Сканирование портов - Nmap
  16. Анализ системных логов - LogWatch
  17. SELinux - Apparmor
  18. Аудит системы безопасности - Tiger
  19. Контроль - SUID
  20. Контроль целостности - Aide
  21. IPS - Suricata

Если вас интересует графическая версия скрипта выполняющего приведенные шаги, то посмотрите здесь: How to secure an Ubuntu 12.04 LTS server - Part 2 The GUI Installer script

Требования:
Ubuntu 12.04 LTS server with a standard LAMP stack installed.

1. Установка и настройка Firewall - ufw

Для начала установим Firewall. В Ubuntu предустановлен UFW - Ubuntu FireWall, который является надстройкой над IPtables. Можно, конечно, непосредственно создавать правила Iptables, но для большинства задач достаточно функционала UFW.

UFW - Uncomplicated Firewall is a basic firewall that works very well and easy to configure with its Firewall configuration tool - gufw, or use Shorewall, fwbuilder, or Firestarter.
Use Firestarter GUI to configure your firewall or refer to the Ubuntu Server Guide, UFW manual pages or the Ubuntu UFW community documentation.

Установка и активация UFW ,если не установлен по умолчанию:

sudo apt-get install ufw

При желании можно отключить работу с протоколом ipv6. В файле /etc/default/ufw меняем "yes" на "no":

IPV6=no

Разрешаем доступ к SSH и Http сервисам:

sudo ufw allow ssh
sudo ufw allow http

Активация файрвола:

sudo ufw enable

Вывод подробной статистики:

sudo ufw status verbose

Неплохо бы добавить к этим правилам ограничение соединений (rate limit), которое может быть полезно для защиты от атак "в лоб" (brute-force). UFW будет запрещать соединения с IP адресов которые пытаются установить более 6 соединений в течении 30 секунд. Подробнее смотрите тут http://www.debian-administration.org/articles/187.

Типичное использование:

ufw limit ssh/tcp

Добавляем правила при необходимости. Например, что бы разрешить доступ на порт 8080 из локальной сети:

ufw allow to 192.168.0.10 port 8080 from 192.168.0.0/24 proto tcp

и включаем лог:

ufw logging on

что включит ведение журнала всех соединений в соответствии с уровнем подробности лога.
Например, для разрешения журналирования только ssh соединений, используйте команду:

ufw allow log 22/tcp

После добавления правил файрвол необходимо перезагрузить:

ufw disable
ufw enable

или просто

ufw reload

после чего в /var/log начнет писаться журнал ufw.log.

Можно регулировать степень подробности журнала.

ЖУРНАЛИРОВАНИЕ (LOGGING)

ufw поддерживает несколько степеней детализации журналирования. По умолчанию уровень журналирования установлен в ’low’. Пользователи могут установить уровень детализации командой:

ufw logging LEVEL

где LEVEL может принимать значения ’off’, ’low’, ’medium’, ’high’ и 'full':

off журналирование отключено;

low регистрируются все блокируемые пакеты не соответствующие политике по умолчанию (включая rate limiting), так же как и пакеты соответствующие правилам, для которых включен log;

medium как и low, плюс все разрешенные пакеты не соответствующие политике по умолчанию, все INVALID пакеты и все новые соединения. А так же записи rate limiting.

high как и medium (без rate limiting), плюс все пакеты с rate limiting;

full как и high, но без rate limiting.

Уровень детализации журналов выше medium генерируют большое количество сообщений и могут быстро заполнить ваш диск.

В случае, если журналирование было отключено, то при его включении с опцией ’on’, включает журналирование уровня low.

По умолчанию логи UFW пишутся одновременно и в kern.log, и в syslog, и в ufw.log. Если такая избыточность не нужна, то можно отключить запись логов в kern.log и syslog, но оставить ufw.log.
Для этого отредактируйте файл /etc/rsyslog.d/20-ufw.conf раскомментировав последнюю строку.

vi /etc/rsyslog.d/20-ufw.conf
# Log kernel generated UFW log messages to file
:msg,contains,"[UFW " /var/log/ufw.log

# Uncomment the following to stop logging anything that matches the last rule.
# Doing this will stop logging kernel generated UFW log messages to the file
# normally containing kern.* messages (eg, /var/log/kern.log)
& ~

После чего перезагрузить rsyslog:

service rsyslog restart

Посмотреть список правил:

ufw status numbered

Один из способов удалить правило:

ufw delete 1

Вставить правило по номеру строки (старое правило сдвигается вниз, на номер больше):

ufw insert 1 reject from 192.168.0.67

2. Настройка shared memory - fstab

Раздел /dev/shm может быть использован в атаке на сервис, такой как, например, httpd. Отредактируйте /etc/fstab, что бы сделать его более безопасным:

sudo vi /etc/fstab

Как пользоваться консольным редактором vi описано здесь: Консольный редактор vi.

Добавьте следующую строку и сохраните файл. Для того, что бы изменения вступили в силу необходимо перезагрузиться:

tmpfs     /dev/shm     tmpfs     defaults,noexec,nosuid     0     0
reboot

3. SSH - отключение root login, смена порта и пр.

Простейший способ повысить безопасность SSH запретить логиниться под root'ом и поменять стандартный 22 порт на любой другой.
Перед тем как запрещать подключение суперпользователю root создайте другого пользователя и включите его в группу admin (смотрите пункт 4).
Если вы поменяли порт SSH, не забудьте открыть его в файрволе и закрыть 22 порт.
В командной строке выполните:

sudo vi /etc/ssh/sshd_config

Измените или добавьте следующее:

Port 
Protocol 2
PermitRootLogin no
DebianBanner no

Перезагрузите SSH сервер:

sudo /etc/init.d/ssh restart

Более детально настройка SSH рассмотрена в статье: Настройка SSH сервера

4. Ограничение su только для группы admin (по умолчанию)

В Ubuntu группа admin создана по-умолчанию, вам нужно только добавить нового пользователя в эту группу для получения привилегий root'а.

Для того, чтобы ограничить использование команды su только для администраторов системы вам необходимо создать группу admin:

sudo groupadd admin

Теперь добавьте вашего пользователя в эту группу:

sudo usermod -a -G admin

В Ubuntu данную команду выполнять нет необходимости:

sudo dpkg-statoverride --update --add root admin 4750 /bin/su

5. Настройка сетевых параметров sysctl

Все изменения должны быть внесены в файл /etc/sysctl.conf:

sudo vi /etc/sysctl.conf

Раскомментируйте или добавьте строки:

# IP Spoofing protection
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1
настроено по умолчанию.

# Ignore ICMP broadcast requests
net.ipv4.icmp_echo_ignore_broadcasts = 1
настроено по умолчанию.

# Disable source packet routing
net.ipv4.conf.all.accept_source_route = 0
net.ipv6.conf.all.accept_source_route = 0 
net.ipv4.conf.default.accept_source_route = 0 - по умолчанию 1.
net.ipv6.conf.default.accept_source_route = 0
настроено по умолчанию, кроме выделенной строки.

# Ignore send redirects
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
по умолчанию оба параметра 1.

# Block SYN attacks
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 2048 - по умолчанию 262144
net.ipv4.tcp_synack_retries = 2 - по умолчанию 5
net.ipv4.tcp_syn_retries = 5

# Log Martians
net.ipv4.conf.all.log_martians = 1 - по умолчанию 0 (не вести лог "марсианских" пакетов)
net.ipv4.icmp_ignore_bogus_error_responses = 1

# Ignore ICMP redirects
net.ipv4.conf.all.accept_redirects = 0
net.ipv6.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0 
net.ipv6.conf.default.accept_redirects = 0
настроено по умолчанию.

# Ignore Directed pings
net.ipv4.icmp_echo_ignore_all = 1 - по умолчанию 0 (разрешить пинг)

# To disable ipv6 uncomment these lines:
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1

Что бы перезагрузить syctl и применить внесенные изменения, выполните:

sudo sysctl -p

Большинство этих параметров есть в дефолтном конфиге sysctl.conf их нужно просто раскомментировать.
Смотрите также статьи по теме:
Настройка Swappiness и кеширования в Linux
Оптимизация работы сетевого стека ОС Linux для высоконагруженных WEB серверов

6. Отключение Open DNS Recursion и Version Info - Bind9 DNS server

В командной строке терминала выполните следующее:

sudo vi /etc/bind/named.conf.options

Добавьте в раздел Options:

recursion no;
version "Not Disclosed";

Перезагрузите BIND DNS server:

sudo /etc/init.d/bind9 restart

7. Предотвращение IP Spoofing

В командной строке терминала выполните следующее:

sudo vi /etc/host.conf

Добавьте или отредактируйте следующие строки:

order bind,hosts
nospoof on

8. Настройка параметров PHP

Отредактируйте файл php.ini:

sudo vi /etc/php5/apache2/php.ini

Добавьте или отредактируйте следующие строки:

disable_functions = exec,system,shell_exec,passthru
register_globals = Off
expose_php = Off
display_errors = Off
track_errors = Off
html_errors = Off
magic_quotes_gpc = Off

Перезагрузите Apache server:

sudo /etc/init.d/apache2 restart

Для использования на производстве (production use) рекомендуется выполнить:
Установка и настройка патча безопасности php5-suhosin
Настройка безопасности MySQL в Ubuntu Linux

Проверьте наличие файла info.php в корне сайта. Он может послужить отличным источником информации для взломщика. Поэтому при его наличии удалите или переименуйте его.

Проверьте, чтобы директории web сервера не просматривались через браузер. Настройте соответствующим образом web сервер или отредактируйте файл .htaccess.

9. Ограничение информативности Apache

Отредактируйте конфигурационный файл безопасности Apache2 :

sudo vi /etc/apache2/conf.d/security

Добавьте или отредактируйте следующие строки:

ServerTokens Prod
ServerSignature Off
TraceEnable Off
Header unset ETag
FileETag None

Перезагрузите Apache server:

sudo /etc/init.d/apache2 restart

10. Установка и настройка Apache application firewall - ModSecurity

Mod security - это модуль Apache с открытым исходным кодом реализующий функцию межсетевого экрана для веб приложений Web Application Firewall (WAF). Он также доступен для Nginx и IIS. В состав дистрибутива входит набор правил Core Rule Set (CRS) для защиты от таких атак как: SQL инъекции, cross site scripting, Trojans, bad user agents, session hijacking и многих других уязвимостей. Поддерживается гибкий движок создания собственных правил. Для веб сервера Apache поставляется как дополнительный модуль, что упрощает установку и конфигурирование.

Подробная инструкция по установке и настройке mod_security.

11. Защита от DDOS (Denial of Service) атак с помощью ModEvasive

mod_evasive - модуль веб сервера Apache для автоматического блокирования IP-адресов, с которых идут DOS (DDOS) атаки.

Установка: How to install apache2 mod_security and mod_evasive on Ubuntu 12.04 LTS server

12. Сканирование логов и запрещение подозрительных IP - DenyHosts и Fail2Ban

DenyHosts - это программа, написанная на языке python, автоматически блокирующая IP адреса, с которых была произведена неудачная попытка подключения по SSH и добавляет их в /etc/hosts.deny. В DenyHosts имеется возможность отправки оповещений на указанный email.

В командной строке терминала выполните следующее:

sudo apt-get install denyhosts

После установки отредактируйте конфигурационный файл /etc/denyhosts.conf. Укажите email, измените другие настройки по необходимости.

sudo vi /etc/denyhosts.conf

Поменяйте соответствующие значения на вашем сервере :

# Интервал времени после которого хост будет разблокирован
# Учесть параметр DAEMON_PURGE
PURGE_DENY = 3h
# Если хост больше N раз был забанен, его уже не разбанят
PURGE_THRESHOLD = 20
# По умолчанию блокируется только демон sshd
BLOCK_SERVICE  = sshd
# Количество попыток входа с несуществующим логином
DENY_THRESHOLD_INVALID = 5
# Количество попыток входа с существующим логином, но неверным паролем (кроме root)
DENY_THRESHOLD_VALID = 5
# Количество попыток входа под рутом
DENY_THRESHOLD_ROOT = 3
# Количество попыток входа для пользователей из списка restricted-usernames
DENY_THRESHOLD_RESTRICTED = 1
# Если установлен YES, хосты указанные как разрешенные будут блокироваться
# Если NO, то не буду
SUSPICIOUS_LOGIN_REPORT_ALLOWED_HOSTS=YES
ADMIN_EMAIL = root@localhost, user@domain.ru
SMTP_HOST = localhost
SMTP_PORT = 25
#SMTP_USERNAME=foo
#SMTP_PASSWORD=bar
SMTP_FROM = DenyHosts nobody@localhost
#SYSLOG_REPORT=YES
# Через заданное время (DAEMON_SLEEP) проверяет файл с логом sshd
DAEMON_SLEEP = 30s
#Интервал времени, который определяет как часто будет проверяться информация о заблокированных хостах
#с учетом параметра PURGE_DENY
DAEMON_PURGE = 1h
#Остальные параметры оставляем без изменений

Для того, чтобы система могла отправлять почту должен быть установлен пакет mailutils:

apt-get install mailutils

с опцией отправки почты через интернет.

После установки проверьте, что Postfix слушает только на localhost, ели он вам не нужен для других целей.
Отредактируйте файл /etc/postfix/main.cf

# sudo vi /etc/postfix/main.cf

Закоментируйте all и укажите localhost:

#inet_interfaces = all
inet_interfaces = localhost

Перезагрузите Postfix:

#/etc/init.d/postfix restart

 

Fail2ban - более функциональная программа, чем DenyHosts. Она имеет готовые шаблоны для мониторинга журналов таких сервисов как SSH, Apache, Courier, FTP и многих других.
Fail2ban сканирует лог файлы и банит IP адреса, с которых проявляются малейшие подозрения на перебор паролей, поиск эксплоитов и др.
В своей основе Fail2Ban использует firewall для запрещения определенных IP адресов, следовательно, почти для любого сервиса может быть создано правило блокировки по определенному признаку.

В командной строке терминала выполните следующее:

sudo apt-get install fail2ban

После установки отредактируйте конфигурационный файл /etc/fail2ban/jail.local и создайте необходимые фильтры /etc/fail2ban/filter.d.

sudo vi /etc/fail2ban/jail.conf

Активируйте все необходимые сервисы изменив enabled = false на enabled = true.
Например, если вы хотите включить мониторинг SSH и соответствующий фильтр, найдите и отредактируйте следующие строки:

[ssh]
enabled  = true
port     = ssh
filter   = sshd
logpath  = /var/log/auth.log
maxretry = 3

Если вы указали не стандартный порт SSH в разделе 3, то вам необходимо поменять в настройках fail2ban порт "ssh", который по умолчанию равен 22, на новый порт. Например, port = 64022.

[ssh]
enabled  = true
port     = 64022
filter   = sshd
logpath  = /var/log/auth.log
maxretry = 3

Если вы желаете получать email оповещения от Fail2Ban при срабатывании того или иного правила, укажите ваш почтовый адрес:

destemail = root@localhost admin@sup.etr.ru

и измените следующие строчки:

mta = sendmail
    на:
mta = mail
	и
action = %(action_)s
    на:
action = %(action_mwl)s

Вы можете создавать собственные фильтры fail2ban. Как это сделать описано здесь:
HowtoForge.

Закончив конфигурирование Fail2Ban перезагрузите сервис :

sudo /etc/init.d/fail2ban restart

Проверить статус можно командой:

sudo fail2ban-client status

Как разблокировать заблокированный IP:

# fail2ban-client get jail actionunban ipaddress

Посмотреть название нужного jail:

# iptables -L -n

или другой способ, по IP:

fail2ban-client set ssh-iptables unbanip m.y.i.p

C помощью iptables:

iptables -D fail2ban-ssh -s XXX.XXX.XXX.XXX -j DROP

где SSH - сервис, заблокированный fail2ban, может быть и другой, например, postfix.
XXX.XXX.XXX.XXX - IP адрес, который нужно разблокировать.

Возможные проблемы:
Неверная дата Fail2ban 01.01.1970
В утилите fail2ban версии 0.8.6 есть баг. Она присылает на почту уведомление с кривой датой, из-за чего почтовый клиент воспринимает такое письмо как отправленное 01.01.1970 (начало unix эпохи).

Решение следующее. Во всех конфигурационных файлах "/etc/fail2ban/action.d/sendmail*.conf" заменить строчку:

Date: `date -u +"%%a, %%d %%h %%Y %%T +0000"`

на

Date: `date --rfc-2822 -u`

После чего перезапустить:

sudo /etc/init.d/fail2ban restart

13. Обнаружение вторжений - PSAD

Cipherdyne PSAD (Port Scan Attack Detector) - это три небольших сервиса, запускаемые на Linux машинах и анализирующие журнал iptables на предмет сканирования портов и подозрительного трафика.
На данный момент версия 2.1 из репозитория Ubuntu 12.04 устанавливается с ошибкой? но частично работает. Версия 2.2 решает проблемы совместимости, но на данный момент не доступна в репозиториях Ubuntu. Рекомендуется установить версию 2.2 из исходников доступных на сайте Ciperdyne.
Для установки последней версии из исходников смотрите: Установка PSAD на Ubuntu 12.04 LTS server
Или установите текущую версию из репозитория Ubuntu. В командной строке выполните следующее:

sudo apt-get install psad

Описание простейшей конфигурации приводится в статье: Установка PSAD на Ubuntu 12.04 LTS server. Вам нужен шаг 2:

14. Проверка на RootKits - RKHunter и CHKRootKit

Обе программы RKHunter и CHKRootkit делают, примерно, одно и тоже - проверяют вашу систему на наличие rootkits. Их вполне можно использовать одновременно.

Для установки rkhunter и chkrootkit в командной строке выполните следующее:

sudo apt-get install rkhunter chkrootkit

Запускаем chkrootkit:

sudo chkrootkit

Для обновления и запуска RKHunter:

sudo rkhunter --update
sudo rkhunter --propupd
sudo rkhunter --check

При возникновении предупреждений типа:

Warning: Hidden file found: /dev/.initramfs: symbolic link to `/run/initramfs’

посмотрите статью http://fx-files.ru/archives/741 для решения подобных проблем.

15. Сканирование портов - Nmap

Nmap ("Network Mapper") - это сетевой сканер с открытым исходным кодом.

Для установки Nmap в командной строке выполните следующее:

sudo apt-get install nmap

Просканируем систему на наличие открытых портов:

nmap -v -sT localhost

-sT — сканирование TCP портов в обычном режиме.

Скрытое SYN сканирование :

sudo nmap -v -sS localhost

-sS — использование метода TCP CYN. Это так называемое стелс-сканирование. Nmap отправляет на удалённый порт SYN-пакет и ожидает ответа. В зависимости от ответа определяется состояние порта. При этом полноценное соединение не устанавливается. Благодаря этому определить факт сканирования очень сложно. Для запуска этого метода требуются рутовые привилегии.

Сканирование UDP портов:

nmap -sU xxx.xxx.xxx.xxx -p 1-65535

Время сканирования UDP-портов довольно длительное, примерно 1 секунда на порт. Это происходит из-за того, что по умолчанию система ограничивает отправку ICMP-ответов, не более 1 пакета в секунду. При UDP-сканировании можно использовать опцию -Т. Она позволяет указать агрессивность сканирования. Есть 6 скоростей сканирования: Paranoid, Sneaky, Polite, Normal, Aggressive и Insane. Например, ( -T Polite). Первая скорость самая медленная, последняя — самая быстрая.

Сканирование всех портов и определение версии сервиса:

nmap -p- -sV

Определение типа ОС:

nmap -O

16. Анализ системных логов - LogWatch

Logwatch - это настраиваемый анализатор логов. Logwatch просматривает системные журналы и создает отчет по указанным областям. Logwatch легок в использовании и работает "из коробки" на большинстве систем.

Для установки Logwatch в командной строке выполните следующее:

sudo apt-get install logwatch libdate-manip-perl

Для просмотра вывода logwatch используйте less :

sudo logwatch | less

Для отправки отчета logwatch за последние 7 дней на электронную почту выполните следующее и замените mail@domain.com своим email:

sudo logwatch --mailto mail@domain.com --output mail --format html --range 'between -7 days and today'

17. SELinux - Apparmor

AppArmor — программный инструмент упреждающей защиты, основанный на политиках безопасности (известных также как профили (англ. profiles)), которые определяют, к каким системным ресурсам и с какими привилегиями может получить доступ то или иное приложение. в AppArmor включён набор стандартных профилей, а также инструменты статического анализа и инструменты, основанные на обучении, позволяющее ускорить и упростить построение новых профилей.
Более подробную информацию можно посмотреть здесь Ubuntu Server Guide - Apparmor
AppArmor устанавливается по умолчанию начиная с Ubuntu 7.04.
Установка:

sudo apt-get install apparmor apparmor-profiles

Посмотреть статус:

sudo apparmor_status

18. Аудит системы безопасности - Tiger

Tiger - утилита, которая может быть использована как и для аудита системы безопасности, так и для обнаружения вторжений.

Установка:

sudo apt-get install tiger

Запуск Tiger:

sudo tiger

Вывод работы Tiger находится в /var/log/tiger.
Посмотреть отчеты по безопасности:

sudo less /var/log/tiger/security.report.*

19. Контроль SUID

setuid и setgid (сокращение от "set user ID upon execution" (установка ID пользователя во время выполнения) и "set group ID upon execution" (установка ID группы во время выполнения), соответственно) являются Unix флагами прав доступа, которые разрешают пользователям запускать исполняемые файлы соответственно с правами владельца или группы исполняемого файла.
Когда атрибут setuid установлен файлу, обычный пользователь, запускающий этот файл на исполнение, получает повышение прав до пользователя-владельца файла (обычно root) в рамках запущенного процесса. После получения повышенных прав приложение может выполнять задачи, выполнение которых обычному пользователю недоступно. Пользователю будет запрещено системой изменение нового процесса.

Для ежедневного контроля за появлением подозрительных файлов с установленным SUID битом используйте sxid.

После установки отредактируйте файл /etc/sxid.conf:

SEARCH="/" # Задаем корневой каталог, в котором будет производиться поиск
EXCLUDE="/proc /mnt /cdrom /floppy" # Исключать следующие каталоги из проверки
EMAIL="root" # Уведомления о событиях будут отправляться пользователю root
ALWAYS_NOTIFY="no" # Посылать уведомления если изменений не обнаружено
LOG_FILE="/var/log/sxid.log" # Где будет храниться файл журнала событий
KEEP_LOGS="5" # Задает количество файлов ротаций логов
ALWAYS_ROTATE="no" # Всегда заменять файл логов, даже если изменений не произошло
FORBIDDEN="/home /tmp" # Указывает каталоги, в которых не должно содержаться SUID-ных файлов
ENFORCE="no" # Удалять SUID-ный бит с файлов в каталогах, где он запрещен
LISTALL="no" # При указании YES посылает полный отчет в соответствии с изменениями
IGNORE_DIRS="/home" # Игнорирует SUID-ный бит на перечисленных каталогах
MAIL_PROG="/bin/mail" # Указывает почтовую программу для отправки уведомлений

20. Контроль целостности - Aide

Система контроля целостности файлов, на примерe AIDE (Advanced Intrusion Detection Environment).

Файл конфигурации находится в /etc/aide.conf. Указывает каталог в котором будет храниться база контрольных сумм:

@@define DBDIR /var/lib/aide

Задаем, в каком файле будет храниться информация о контрольных суммах, времени модификации защищаемых файлах и каталогах:

database=file::@@{DBDIR}/aide.db.gz

В данном файле будет храниться информация о файлах при запуске процесса инициализации aide-init:

database_out=file:@@{DBDIR}/aide.db.new.gz

Работать со сжатым форматом файлов:

gzip_dbout=yes

Задаем уровень детализации:

verbose=5

Указываем файл в который будет сохраняться информация о сканировании:

report_url=file;/var/log/aide.log

Также выводить информацию на экран:

report_url=stdout

Создаем шаблон:

NORMAL=R+b+sha1

Проверяем каталог /boot по алгоритму описанному с помощью шаблона NORMAL:

/boot NORMAL

Можно также указать какие проверки проводить в каталоге с помощью предопределенных проверок:

/etc p+i+u+g

Можно исключить отдельные файлы из области проверки:

!/etc/mtab

После правки файла конфигурации вам необходимо создать базу защищаемых файлов.

Выполните

# aide --init

Инициализация базы может занять много времени.

Для последующей проверки выполняйте:

# aide --check

21. IPS - Suricata

Система предотвращения вторжений (англ. Intrusion Prevention System) — программная или аппаратная система сетевой и компьютерной безопасности, обнаруживающая вторжения или нарушения безопасности и автоматически защищающая от них.
Системы IPS можно рассматривать как расширение Систем обнаружения вторжений (IDS), так как задача отслеживания атак остается одинаковой. Однако, они отличаются в том, что IPS должна отслеживать активность в реальном времени и быстро реализовывать действия по предотвращению атак. Возможные меры — блокировка потоков трафика в сети, сброс соединений, выдача сигналов оператору. Также IPS могут выполнять дефрагментацию пакетов, переупорядочивание пакетов TCP для защиты от пакетов с измененными SEQ и ACK номерами.
Suricata — open source IPS/IDS система. Основана разработчиками, которые трудились над IPS версией Snort. Основное отличие Suricata от Snort — возможность использования GPU в режиме IDS, более продвинутая система IPS, многозадачность, как следствие высокая производительность, позволяющая обрабатывать трафик до 10Gbit на обычном оборудовании, и многое другое, в том числе полная поддержка формата правил Snort. Лучше почитать обо всём на официальном сайте.
Установка Suricata на Ubuntu описана на официальной Wiki.

http://habrahabr.ru/post/192884/

Источники:
How to secure an Ubuntu 12.04 LTS server - Part 1 The Basics
http://endlesstravel.ru/?q=node/15

Метки: , . Закладка Постоянная ссылка.

Добавить комментарий

Ваш e-mail не будет опубликован.

*