Таблица 6-24. Действие TTL
(Ключ – Пример – Описание)
Ключ: –ttl-set
Пример: iptables -t mangle -A PREROUTING -i eth0 -j TTL –ttl-set 64
Описание: Устанавливает поле TTL в заданное значение. Оптимальным считается значение около 64. Это не слишком много, но и не слишком мало Не задавайте слишком большое значение, это может иметь неприятные последствия для вашей сети. Представьте себе, что пакет «зацикливается» между двумя неправильно сконфигурированными роутерами, тогда, при больших значениях TTL, есть риск «потерять» значительную долю пропускной способности канала.
Ключ: –ttl-dec
Пример: iptables -t mangle -A PREROUTING -i eth0 -j TTL –ttl-dec 1
Описание: Уменьшает значение поля TTL на заданное число. Например, пусть входящий пакет имеет значение TTL равное 53 и мы выполняем команду –ttl-dec 3, тогда пакет покинет наш хост с полем TTL равным 49. Не забывайте, что сетевой код автоматически уменьшит значение TTL на 1, поэтому, фактически мы получаем 53 – 3 – 1 = 49.
Ключ: –ttl-inc
Пример: iptables -t mangle -A PREROUTING -i eth0 -j TTL –ttl-inc 1
Описание: Увеличивает значение поля TTL на заданное число. Возьмем предыдущий пример, пусть к нам поступает пакет с TTL = 53, тогда, после выполнения команды –ttl-inc 4, на выходе с нашего хоста, пакет будет иметь TTL = 56, не забывайте об автоматическом уменьшении поля TTL сетевым кодом ядра, т.е. фактически мы получаем выражение 53 + 4 – 1 = 56. Увеличение поля TTL может использоваться для того, чтобы сделать наш брандмауэр менее «заметным» для трассировщиков (traceroutes). Программы трассировки любят за ценную информацию при поиске проблемных участков сети, и ненавидят за это же, поскольку эта информация может использоваться крякерами в неблаговидных целях. Пример использования вы можете найти в сценарии Ttl-inc.txt.
6.5.15. Действие ULOG
Действие ULOG предоставляет возможность журналирования пакетов в пользовательское пространство. Оно заменяет традиционное действие LOG, базирующееся на системном журнале. При использовании этого действия, пакет, через сокеты netlink, передается специальному демону который может выполнять очень детальное журналирование в различных форматах (обычный текстовый файл, база данных MySQL и пр.) и к тому же поддерживает возможность добавления надстроек (плагинов) для формирования различных выходных форматов и обработки сетевых протоколов. Пользовательскую часть ULOGD вы можете получить на домашней странице ULOGD project page.
Таблица 6-25. Действие ULOG
(Ключ – Пример – Описание)
Ключ: –ulog-nlgroup
Пример: iptables -A INPUT -p TCP –dport 22 -j ULOG –ulog-nlgroup 2
Описание: Ключ –ulog-nlgroup сообщает ULOG в какую группу netlink должен быть передан пакет. Всего существует 32 группы (от 1 до 32). Если вы желаете передать пакет в 5-ю группу, то можно просто указать –ulog-nlgroup 5. По-умолчанию используется 1-я группа.
Ключ: –ulog-prefix
Пример: iptables -A INPUT -p TCP –dport 22 -j ULOG –ulog-prefix "SSH connection attempt: "
Описание: Ключ –ulog-prefix имеет тот же смысл, что и аналогичная опция в действии LOG. Длина строки префикса не должна превышать 32 символа.
Ключ: –ulog-cprange
Пример: iptables -A INPUT -p TCP –dport 22 -j ULOG –ulog-cprange 100
Описание: Ключ –ulog-cprange определяет, какую долю пакета, в байтах, надо передавать демону ULOG. Если указать число 100, как показано в примере, то демону будет передано только 100 байт из пакета, это означает, что демону будет передан заголовок пакета и некоторая часть области данных пакета. Если указать 0, то будет передан весь пакет, независимо от его размера. Значение по-умолчанию равно 0.
Ключ: –ulog-qthreshold
Пример: iptables -A INPUT -p TCP –dport 22 -j ULOG –ulog-qthreshold 10
Описание: Ключ –ulog-qthreshold устанавливает величину буфера в области ядра. Например, если задать величину буфера равной 10, как в примере, то ядро будет накапливать журналируемые пакеты во внутреннем буфере и передавать в пользовательское пространство группами по 10 пакетов. По-умолчанию размер буфера равен 1 из-за сохранения обратной совместимости с ранними версиями ulogd, которые не могли принимать группы пакетов.
Глава 7. Файл rc.firewall
В этой главе мы рассмотрим настройку брандмауэра на примере сценария rc.firewall.txt. Мы будем брать каждую базовую настройку и рассматривать как она работает и что делает. Это может натолкнуть вас на решение ваших собственных задач. Для запуска этого сценария вам потребуется внести в него изменения таким образом, чтобы он мог работать с вашей конфигурацией сети, в большинстве случаев достаточно изменить только переменные.