20 авг. 2000 г.

Азы linux (для детей) урок 12

Службы

Цель состоит в том, чтобы работало как можно меньше служб. Если количество портов, открытых для внешнего мира, было сведено к минимуму, то это облегчит слежение. Если службы не могут быть отключены в локальной сети, постарайтесь хотя бы отключить их для внешних подключений.
Эмпирическое правило таково, что если вы не узнаете конкретную службу, вы, вероятно, не нуждаетесь в ней. Также имейте в виду, что некоторые службы на самом деле не предназначены для использования через Интернет. Не полагайтесь на то, что запущено все, что должно быть запущено, проверьте, какие сервисы прослушиваются на TCP-портах, используя команду netstat:
[elly@mars ~] netstat -l | grep tcp
tcp     0      0 *:32769                 *:*      LISTEN
tcp     0      0 *:32771                 *:*      LISTEN
tcp     0      0 *:printer               *:*      LISTEN
tcp     0      0 *:kerberos_master       *:*      LISTEN
tcp     0      0 *:sunrpc                *:*      LISTEN
tcp     0      0 *:6001                  *:*      LISTEN
tcp     0      0 *:785                   *:*      LISTEN
tcp     0      0 localhost.localdom:smtp *:*      LISTEN
tcp     0      0 *:ftp                   *:*      LISTEN
tcp     0      0 *:ssh                   *:*      LISTEN
tcp     0      0 ::1:x11-ssh-offset      *:*      LISTEN
Чего следует избегать:
  • exec, rlogin, rsh и telnet просто на всякий случай.
  • X11 на серверах.
  • Отсутствие lp, если ни один принтер физически подключен.
  • Нет MS Windows хостов в сети, не требуется Samba.
  • Не допускайте FTP, если сервер FTP не требуется.
  • Не позволяйте NFS и NIS через Интернет, отключите все сопутствующие службы на автономной установке.
  • Не запускать MTA, если вы не находитесь на почтовом сервере.
  • ...
Остановите запущенные службы с помощью команды chkconfig, скриптов init или путем редактирования конфигурационного файла (x)inetd.

Регулярное обновление

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

Брандмауэры и политики доступа

Что такое брандмауэр (фаервол)?

В предыдущем разделе мы уже упоминали возможности брандмауэра (межсетевого экрана) в Linux. Хотя управление им является одной из задач вашего сетевого администратора, вы должны знать некоторые вещи о фаерволах.
Брандмауэр - не четко определенный термин, он может означать все, что действует как защитный барьер между нами и внешним миром, как правило, Интернет. Брандмауэр может быть встроенным в систему или отдельным приложением, которое обеспечивает подобную функциональность. Или это может быть сочетание компонентов, в том числе различные комбинации аппаратного и программного обеспечения. Межсетевые экраны построены из "правил", которые используются для определения того, чему позволено входить и/или выходить на данной системе или в сети.
После отключения ненужных служб, мы должны ограничить запущенные службы таким образом, чтобы позволить им только минимально необходимые соединения. Прекрасным примером является работа на дому: должно быть разрешено только строго определенное соединение между вашими офисом и дом, соединения с другими машинами в сети Интернет должны быть заблокированы.

Пакетные фильтры

Первой линией обороны является пакетный фильтр, который может просматривать содержимое IP-пакетов и принимать решения исходя из их содержания. Самым популярным является пакет Netfilter, предоставляющий команду iptables, следующее поколение пакетных фильтров для Linux.
Один из самых примечательных усовершенствований в новых ядрах является способность проверять сохранность состояния, при этом сообщается не только о том, что находится внутри пакета, но и обнаруживается, если пакет принадлежит или связан с новым или существующим соединением.
Shoreline Firewall или Shorewall представляет собой интерфейс для доступа к стандартной функциональности брандмауэра в Linux.

Обертки TCP

Упаковка TCP обеспечивает во многом такие же результаты, как и фильтры пакетов, но работает по-другому. Обертка принимает попытки подключения, а затем проверяет файлы конфигурации и решает, следует ли принять или отклонить запрос на соединение. Она контролирует соединения на уровне приложений, а не на сетевом уровне.
TCP-обертки, как правило, используются с xinetd для предоставления имени хоста и основанном на IP-адресе управлении доступа. Кроме того, эти инструменты включают регистрацию и использование возможностей управления, которые легко настроить.
Преимущества оболочек TCP в том, что подключившийся клиент не знает, что используются обертки, и что они работают отдельно от приложений, которые они защищают.
На хосте доступ контролируется в файлах hosts.allow и hosts.deny. Более подробную информацию можно найти в файлах документации обертки TCP в /usr/share/doc/tcp_wrappers[-/] или /usr/share/doc/tcp и в man-страницах для файлов контроля доступа хоста, там же содержатся примеры.

Прокси

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

Доступ к отдельным приложениям

Некоторые серверы могут иметь свои собственные средства контроля доступа. Например, Samba, X Window, Bind, Apache и CUPS. Для каждой службы используются определенные файлы конфигурации.

Файлы журналов

Во всяком случае UNIX-путь фиксации всех видов деятельности на всех видах файлов подтверждает, что "это что-то делает". Конечно, файлы журналов должны регулярно проверяться вручную или автоматически. Межсетевые экраны и другие средства контроля доступа, как правило, создают огромное количество log-файлов, так что проблема заключается в том, чтобы попытаться найти в них только ненормальную активность.

Обнаружение вторжений

Системы обнаружения вторжений (Intrusion Detection Systems - IDS) предназначены поймать то, что, возможно, пропустил брандмауэр. Они могут также быть предназначены для улавливания активной попытки взлома или для обнаружения уже свершившегося вторжения. В последнем случае уже слишком поздно, чтобы предотвратить любое повреждение, но по крайней мере мы осознали проблему на ранней стадии. Существуют два основных типа IDS: защищающие сети и защищающие индивидуальные хосты.
IDS хостов представляют собой утилиты, которые следят за файловой системой на предмет изменений. Системные файлы, которые так или иначе изменились, но не должны были меняться, привлекают к себе внимание. Это говорит о том, что кто-то вошел в систему с правами администратора, и вносит системные изменения.
Обнаруженное вторжений обрабатывается системой, которая видит весь трафик, который пропускает брандмауэр.

Дополнительные советы

Некоторые общеизвестные факты, которые следует иметь в виду:
  • Не входите в систему как администратор. Разработчики UNIX более двух десятилетий назад придумали команду su для дополнительной безопасности.
  • Прямой доступ root всегда опасен и допускает человеческие ошибки, и не важно входите ли вы в систему как root или используете команду su. Поэтому вместо использования su, лучше использовать sudo для выполнения тех команд, которые требуют привилегий, и возвращаться потом к своей среде.
  • Относитесь к паролям серьезно. Используйте теневые пароли. Регулярно изменяйте пароли.
  • Старайтесь всегда использовать SSH или SSL. Избегайте telnet, FTP, E-mail клиентов и других клиентских программ, которые отправляют незашифрованные пароли по сети. Важно не только обеспечить безопасность вашего компьютера, но и безопасность ваших паролей.
  • Ограничьте ресурсы с помощью quota и/или ulimit.
  • Проверяйте подлинность нового ПО, берите его из надежного места/сайта. Проверьте новые пакеты перед установкой.
  • При использовании непостоянного подключения к Интернет, отключайте его, как только вам оно больше не нужно.
  • Запускайте личные службы на незанятых портах, а не тех, которые ожидают возможных атак хакеров.
  • Знайте вашу систему. Спустя какое-то время вы сможете почти чувствовать, когда что-то происходит.

Меня хакнули?

Как вы можете об этом догадаться? Это контрольный список подозрительных событий:
  • Таинственные открытые порты, странные процессы.
  • Системные утилиты (часто используемые команды) ведут себя странно.
  • Войти в систему проблемно.
  • Необъяснимое использование пропускной способности сети.
  • Поврежденные или отсутствующие файлы журналов, странное поведение демона syslog.
  • Интерфейсы в необычных режимах.
  • Неожиданно изменение конфигурационных файлов.
  • Странные записи в файлы истории оболочки.
  • Неизвестные временные файлы.

Восстановление после вторжения

Итак, сохраняйте спокойствие. Затем выполните следующие действия в указанном порядке:
  • Отключите компьютер от сети.
  • Постарайтесь выяснить, насколько это возможно то, каким образом безопасность была нарушена.
  • Создайте резервную копию важных несистемных данных. Если это возможно, сравните эти данные с существующими резервными копиями, сделанными до того как системы была взломана, для обеспечения целостности данных.
  • Переустановите систему.
  • Используйте новые пароли.
  • Восстановление резервные копии данных.
  • Примените все доступные обновления.
  • Пересмотреть систему: заблокируйте ненужные службы, проверьте правила брандмауэра и другие политики доступа.
  • Подключитесь к сети.