Network packet filterning

Network packet filterning (replaces ipchains) —>

Netfilter is a framework for filtering and mangling network packets that pass through your Linux box.

The most common use of packet filtering is to run your Linux box as a firewall protecting a local network from the Internet. The type of firewall provided by this kernel support is called a «packet filter», which means that it can reject individual network packets based on type, source, destination etc. The other kind of firewall, a «proxy-based» one, is more secure but more intrusive and more bothersome to set up; it inspects the network traffic much more closely, modifies it and has knowledge about the higher level protocols, which a packet filter lacks. Moreover, proxy-based firewalls often require changes to the programs running on the local clients. Proxy-based firewalls don’t need support by the kernel, but they are often combined with a packet filter, which only works if you say Y here.

You should also say Y here if you intend to use your Linux box as the gateway to the Internet for a local network of machines without globally valid IP addresses. This is called «masquerading»: if one of the computers on your local network wants to send something to the outside, your box can «masquerade» as that computer, i.e. it forwards the traffic to the intended outside destination, but modifies the packets to make it look like they came from the firewall box itself. It works both ways: if the outside host replies, the Linux box will silently forward the traffic to the correct local computer. This way, the computers on your local net are completely invisible to the outside world, even though they can reach the outside and can receive replies. It is even possible to run globally visible servers from within a masqueraded local network using a mechanism called portforwarding. Masquerading is also often called NAT (Network Address Translation).

Another use of Netfilter is in transparent proxying: if a machine on the local network tries to connect to an outside host, your Linux box can transparently forward the traffic to a local server, typically a caching proxy server.

Yet another use of Netfilter is building a bridging firewall. Using a bridge with Network packet filtering enabled makes iptables «see» the bridged traffic. For filtering on the lower network and Ethernet protocols over the bridge, use ebtables (under bridge netfilter configuration).

Various modules exist for netfilter which replace the previous masquerading (ipmasqadm), packet filtering (ipchains), transparent proxying, and portforwarding mechanisms. Please see <file:Documentation/Changes> under «iptables» for the location of these packages.

Make sure to say N to «Fast switching» below if you intend to say Y here, as Fast switching currently bypasses netfilter.

Chances are that you should say Y here if you compile a kernel which will run as a router and N for regular hosts. If unsure, say N.

Netfilter — это инфраструктура для фильтрации и манипулирования сетевыми пакетами, которые проходят через вашу систему Linux.

Наиболее распространенным применением фильтрации пакетов является запуск вашего Linux-устройства в качестве брандмауэра, защищающего локальную сеть от Интернета. Тип брандмауэра, предоставляемый этой поддержкой ядра, называется «фильтром пакетов», что означает, что он может отклонять отдельные сетевые пакеты в зависимости от типа, источника, места назначения и т. д. Другой тип брандмауэра, «основанный на прокси», это более безопасный, но более навязчивый и более надоедливый в настройке; он намного более тщательно проверяет сетевой трафик, модифицирует его и обладает знаниями о протоколах более высокого уровня, которых нет в фильтре пакетов. Более того, брандмауэры на основе прокси часто требуют изменений в программах, работающих на локальных клиентах. Брандмауэры на основе прокси не нуждаются в поддержке со стороны ядра, но они часто объединяются с фильтром пакетов, который работает, только если вы говорите Y тут.

Вы также должны сказать «Y», если собираетесь использовать свой Linux в качестве шлюза в Интернет для локальной сети машин без глобально действительных IP-адресов. Это называется «маскарадингом»: если один из компьютеров в вашей локальной сети хочет отправить что-то извне, ваш Linux может «маскироваться» под этот компьютер, то есть он перенаправляет трафик к предполагаемому внешнему назначению, но изменяет пакеты так, чтобы они выглядели так, как будто они пришли из самого брандмауэра. Он работает в обоих направлениях: если внешний хост отвечает, Linux будет молча перенаправлять трафик на правильный локальный компьютер. Таким образом, компьютеры в вашей локальной сети полностью невидимы для внешнего мира, даже если они могут выходить в Интернет и могут получать ответы. Можно даже запускать глобально видимые серверы из маскированной локальной сети, используя механизм, называемый перенаправлением портов. Маскарадинг также часто называют NAT (преобразование сетевых адресов).

