Безопасность 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.
Опубликовано