<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://wiki.linuxformat.ru/wiki/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://wiki.linuxformat.ru/wiki/index.php?action=history&amp;feed=atom&amp;title=LXF85%3A%D0%91%D0%B5%D0%B7%D0%BE%D0%BF%D0%B0%D1%81%D0%BD%D0%BE%D1%81%D1%82%D1%8C</id>
		<title>LXF85:Безопасность - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.linuxformat.ru/wiki/index.php?action=history&amp;feed=atom&amp;title=LXF85%3A%D0%91%D0%B5%D0%B7%D0%BE%D0%BF%D0%B0%D1%81%D0%BD%D0%BE%D1%81%D1%82%D1%8C"/>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF85:%D0%91%D0%B5%D0%B7%D0%BE%D0%BF%D0%B0%D1%81%D0%BD%D0%BE%D1%81%D1%82%D1%8C&amp;action=history"/>
		<updated>2026-05-13T00:07:05Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.19.20+dfsg-0+deb7u3</generator>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/index.php?title=LXF85:%D0%91%D0%B5%D0%B7%D0%BE%D0%BF%D0%B0%D1%81%D0%BD%D0%BE%D1%81%D1%82%D1%8C&amp;diff=5064&amp;oldid=prev</id>
		<title>Yaleks: викификация</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF85:%D0%91%D0%B5%D0%B7%D0%BE%D0%BF%D0%B0%D1%81%D0%BD%D0%BE%D1%81%D1%82%D1%8C&amp;diff=5064&amp;oldid=prev"/>
				<updated>2008-07-29T14:46:52Z</updated>
		
		<summary type="html">&lt;p&gt;викификация&lt;/p&gt;
&lt;a href=&quot;http://wiki.linuxformat.ru/wiki/index.php?title=LXF85:%D0%91%D0%B5%D0%B7%D0%BE%D0%BF%D0%B0%D1%81%D0%BD%D0%BE%D1%81%D1%82%D1%8C&amp;amp;diff=5064&amp;amp;oldid=5063&quot;&gt;Внесённые изменения&lt;/a&gt;</summary>
		<author><name>Yaleks</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/index.php?title=LXF85:%D0%91%D0%B5%D0%B7%D0%BE%D0%BF%D0%B0%D1%81%D0%BD%D0%BE%D1%81%D1%82%D1%8C&amp;diff=5063&amp;oldid=prev</id>
		<title>Yaleks: Новая: {{цикл/Безопасность}}  == Ограничить в обслуживании! == ''ЧАСТЬ 2: Лишние сервисы в вашей машине могут рабо...</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF85:%D0%91%D0%B5%D0%B7%D0%BE%D0%BF%D0%B0%D1%81%D0%BD%D0%BE%D1%81%D1%82%D1%8C&amp;diff=5063&amp;oldid=prev"/>
				<updated>2008-07-29T14:46:07Z</updated>
		
		<summary type="html">&lt;p&gt;Новая: {{цикл/Безопасность}}  == Ограничить в обслуживании! == &amp;#039;&amp;#039;ЧАСТЬ 2: Лишние сервисы в вашей машине могут рабо...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{цикл/Безопасность}}&lt;br /&gt;
