The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

[Linux] Улучшение безопасности обычных дистрибуций Linux (linux security)


<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: linux, security,  (найти похожие документы)
From: Никита Налютин <falcon@chat.ru> Subject: [Linux] Улучшение безопасности обычных дистрибуций Linux Улучшение безопасности обычных дистрибуций Linux Перевод: Никита Налютин <falcon@chat.ru> Оригинал доступен на сервере http://www.linuxrsp.ru/ Michael Jastremski Об авторе: Michael Jastremski является Unix-хакером в течение последних четырех лет. Его Web-сайт может быть найден на http://westphila.net/mike Он благодарит Andrew за помощь в переводе на английский. Аннотация: В этой статье рассказывается о том, как системные администраторы могут защитить свои системы от вторжений. Она содержит описания основных путей повышения безопасности Linux систем _________________________________________________________________ Введение Частые попытки вывода из строя компьютеров в Internet стали обычным явлением. Сервера на основе Linux и FreeBSD стали основной мишенью для атак, использующих переполнения буферов в imapd и BIND. Каждый день от 20,000 подписчиков списка рассылки [19]BUGTRAQ поступают сообщения, посвященные разным проблемах в системах безопасности (Если вы хотите подписаться только на один список рассылки по безопасности - BUGTRAQ как раз то, что вам нужно) Естественно можно предположить, что хотя бы один из этих 19,305 подписчиков напишет цикл for() и немного логических операций вокруг эксплоита cut+paste в надежде получить доступ к наибольшему числу компьютеров... Рано или поздно цикл составит адрес вашего компьютера, поэтому принять меры лучше заранее. Несмотря на заявления некоторых 'экспертов', установка и поддержка защищенной компьютерной системы не так сложна, как ракетостроение. Понятие "системное администрирование" включает в себя и такую область, как защита от вторжения из глобальной сети. Эта статья рассматривает некоторые меры предосторожности, которые я предпринял, конфигурируя сетевую систему RedHat Linux. Несмотря на то, что эта статья рассматривает некоторые методы защиты от вторжений, она не является полным руководством. Нижеследующий текст представляет собой пошаговое руководство к действиям, которые защитят вашу систему от нападения. Возможно статья поможет вам защититься от еще неизвестных типов атак. ПРЕДУПРЕЖДЕНИЕ: Если вы не знаете, что вы делаете, то не делайте этого. Некоторые из нижеследующих шагов потребуют вашего полного понимания. Гарантия недействительна на Аляске, Гавайях и Пуэрто Рико (к чему бы это? Прим. пер.) Ссылки на некоторые дополнительные материалы приведены в конце Шаги к безопасности 1. Удалите все ненужные сетевые сервисы из вашей системы. Чем меньше будет возможностей соединиться с вашим компьютером, тем меньше шансов на вход в вашу систему вы оставите взломщику. Закомментируйте все ненужное в /etc/inetd.conf. Вам не нужно, чтобы на вашу систему можно было зайти телнетом? Заблокируйте эту строку. То же относится к ftpd,rshd,rexecd,gopher,chargen, echo,pop3d и т.п. Не забудьте выполнить 'killall -HUP inetd' после редактирования inetd.conf. Также не пренебрегайте директорией /etc/rc.d/init.d Некоторые сетевые сервисы (BIND,демоны принтера) являются независимыми программами, запускаемыми из этих скриптов. 2. Установите SSH. SSH - это защищенная замена Берклийским 'r' командам. Домашняя страница SSH - http://www.cs.hut.fi/ssh. SSH (Secure Shell) это программа, необходимая для входа на удаленный компьютер, для исполнения команд на удаленной машине и для перемещения файлов между машинами. SSH предоставляет высокий уровень аутентификации и безопасности передачи при использовании незащищенных каналов. SSH также делает много других вещей, которые несомненно заинтересуют начинающего хакера. Вы можете загрузить SSH с [20]http://ftp.rge.com/pub/ssh . 3. Используйте vipw(1) для блокировки аккаунтов, не предназначенных для входа. Учтите, что в RedHat Linux аккаунты с нулевыми именами осуществляют вход в оболочку /bin/sh, что, как правило, нежелательно. Также удостоверьтесь, что ни один из ваших аккаунтов не имеет пароля нулевой длины. Далее следует пример части файла паролей хорошо защищенной системы daemon:*:2:2:daemon:/sbin:/bin/sync adm:*:3:4:adm:/var/adm:/bin/sync lp:*:4:7:lp:/var/spool/lpd:/bin/sync sync:*:5:0:sync:/sbin:/bin/sync shutdown:*:6:0:shutdown:/bin:/sync halt:*:7:0:halt:/sbin:/bin:/sync mail:*:8:12:mail:/var/spool/mail:/bin/sync news:*:9:13:news:/var/spool/news:/bin/sync uucp:*:10:14:uucp:/var/spool/uucp:/bin/sync operator:*:11:0:operator:/root:/bin/sync games:*:12:100:games:/usr/games:/bin/sync gopher:*:13:30:gopher:/usr/lib/gopher-data:/bin/sync ftp:*:14:50:FTP User:/home/ftp:/bin/sync nobody:*:99:99:Nobody:/:/bin/sync 4. Удалите бит 's' с программ, владельцем которых является root, и которые не требуют привилегий root. Это может быть выполнено с помощью команды 'chmod a-s' с аргументом в виде имени файла Рекомендуется убрать бит 's' у следующих типов программ: 1. программы, которые вы никогда не используете 2. программы, которые могут быть запущены только пользователем root и никем другим 3. программы, которые вы используете время от времени и для запуска которых вы можете воспользоваться su(1). В следующей таблице я поставил звездочку (*) около каждой программы, у которой рекомендуется убрать бит 's' Учтите, что для правильной работы вашей системе необходимы некоторые suid root программы , так что будьте осторожны. Также вы можете создать специальную группу 'suidexec' и поместить в нее аккаунты пользователей, которые смогут выполнять suid root программы. Сделайте chgrp(1) для suid программ для группы suidexec и удалите разрешение на выполнение для world. # find / -user root -perm "-u+s" */bin/ping */bin/mount -- только root может монтировать файловые системы */bin/umount -- то же /bin/su -- не трогайте! /bin/login /sbin/pwdb_chkpwd */sbin/cardctl -- утилита управления PCMCIA картами */usr/bin/rcp -- Используйте ssh */usr/bin/rlogin -- " */usr/bin/rsh -- " */usr/bin/at -- используйте cron или запретите */usr/bin/lpq -- установите LPRNG */usr/bin/lpr -- " */usr/bin/lprm -- " */usr/bin/mh/inc */usr/bin/mh/msgchk /usr/bin/passwd -- не трогайте! */usr/bin/suidperl -- в каждой новой версии suidperl есть переполнение буфера */usr/bin/sperl5.003 -- используйте только при необходимости /usr/bin/procmail -- */usr/bin/chfn */usr/bin/chsh */usr/bin/newgrp */usr/bin/crontab */usr/X11R6/bin/dga -- в X тоже много переполнений буфера */usr/X11R6/bin/xterm -- " */usr/X11R6/bin/XF86_SVGA -- " */usr/sbin/usernetctl /usr/sbin/sendmail */usr/sbin/traceroute -- вы можете ввести пароль root для использования 5. Обновите sendmail. Загрузите исходные тексты с [21]ftp://ftp.sendmail.org/pub/sendma il. Распакуйте их и прочитайте инструкции. Если у вас есть время, установите smrsh (включенный в состав sendmail) Эта программа добавляет к sendmail некоторые возможности, как например, посылка почты арбитражным программам Отредактируйте sendmail.cf и установите опцию 'PrivacyOptions' в 'goaway': O PrivacyOptions=goaway Если вы не планируете получать электронную почту, НЕ ЗАПУСКАЙТЕ SENDMAIL В РЕЖИМЕ ПРИЕМА (sendmail -bd)!. В этом случае, запретите /etc/rc.d/init.d/sendmail.init и сделайте 'killall -TERM sendmail'. В этом случае вы все еще будете способны посылать исходящую почту, используя Sendmail. 6. Обновите BIND, если вы его используете. Последняя версия BIND может быть найдена на [22]http://www.isc.org . Иначе, отмените использование BIND. 7. Перекомпилируйте ядро. Я обычно делаю это, так как ядро по умолчанию может не подходить для вашей системы или осуществлять недостаточный уровень безопасности СОВЕТ: включите все опции firewall, даже если ваш компьютер не firewall. CONFIG_FIREWALL=y CONFIG_NET_ALIAS=y CONFIG_INET=y # CONFIG_IP_FORWARD is not set # CONFIG_IP_MULTICAST is not set CONFIG_SYN_COOKIES=y CONFIG_RST_COOKIES=y CONFIG_IP_FIREWALL=y CONFIG_IP_FIREWALL_VERBOSE=y # CONFIG_IP_MASQUERADE is not set # CONFIG_IP_TRANSPARENT_PROXY is not set CONFIG_IP_ALWAYS_DEFRAG=y CONFIG_IP_ACCT=y # CONFIG_IP_ROUTER is not set # CONFIG_NET_IPIP is not set CONFIG_IP_ALIAS=m 8. Используйте патчи: Описания и исправления всех известных проблемы с RedHat могут быть найдены на RedHat Errata pages, (см. [23]http://www.redhat.com/support/docs/errata.html ) где можно выбрать патчи для вашей версии системы. RedHat старается обновлять эти страницы сразу же после появления новых патчей. 9. Сконфигурируйте tcp_wrappers: Tcp_wrappers - это метод определения компьютеров в сети, которым позволено "говорить" с вашим компьютером. Этот пакет, написанный гуру в системах безопасности Wieste Venema, располагается перед программами, запущенными из inetd (или слинкованными с использованием библиотеки inetd), читая их конфигурационные файлы для определения разрешения или запрещения сетевых транзакций. Например, для разрешения telnet & ftp с домашней машины через вашего ISP, и отмены всех остальных соединений запишите следующее в ваш /etc/hosts.allow: in.ftpd : .dialup.your-isp.com : allow all : all : deny SSH, sendmail и другие пакеты могут быть собраны с поддержкой tcp_wrappers Прочитайте страницу помощи tcpd(1) для получения дополнительной информации. Дополнительные ссылки: Secure Linux patches by Solar Designer: http://www.false.com/security/linux/ replay.com RedHat crypto pages: http://www.replay.com/redhat/ Improving the Security of Your Site by Breaking Into it: http://www.alw.nih.gov/Security/Docs/admin-guide-to-cracking.101.html Slashdot - хороший источник последних новостей: http://www.slashdot.org FreshMeat - рекомендуется посещать регулярно - очень хороший источник новостей, исправлений и новых программ: http://www.freshmeat.net Smashing the stack: http:/ /reality.sgi.com/nate/machines/security/P49-14-Aleph-One Перевод: Никита Налютин

<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>

 Добавить комментарий
Имя:
E-Mail:
Заголовок:
Текст:




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру