книга использование kali linux

Книга «Kali Linux. Тестирование на проникновение и безопасность»

Структура издания

Глава 1 «Установка и настройка Kali Linux». В этой главе вы познакомитесь с Kali Linux 2018. Особое внимание уделяется различным методам использования системы. Глава написана так, что даже неопытный пользователь сможет запустить Kali Linux с Live DVD; установить и настроить систему на жестком диске, SD-карте, подключенном к USB-порту флеш-накопителе; установить Kali Linux на виртуальной машине. Кроме того, используя AWS, вы можете установить Kali Linux в облаке.

Глава 2 «Создание испытательной лаборатории». В этой главе рассказывается, как создать безопасную виртуальную среду, в которой можно на законных основаниях выполнять разработанные для каждой главы практические примеры. В главе также приведены подробные инструкции по настройке таких виртуальных машин, как Metasploitable 2 и Metasploitable 3, которые будут использоваться как целевые машины в экспериментах на проникновение (пентестах).

Глава 3 «Методология тестирования на проникновение». Здесь представлены различные методологии тестирования с целью планирования и определения масштабов пентестов. Вы также найдете описание практических шагов и технологий, предназначенных для испытаний на проникновение.

Глава 4 «Получение отпечатка и сбор информации». На первом этапе тестирования на проникновение применяется несколько распространенных инструментов, используемых для разведки, включая взлом базы данных Google. В этом издании вы найдете новую информацию о таких инструментах для автоматического сбора информации, как Devploit, RedHawk и Shodan.

Глава 5 «Методы сканирования и уклонения». В этой главе рассказывается, как с помощью мощнейшего инструмента Nmap обнаружить целевые объекты, узлы и сервисы. С помощью Netdiscover и Striker выполняется автоматизированное сканирование и сбор информации. Кроме того, в этой главе рассматривается такой инструмент, как Nipe, предоставляющий пользователям конфиденциальность и анонимность.

Глава 6 «Сканирование уязвимостей». Здесь на практических примерах показано, как найти уязвимости в целевой машине. Приводятся пошаговые инструкции по использованию таких мощных автоматизированных инструментов для оценки уязвимостей, как Nessus 7 и OpenVAS. Вы найдете новую информацию о Linux-инструменте Lynis, предназначенном для сканирования и проверки уязвимостей, и инструменте SPARTA, назначение которого — оценка и перечисление уязвимостей. Работа всех инструментов проводится в испытательной лаборатории, и гарантируется, что оценки реального типа точно моделируются.

Глава 7 «Социальная инженерия». Обсуждаются основные принципы и методы, применяемые профессиональными социальными инженерами для манипуляции людьми, чтобы те разглашали информацию или совершали иные действия.

Глава 8 «Целевая эксплуатация». В этой главе вы будете применять методы и инструменты для эксплуатации компьютерных систем (эксплойты). Эксплойты используют уязвимости и недостатки в системах, что дает возможность пользователю получить доступ к системе.

Глава 9 «Повышение привилегий и поддержание доступа». Здесь вы узнаете, как повысить уровень доступа и взломать другие учетные записи в системе. Взломанные учетные записи будут использоваться для сохранения доступа к системе и получения дальнейшего доступа к сети.

Глава 10 «Тестирование веб-приложений». В этой главе мы рассмотрим несколько основных инструментов, предназначенных для тестирования веб-приложений, а также облачные приложения, так как они основаны на тех же протоколах и используют многие из тех же платформ.

Глава 11 «Тестирование беспроводных сетей на проникновение». В главе рассматривается настройка инструментов, предназначенных для захвата данных, необходимых для взлома беспроводных сетей и получения к ним доступа, включая настройку поддельных точек доступа.

Глава 12 «Мобильное тестирование на проникновение с Kali NetHunter». В этой главе представлен практический подход к тестированию на проникновение с помощью мобильных устройств. Подробно описывается установка и настройка необходимых приложений, а также демонстрируется процесс сканирования и оценки уязвимостей, атак типа «человек посередине» и беспроводных атак, которые могут выполняться мобильными приложениями.

Глава 13 «PCI DSS: сканирование и тестирование на проникновение». Здесь вводится стандарт, описываются шесть задач и 12 требований, приводится обзорный тест на проникновение. Акцент делается на PCI DSS версий 11.3.1 и 11.3.2.

