Основные правила безопасности

Дмитрий Левин

Введение.

Человек устроен таким образом, что задумывается о вопросах безопасности только после того, как почувствовал на себе последствия небрежного отношения к этой проблеме.

Применительно к компьютерной безопасности, зачастую только авария системы либо потеря важных данных заставляет вспомнить о том, что этого можно было легко избежать, следуя несложным правилам:

  •  Своевременно обновляйте программное обеспечение. Авторы дистрибутива прилагают максимум усилий к выявлению и исправлению ошибок, затрагивающих безопасность системы. Подпишитесь на список рассылки [email protected], чтобы быть вовремя проинформированным о новых версиях программ, исправляющих ошибки в сфере безопасности.
  •  Следуйте разумной политике в использовании паролей для пользователей. Не используйте пароли, про которые утилита passwd сообщает, что они плохие.
  •  Не работайте привилегированным пользователем.
  •  Не запускайте те сервисы, которыми никто не будет пользоваться.
  •  Следуйте основным правилам сетевой безопасности:
  •  Настройте firewall между своим компьютером и остальной сетью, а также между корпоративной сетью и интернетом.
  •  Используйте защищенные протоколы для передачи данных, такие как IPSEC (IP Security) и SSH (Secure Shell).
  •  Не используйте электронную почту для передачи конфиденциальной информации; если использование электронной почты для этих целей необходимо, например, ввиду отсутствия технической возможности применения защищенных протоколов передачи данных, то воспользуйтесь GnuPG для подписи и шифрования почтовых сообщений.
  •  Используйте различные пароли к локальным ресурсам и ресурсам, расположенным на удаленных серверах с тем, чтобы пароли к локальным ресурсам не покидали пределов локальной сети. 
  •  Помните также, что авторы дистрибутива постарались сделать вашу систему безопасной "из коробки" и не ломайте эту защиту не подумав.

Почему нельзя работать с правами root.

Ни для кого не секрет, что Linux является многопользовательской операционной системой. Это значит, что она разработана в расчете на одновременную работу нескольких пользователей. При этом всякая будничная работа под Linux, не являющаяся системным администрированием, может и должна выполняться непривилегированными пользователями. Этому правилу необходимо следовать для того, чтобы  вероятность того, что Ваша случайная ошибка испортит всю систему,была сведена к минимуму;

К сожалению, немалая часть ПО написана безграмотно с точки зрения security. Запуская такие программы непривилегированным пользователем, Вы тем самым автоматически усложняете процедуру вторжения в Вашу систему потенциальных взломщиков.

В Linux-Mandrake RE настройки для пользователя root определяются спецификой его задач, а потому не приспособлены для повседневной работы и лишь ограниченно локализованы.

Настройка sudo.

Sudo - это программа, разработанная в помощь системному администратору и позволяющая делегировать те или иные привилегированные ресурсы пользователям, с ведением протокола работы. Основная идея - делегировать пользователям как можно меньше прав, но при этом ровно столько, сколько необходимо для решения поставленных задач.

Sudo предоставляет возможность пользователям выполнять команды от имени root'а либо других пользователей. Правила, используемые sudo для принятия решения о предоставлении доступа, находятся в файле /etc/sudoers. Язык написания правил для sudo и примеры использования подробно изложены в sudoers(5). Кроме того, пример правил, предоставляющих пользователям, являющимся членами группы rpm, возможность устанавливать, обновлять и удалять пакеты в системе, приведен в файле /usr/share/doc/sudo-1.6.3p6/rpm.sudoers.

Для редактирования файла /etc/sudoers следует использовать программу visudo, которая проверяет синтаксис и тем самым позволяет избежать ошибок в правилах.

В большинстве случаев грамотная настройка sudo делает работу root'ом ненужной.

Настройка firewall.

Firewall является, пожалуй, наиболее важной компонентой в системе защиты внутренней сети от вторжений извне и регулирования доступа пользователей внутренней сети к внешним ресурсам.

Создание firewall'а начинается с определения политики безопасности в той сети, для которой он разрабатывается. Для этого:

  •  определите используемые сервисы;
  •  определите группы пользователей;
  •  определите, к каким сервисам какие группы должны иметь доступ;
  •  объявите все остальные формы доступа запрещенными.

Как только политика безопасности сети определена, можно приступать к созданию правил для конкретного firewall'а. В случае ядра из серии 2.2 синтаксис правил называется ipchains, а для ядра из серии 2.4 - iptables.

Сами правила можно создавать как вручную, так и с помощью вспомогательных утилит конфигурирования, например, gfcc.

Рекомендации по построению политики безопасности сети, а также подробную документацию по ipchains и iptables можно найти в

ipchains(8), iptables(8)

/usr/share/doc/ipchains-1.3.10/

/usr/share/doc/HOWTO/HTML/en/Firewall-HOWTO.html

Secure Shell.

Одна из самых распространенных задач, возникающих при работе в сети - удаленный shell-доступ к другим компьютерам и предоставление такого доступа.

Для решения этой задачи используется ставший уже традиционным протокол SSH (Secure Shell). В отличие от устаревших протоколов, таких как telnet и rsh/rlogin/rcp, которые передают данные прямым текстом и подвержены обыкновенному прослушиванию и различным атакам, SSH реализует соединение с удаленным компьютером, защищающее от

  •  прослушивания данных, передаваемых по этому соединению;
  •  манипулирования данными на пути от клиента к серверу;
  •  подмены клиента либо сервера путем манипулирования IP-адресами, DNS либо маршрутизацией.

В дополнение к отличным характеристикам в области обеспечения безопасного клиент-серверного соединения, SSH обладает следующими возможностями:

  •  сжатие передаваемых данных;
  •  туннелирование каналов внутри установленного соединения, а также туннелирование соединений с X-сервером;
  •  широкая распространенность: существуют реализации SSH для самых различных аппаратных платформ и операционных систем.

OpenSSH - это входящая в дистрибутив реализация SSH, поддерживающая версии 1.3, 1.5 и 2.0 протокола SSH, и распространяемая на условиях лицензии BSD. Эта реализация включает в себя

  •  клиентские программы - ssh, scp и sftp - используются для запуска программ на удаленных серверах и копирования файлов по сети;
  •  серверные программы - sshd, sftp-server - используются для предоставления доступа по протоколу SSH;
  •  вспомогательные программы: make-ssh-known-hosts, rescp, ssh-keygen, ssh-add, ssh-agent, ssh-copy-id, ssh-keyscan.

Подробная информация по использованию этих программ содержится в прилагаемых к ним man-страницах.





Free software for free people