Операционная система Linux продолжает завоевывать популярность, и все больше сетевых служб разворачивается на ее основе из соображений стоимости и гибкости. Книга даст исчерпывающее представление о том, как устроена работа с сетью в Linux. В начале описаны основные дистрибутивы и рассказано, как выбрать правильный и настроить простейшую сетевую конфигурацию. Затем идет речь о диагностике, брандмауэре и использовании Linux в качестве узла для сетевых служб. Наконец, работая с примерами сборок, вы овладеете различными вариантами защиты от распространенных видов атак. Освоив последние главы, станете еще на шаг ближе к тому, чтобы построить надежный каркас для центра обработки данных, функционирующего полностью под управлением Linux.
Author(s): Роб Ванденбринк
Series: Библиотека программиста
Publisher: Питер
Year: 2024
Language: Russian
Pages: 496
City: СПб.
Tags: linux
Краткое содержание
Оглавление
Об авторе
От издательства
О рецензенте
Предисловие
Для кого эта книга
О чем рассказывает эта книга
Как извлечь максимальную пользу из этой книги
Условные обозначения
Часть 1. Основы Linux
Глава 1. Добро пожаловать в семейство Linux
Почему Linux хорошо подходит для сетевых инженеров
Почему Linux важен?
История Linux
Основные дистрибутивы Linux для центров обработки данных
Red Hat
Oracle/Scientific Linux
SUSE
Ubuntu
BSD/FreeBSD/OpenBSD
Специальные дистрибутивы Linux
Брандмауэры с открытым исходным кодом
Kali Linux
Security Onion
Виртуализация
Linux и облачные технологии
Выбор дистрибутива Linux для вашей организации
Итоги
Ссылки
Глава 2. Базовая конфигурация сети в Linux. Работа с локальными интерфейсами
Технические требования
Работа с настройками сети: два набора команд
Вывод информации об IP интерфейса
Адреса IPv4 и маски подсети
Адреса специального назначения
Частные IP-адреса — RFC 1918
Как назначить IP-адрес интерфейсу
Как добавить маршрут
Как добавить маршрут с помощью устаревших команд
Как отключать и включать сетевой интерфейс
Как настроить MTU для интерфейса
Подробнее о команде nmcli
Итоги
Вопросы для самопроверки
Ссылки
Часть 2. Linux как сетевой узел и платформа для устранения неполадок
Глава 3. Диагностика сети в Linux
Технические требования
Основы функционирования сети: сетевая модель OSI
Уровень 2: связь между адресами IP и MAC с помощью ARP
Уникальный идентификатор организации (OUI) в MAC-адресе
Уровень 4: как работают порты TCP и UDP
Уровень 4: TCP и трехэтапное квитирование
Сканирование локальных портов и их связь с запущенными службами
Сканирование удаленных портов с помощью встроенных инструментов Linux
Сканирование удаленных портов и служб с помощью Nmap
Сценарии Nmap
Ограничения Nmap
Диагностика беспроводных сетей
Итоги
Вопросы для самопроверки
Ссылки
Глава 4. Брандмауэр Linux
Технические требования
Настройка iptables
Обзор iptables
Таблица NAT
Таблица mangle
Порядок операций в iptables
Настройка nftables
Базовая настройка nftables
Подключаемые файлы
Удаление конфигурации брандмауэра
Итоги
Вопросы для самопроверки
Ссылки
Глава 5. Стандарты безопасности Linux с примерами из реальной жизни
Технические требования
Почему нужно защищать узлы на базе ОС Linux?
Особенности безопасности в облачном решении
Распространенные отраслевые стандарты безопасности
Критические принципы безопасности CIS
Реализация критических принципов безопасности CIS № 1 и № 2
Критический принцип безопасности №1 — инвентаризация аппаратного обеспечения
Критический принцип безопасности № 2 — инвентаризация ПО
osquery и критические принципы безопасности № 1 и № 2, а также принципы № 10 и № 17
Контрольные показатели CIS
Применение контрольного показателя CIS: защита SSH в Linux
Вход в систему по SSH под учетной записью root отключен (5.2.9)
Используются только надежные алгоритмы шифрования (5.2.12)
SELinux и AppArmor
Итоги
Вопросы для самопроверки
Ссылки
Часть 3. Сетевые службы Linux
Глава 6. Службы DNS в Linux
Технические требования
Что такое DNS?
Две основные реализации DNS-сервера
Внутренний DNS-сервер организации (и обзор DNS)
DNS-сервер с выходом в интернет
Распространенные реализации DNS
Базовая установка: BIND для внутреннего использования
BIND: особенности реализации DNS-сервера с выходом в интернет
Устранение неполадок и разведка DNS
DoH
DoT
knot-dnsutils
Реализация DoT в Nmap
DNSSEC
Итоги
Вопросы для самопроверки
Ссылки
Глава 7. Службы DHCP в Linux
Как работает DHCP
Базовые принципы DHCP
Запросы DHCP из других подсетей (перенаправляющие серверы, ретрансляторы или помощники)
Параметры DHCP
Защита служб DHCP
Подменный сервер DHCP
Подменный клиент DHCP
Установка и настройка сервера DHCP
Базовая конфигурация
Статическое резервирование
Простое ведение журналов DHCP и устранение неполадок при повседневном использовании
Итоги
Вопросы для самопроверки
Ссылки
Глава 8. Службы сертификатов в Linux
Технические требования
Что такое сертификаты?
Получение сертификата
Использование сертификата на примере веб-сервера
Создание частного центра сертификации
Создание ЦС с помощью OpenSSL
Запрос и подпись CSR
Как защитить инфраструктуру центра сертификации
Старый испытанный совет
Современный совет
Какие риски связаны с ЦС в современных инфраструктурах
Прозрачность сертификатов
Как использовать CT для инвентаризации или разведки
Автоматизация сертификации и протокол ACME
Шпаргалка по OpenSSL
Итоги
Вопросы для самопроверки
Ссылки
Глава 9. Службы RADIUS в Linux
Технические требования
Основные понятия RADIUS: что такое RADIUS и как он работает
Внедрение RADIUS с локальной аутентификацией Linux
RADIUS с внутренней аутентификацией LDAP/LDAPS
Аутентификация NTLM (AD): введение в CHAP
Unlang — «антиязык» для FreeRADIUS
Сценарии использования RADIUS
Аутентификация в VPN по имени пользователя и паролю
Административный доступ к сетевым устройствам
Административный доступ к маршрутизаторам и коммутаторам
Конфигурация RADIUS для аутентификации EAP-TLS
Аутентификация в беспроводной сети с использованием 802.1x/EAP-TLS
Аутентификация проводной сети с помощью 802.1x/EAP-TLS
Использование Google Authenticator для многофакторной аутентификации с помощью RADIUS
Итоги
Вопросы для самопроверки
Ссылки
Глава 10. Балансировка нагрузки в Linux
Технические требования
Введение в балансировку нагрузки
Круговая DNS (Round Robin DNS, RRDNS)
Прокси-сервер входящего трафика: балансировка нагрузки на уровне 7
NAT для входящего трафика: балансировка нагрузки на уровне 4
Балансировка нагрузки c помощью DSR
Специфические настройки сервера для DSR
Алгоритмы балансировки нагрузки
Проверка работоспособности серверов и служб
Принципы балансировки нагрузки в центрах обработки данных
Сеть центра обработки данных и рекомендации по управлению
Создание балансировщика нагрузки HAProxy NAT/proxy
Прежде чем приступить к настройке: сетевые карты, адресация и маршрутизация
Прежде чем приступить к настройке: регулировка производительности
Балансировка нагрузки служб TCP: веб-службы
Настройка постоянных («липких») соединений
Примечание о реализации
Клиентский интерфейс HTTPS
Заключительное замечание о безопасности балансировщика нагрузки
Итоги
Вопросы для самопроверки
Ссылки
Глава 11. Перехват и анализ пакетов в Linux
Технические требования
Введение в перехват пакетов: точки перехвата
Перехват на одном из концов соединения
Зеркалирование порта на коммутаторе
Промежуточный узел на пути следования пакетов
Сетевой отвод
Перехват пакетов с точки зрения злоумышленника
Вопросы производительности при перехвате пакетов
Инструменты для перехвата пакетов
tcpdump
Wireshark
TShark
Другие инструменты для перехвата пакетов
Фильтрация перехваченного трафика
Фильтры перехвата Wireshark: перехват трафика домашней сети
Фильтры перехвата tcpdump: телефоны VoIP и DHCP
Дополнительные фильтры перехвата: протоколы LLDP и CDP
Извлечение файлов из перехваченного пакета
Устранение неполадок приложения: перехват телефонного звонка VoIP
Фильтры отображения Wireshark: разделение данных перехвата пакетов
Итоги
Вопросы для самопроверки
Ссылки
Глава 12. Сетевой мониторинг с помощью Linux
Технические требования
Ведение журнала с помощью Syslog
Размер журнала, ротация и базы данных
Анализ журналов: как найти «то самое»
Где искать
Как искать
Оповещения об определенных событиях
Проект Dshield
Управление сетевыми устройствами с помощью SNMP
Простейшие запросы SNMP
Недостатки SNMPv2
Пример развертывания NMS для SNMP: LibreNMS
Особенности гипервизора
Настройка простого устройства SNMPv2
SNMPv3
Оповещения
О чем следует помнить при добавлении устройств
Мониторинг служб
Сбор данных NetFlow в Linux
Что такое NetFlow и родственные протоколы SFLOW, J-Flow и IPFIX?
Основные понятия сбора потоков
Настройка маршрутизатора или коммутатора для сбора потоков
Пример сервера NetFlow с использованием NFDump и NFSen
Другие приложения NetFlow с открытым исходным кодом
Коммерческие предложения
Итоги
Вопросы для самопроверки
Ссылки
Распространенные SNMP OID
Глава 13. Системы предотвращения вторжений в Linux
Технические требования
Что такое IPS?
Варианты архитектуры: где разместить IPS в центре обработки данных?
Методы обхода IPS
Как обнаружить WAF
Фрагментация и другие методы обхода IPS
Классические сетевые решения IPS для Linux — Snort и Suricata
Пример Suricata IPS
Составление правил IPS
Пассивный мониторинг трафика
Пример пассивного мониторинга с помощью P0F
Пример работы Zeek: сбор сетевых метаданных
Итоги
Вопросы для самопроверки
Ссылки
Глава 14. Приманки (honeypots) в Linux
Технические требования
Обзор служб Honeypot: что такое приманки и зачем они нужны?
Сценарии и архитектура развертывания: где разместить приманку?
Риски развертывания приманок
Примеры приманок
Простые приманки для оповещения об атакованных портах: iptables, netcat и portspoof
Другие распространенные приманки
Распределенная (общественная) приманка — проект DShield Honeypot от Internet Storm Center
Итоги
Вопросы для самопроверки
Ссылки
Ответы на вопросы
Глава 2. Базовая конфигурация сети в Linux. Работа с локальными интерфейсами
Глава 3. Диагностика сети в Linux
Глава 4. Брандмауэр Linux
Глава 5. Стандарты безопасности Linux с примерами из реальной жизни
Глава 6. Службы DNS в Linux
Глава 7. Службы DHCP в Linux
Глава 8. Службы сертификатов в Linux
Глава 9. Службы RADIUS в Linux
Глава 10. Балансировка нагрузки в Linux
Глава 11. Перехват и анализ пакетов в Linux
Глава 12. Сетевой мониторинг с помощью Linux
Глава 13. Системы предотвращения вторжений в Linux
Глава 14. Приманки (honeypots) в Linux