Глава 14 «Инструменты для создания отчетов о тестировании на проникновение». Обсуждаются различные типы отчетов и процедуры, которые проводятся по окончании тестирования, а также демонстрируется использование платформы Dradis для организации и полного документирования теста на проникновение.

Отрывок. Методология тестирования на проникновение

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

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

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

Методология тестирования на проникновение

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

Руководство по тестированию OWASP

Open Web Application Security Project (OWASP) — этот проект объединил разработчиков программных средств с открытым исходным кодом. Люди, входящие в данное сообщество, создают программы для защиты веб-приложений и веб-сервисов. Все приложения создаются с учетом опыта борьбы с программами, наносящими вред веб-сервисам и веб-приложениям. OWASP — это отправная точка для системных архитекторов, разработчиков, поставщиков, потребителей и специалистов по безопасности, то есть всех специалистов, которые принимают участие в проектировании, разработке, развертывании и проверке на безопасность всех веб-сервисов и веб-приложений. Другими словами, OWASP стремится помочь создавать более безопасные веб-приложения и веб-сервисы. Главным преимуществом руководства по тестированию OWASP является то, что по представленным результатам тестов можно получить всестороннее описание всех угроз. Руководство по тестированию OWASP определяет все опасности, которые могут повлиять на работу как системы, так и приложений, и оценивает вероятность их появления. С помощью описанных в OWASP угроз можно определить общую оценку выявленных проведенным тестированием рисков и выработать соответствующие рекомендации по устранению недостатков.

Руководство по тестированию OWASP в первую очередь сосредотачивает внимание на следующих вопросах.

PCI-руководство по тестированию на проникновение

Здесь собраны нормативы для компаний, соответствующих требованиям PCI (Payment Card Industry — индустрия платежных карт). Причем в руководстве вы найдете нормативы не только по стандарту PCI v3.2. Оно создано Советом безопасности по стандартам PCI, в котором определены методы тестирования на проникновение в рамках программ управления уязвимостями.

Стандарт PCI Data Security Standard (PCI DSS) версии 3.2 был выпущен в апреле 2016 года Советом по стандартам безопасности индустрии платежных карт (PCI SSC). После обновления стандарта требования были уточнены, появились дополнительные указания и семь новых требований.

Для устранения проблем, связанных с нарушениями секретности личных данных владельцев карт, а также для защиты от существующих эксплойтов в стандарт PCI DSS V. 3.2 были включены различные изменения, большинство из которых относятся к поставщикам услуг. В эти изменения были добавлены новые требования к тестированию на проникновение, согласно которым тестирование с сегментацией для поставщиков услуг выполнялось по крайней мере каждые шесть месяцев или после любых значительных изменений в элементах управления/методах сегментации. Кроме того, в этом стандарте содержится несколько требований, обязывающих поставщиков услуг в течение года непрерывно отслеживать и поддерживать критически важные элементы управления безопасностью.

Стандартное проведение тестов на проникновение

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

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

Ниже в качестве основы для выполнения тестов на проникновение приведены основные разделы рассматриваемого нами стандарта.

NIST 800-115

Специальное издание Национального института стандартов и технологий (National Institute of Standards and Technology Special Publication, NIST SP 800-115) является техническим руководством по тестированию и оценке информационной безопасности. Публикация подготовлена Лабораторией информационных технологий (Information Technology Laboratory, ITL) в NIST.

В руководстве оценка безопасности трактуется как процесс определения того, насколько эффективно оцениваемая организация отвечает конкретным требованиям безопасности. При просмотре руководства вы увидите, что в нем содержится большое количество информации для тестирования. Хотя документ редко обновляется, он не устарел и может послужить в качестве справочника для построения методологии тестирования.

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

Стандарт NIST 800-115 предоставляет большой план для испытаний на проникновение. Он позволяет убедиться, что программа тестирования на проникновение соответствует рекомендациям.

Руководство по методологии тестирования безопасности с открытым исходным кодом
OSSTMM — документ, довольно сложный для чтения и восприятия. Но он содержит большое количество актуальной и очень подробной информации по безопасности. Это также самое известное руководство по безопасности на планете с примерно полумиллионом загрузок ежемесячно. Причина такой популярности в следующем: эти инструкции примерно на десятилетие опережают все остальные документы в индустрии безопасности. Цель OSSTMM — в развитии стандартов проверки безопасности Интернета. Данный документ предназначен для формирования наиболее подробного основного плана для тестирования, что, в свою очередь, обеспечит доскональное и всестороннее испытание на проникновение. Независимо от других организационных особенностей, таких как корпоративный профиль поставщика услуг по тестированию на проникновение, это испытание позволит клиенту убедиться в уровне технической оценки.