Другое использование Netfilter — прозрачное проксирование: если машина в локальной сети пытается подключиться к внешнему хосту, ваш Linux-сервер может прозрачно перенаправить трафик на локальный кеширующий прокси-сервер.

Еще одно использование Netfilter — создание межсетевого экрана. Использование моста с включенной фильтрацией сетевых пакетов позволяет iptables «видеть» мостовой трафик. Для фильтрации по уровню 2 и протоколам Ethernet на мосту используйте ebtables (в конфигурации моста netfilter).

Существуют различные модули для сетевого фильтра, которые заменяют предыдущее маскирование (ipmasqadm), фильтрацию пакетов (ipchains), прозрачное проксирование и механизмы перенаправления портов. Пожалуйста, обратитесь к <file:Documentation/Changes> в разделе «iptables» для определения местоположения этих пакетов.

Обязательно укажите от N для «Fast switching» ниже, если вы намерены сказать Y здесь, так как быстрое переключение в настоящее время обходит сетевой фильтр.

Скорее всего, вы должны сказать Y здесь, если вы собираете ядро, которое будет работать как маршрутизатор, и N для обычных хостов. Если не уверены, скажите N.

Русская документация по iptables.

Network packet filtering debugging

You can say Y here if you want to get additional messages useful in debugging the netfilter code.

Вы можете выбрать Y если хотите получать дополнительные полезные сообщения при отладке кода netfilter.

Bridged IP/ARP packets filtering

Enabling this option will let arptables resp. iptables see bridged ARP resp. IP traffic. If you want a bridging firewall, you probably want this option enabled. Enabling or disabling this option doesn’t enable or disable ebtables.

If unsure, say N.

Включение этой опции позволит arptables соотв. Iptables. Если вы хотите использовать межсетевой экран, возможно, вы захотите включить эту опцию. Включение или отключение этой опции не включает и не отключает ebtables.

Если не уверены, скажите N.

Core Netfilter Configure —>

Netfilter netlink interface

If this option is enabled, the kernel will include support for the new netfilter netlink interface.

Если эта опция включена, ядро будет включать поддержку нового интерфейса netlink сетевого фильтра.

Netfilter NFQUEUE over NFNETLINK interface

If this option isenabled, the kernel will include support for queueing packets via NFNETLINK.

Если эта опция включена, ядро будет включать поддержку очереди пакетов через NFNETLINK.

Netfilter LOG over NFNETLINK interface

If this option is enabled, the kernel will include support for logging packets via NFNETLINK.

This obsoletes the existing ipt_ULOG and ebg_ulog mechanisms, and is also scheduled to replace the old syslog-based ipt_LOG and ip6t_LOG modules.

Если эта опция включена, ядро будет включать поддержку регистрации пакетов через NFNETLINK.

Это устаревшие существующие механизмы ipt_ULOG и ebg_ulog. Их планируется заменить на syslog модули ipt_LOG и ip6t_LOG.

IP: Netfilter Configure —>

Connectinon tracking (required for masq/NAT)

Connection tracking keeps a record of what packets have passed through your machine, in order to figure out how they are related into connections.