&lt;br /&gt;
== Ограничить в обслуживании! ==&lt;br /&gt;
''ЧАСТЬ 2: Лишние сервисы в вашей машине могут работать на врага. Д-р '''Крис Браун''' ищет их и отстреливает, отгоняя злоумышленников.''&lt;br /&gt;
&lt;br /&gt;
Снова здравствуйте, и добро пожаловать на второй урок по&lt;br /&gt;
безопасности Linux. В прошлом месяце мы обсуждали важные&lt;br /&gt;
вещи, касающиеся паролей, и я показал вам, как защититься&lt;br /&gt;
от некоторых эксплойтов этапа загрузки, дающих привилегии root. Я&lt;br /&gt;
также объяснил, как использовать sudo для контроля над повышением&lt;br /&gt;
привилегий пользователей, не разглашая администраторский пароль.&lt;br /&gt;
В этом месяце мы научимся отключать в системе ненужные сервисы,&lt;br /&gt;
ужесточим права доступа к файлам и познакомимся с некоторыми&lt;br /&gt;
инструментами, включая Bastille, которые помогут нам в этом.&lt;br /&gt;
&lt;br /&gt;
В недалеком прошлом, устанавливая Unix-систему, я обнаруживал, что практически каждый сетевой сервис по умолчанию был&lt;br /&gt;
запущен. Telnet, FTP и rlogin? Да, все включены. NFS и NIS? Работают.&lt;br /&gt;
Запускались даже такие тривиальные сервисы, как Chargen, ECHO и&lt;br /&gt;
Daytime. Unix-система как бы говорила: «Смотрите, как много сервисов, разве это не здорово?» Конечно, Интернет в то время был поспокойнее, прямо-таки Хоббитон в киберпространстве. Сейчас это скорее&lt;br /&gt;
поле битвы, больше похожее на Мордор – в результате в установках&lt;br /&gt;
Linux-систем по умолчанию не включены никакие сетевые сервисы,&lt;br /&gt;
кроме sshd. Это пример соблюдения важного принципа: не запускайте&lt;br /&gt;
сервисы, которые вам не нужны.&lt;br /&gt;
&lt;br /&gt;
=== Часть 1: Просмотр запущенных сервисов ===&lt;br /&gt;
[[Изображение:Img 85 82 2.jpg|thumb|Рис. 1 Проверка открытых портов на моем ноутбуке с помощью lsof.]]&lt;br /&gt;
Самый непосредственный способ проверить, какие сервисы запущены на вашей машине – запрос открытых TCP и UDP-портов, который&lt;br /&gt;
можно сделать командой lsof -i. На рис. 1 показан пример вывода&lt;br /&gt;
этой команды, выполненной на моем ноутбуке; должен признаться, я&lt;br /&gt;
не очень в курсе, что именно там понаписано. Ну, portmap – это RPC-демон, необходимый для работы службам NFS и NIS, а master – агент&lt;br /&gt;
доставки почты postfix, а cupsd – что-то насчет печати. Но зачем здесь&lt;br /&gt;
какие-то процессы http2 (Apache)?&lt;br /&gt;
&lt;br /&gt;
Угадать назначение всех этих таинственных демонов – задача не из&lt;br /&gt;
легких. Проверьте, есть ли man-страница для сервиса или посмотрите&lt;br /&gt;
иерархию запущенных процессов. Например, pstree показывает, что hp&lt;br /&gt;
и hpijs на рис. 1 – потомки cupsd, и, значит, имеют отношение к печати.&lt;br /&gt;
Вот соответствующий фрагмент вывода:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ pstree |head&lt;br /&gt;
init─┬─acpid&lt;br /&gt;
     ├─cron&lt;br /&gt;
     ├─cupsd─┬─foomatic-rip───foomatic-rip─┬─foomatic-rip&lt;br /&gt;
     │       │                             └─sh───gs─┬─hpijs&lt;br /&gt;
     │       │                                       └─sh───cat&lt;br /&gt;
     │       └─hp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Вред от работы ненужных сервисов невелик, однако теоретически&lt;br /&gt;