Фреймворк: общее тестирование на проникновение

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

2. Сканирование и перечисление.

3. Получение доступа.

4. Повышение привилегий.

5. Поддержание доступа.

6. Заметание следов.

7. Составление отчета.

Рассмотрим каждый этап более подробно.

Разведка

Это первый и очень важный этап в тесте на проникновение. На него может уйти немало времени. Многие испытатели делят данный этап на две части: активную и пассивную разведку. Я же предпочитаю эти два этапа объединить, так как полученные результаты скажут сами за себя.

Разведка (рекогносцировка) — это систематический подход, когда вы стараетесь обнаружить расположение и собрать максимально возможное количество информации о целевой системе или машине. Это еще называется сбором следов.

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

Нам, конечно, может быть полезным каждый бит информации. Но у нас должна быть приоритетная цель. При этом учтите, что собранные данные, которые на текущем этапе могут показаться ненужными, позже могут пригодиться.

Сначала для нас будет очень важна следующая информация.

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

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

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

Для Хаброжителей скидка 25% по купону — Kali Linux
По факту оплаты бумажной версии книги на e-mail высылается электронная книга.

Источник

Книга «Kali Linux от разработчиков»

книга использование kali linux Привет, Хаброжители! Авторы шаг за шагом познакомят вас с основами и возможностями Kali Linux. В книге предложен краткий курс работы с командной строкой Linux и ее концепциями, описаны типичные сценарии установки Kali Linux. Прочитав эту книгу, вы научитесь конфигурировать, отлаживать и защищать Kali Linux, а также работать с мощным менеджером пакетов дистрибутива Debian. Научитесь правильно устанавливать Kali Linux в любых окружениях, в том числе в крупных корпоративных сетях. Наконец, вам предстоит познакомиться и со сложными темами: компиляцией ядра, созданием собственных образов ISO, промышленным шифрованием и профессиональной защитой конфиденциальной информации.

Глава 7. Защита и контроль Kali Linux

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

7.1. Определение политики безопасности

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

Лучше всего изначально определить конкретную цель. Правильным подходом к решению этой задачи будут ответы на следующие вопросы.

1. Что вы пытаетесь защитить? Политика безопасности будет отличаться в зависимости от того, что вы хотите защитить: компьютеры или данные. В последнем случае вам также нужно знать, какая именно информация требует защиты.

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

3. От кого вы пытаетесь защититься? Меры безопасности будут совершенно разными для защиты от опечатки простого пользователя системы и защиты от определенной группы злоумышленников.

Термин «риск» обычно используется для общего определения указанных факторов: что нужно защитить, что следует предотвратить и по чьей вине это может произойти. Для моделирования риска требуются ответы на все три вопроса. Основываясь на полученной модели, можно разработать политику безопасности и реализовать ее с помощью конкретных действий.

Брюс Шнайер, мировой эксперт по вопросам безопасности (не только компьютерной), пытается противостоять одному из основных мифов безопасности, действуя под девизом: «Безопасность — это процесс, а не продукт». Активы, которые нуждаются в защите, со временем меняются, так же как и угрозы и средства, доступные потенциальным злоумышленникам. Даже если политика безопасности изначально была идеально разработана и реализована, вы никогда не должны останавливаться на достигнутом. Компоненты риска развиваются, и методы его предотвращения должны развиваться соответственно.

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

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

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

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

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

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

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

7.2. Возможные меры безопасности

Как было сказано выше, нет единого ответа на вопрос о том, как защитить Kali Linux. Все зависит от способа его использования и от того, что именно вы пытаетесь защитить.

Если вы используете Kali Linux на общедоступном сервере, то стоит защитить сетевые сервисы, изменив все пароли по умолчанию, которые могут быть настроены, и, вероятно, путем ограничения доступа к ним с помощью брандмауэра (разделы 7.3 «Защита сетевых сервисов» и 7.4 «Брандмауэр или фильтрация пакетов» соответственно, см. ниже).