This is required to do Masquerading or other kinds of Network Address Translation (except for Fast NAT). It can also be used to enhance packet filtering (see `Connection state match support’ below).

To compile it as a module, choose M here. If unsure, say N.

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

Это требуется для маскировки или других видов трансляции сетевых адресов (кроме Fast NAT). Оно также может быть использовано для улучшения фильтрации пакетов (см. «Connection state match support» ниже).

Чтобы скомпилировать его как модуль, выберите M здесь. Если не уверены, скажите N.

Connection tracking flow accounting

If this option is enabled, the connection tracking code will keep per-flow packet and byte counters.

Those counters can be used for flow-based accounting or the `connbytes’ match.

If unsure, say `N’.

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

Эти счетчики могут быть использованы для учета на основе потока или для сопоставления «connbytes».

Если не уверены, скажите N.

Conection mark tracking support

This option enables support for connection marks, used by the `CONNMARK’ target and `connmark’ match. Similar to the mark value of packets, but this mark value is kept in the conntrack session instead of the individual packets.

Эта опция включает поддержку меток соединения, используемых целью CONNMARK и соответствием connmark. Аналогично значению метки пакетов, но это значение метки сохраняется в сеансе conntrack вместо отдельных пакетов.

Connection tracking events

If this option is enabled, the connection tracking code will provide a notifier chain that can be used by other kernel code to get notified about changes in the connection tracking state.

IF unsure, say `N’.

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

Если не уверены, скажите N.

Connection tracking netlink interface

This option enables support for a netlink-based userspace interface

Эта опция включает поддержку интерфейса пользователя на основе netlink.

SCTP protocol connection tracking support (EXPERIMENTAL)

With this option enabled, the connection tracking code will be able to do state tracking on SCTP connections.

If you want to compile it as a module, say M here and read <file:Documentation/modules.txt>. If unsure, say `N’.

Если эта опция включена, код отслеживания подключений сможет выполнять отслеживание состояния подключений SCTP.

Если вы хотите скомпилировать его как модуль, скажите здесь M и прочитайте <file:Documentation/modules.txt>.

Если не уверены, скажите N.

FTP protocol support

Tracking FTP connections is problematic: special helpers are required for tracking them, and doing masquerading and other forms of Network Address Translation on them.

To compile it as a module, choose M here. If unsure, say Y.

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

Чтобы скомпилировать его как модуль, выберите M здесь. Если не уверены, скажите Y.

IRC protocol support

There is a commonly-used extension to IRC called Direct Client-to-Client Protocol (DCC). This enables users to send files to each other, and also chat to each other without the need of a server. DCC Sending is used anywhere you send files over IRC, and DCC Chat is most commonly used by Eggdrop bots. If you are using NAT, this extension will enable you to send files and initiate chats. Note that you do NOT need this extension to get files or have others initiate chats, or everything else in IRC.

To compile it as a module, choose M here. If unsure, say Y.

Существует часто используемое расширение IRC, называемое прямым клиент-клиентским протоколом (DCC). Это позволяет пользователям отправлять файлы друг другу, а также общаться друг с другом без использования сервера. Отправка DCC используется везде, где вы отправляете файлы через IRC, а чат DCC чаще всего используется ботами Eggdrop. Если вы используете NAT, это расширение позволит вам отправлять файлы и инициировать чаты. Обратите внимание, что вам НЕ нужно это расширение, чтобы получать файлы или заставлять других инициировать чаты, или все остальное в IRC.

Чтобы скомпилировать его как модуль, выберите M здесь. Если не уверены, скажите Y.

NetBIOS name service protocol support (RXPERIMENTAL)

NetBIOS name service requests are sent as broadcast messages from an unprivileged port and responded to with unicast messages to the same port. This make them hard to firewall properly because connection tracking doesn’t deal with broadcasts. This helper tracks locally originating NetBIOS name service requests and the corresponding responses. It relies on correct IP address configuration, specifically netmask and broadcast address. When properly configured, the output of «ip address show» should look similar to this:

$ ip -4 address show eth0
 4: eth0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 1000
    inet 172.16.2.252/24 brd 172.16.2.255 scope global eth0

To compile it as a module, choose M here. If unsure, say N.

Запросы службы имен NetBIOS отправляются в виде широковещательных сообщений с непривилегированного порта и отвечают одноадресными сообщениями на тот же порт. Это затрудняет их обработку фаерволом, поскольку отслеживание соединения не связано с широковещательной рассылкой. Этот помощник отслеживает локально исходящие запросы службы имен NetBIOS и соответствующие ответы. Он зависит от правильной конфигурации IP-адреса, в частности от маски сети и широковещательного адреса. При правильной настройке вывод «ip address show» должен выглядеть примерно так:

$ ip -4 address show eth0
4: eth0: <BROADCAST, MULTICAST, UP> mtu 1500 qdisc pfifo_fast qlen 1000
   inet 172.16.2.252/24 brd 172.16.2.255 scope global eth0

Чтобы скомпилировать его как модуль, выберите M здесь. Если не уверены, скажите N.

TFTP protocol support

TFTP connection tracking helper, this is required depending on how restrictive your ruleset is. If you are using a tftp client behind -j SNAT or -j MASQUERADING you will need this.

To compile it as a module, choose M here. If unsure, say Y.

Помощник по отслеживанию соединений TFTP, требуется в зависимости от того, насколько ограничен ваш набор правил. Если вы используете tftp-клиент за -j SNAT или -j MASQUERADING, вам это понадобится.

Чтобы скомпилировать его как модуль, выберите M здесь. Если не уверены, скажите Y.

Amanda backup protocol support

If you are running the Amanda backup package <http://www.amanda.org/> on this machine or machines that will be MASQUERADED through this machine, then you may want to enable this feature. This allows the connection tracking and natting code to allow the sub-channels that Amanda requires for communication of the backup data, messages and index.

To compile it as a module, choose M here. If unsure, say Y.

Если вы запускаете пакет резервного копирования Amanda <http://www.amanda.org/> на этом компьютере или машинах, которые будут MASQUERADED через этот компьютер, то вы можете включить эту функцию. Это позволяет кодам отслеживания соединений и NAT преобразования разрешать подканалы, которые требуются Аманде для передачи данных резервного копирования, сообщений и индекса.

Чтобы скомпилировать его как модуль, выберите M здесь. Если не уверены, скажите Y.

PPTP protocol support

This module adds support for PPTP (Point to Point Tunnelling Protocol, RFC2637) connection tracking and NAT.

If you are running PPTP sessions over a stateful firewall or NAT box, you may want to enable this feature.

Please note that not all PPTP modes of operation are supported yet. For more info, read top of the file net/ipv4/netfilter/ip_conntrack_pptp.c

If you want to compile it as a module, say M here and read Documentation/modules.txt. If unsure, say `N’.

Этот модуль добавляет поддержку для отслеживания соединений PPTP (протокол туннелирования точка-точка, RFC2637) и NAT.

Если вы запускаете сеансы PPTP через брандмауэр с состоянием или NAT, вы можете включить эту функцию.

Обратите внимание, что не все режимы работы PPTP поддерживаются. Для получения дополнительной информации прочитайте начало файла net/ipv4/netfilter/ip_conntrack_pptp.c

Если вы хотите скомпилировать его как модуль, скажите M здесь и прочитайте Documentation/modules.txt. Если не уверены, скажите `N ‘.

IP Userspace queueing via NETLINK (OBSOLETE)

Netfilter has the ability to queue packets to user space: the netlink device can be used to access them using this driver.

This option enables the old IPv4-only «ip_queue» implementation which has been obsoleted by the new «nfnetlink_queue» code (see CONFIG_NETFILTER_NETLINK_QUEUE).

To compile it as a module, choose M here. If unsure, say N.

Netfilter имеет возможность ставить пакеты в очередь в пользовательское пространство: для доступа к ним с помощью этого драйвера можно использовать устройство netlink.

Эта опция активирует старую реализацию «ip_queue» только для IPv4, которая была отменена новым кодом «nfnetlink_queue» (см. CONFIG_NETFILTER_NETLINK_QUEUE).

Чтобы скомпилировать его как модуль, выберите M здесь. Если не уверены, скажите N.

IP tables support (required for filtering/masq/NAT)

iptables is a general, extensible packet identification framework. The packet filtering and full NAT (masquerading, port forwarding, etc) subsystems now use this: say `Y’ or `M’ here if you want to use either of those.

To compile it as a module, choose M here. If unsure, say N.

iptables — это общая расширяемая структура идентификации пакетов. Подсистемы фильтрации пакетов и полного NAT (маскарадинг, переадресация портов и т. д.) Выбирайте Y или M, если вы хотите использовать любую из этих подситстем.

Чтобы скомпилировать его как модуль, выберите M здесь. Если не уверены, скажите N.

limit match support

limit matching allows you to control the rate at which a rule can be matched: mainly useful in combination with the LOG target («LOG target support», below) and to avoid some Denial of Service attacks.

To compile it as a module, choose M here. If unsure, say N.

limit match позволяет контролировать скорость, с которой может быть сопоставлено правило: в основном полезно в сочетании с целью LOG (см. «LOG target support», ниже) и позволяет избежать некоторых атак типа «отказ в обслуживании».

Чтобы скомпилировать его как модуль, выберите M здесь. Если не уверены, скажите N.

IP range match support

This option makes possible to match IP addresses against IP address ranges.

To compile it as a module, choose M here. If unsure, say N.

Эта опция позволяет сопоставить IP-адреса с диапазонами IP-адресов.

Чтобы скомпилировать его как модуль, выберите здесь M. Если не уверены, скажите N.

Переводить остальные параметры iptables не имеет смысла. Включайте все как модуль и читайте документацию.