Борьба с руткитами в системе
Rootkit Hunter
Для выявления аномалий в работе сервера я рекомендую установить ПО rkhunter (Root Kit Hunter) скачать его можно с сервера http://www.rootkit.nl/ либо http://download.fedora.redhat.com/pub/fedora/linux/extras/5/SRPMS/.
Данная программа позволяет:
- Обнаруживать rootkit и backdoor в системе.
- Сравнивает контрольные суммы исполняемых системных файлов со своей базой.
- Проверяет наличие новых пользователей в системе.
- Проверяет наличие устаревшего ПО установленного с системе.
- Проверяет права файлов на наличие аномалий.
При первом запуске в системе программа сообщит, что не имеет БД пользователей и создаст ее. При повторном запуске программа будет сравнивать имеющихся пользователей с этой базой.
Запуск
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.
Взято тут

