Product SiteDocumentation Site

Глава 10. Сетевая инфраструктура

10.1. Шлюз
10.2. X.509 certificates
10.2.1. Создание бесплатных доверенных сертификатов
10.2.2. Инфраструктура открытых ключей: easy-rsa
10.3. Виртуальная частная сеть
10.3.1. OpenVPN
10.3.2. VPN (Виртуальные Частные Сети) с SSH
10.3.3. IPsec
10.3.4. PPTP
10.4. Качество обслуживания (регулирование скорости и других характеристик трафика)
10.4.1. Принципы и механизм
10.4.2. Настройка и реализация
10.5. Динамическая Маршрутизация
10.6. IPv6
10.6.1. Туннелирование
10.7. Система Доменных Имен Серверов (DNS)
10.7.1. DNS программное обеспечение
10.7.2. Настройка bind
10.8. DHCP
10.8.1. Настройка
10.8.2. DHCP и DNS
10.9. Инструменты Диагностики Сети
10.9.1. Диагностика локального узла: netstat
10.9.2. Удалённая диагностика: nmap
10.9.3. Снифферы (перехватчики пакетов и анализаторы кадров): tcpdump и wireshark
Linux щеголяет в полной мере унаследованными от Unix сетевыми возможностями, и Debian предоставляет полный набор инструментов создания и управления сетями. Данная глава посвящена обзору этих инструментов.

10.1. Шлюз

Шлюз — это система, связывающая несколько сетей. Этот термин часто употребляется для обозначения «точки выхода» из локальной сети на единственном пути ко всем внешним IP-адресам. Шлюз подключён к каждой из сетей, которые он соединяет, и функционирует как маршрутизатор, пересылая IP-пакеты между своими интерфейсами.
Когда локальная сеть использует частный диапазон IP-адресов (не видимый за её пределами), шлюз должен выполнить address masquerading - преобразование сетевых адресов, чтобы компьютеры могли взаимодействовать с внешним миром. Такая операция похожа на прокси-сервер, но на сетевом уровне: при исходящей передаче данных адрес локальной машины заменяется на адрес шлюза (видимый за пределами сети), при ответе из внешнего мира — данные проходят через шлюз и далее направляются по локальному адресу машины. Для этого, шлюз использует диапазон определённых TCP портов, обычно с большими номерами (больше 60000). Каждое соединение, идущее от локальной машины во внешний мир, идет через один из этих зарезервированных портов.
Шлюз также может выполнять два вида преобразования сетевых адресов (для краткости — NAT, от "Network Address Translation"). Первый — Destination NAT (DNAT), суть которого в изменении IP адреса назначения (и/или порта TCP или UDP) для (как правило) входящего соединения. Отслеживающий соединение механизм изменяет следующие пакеты в том же соединении для гарантии целостности. Второй вид NAT — это Source NAT (SNAT), для которого преобразование является особенным случаем. SNAT изменяет IP адрес источника (и/или TCP или UDP порта) для (в основном) исходящего соединения. Также как и для DNAT, все пакеты в соединении соответствующим образом контролируются механизмом отслеживания соединения. Заметьте, что NAT подходит только для IPv4 и его ограниченного адресного пространства. В IPv6, с огромным количеством адресов, преимущества NAT снижаются, т. к. «внутренние» адреса маршрутизируемы в интернете (что не означает их доступность, т. к. межсетевой экран может фильтровать трафик).
Хватит теории, к практике! Для превращения Debian в шлюз достаточно включить соответствующий параметр в ядре Linux через виртуальную файловую систему /proc/:
# echo 1 > /proc/sys/net/ipv4/conf/default/forwarding
Эту опцию также можно автоматически включить при загрузке, если /etc/sysctl.conf или в конфигурационном файле в /etc/sysctl.d/ установить net.ipv4.conf.default.forwarding опцию в 1.

Пример 10.1. Файл /etc/sysctl.conf

net.ipv4.conf.default.forwarding = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.tcp_syncookies = 1
Тоже для IPv6: необходимо заменить ipv4 на ipv6 и соответственно использовать net.ipv6.conf.all.forwarding в файле /etc/sysctl.conf.
Для использования преобразования адресов (маскарадинг) IPv4 нужно изменить конфигурацию файервола netfilter.
Также и для использования NAT (для IPv4) необходимо настраивать netfilter. Так как основное назначение для этого компонента — фильтрация пакетов, детали описаны в Глава 14: «Безопасность» (см. Раздел 14.2, «Сетевой экран или Фильтрация пакетов»).