их можно использовать как лазейку в вашей системе. Ошибка типа&lt;br /&gt;
переполнения буфера способна помочь вредителю заставить сервер&lt;br /&gt;
выполнять произвольный код. Такие атаки довольно часты и, как ни&lt;br /&gt;
печально, почти так же часто успешны.&lt;br /&gt;
&lt;br /&gt;
{{Врезка&lt;br /&gt;
|Заголовок=Скорая помощь&lt;br /&gt;
|Содержание=На сервисы&lt;br /&gt;
вроде Telnet&lt;br /&gt;
и FTP, некогда&lt;br /&gt;
рабочие лошадки&lt;br /&gt;
Интернета,&lt;br /&gt;
сейчас смотрят&lt;br /&gt;
косо, поскольку&lt;br /&gt;
они принимают&lt;br /&gt;
пароль и имя&lt;br /&gt;
пользователя&lt;br /&gt;
по сети в виде&lt;br /&gt;
открытого текста.&lt;br /&gt;
Как ни смешно,&lt;br /&gt;
анонимный&lt;br /&gt;
FTP – и тот гораздо&lt;br /&gt;
безопаснее, как&lt;br /&gt;
раз потому, что&lt;br /&gt;
не требует для&lt;br /&gt;
соединения имени&lt;br /&gt;
пользователя&lt;br /&gt;
и пароля.&lt;br /&gt;
|Ширина=250px}}&lt;br /&gt;
Например, из-за уязвимости по переполнению буфера в ProFTPd-сервере можно было захватить root-привилегии, скачивая особым&lt;br /&gt;
образом составленные файлы в ASCII-режиме. Уязвимость была найдена в сентябре 2003 года и давно исправлена; однако дыры постоянно обнаруживаются в Skype, Adobe Reader, ядре Linux и других&lt;br /&gt;
компонентах.&lt;br /&gt;
&lt;br /&gt;
Отключив ненужные сервисы, вы значительно снизите вероятность успеха подобных атак. Сообщество Open Source очень быстро&lt;br /&gt;
устраняет найденные уязвимости, но это вам поможет, только если&lt;br /&gt;
вы установите исправленную версию. Фактически, абсолютное большинство атак происходит на те компоненты, для которых заплатки уже&lt;br /&gt;
доступны; тем умнее будет подписаться на рассылки по обновлениям&lt;br /&gt;
безопасности вашего дистрибутива, например, Up2date от Red Hat, и&lt;br /&gt;
регулярно их применять. Под «регулярно» я понимаю не каждые три&lt;br /&gt;
месяца (даже три дня могут оказаться роковыми). Атакующие не станут&lt;br /&gt;
дожидаться вашего очередного ежеквартального обновления.&lt;br /&gt;
&lt;br /&gt;
=== Часть 2: Отключение ненужных сервисов ===&lt;br /&gt;
А как их отключить? В Fedora или Red Hat Linux вы можете остановить&lt;br /&gt;
сервис httpd так:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;service httpd stop&amp;lt;/source&amp;gt;&lt;br /&gt;
В SUSE эквивалентной командой будет&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;service apache2 stop&amp;lt;/source&amp;gt;&lt;br /&gt;
Это всего лишь остановит сервис «здесь и сейчас», а на самом&lt;br /&gt;
деле нужно предотвратить его запуск во время загрузки системы. Вы&lt;br /&gt;
можете сделать это программой chkconfig. Например, чтобы отключить автоматический запуск Fedora или Red Hat, выполните следующую команду:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;chkconfig --del httpd&amp;lt;/source&amp;gt;&lt;br /&gt;
В SUSE такой командой будет:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;chkconfig --del apache2&amp;lt;/source&amp;gt;&lt;br /&gt;
Chkconfig управляет сложным набором символических ссылок для&lt;br /&gt;
загрузки сервисов на различных уровнях запуска (runlevel). Команда&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;chkconfig --list&amp;lt;/source&amp;gt;&lt;br /&gt;
покажет вам статус всех сервисов, управляемых подобным образом, а&lt;br /&gt;
также выведет их уровень запуска.&lt;br /&gt;
Отключение ненужных сервисов – это один из способов оградить&lt;br /&gt;
ваш черный ход от плохих парней. А лучше вообще удалить ненужные&lt;br /&gt;
сервисы: нет программы – нет проблемы, даже если кто-то все-таки&lt;br /&gt;
проник в вашу систему. Не нужен вам, например, инструментарий разработчика (компилятор С и т.д.), так и не устанавливайте его: глядишь,&lt;br /&gt;
руткит в вашей системе и не скомпилируется. Если вы настраиваете&lt;br /&gt;
сетевой сервер, незачем устанавливать Х-сервер и графическое рабочее окружение; и т.д.&lt;br /&gt;
&lt;br /&gt;
==== Меньше – лучше ====&lt;br /&gt;
На моей тестовой Fedora Core 5, когда я запускаю графический рабочий&lt;br /&gt;
стол и вхожу в систему, вкалывает уже более 20 дополнительных процессов. Некоторые из них запущены от имени root. Знаю ли я, что они&lt;br /&gt;
делают? Нет. Знаю ли я, что им можно доверять? Нет. Даже если работа каждого из них в отдельности безопасна, могу ли я быть уверен, что&lt;br /&gt;
их комбинация не создает побочных эффектов? Нет. И никто не может.&lt;br /&gt;
Смысл прост: чем меньше сервисов установлено и запущено, тем меньше шансы злоумышленника на обнаружение уязвимости.&lt;br /&gt;
&lt;br /&gt;
{{Врезка|center|&lt;br /&gt;
|Заголовок=Ограничение на вход в систему от имени root&lt;br /&gt;
|Содержание=В прошлом месяце мы обсудили опасности входа в систему от имени&lt;br /&gt;
суперпользователя и призвали к использованию команды su для получения прав root только при необходимости. Вы можете пойти дальше и&lt;br /&gt;
сделать невозможным вход в систему суперпользователя, оставив единственным способом получения root-привилегий команду su. Это легко&lt;br /&gt;
сделать для программы login: Linux допускает сессии root только в терминалах, перечисленных в /etc/security. Если этот файл пуст, зайти как&lt;br /&gt;
root из терминала будет невозможно. (Будьте осторожны! Если файл&lt;br /&gt;
удалить, то войти в систему как root вы сможете отовсюду).&lt;br /&gt;
&lt;br /&gt;
Отключение входа под root в KDE и Gnome немножко сложнее.&lt;br /&gt;
Обычно в конфигурационном файле есть параметр вроде AllowRootLogin&lt;br /&gt;
или AllowRoot, который должен быть установлен в значение false, но&lt;br /&gt;
найти его нелегко [проще воспользоваться графическими утилитами&lt;br /&gt;
настройки KDM/GDM, – прим. ред.]. Очевидное преимущество – предотвращение входа напрямую как суперпользователя. Другое преимущество использования su – su оставляет записи в /var/log/messages или&lt;br /&gt;
/var/log/secure, так что вы сможете выяснить, кто что делал от лица&lt;br /&gt;
root и когда.&lt;br /&gt;
&lt;br /&gt;
Вы также можете ограничить использование su определенными группами. Группы wheel и root обычно для этого и используются, однако вы&lt;br /&gt;
можете определить любую группу:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;chgrp wheel /bin/su&lt;br /&gt;
chmod 4550 /bin/su&amp;lt;/source&amp;gt;&lt;br /&gt;
Комбинирование этих методов приводит к интересной ситуации. Даже&lt;br /&gt;
если кто-нибудь подслушает пароль в кафетерии, он не сможет получить&lt;br /&gt;
права суперпользователя, потому что напрямую от root заходить в систему нельзя, и через su получить права тоже не удастся, пока пользователь&lt;br /&gt;
не в нужной группе.&lt;br /&gt;
&lt;br /&gt;
Если вы решите применять эти приемы, убедитесь, что добавили хотя&lt;br /&gt;
бы одного пользователя в группу wheel. Иначе вы сами не сможете получить администраторский доступ и вам придется загружаться с какогонибудь LiveCD для исправления ситуации.&lt;br /&gt;
|Ширина=}}&lt;br /&gt;
&lt;br /&gt;
=== Часть 3 Системные инструменты ограничения прав ===&lt;br /&gt;
Есть несколько утилит, специально спроектированных для укрепления безопасности вашей системы (как правило, для отключения&lt;br /&gt;
ненужных компонентов и «ужесточения» прав доступа к файлам) и&lt;br /&gt;
предлагающих более систематический подход, нежели чисто «ручной». Bastille – одна из лучших подобных программ. Bastille не только укрепляет защиту, она еще и поможет разобраться, как работают&lt;br /&gt;
системы безопасности. На время написания статьи последняя версия&lt;br /&gt;
(3.0.9) была доступна по адресу http://prdownloads.sourceforge.net/Bastille-linux/Bastille-3.0.9-1.0.noarch.rpm (ее можно взять с нашего&lt;br /&gt;
диска).&lt;br /&gt;
&lt;br /&gt;
Bastille написана на Perl, так что вам потребуется интерпретатор&lt;br /&gt;
этого языка и библиотеки Perl-Tk или Perl-Curses для пользовательского интерфейса (возможно, в вашем дистрибутиве эти пакеты устанавливаются по умолчанию). После установки просто запустите Bastille с&lt;br /&gt;
опцией -х для интерактивной графической сессии или с опцией -а для&lt;br /&gt;
оценки безопасности вашей системы.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Img 85 84 1.jpg|thumb|Рис. 2 Один из многих разделов вопросника Bastille. Да, он сероват, но безопасность не в красоте.]]&lt;br /&gt;
Интерактивная сессия учинит вам допрос о ваших опциях по безопасности. На рис. 2 показан один разделов этого допроса – все разделы сгруппированы в 15 категорий, перечисленных слева. Вас спросят,&lt;br /&gt;
«Хотите ли вы отключить r*-утилиты?», «Хотите ли вы ограничить&lt;br /&gt;
срок жизни паролей?» и многое другое. При первом запуске вы, возможно, затруднитесь ответить на некоторые вопросы. В этом случае&lt;br /&gt;
лучшим выходом будет сделать себе чашечку кофе, возможно, устроить срочное совещание, и все-таки решить, чего вы хотите. Это часть&lt;br /&gt;
процесса определения политики безопасности, и это важный шаг по&lt;br /&gt;
защите вашей машины. Кстати, Bastille не сделает ничего до тех пор,&lt;br /&gt;
пока вы не ответите на все вопросы и не подтвердите изменения.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Img 85 84 2.jpg|thumb|Рис. 3 Главное назначение отчетов Bastille – затруднить атаки на вашу систему, а заодно это неплохой инструмент обучения администраторов.]]&lt;br /&gt;
Также вы можете запустить Bastille в оценочном режиме (опция -а):&lt;br /&gt;
никаких изменений она делать не будет, лишь выведет отчет в виде&lt;br /&gt;
HTML-страницы и покажет его в браузере. Вы можете видеть пример&lt;br /&gt;
такого отчета на рис. 3. Каждая позиция в отчете также является ссылкой на более подробное объяснение.&lt;br /&gt;
&lt;br /&gt;
==== Мастер безопасности SUSE ====&lt;br /&gt;
{{Врезка&lt;br /&gt;
|Заголовок=Права доступа к файлам в SUSE&lt;br /&gt;
|Содержание=&lt;br /&gt;
{{{!}}&lt;br /&gt;
!Права доступа &lt;br /&gt;
!Уровень безопасности&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Permissions {{!}}{{!}}Простейший набор прав. Более мягкие права доступа, нежели те, что указаны в этом файле, не просто небезопасны, а уже надпись на могиле!&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Permissions.easy {{!}}{{!}}Довольно мягкие права для использования в настольных системах с одним пользователем.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Permissions.secure {{!}}{{!}}Более безопасный набор прав для многопользовательских или сетевых систем. Вот комментарий из файла: «Главная задача этих прав – заставить простые вещи, вроде смены паролей или использования сетевых программ, правильно работать для непривилегированного пользователя».&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Permissions.paranoid {{!}}{{!}}Очень безопасный набор прав. Похож на предыдущий вариант, однако SUID и SGID-биты сбрасываются. Эти настройки подходят для сетевых сервисов или межсетевых экранов, в которые обычным пользователям делать нечего.&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Permissions.local {{!}}{{!}}Это специальный файл для добавления прав на дополнительные программы. По умолчанию он пуст.&lt;br /&gt;
{{!}}}&lt;br /&gt;
|Ширина=300px}}&lt;br /&gt;
Теперь давайте рассмотрим мастер безопасности, встроенный в&lt;br /&gt;
SUSE Linux. Этот компонент, входящий в YaST, тоже предназначен&lt;br /&gt;
для укрепления системы. Он дает возможность привести в порядок&lt;br /&gt;
множество опций и настраивает соответствующие файлы конфигурации. Для его запуска выберите пункт Локальная безопасность (Local&lt;br /&gt;
Security) из секции Безопасность и пользователи (Security and Users)&lt;br /&gt;
конфигуратора YaST. На первом экране мастер спросит вас, не хотите ли вы применить один из трех готовых шаблонов безопасности.&lt;br /&gt;
В порядке увеличения безопасности они выглядят так: домашний&lt;br /&gt;
компьютер (Home Workstation), сетевая рабочая станция (Networked&lt;br /&gt;
Workstation) и сетевой сервер (Network Server). Если хотите, можете&lt;br /&gt;
просто выбрать один из этих профилей и нажать Finish. Это, конечно,&lt;br /&gt;
довольно тупой способ настройки безопасности системы, но уж точно&lt;br /&gt;
лучше, чем ничего.&lt;br /&gt;
&lt;br /&gt;
Для более тонкой настройки выберите Custom Settings и нажмите Next. Это перенесет вас в первый из пяти шагов, где вы можете&lt;br /&gt;
установить различные настройки (однако, как и в случае с Bastille,&lt;br /&gt;
вы должны знать, чего вы хотите). Вы можете включить и отключить&lt;br /&gt;
проверку качества паролей, о которой мы говорили в первой части&lt;br /&gt;
в [[LXF84:Безопасность|LXF84]] (вы ведь читали первую часть?). Можете выбрать метод&lt;br /&gt;
шифрования пароля и другие параметры. Можете контролировать&lt;br /&gt;
задержку после неудачной попытки входа в систему (увеличение&lt;br /&gt;
этой задержки, несомненно, замедлит ручной подбор пароля, но&lt;br /&gt;
таким способом пытаются проникнуть в систему разве что самые&lt;br /&gt;
простодушные злодеи). Вы можете настроить действие системы по&lt;br /&gt;
нажатию Ctrl+Alt+Del и указать, какие пользователи могут завершать&lt;br /&gt;
работу системы.&lt;br /&gt;
&lt;br /&gt;
Также возможно проконтролировать, какие . (текущие каталоги)&lt;br /&gt;
должны быть включены в пути поиска для супер- и других пользователей. Зачем это надо? Допустим, вы зашли в оболочку и запускаете&lt;br /&gt;
какую-нибудь обычную программу, вроде cp. Какая программа запустится? Ответ такой: любой файл с именем cp, который оболочка первым найдет в путях поиска. Вы надеетесь, что это cp, расположенная&lt;br /&gt;
в директории /bin. Однако если включить . (текущий каталог) в путь&lt;br /&gt;
поиска (особенно перед /bin), есть реальная опасность, что запускаемая команда cp – одна из тех, что злоумышленник подкинул вам в&lt;br /&gt;
текущую директорию. Таким способом можно запускать любые программы с вашими правами. Если вы суперпользователь, последствия&lt;br /&gt;
могут быть особенно серьезными. По этой причине разумно не включать . в пути поиска. Захочется запустить какую-нибудь программу,&lt;br /&gt;
находящуюся в текущей директории – явно введите ./myprog вместо&lt;br /&gt;
myprog.&lt;br /&gt;
&lt;br /&gt;
На последнем шаге вы можете выбрать, как жестко система будет&lt;br /&gt;
обращаться с правами доступа к файлам. Тут есть три варианта: простой, безопасный и параноидальный. На самом деле этот экран – всего&lt;br /&gt;
лишь интерфейс к программе chkstat, которая проверяет (и при необходимости подправляет) права доступа и владельца ключевых системных файлов. Программа читает один или более permission-файл в&lt;br /&gt;
директории /etc (см. врезку внизу справа). Синтаксис каждой строки в&lt;br /&gt;
этих файлах такой:&lt;br /&gt;
&amp;lt;pre&amp;gt;имя файла владелец:группа режим&amp;lt;/pre&amp;gt;&lt;br /&gt;
Например, вот несколько строк из файла /etc/permissions.secure:&lt;br /&gt;
&amp;lt;pre&amp;gt;/usr/bin/passwd root:shadow 4755&lt;br /&gt;
/usr/bin/crontab root:trusted 4750&lt;br /&gt;
/etc/fstab root:root 644&lt;br /&gt;
/var/spool/fax/archive fax:uucp 700&amp;lt;/pre&amp;gt;&lt;br /&gt;
Права доступа (режим) указываются в восьмеричном виде.&lt;br /&gt;
Восьмеричное значение 4000 устанавливает SUID-бит (см. врезку&lt;br /&gt;
вверху справа), другие три цифры отвечают за права чтения, записи и&lt;br /&gt;
выполнения для владельца, группы и всех остальных.&lt;br /&gt;
&lt;br /&gt;
Для запуска chkstat с настройками из файла permissions.secure&lt;br /&gt;
(например), просто укажите имя файла в качестве аргумента. На моей&lt;br /&gt;
тестовой системе команда выглядит так:&lt;br /&gt;
&amp;lt;pre&amp;gt;# chkstat /etc/permissions.secure&amp;lt;/pre&amp;gt;&lt;br /&gt;
В моем случае на экран ничего не выводилось. Однако запустив chkstat с настройками из permissions.paranoid, вы увидите массу&lt;br /&gt;
предупреждений, в основном о файлах конфигурации, доступных не-суперпользователям, и о программах с установленным SUID-битом.&lt;br /&gt;
&lt;br /&gt;
Запуск chkconfig с опцией --set велит программе исправлять любые&lt;br /&gt;
проблемы автоматически. Давайте нарочно сделаем права доступа&lt;br /&gt;
на один из системных файлов слишком слабыми и перезапустим&lt;br /&gt;
программу:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot; line=&amp;quot;GESHI_NORMAL_LINE_NUMBERS&amp;quot;&amp;gt;&lt;br /&gt;
# chmod 666 /etc/fstab&lt;br /&gt;
# chkstat /etc/permissions.secure&lt;br /&gt;
Checking permissions and ownerships – using the permissions files /etc/permissions.secure&lt;br /&gt;
/etc/fstab should be root:root 0644. (wrong permissions 0666)&lt;br /&gt;
# chkstat --set /etc/permissions.secure&lt;br /&gt;
Checking permissions and ownerships – using the permissions files /etc/permissions.secure&lt;br /&gt;
setting /etc/fstab to root:root 0644. (wrong permissions 0666)&lt;br /&gt;
# ls -l /etc/fstab&lt;br /&gt;
-rw-r--r-- 1 root root 670 Oct 11 09:35 /etc/fstab&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
В первой строке я сменил права доступа к файлу /etc/fstab. В строках 2–4 я запустил chkstat, и он сообщил о проблеме. В строках 5–7 я&lt;br /&gt;
снова запустил chkstat, с опцией --set, и в строках 8–9 убедился, что&lt;br /&gt;
chkstat корректно решил проблему.&lt;br /&gt;
&lt;br /&gt;
Давайте свяжем это с настройками привилегий из YaST. YaST устанавливает в /etc/sysconfig/security строку вроде этой (вариант для&lt;br /&gt;
профиля ‘easy’):&lt;br /&gt;
&amp;lt;pre&amp;gt;PERMISSION_SECURITY=”easy local”&amp;lt;/pre&amp;gt;&lt;br /&gt;
Строка велит chkstat запускаться с файлами permissions.easy и&lt;br /&gt;
permissions.local. Программа chkstat запускается Suseconfig, скриптом,&lt;br /&gt;
который YaST использует для применения проделанных изменений.&lt;br /&gt;
Это значит, что права доступа к файлам будут проверяться каждый раз,&lt;br /&gt;
когда вы измените что-либо в YaST.&lt;br /&gt;
&lt;br /&gt;
Есть и другие утилиты для подобных целей. Я планировал рассказать о Titan, который особенно популярен в Solaris, но он выглядит&lt;br /&gt;
бледно после выпуска Sun Security Toolkit от JASS. Есть еще Sussen,&lt;br /&gt;
сканер уязвимостей, основанный на OVAL ((Open Vulnerability and&lt;br /&gt;
Assessment Language). Это один из новоиспеченных C#/Mono-проектов,&lt;br /&gt;
о котором я надеюсь рассказать на следующих уроках. На сегодня все;&lt;br /&gt;
храните безопасность до следующего месяца!&lt;br /&gt;
&lt;br /&gt;
{{Врезка|source|&lt;br /&gt;
|Заголовок=SUID-программы&lt;br /&gt;
|Содержание=В основе увеличения привилегий в Linux стоят&lt;br /&gt;
SUID-программы. Идея состоит в запуске программы с правами владельца исполняемого&lt;br /&gt;
файла, а не того, кто производит запуск. Это&lt;br /&gt;
поведение зависит от SUID-бита, который&lt;br /&gt;
является частью прав доступа к файлу.&lt;br /&gt;
&lt;br /&gt;
Один из лучших примеров такой программы – /usr/bin/passwd. SUID-бит можно обнаружить в выводе ls -l:&lt;br /&gt;
&amp;lt;pre&amp;gt;ls -l /usr/bin/passwd &lt;br /&gt;
-r-s--x--x 1 root root 21944 Feb12 08:15 /usr/bin/passwd&amp;lt;/pre&amp;gt;&lt;br /&gt;
В позиции четвертого символе вместо х стоит s. Обратите внимание, что файлом владеет&lt;br /&gt;
root. Поэтому программа может записывать&lt;br /&gt;
новый хэш в shadow-файл, прав на запись [и&lt;br /&gt;
чтение, – прим. ред.] в который у обычного&lt;br /&gt;
пользователя быть, конечно же, не должно.&lt;br /&gt;
Программа sudo, рассмотренная месяц назад,&lt;br /&gt;
также является SUID-программой – чтобы позволить запускать программы под другими&lt;br /&gt;
идентификаторами. (Если программа запускается с привилегиями root, она может сменить&lt;br /&gt;
текущий ID на любой.)&lt;br /&gt;
&lt;br /&gt;
SUID-программы, особенно принадлежащие&lt;br /&gt;
root – всегда возможная уязвимость. Можно&lt;br /&gt;
ли верить, что такая программа делает только&lt;br /&gt;
то, что нужно? А вдруг она приписывает данные к файлам? Как грамотный системный&lt;br /&gt;
администратор, будьте бдительны по поводу&lt;br /&gt;
любых SUID-программ. Их можно найти так:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;find / -perm +4000 -user root&amp;lt;/source&amp;gt;&lt;br /&gt;
Установить SUID-бит можно таким образом:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;chmod u+s filename&amp;lt;/source&amp;gt;&lt;br /&gt;
а удалить&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;chmod u-s filename&amp;lt;/source&amp;gt;&lt;br /&gt;
Вся идея SUID-бита запатентована дедушкой Unix, Деннисом Ричи [Dennis Ritchie].&lt;br /&gt;
Номер патента США – 4135240; он был выдан&lt;br /&gt;
16 января 1979 года.&lt;br /&gt;
|Ширина=}}&lt;/div&gt;</summary>
		<author><name>Yaleks</name></author>	</entry>

	</feed>