Безопасность Linux

Ограничте физический доступ и возможности загрузки

  • Включите пароль на BIOS.
  • Выключите загрузку с дисков.
  • Установите пароль на LILO или GRUB (/etc/lilo.conf или /boot/grub/menu.lst, соответственно).
  • Проверьте, чтобы конфигурационный файл LILO или GRUB был защищен от чтения.

Разделы файловой системы

  • Поместите данные, доступные для записи пользователям, не системные данные и часто изменяемые рабочие данные на отдельные разделы.
  • Установите опции монтирования nosuid,noexec,nodev в /etc/fstab на такие разделы, как /tmp.

Надежность паролей и безопасность входа в систему

  • Устанавливайте надежный пароль для пользователя root.
  • Включите затенение (shadowing) паролей и MD5.
  • Установите и используйте PAM - добавьте поддержку MD5 в PAM и убедитесь что (говоря в общем) записи в файлах /etc/pam.d/, которые дают доступ к машине, второе поле в файле pam.d установлено в "requisite" или "required".
  • Настройте /etc/pam.d/login таким образом, чтобы разрешать только локальный вход для пользователя root.
  • Также укажите разрешенные tty в /etc/security/access.conf и ограничте входы пользователя root так сильно, как это возможно.
  • Добавьте pam_limits.so если вы хотите установить ограничения для каждого пользователя linux в отдельности.
  • Настройте /etc/pam.d/passwd: установите минимальную длину пароля (от 7 символов) и включите MD5.
  • Добавьте группу wheel в /etc/group, добавьте запись pam_wheel.so group=wheel в файл /etc/pam.d/su
  • Для индивидуальных настроек для отдельных пользователей, используйте записи pam_listfile.so в соответствующих случаях.
  • Используйте файл /etc/pam.d/other и настройте его с сильной безопасностью.
  • Установите ограничения в /etc/security/limits.conf (помните, что /etc/limits не используется, если вы используете PAM).
  • Ужесточите /etc/login.defs, также, если вы включили MD5 и/или PAM, убедитесь, что вы внесли соответствующие изменения.

Кроме того

  • Отключите доступ с помощью FTP пользователю root в /etc/ftpusers
  • Отключите доступ пользователю root по сети, используйте su или sudo.

Прочие моменты локальной безопасности

  • Включите автоматическую установку патчей к ядру.
  • Ужесточите права доступа к лог-файлам (/var/log/{last,fail}log, логам Apache).
  • Убедитесь, чтобы проверка setuid была включена в /etc/checksecurity.conf
  • Рассмотрите возможность сделать некоторые лог-файлы только дополняемыми и конфигурационные файлы linux неизменными с применением chattr (только для файловых систем ext).
  • Установите проверку целостности файлов (обычно для этого применяются sXid, AIDE (Advanced Intrusion Detection Environment), TripWire, integrit и samhain).
  • Установите debsums.
  • Рассмотрите возможность заменить locate на slocate.
  • Логируйте все на локальный принтер. Паранойя :-)

Ограничте доступ по сети.

  • Установите и настройте ssh (предлагается установить PermitRootLogin No в /etc/ssh, PermitEmptyPasswords No).
  • Рассмотрите возможность отключения или удаления in.telnetd
  • Отключите не нужные сервисы в /etc/inetd.conf используя update-inetd --disable (или отключите inetd совсем, или используйте заменители, такие как xinetd или rlinetd).
  • Отключите другие ненужные сетевые сервисы linux, такие как mail, ftp, DNS, www. Они не должны быть запущены, если они вам не нужны и вы не ведете их мониторинг.
  • Для тех сервисов, которые вам нужны, не используйте наиболее распространенные программы, найдите более безопасные версии, поставляемые с Debian (или из других источников).
  • Чтобы вы не запускали, убедитесь, что вы понимаете возможные риски для безопасности.
  • Установите chroot клетки для внешних пользователей и демонов.
  • Настройте файрвол и tcpwrappers (то есть hosts_access), пометьте трюк для /etc/hosts.deny в тексте.
  • Если вы используете FTP-сервер, настройте сервер так, чтобы он не выпускал пользователей из их домашних директорий.
  • Если вы используете X, то отключите авторизацию xhost и используйте ssh вместо этого. Будет лучше, если вы отключите удаленное использование X, если возможно (добавьте -nolisten tcp в командную строку X и выключите XDMCP в /etc/X11/xdm/xdm-config установкой requestPort в 0).
  • Отключите удаленный доступ к принтерам.
  • Туннелируйте любые IMAP или POP сессии через SSL или ssh. Установите туннель если вы хотите предоставлять этот сервис удаленным пользователям почты.
  • Установить loghost и сконфигурируйте другие машины отправлять логи на этот хост (/etc/syslog.conf).
  • Обезопасьте BIND, Sendmail и другие комплексные демоны (запускайте в клетке chroot, запускайте от имени не-root псевдопользователей).
  • Установите snort или похожую утилиту для логирования.
  • Не используйте NIS и RPC, если возможно (отключите portmap).

Элементы политики безопасности linux

  • Обучайте пользователей тому что и как нужно делать. Когда вы запрещаете что-нибудь, что обычно доступно в других системах, предлагайте документацию, которая поясняет как достичь похожих результатов с применением других, более безопасных, методов.
  • Запретите использование протоколов, которые используют пароли в открытом виде (telnet, rsh и прочие, ftp, imap, http).
  • Запретите программы использующие SVGAlib.
  • Используйте дисковые квоты.

Может оказаться полезной статья про rkhunter.

Наверх

Опубликовано