Сегодня Понедельник, 21 Августа 2017 года

Доступность нашего хостинга:

uptime узнать

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

Общие методы повышения безопасности сервера в RHEL, CentOS, Scientific, Fedora, WhiteBox, ASP 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.png

По умолчанию при установке 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

chkrootkit.png

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

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

Например если вы не используете службу 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. При данном подходе вы получаете следующие преимущества:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  4. Затем выполните 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.

www.redhat-club.org