Повышение безопасности серверов Linux

Борьба с руткитами в системе

Rootkit Hunter

Для выявления аномалий в работе сервера я рекомендую установить ПО rkhunter (Root Kit Hunter) скачать его можно с сервера http://www.rootkit.nl/ либо http://download.fedora.redhat.com/pub/fedora/linux/extras/5/SRPMS/.

Данная программа позволяет:

  1. Обнаруживать rootkit и backdoor в системе.
  2. Сравнивает контрольные суммы исполняемых системных файлов со своей базой.
  3. Проверяет наличие новых пользователей в системе.
  4. Проверяет наличие устаревшего ПО установленного с системе.
  5. Проверяет права файлов на наличие аномалий.

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

Запуск

rkhunter -c

полностью проверит систему.

По умолчанию при установке rkhunter прописывает себя в cron на ежедневный запуск с отправкой результатов работы пользователю root.

Т.к. постоянно выходят новые ОС и обновления ПО то программе необходимо обновлять информацию о наиболее свежих версиях ПО и MD5 суммах. Для обновления базы запустите

rkhunter --update

Внимание! Проверьте, что ваш FireWall разрешает соединения на 80 порт к списку серверов из файла /var/rkhunter/db/mirrors.dat

Chkrootkit

Существует еще одна программа осуществляющая обнаружения троянов в системе.

Она называется chkrootkit загрузить ее можно с http://www.chkrootkit.org/ либо с http://download.fedora.redhat.com/pub/fedora/linux/extras/5/SRPMS/.

Возможностей для проверки у данной программы поменьше, но я рекомендую использовать две эти программы в комплексе.

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

chkrootkit

Удаление «лишних» пользователей.

По умолчанию для работы большинства служб с системе создаются учетные записи пользователей под которыми данные службы будут функционировать.

Например если вы не используете службу NTP удалите соответствующего пользователя и группу.

userdel ntp
groupdel ntp

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

adm
news
operator
games
gopher
rpc
rpcuser
pcap
amanda
webalizer
named
dovecot
mailman
postfix
squid
ntp
ftp

Изменение прав на стартовые скрипты

По умолчанию на файлы в каталоге /etc/rc.d/init.d стоят права 755, что позволяет любому пользователю читать стартовые скрипты приложений. Рекомендуется выставить права на файлы в данном каталоге 700:

cd /etc/rc.d/init.d
chmod 700 *

Контроль SUID

Для ежедневного контроля за появлением подозрительных файлов с установленным 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" # Указывает почтовую программу для отправки уведомлений

Контроль целостности

Внедрите систему контроля целостности файлов, например AIDE.

Файл конфигурации находится в /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

Установка пакетов программ

Я рекомендую устанавливать пакеты из rpm. При данном подходе вы получаете следующие преимущества:

Простота установки. rpm -ihv <пакет>

Простота обновления пакета. rpm -Uhv <пакет>

Легко получить информацию о принадлежности файла к какому-либо пакету. rpm -qf <пакет>

Легко получить информацию о пакете rpm -qi <пакет> и rpm -q <пакет> и

Легко обновлять пакеты на серверах, где не установлено необходимых библиотек для компиляции.

Можно быстро обновить пакет на нескольких серверах, без необходимости компиляции на каждом из них.

Простота удаления пакета. rpm -e <пакет>

Вывести полный список установленных пакетов. rpm -qa

Посмотреть список файлов в пакете. rpm -ql <пакет>

Такая гибкость в деле управления пакетами позволяет проводить первоначальный контроль целостности системы (rpm -V <пакет>).

Наиболее часто противники rpm говорят о такой проблеме: «Пакет скомпилированн без необходимых мне параметров.» Существует достаточно простое решение данной проблемы:

Возьмите src.rpm — это исходные тексты пакета со spec файлом и патчами.

Установите его rpm -i <пакет>.src.rpm

Зайдите в каталог /usr/src/redhat/SPECS/ и подправьте опции с которыми собирается пакет в файле <пакет>.spec.

Затем выполните rpmbuild -ba <пакет>.spec и пакет будет пересобран с необходимыми вам опциями. После сборки <пакет>.rpm будет находиться в каталоге /usr/src/redhat/RPMS/.

Параметры TCP/IP

Для затруднения идентификации используемой ОС необходимо внести следующие изменения в файл /etc/sysctl.conf

Игнорируем бродкастовые ICMP пакеты

net.ipv4.icmp_echo_ignore_broadcasts = 1

Блокируем TCP SYN атаки

net.ipv4.tcp_syncookies = 1

Блокируем ICMP редиректы

net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0

Отключаем UpTime

net.ipv4.tcp_timestamps = 0

Меняем TTL (Time to live) с 64 на 128

net.ipv4.ip_default_ttl = 128

Скорость генерации ICMP

net.ipv4.icmp_ratelimit = 70

Для вступления изменений в силу перезагрузите компьютер либо выполните sysctl -p.

Взято тут

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *