The OpenNET Project / Index page

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

NetBSD: безопасность процессов и сервисов (netbsd proccess security nmap ids)


<< Предыдущая ИНДЕКС Правка src / Печать Следующая >>
Ключевые слова: netbsd, proccess, security, nmap, ids,  (найти похожие документы)
From: Михаил Сгибнев <mixa(@).dreamcatcher.ru> Date: 2006-09-13 15:08:55 Subject: NetBSD: безопасность процессов и сервисов
Перевод: Сгибнев Михаил Этот документ охватывает вопросы обеспечения безопасности процессов и сервисов для операционной системы NetBSD. Большинство информации в этом документе может быть также отнесено и к другим BSD системам.

NetBSD, защита процессов и сервисов: Введение

Начиная с версии NetBSD 1.5 в состав системы входит полный набор, встроенных по умолчанию в ядро, инструментов системного и сетевого администратора.

С 1.5 release установка по умолчанию стала значительно более безопасной, что делает систему более привлекательной.

Наряду с защищенностью, NetBSD - также наиболее переносимая операционная система в мире и при этом сохраняет высокую эффективность, имеет множество дополнительных возможностей и невероятно стабильна.

Цель этого документа

Уже существует большое количество документации по настройке NetBSD firewalls, IP network address translation (IPNAT) и Secure Shell, но все они разрознены и целью данного документа является объединение и некоторая детализация накопленного материала.

Оглавление

  1. Краткий обзор основных компонентов
  2. Конфигурирование NetBSD Secure Shell
  3. Конфигурирование IP Filter
  4. IP Network Address Translation
  5. Конфигурация и запуск служб
  6. Дополнительные/Альтернативные продукты
  7. Примеры файлов конфигурации
  8. Дополнительные ссылки

Краткий обзор основных компонентов

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

Пример установки

Для большей наглядности, давайте представим сеть, с которой нам предстоит в дальнейшем работать: Эта схема довольно обычна и весьма распространена в организациях, получающих доступ в сеть через своего Internet - провайдера.

Конечная цель фаервола состоит в том, чтобы позволить клиентам из сети 172.16.0.0 взаимодействовать с Internet.

Чего мы хотим?

Нам необходимо передать определенный трафик из внутреннего периметра, доступ к самому фаерволу будет осуществляться через SSH.

Данная таблица описывает взаимодействие внутренних сетевых сервисов, фаервола и Internet. Обратите внимани на то, что мы должны иметь возможность транслировать трафик служб DNS, SMTP, HTTP и FTP. Следует также учесть, что правила IPFILTER для создания соединения и передачи трафика очень похожи.

Больше чем один способ...

Примите во внимание, что есть много способов решения данной задачи. Например, такая: В демилитаризованной зоне можно было бы разместить общедоступные серверы, сервисы FTP и т.д. В нашем примере мы не будем использовать ДМЗ, так как у нас нет никаких серверов, которые должны быть доступны из Internet, например DNS сервера, являющегося главным для какой-либо зоны.

Конфигурирование NetBSD Secure Shell

Начиная с NetBSD 1.5 Secure Shell был включен в состав операционной системы. Заданная по умолчанию конфигурация sshd сделана весьма хорошо, однако, давайте разберем настройку демона ssh, дабы иметь об этом представление.

Настройка /etc/ssh.conf клиента

Как видно, названия параметров весьма красноречивы и однозначны.

Настройка /etc/ssh.conf сервера

Файл конфигурации сервера также весьма хорош даже с параметрами по умолчанию. Этот файл немного жестче, по сравнению с клиентским, например запрещен X11 forwarding, что оправдано для фаервола. Для того, чтобы включить X11 forwarding, необходимо исправить в файле конфигурации следующие строки: Администратору нечего редактировать в файле конфигурации sshd, пусть все остается по умолчанию.

Конфигурирование IP Filter

NetBSD использует ipfilter как фаервол, заданный по умолчанию. С NetBSD 1.5, ipfilter интегрирован в ядро, однако, мы рассмотрим случай, как заставить работать ipfilter и ipnat на более ранних релизах.

Понимание файла ipf.conf

Файл, который управляет правилами для ipfilter обычно называется /etc/ipf.conf. В этом разделе мы пробежимся через параметры настройки, которые нам необходимы, однако несравненно более авторитетные документы могут быть найдены на http://www.obfuscation.org/ipf/ во всем разнообразии.

В основном, ipfilter оперирует двумя основными принципами:
  1. Соответствие текущей строке
  2. Последнее правило заменяет предидущие
Вот пример самого простого ipf.conf: Согласно первой строке, разрешен любой трафик на любом интерфейсе. Во второй строке, однако, весь трафик на любом интерфейсе блокирован.

Синтаксис

Главным образом, синтаксис ipfilter прост и почти естественен. Для того, чтобы пропустить трафик используются связки pass in и pass out. Интерфейс может быть как определен, так и не определен: И для определенного интерфейса: Все замечательно. Взглянем на конфигурацию, которая нам нужна. Мы уже знаем, что нам необходимо пропускать и разрешать соединения по SSH. Рассмотрим ключевые слова:

Пример написания

Взглянем на фесь файл вооруженным взглядом.

IP Filter для модемного подключения

Модемное соединение отличает то, что адрес интерфейса каждый раз назначается удаленной стороной и обычно случайным образом. Это, своего рода, вызов ipfilter!

В случае динамического адреса правила фильтрации должны быть написаны с несколько низжей степенью безопасности. Другими словами, ipfilter не может использовать в правилах IP адрес, хотя использование имени интерфейса тоже дает достаточную гарантию безопасности. (Пр.п - у PF данная возможность есть, сам переводил FAQ. То, что я перевожу сейчас или слишком старо, или действительно ipfilter не может использовать динамический адрес в правилах фильтрации?)

Вот пример правил, использующих IP адрес: Для модемного соединения мы должны заменить набор правил на это: Ну и что хорошего мы вынесли из этой главы?
Во первых - блокируйте все лишнее, во вторых - если не используется какая-либо служба и не предполагается доступ ее из Internet, разрешайте только входящий трафик. Не используйте для соединения с системой ничего, кроме ssh.

Дополнительная информация

Я строго рекомендую прочитать ipf howto для получения более детальной информации и изучения различных стратегий фильтрации. (Пр.п - я тоже)

IP Network Address Translation

Начиная с NetBSD 1.5, ipnatтакже включен по умолчанию в ядро. Задачей IPNAT является взять исходный IP адрес и транслировать его в адрес другого сетевого интерфейса. Это также известно как masquerading.

Как должен выглядеть наш /etc/ipnat.conf

Это очень просто: Первым правилом мы проксируем ftp через интерфейс ep0. Следующая строка разрешает tcp/udp, устанавливая соответствие между внутренним адресом и внешним адресом. Последняя строка просто маскарадит адреса сети 172.16.0.0/16 в адрес 216.68.250.60. Этих правил вполне достаточно для наших целей.

Другие интересные вещи

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

Кончно, большинство администраторов разместило бы общедоступные сервисы (например вэб-сервер) в пределах ДМЗ и использовали бы ipfilter, разрешив к нему только http и ssh.

Но если у Вас больше, чем один внешний адрес? Также все просто: Наконец, диапазон portmap может быть откорректирован, если Вы чувствуете в этом необходимость.

ipnat и модемное соединение

Очень много домашних пользователей используют модемное соединение, для связи с Internet и у большинства из них - динамчески назначаемый IP адрес. Может показаться, что мы не сможем использовать ipnat, которому требуется указание внешнего IP адреса для работы, но это только кажется... В случае постояннгого соединения мы делаем так: Это правило говорит нам, что все адреса сети 172.16.0.0/16 транслируются в любые адреса сети 216.68.0.0/16. Учитывая тот факт, что при модемном соединении всегда назначается один адрес, записываем правила так: В этих правилах мы указываем осуществлять трансляцию сети 172.16.0.0 в один единственный адрес, который будет принадлежать внешнему интерфейсу.

Конфигурация и запуск служб

Ну, мы готовы к запуску. Вот то, что должно работать на машине, выполняющей функции фаервола: Дополнительно, может потребоваться включить форвардинг пакетов в ядре.

Включение IP Forwarding

Включаем форвардинг, используя sysctl: Для того, чтобы сохранить изменения полсле перезагрузки, внесите изменения в /etc/sysctl.conf: Для релизов NetBSD, младших, чем 1.5 необходимо в ядре установить поддержку ipfilter: Если Вы хотите, чтобы был доступен ipmon:

/etc/defaults/rc.conf и /etc/rc.conf

Начиная с NetBSD 1.5, все rc настройки, принимаемые по умолчанию, находятся в файле /etc/defaults/rc.conf. Размещение пользователем в файле /etc/rc.conf управляющих инструкций, имеет приоритет над /etc/defaults/rc.conf. Целью этого является сделать систему более стабильной , так как ранее все настройки располагались в /etc/rc.conf и могли быть по неосторожности или в ходе обновлений привести к краху системы.

Что необходимо разместить в /etc/rc.conf: На i386 платформах также стоит разрешить wscons:

Запуск служб

Есть два пути активации сервисов:
  1. Перезагрузка системы
  2. Запуск rc скриптов
Я предпочитаю запуск сервисов вручную, чтобы убедиться в их работоспособности и после этого перезапустить систему, для того, чтобы выяснить - происходит ли нормальный запуск во время начальной загрузки.

Запуск "вручную"

Зпуск любого сервиса осуществляется очень просто: Также сервис может быть и остановлен: Или перезапущен: Для запуска нашей системы сетевой защиты нам необходимо выполнить: Запуск sshd и ipmon может производиться в произвольном порядке, но ipfilter должен быть запущен раньше ipnat. Дополнительные/Альтернативные продукты NetBSD 1.5 уже достаточно укомплектовано средствами мониторинга и контроля информационной безопасности, но системный администратор наверняка захочет посмотреть средства сторонних разработчиков.

Portsentry

Portsentry - довольно обширный инструмент. (Пр.п - достаточно подробную статью на русском можно найти здесь - http://linuxcenter.ru:8080/lib/security/) Будучи установленной, данный инструмент отслеживает все попытки соединения с хостом и сканирования портов хоста.

Установить Portsentry можно из системы портов: Файл конфигурации будет находиться в:

Конфигурация портов:

В файле конфигурации есть три набора портов, для TCP и UDP соответственно, выбор производится раскомментированием, по умолчанию используется средний набор.

Обнаружение Advanced Stealth

Для этого необходимо указать номера портов, которые portsentry будет мониторить в расширенном режиме: Также можно исключить некоторые порты (типа NetBIOS)

Файлы конфигурации

В NetBSD эти файлы живут в /usr/pkg/*:

Варианты реакции:

# 0 = Do not block UDP/TCP scans. # 1 = Block UDP/TCP scans. # 2 = Run external command only (KILL_RUN_CMD)

Сброс маршрута:

Строка, сбрасывающая маршрут для NetBSD уже раскомментирована: Отметим, что для некоторых систем может быть изменен набор правил фильтрации, например для ipfw FreeBSD: Возможно Вы используете другой тип сетевой защиты, но portsentry допускает использование синтаксиса Вашего пакетного фильтра.

TCP Wrappers:

В этом разделе находится текст, помещенный в /etc/hosts.deny.

Внешние команды:

Внешняя команда или скрипт могут быть вызваны следующим образом: Здесь также может стоять и команда, изменяющая правила фильтраци.

Значение счетчика сканирования

Этот параметр указывает порог срабатывания portsentry. По умолчанию стоит 0, но 1 позволяет более-менее исключить ложные срабатывания.

Port Banner

Этот параметр описывает сообщение, возвращаемое в ответ на попытку подключиться к порту.

NMAP

NMAP - это сканер портов. Позволяет сканировать отдельные хосты и диапазоны сетей. В настоящее время данная утилита доступна через систему портов.

Устанавливаем:

<Используем:

У NMAP очень много вариантов использования, поэтому мы рассмотрим только 3:
  1. Сканирование одного хоста
  2. Сканирование группы хостов
  3. Сканирование NetBSD firewall

Сканирование одного хоста:

В качестве примера будем использовать очень небезопасную машину внутри сети:

Сканирование группы хостов

Тоже ничего сложного: После выполнения задания в выходном файле будет находиться информация по отрытым портам работающих машин в данной сети.

Сканирование NetBSD firewall

Ну и наконец - гвоздь программы: Время сканирования впечатляет...

<< Предыдущая ИНДЕКС Правка src / Печать Следующая >>

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




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

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