Если вы передаете данные учетных записей пользователей непосредственно на сервере либо на одном из сетевых сервисов, убедитесь, что установили надежные пароли (они должны выдерживать атаки полным перебором). В то же время можно настроить программу fail2ban, которая значительно усложняет взлом паролей полным перебором по сети (отфильтровывая IP-адреса, превышающие лимит неудачных попыток входа в систему). Установить fail2ban можно с помощью команды apt update и затем apt install fail2ban.

Если вы используете веб-сервисы, настраивайте их работу через протокол HTTPS, чтобы сетевые посредники не отслеживали ваш трафик (который может включать файлы аутентификации cookie).

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

Реальный риск часто возникает, когда вы едете от одного клиента к другому. Например, ваш ноутбук может быть украден во время поездки или изъят таможенниками. Вот почему стоит использовать полное шифрование диска (см. подраздел «Установка на полностью зашифрованную файловую систему» раздела 4.2) и, возможно, также настроить функцию nuke (см. врезку «Установка пароля самоуничтожения для дополнительной безопасности» в главе 9): данные, которые вы собрали во время вашей работы, являются конфиденциальными и требуют максимальной защиты.

Вам также могут потребоваться правила брандмауэра (см. ниже раздел 7.4), но не для той же цели, что и на сервере. Вероятно, вы захотите запретить весь исходящий трафик, кроме трафика, генерируемого вашим VPN-доступом. Эти настройки подобны настройкам безопасности сети, так что когда VPN перестанет работать, вы сразу же заметите это (вместо того, чтобы возвращаться к локальному сетевому доступу). Таким образом, вы не выдаете IP-адреса своих клиентов при просмотре веб-страниц или других сетевых действиях. Кроме того, если вы выполняете локальное внутреннее взаимодействие, то лучше всего непрестанно контролировать свою деятельность, чтобы уменьшить шум, создаваемый в сети, который может привлечь внимание клиентов и их системы защиты.

7.3. Защита сетевых сервисов

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

1. По умолчанию у них нет брандмауэра, поэтому, если они прослушивают все сетевые интерфейсы, то в значительной степени доступны для общественности.

2. Некоторые сервисы не имеют учетных данных и позволяют устанавливать их при первом использовании; другие имеют стандартные (и, следовательно, широко известные) учетные данные. Убедитесь, что вы (пере)установили пароль, который известен только вам.

3. Многие сервисы выпускаются с правами root (с полными правами администратора), поэтому последствия несанкционированного доступа или нарушения безопасности обычно являются серьезными.

Мы не будем перечислять здесь все инструменты, которые поставляются с учетными данными по умолчанию. Вместо этого вы должны проверить файл README.Debian для соответствующих пакетов, а также страницы docs.kali.org и tools.kali.org с целью узнать, нуждается ли сервис в специальном обслуживании, чтобы обеспечить необходимую безопасность.

Если вы запускаетесь в режиме реального времени, то паролем учетной записи root является toor. Таким образом, вы не должны включать SSH перед сменой пароля учетной записи root или прежде чем настроить в конфигурации учетной записи запрет входа на основе пароля.

Обратите внимание также на известный факт, что проект BeEF (из уже установленного пакета beef-xss) имеет учетные данные по умолчанию: имя пользователя beef и пароль beef, которые заданы «принудительно» в файле конфигурации.

7.4. Брандмауэр или фильтрация пакетов

Брандмауэр — это часть компьютерного оборудования с аппаратным обеспечением, программным обеспечением или и тем и другим, которая анализирует входящие или исходящие сетевые пакеты (приходящие или исходящие из локальной сети) и пропускает только те, которые соответствуют определенным предварительно заданным условиям.

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

В ядро Linux встроен брандмауэр netfilter. Не существует единого решения для настройки любого брандмауэра, так как требования сети и пользователя разнятся. Тем не менее вы можете контролировать netfilter из пользовательского пространства с помощью команд iptables и ip6tables. Разница между последними заключается в том, что первая работает для сетей IPv4, тогда как вторая функционирует на IPv6. Поскольку оба стека сетевых протоколов, вероятно, будут работать в течение многих лет, то оба инструмента должны использоваться параллельно. Вы также можете применять отличную утилиту fwbuilder на основе графического интерфейса, который обеспечивает графическое представление правил фильтрации.

Однако если вы решили настроить netfilter (реализация брандмауэра Linux), то рассмотрим подробнее, как он работает.

Поведение сетевого фильтра Netfilter

Фильтр Netfilter использует четыре различные таблицы, в которых хранятся правила, регламентирующие три вида операций над пакетами:

1. filter касается правил фильтрации (принятие, отказ или игнорирование пакета);

2. nat (Network Address Translation — трансляция сетевых адресов) касается трансляции исходных или целевых адресов и портов пакетов;

3. mangle относится к другим изменениям в IP-пакетах (включая поле ToS (Type of Service — тип сервиса) и опции);

4. raw допускает другие изменения в пакетах, проведенные вручную, до того как они (пакеты) достигнут системы отслеживания соединения.

Каждая таблица содержит списки правил, называемые цепями. Брандмауэр использует стандартные цепи для обработки пакетов на основе предопределенных условий. Администратор может создавать другие цепи, которые будут применяться только при передаче одной из стандартных цепей (прямо или косвенно).

Таблица filter содержит три стандартные цепи:

1. INPUT — касается пакетов, целью которых является сам брандмауэр;

2. OUTPUT — относится к пакетам, исходящим от брандмауэра;

3. FORWARD — относится к пакетам, проходящим через брандмауэр (который не является ни их источником, ни местом назначения).

Таблица nat также имеет три стандартные цепи:

1. PREROUTING — для изменения пакетов сразу после их поступления;

2. POSTROUTING — для изменения пакетов, когда они готовы к отправке;

3. OUTPUT — для изменения пакетов, сгенерированных самим брандмауэром.

Эти цепи изображены на рис. 7.1.

книга использование kali linux

1. ACCEPT (ПРИНЯТЬ) — разрешить пакету двигаться далее по своему маршруту.

3. DROP (СБРОСИТЬ) — удалить (игнорировать) пакет.

4. LOG (ЗАРЕГИСТРИРОВАТЬ) — зарегистрировать (через демон syslogd) сообщение с описанием пакета. Обратите внимание, что это действие не прерывает обработку, а выполнение цепи продолжается со следующего правила, поэтому регистрация отклоненных пакетов требует как правила LOG, так и REJECT/DROP. Общие параметры, связанные с регистрацией, включают:

6. имя_цепи — перейти к указанной цепи и оценить ее правила.

10. MASQUERADE (МАСКИРОВКА) (только в таблице nat) — применить маскировку (особый случай Source NAT).

Другие действия, особенно те, которые касаются таблицы mangle, не вошли в данный подраздел. Их полный список вы найдете на страницах руководств iptables (8) и ip6tables (8).

Синтаксис команд iptables и ip6tables

Ниже перечислены основные параметры для взаимодействия с цепями.

Существует множество доступных параметров для iptables и ip6tables, и для их освоения потребуется немало времени. Однако один из них, который вы будете использовать чаще всего, — это параметр, блокирующий вредоносный сетевой трафик с хоста или диапазона хостов.
Например, чтобы незаметно блокировать входящий трафик с IP-адреса 10.0.1.5 и 31.13.74.0/24 класса C подсети, нужно выполнить ряд команд:

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

Существуют более специфические условия, зависящие от общих условий, описанных выше. Для получения дополнительной информации обратитесь к руководствам iptables (8) и ip6tables (8).

Создание правил

Для каждого нового правила требуется один вызов iptables или ip6tables. Ввод этих команд вручную может быть утомительным, так что вызовы обычно хранятся в сценарии, и, как следствие, система автоматически настраивается одинаково при каждой загрузке компьютера. Данный сценарий можно написать вручную, но вам может быть также интересно подготовить его с помощью высокоуровневого инструмента, такого как fwbuilder.

Принцип прост. На первом этапе опишите все элементы, которые будут задействованы в новых правилах:

1. сам брандмауэр с его сетевыми интерфейсами;

2. сети с соответствующими диапазонами IP-адресов;

4. порты, принадлежащие службам, размещенным на серверах.

Затем создайте правила с помощью простых действий перетаскивания объектов, как показано на рис. 7.2. Несколько контекстных меню могут изменить условие (например, отрицать его). Затем нужно выбрать и настроить действие.

книга использование kali linux

Что касается IPv6, то вы можете либо создать два разных набора правил для IPv4 и IPv6, либо создать только одно и позволить fwbuilder преобразовывать правила в соответствии с адресами, назначенными объектам.

Инструмент fwbuilder создаст сценарий, настраивающий брандмауэр в соответствии с правилами, которые вы определили. Его модульная архитектура позволяет генерировать сценарии, предназначенные для разных систем, включая iptables для Linux, ipf для FreeBSD и pf для OpenBSD.

