Первоначальная настройка сетевой трансляции
Подсистема трансляции сетевых адресов подменяет IP-адреса компьютеров локальной сети на IP-адрес внешнего сетевого интерфейса (SNAT) или наоборот (DNAT). Ниже приведен пример замены адресов для IP пакетов приходящих на внутренний интерфейс eth0 на адреса внешнего интерфейса eth1:
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
Это правило обеспечивает работу в интернет всех компьютеров локальной сети “от имени” IP-адреса сетевого интерфейса eth1.
Первоначальная настройка сетевой фильтрации
Настройка фильтрации начинается с установки политик запрещающих все соединения кроме разрешенных:
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
Далее, обычно идут следующие правила:
- разрешаются входящие соединения на маршрутизатор с внутренней сети
iptables -A INPUT -i eth1 --source 192.168.1.0/24 --match state --state NEW,ESTABLISHED -j ACCEPT
- разрешается соединение с компьютерами во внутренней сети
iptables -A OUTPUT -o eth1 --destination 192.168.1.0/24 --match state --state NEW,ESTABLISHED -j ACCEPT
- разрешается перенаправление пакетов из внутренней сети во внешнюю для установленных и новых соединений:
iptables -A FORWARD -i eth1 --source 192.168.1.0/24 --destination 0.0.0.0/0 --match state --state NEW,ESTABLISHED -j ACCEPT
- разрешается перенаправление пакетов из внешней сети во внутреннюю только для установленных соединений
iptables -A FORWARD -i eth0 --destination 192.168.1.0/24 --match state --state ESTABLISHED -j ACCEPT
Проверка настроек сетевой защиты
Для просмотра всех правил во всех цепочках используется команда:
iptables -L
Для вывода правил отдельной цепочки используется команда:
iptables -L INPUT
Для вывода параметров в числовом формате используется опция –n:
iptables –n -L
DNS, DHCP, BOOTP/PXE, TFTP
Кратко о назначении сервисов:
- DNS является основной компонентой системы распознавания имен и предназначен для распознавания имен и IP-адресов компьютеров.
- DHCP обеспечивает автоматическую настройку клиентской части компьютеров локальной сети.
- BOOTP/PXE обеспечивает загрузку или установку операционных систем по локальной сети.
- TFTP предназначен для пересылки файлов (обычно ядра ОС) при загрузке или установке операционной системы по локальной сети.
Перечисленные сервисы могут быть установлены из следующих пакетов программ:
Сервис | Пакеты программ | |||
dnsmasq | bind | dhcp | tftp-server | |
DNS | + | + | - | - |
DHCP | + | - | + | - |
BOOTP/PXE | + | - | + | - |
TFTP | + | - | - | + |
Из таблицы следует, что функционирование всех базовых сервисов можно обеспечить установкой одного пакета программ - dnsmasq.
Установка и первичная настройка
Проверить установлен или нет сервис можно командой:
rpm -q dnsmasq
Установить и запустить сервис можно с помощью следующих команд:
yum install dnsmasq
chkconfig dnsmasq on
/etc/init.d/dnsmasq start
Настройки можно изменять двумя путями, либо передать их через командную строку, либо установить их в файле dnsmasq.conf. Наименование настроек (в не сокращенном варианте) передаваемых через командную строку и указываемых в файле dnsmasq.conf совпадают. Как правило выбирают второй вариант, поскольку он наиболее наглядный и позволяет добавлять комментарии к каждой настройке с помощью символа #.
Файлы настроек
Основной файл настроек:
/etc/dnsmasq.conf
Часть настроек можно вынести в отдельные файлы с помощью следующих опции.
Опция:
conf-file=<файла настроек>
добавляет содержимое файла <файла настроек> к содержимому основного файла настроек. Опций conf-file может быть несколько. Если указать вместо имени файла -, то для ввода настроек будет использоваться стандартный поток ввода stdin.
Опция:
conf-dir=<каталог>,<расширение файла>
добавляет содержимое всех всех файлов, находящихся в каталоге <каталог>, кроме файлов с расширением <расширение файла>. Файлы заканчивающиеся символом ~, либо начинающиеся с ., либо начинающиеся и заканчивающиеся символом # пропускаются всегда.
После установки основной файл настроек содержит только одну незакомментированную опцию:
conf-dir=/etc/dnsmasq.d
Протоколирование
По умолчанию события протокола направляются в стандартную службу syslog в группы событий daemon и local0. Поэтому все события сервиса отражаются в основном протоколе системы /var/log/messages Для того, чтобы создать отдельный протокол для сервиса можно использовать опцию:
log-facility=<полный путь к файлу протокола>
Например:
log-facility=/var/log/dnsmasq.log
Для отладки можно включить протоколирование все DNS запросов:
log-queries
Для снижения нагрузки на файловую систему можно включить асинхронную запись:
log-async=25