Установка правил при каждой загрузке

Чтобы внедрять правила брандмауэра при каждой загрузке машины, вам необходимо зарегистрировать сценарий конфигурации в директиве up файла /etc/network/interfaces. В следующем примере сценарий хранится в /usr/local/etc/arrakis.fw.

В этом примере предполагается, что вы используете пакет ifupdown для настройки сетевых интерфейсов. Если вы применяете что-то другое (скажем, NetworkManager или systemd-networkd), то обратитесь к соответствующей документации, чтобы узнать, как выполнить сценарий после запуска интерфейса.

7.5. Мониторинг и протоколирование

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

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

Мониторинг журналов с помощью программы logcheck

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

Список контролируемых файлов хранится по адресу /etc/logcheck/logcheck.logfiles. Значения по умолчанию будут работать должным образом, если файл /etc/rsyslog.conf не был полностью перестроен.

Программа logcheck может отчитываться, используя разные уровни детализации: paranoid (параноидальный), server (серверный) и workstation (для рабочих станций). Режим paranoid очень многословен и, вероятно, должен быть ограничен конкретными серверами, такими как брандмауэры. Режим server используется по умолчанию и рекомендуется для большинства серверов. Режим workstation, очевидно, предназначен для рабочих станций и чрезвычайно сжат, отфильтровывая больше сообщений, чем другие «собратья».

Во всех трех случаях logcheck, вероятно, должен быть настроен для исключения дополнительных сообщений (в зависимости от установленных сервисов), если вы не хотите получать ежечасные партии длинных незарегистрированных электронных писем. Поскольку механизм выбора сообщений довольно сложный, то файл /usr/share/doc/logcheck-database/README.logcheck-database.gz обязателен к прочтению при возникновении сложностей.

Применяемые правила можно разделить на несколько типов:

1. те, которые квалифицируют сообщение как попытку взлома (хранятся в файле в каталоге /etc/logcheck/cracking.d/);

2. проигнорированные попытки взлома (/etc/logcheck/cracking.ignore.d/);

3. те, которые классифицируют сообщение как предупреждение системы безопасности (/etc/logcheck/violations.d/);

4. проигнорированные предупреждения системы безопасности (/etc/logcheck/violations.ignore.d/);

5. наконец те, которые применяются к остальным сообщениям (рассматриваются как системные события).

Файлы ignore.d используются (очевидно) для игнорирования сообщений. Например, сообщение, помеченное как попытка взлома или предупреждение системы безопасности (по правилу, хранящееся в файле /etc/logcheck/violations.d/myfile), может быть проигнорировано только правилом в файле /etc/logcheck/violations.ignore.d/myfile или в файле /etc/logcheck/changes.ignore.d/myfile-расширение.

О системном событии всегда сообщается, если только правило в одном из каталогов /etc/logcheck/ignore.d./ не указывает, что это событие следует игнорировать. Разумеется, учитываются лишь те каталоги, чьи уровни детализации равняются выбранному режиму работы или превышают его.

Мониторинг активности в режиме реального времени

Интерактивный инструмент top отображает список процессов, запущенных в данный момент. Сортировка по умолчанию основана на текущей загруженности процессора и может быть получена с помощью ключа P. Другие сортировки указаний содержат сортировку по занятой памяти (ключ М), общему времени процессора (ключ Т) и идентификатору процесса (ключ N). Ключ k завершает процесс с введенным идентификатором. Ключ r изменяет приоритет процесса.

Когда система кажется перегруженной, top — отличный инструмент, позволяющий увидеть, какие процессы конкурируют за процессорное время или потребляют слишком много памяти. Так, часто бывает интересно проверить, соответствуют ли процессы, потребляющие ресурсы, реальным сервисам, которые должны быть размещены на компьютере. Неизвестный процесс, работающий как www-data, должен действительно выделяться из списка, и его следует изучить, поскольку он, вероятнее всего, является примером программного обеспечения, установленного и выполняемого в системе с помощью уязвимости в веб-приложении.

Инструмент top очень гибкий, и руководство к нему содержит подробную информацию о том, как настроить его интерфейс и адаптировать к вашим личным потребностям и привычкам.

Графический инструмент gnome-system-monitor похож на top и обеспечивает выполнение примерно тех же функций.

Для Хаброжителей скидка 20% по купону — Linux

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *