В программе iptables предусмотрено специальное действие LOG, управляющее протоколированием. В отличие от других действий, действие LOG не приводит к прекращению дальнейшей проверки; если пакет соответствует правилу, в котором указано данное действие, ядро продолжает поверку, используя остальные правила текущей цепочки. Действие LOG позволяет решить следующие задачи.
• С помощью действия LOG можно протоколировать события, состоящие в появлении пакетов, которые не удовлетворяют другим правилам. Например, вы можете включить правило для записи информации о тех пакетах, которые не прошли проверку с учетом состояния.
Протоколирование фактов появления пакетов, которые вы не собираетесь отвергать, может быть удобным средством отладки, так как файл протокола позволяет убедиться, что эти пакеты поступают на ваш компьютер. Тот же результат можно получить с помощью других инструментов, например, программы сбора пакетов, но в некоторых случаях файлы протоколов удобнее использовать.
• Если вы установили политику по умолчанию DENY или REJECT, вы можете включить правило протоколирования в конце цепочки и получать таким образом информацию о пакетах, по умолчанию отвергаемых системой.
• Если в вашей системе установлена политика по умолчанию ACCEPT, вы можете получать информацию об отвергнутых пакетах, продублировав каждое запрещающее правило аналогичным правилом, в котором действие DENY или REJECT заменено на LOG.
В качестве примера рассмотрим следующие правила брандмауэра, для которого установлена политика по умолчанию ACCEPT. Эти правила предназначены для блокирования попыток обмена с сетью 172.24.0.0/16; информация об отвергнутых пакетах записывается в файл протокола.
# iptables -A INPUT -s 172.24.0.0/16 -j LOG
# iptables -A OUTPUT -d 172.24.0.0/16 -j LOG
# iptables -A INPUT -s 172.24.0.0/16 -j DROP
# iptables -A OUTPUT -d 172.24.0.0/16 -j DROP
Первые две команды совпадают с двумя последними, за исключением того, что вместо действия DROP в них указано действие LOG. Второе и третье правила можно поменять местами, при этом результаты не изменятся. Между правилами, предусматривающими действия LOG и DROP, можно включить дополнительные правила, но при этом становится менее очевидно, что данные правила связаны между собой.
В результате протоколирования в файл /var/log/messages записываются сведения, подобные приведенным ниже.
Nov 18 22:13:21 teela kerneclass="underline" IN=eth0 OUT=
MAC=00:05:02:a7:76:da:00:50:bf:19:7e:99:08:00 SRC=192.168.1.3
DST=192.168.1.2 LEN=40 TOS=0x10 PREC=0x00 TTL=64 ID=16023 DF
PROTO=TCP SPT=4780 DPT=22 WINDOW=32120 RES=0x00 ACK URGP=0
В состав записи входят следующие данные.
• Дата и время. Первый компонент записи сообщает время получения пакета.
• Имя системы. В данном примере компьютер имеет имя teela.
• Входной интерфейс. Поле IN=eth0 указывает на то, что пакет был получен через интерфейс eth0.
• Выходной интерфейс. Данный пакет является входным, поэтому поле OUT= отсутствует в составе записи.
• MAC-адрес. В поле MAC= указываются два MAC-адреса: локальной и удаленной систем.
• IP-адреса источника и назначения. Поля SRC= и DST= содержат соответственно IP-адреса источника и назначения.
• Порты источника и назначения. Поля SPT= и DPT= содержат соответственно порты источника и назначения.
• Информация о пакете. Остальные поля предоставляют дополнительные сведения о пакете, в частности, его длину (LEN=), время жизни (TTL=) и другие данные.
При определении правила LOG могут быть заданы дополнительные опции, которые позволяют указать, какие сведения должны быть записаны в файл протокола. Наиболее часто применяется опция --log-prefix префикс. Она позволяет задать строку длиной до 29 символов, которая дает возможность идентифицировать правило, вызвавшее появление этой записи.
Резюме
Программа iptables часто применяется для создания брандмауэров, настройки средств NAT, организации перенаправления портов и протоколирования хода обработки пакетов. Часто различные способы обработки пакетов используются совместно. Так, например, на одном компьютере могут быть реализованы брандмауэр, NAT-маршрутизатор и протоколирование хода обработки. Каждый вызов iptables задает отдельное правило, но для решения большинства задач необходимо определить несколько правил. Поэтому последовательность вызовов iptables организуется в виде сценария.
Глава 26
Организация виртуальной частной сети
Одна из проблем передачи данных в Internet связана с шифрованием информации. Во многих часто применяющихся протоколах, например Telnet и FTP, не предусмотрено кодирование информации. Данные, в том числе пользовательское имя и пароль, передаются в незашифрованном виде. Такая ситуация может считаться приемлемой в локальной сети, где администратор имеет возможность контролировать действия пользователей, но в Internet, где между передающим и принимающим узлами находится несколько маршрутизаторов, передавать важную информацию с помощью подобных протоколов недопустимо.
Не следует считать, что в локальной сети информация полностью защищена. Не исключено, что взломщик получит контроль над компьютером сети и использует его для дальнейшего сбора информации. Применение протоколов, предусматривающих кодирование данных, позволяет исправить ситуацию. Для повышения степени защиты локальной сети можно использовать систему Kerberos, описанную в главе 6.
Иногда у пользователей возникает необходимость обратиться к ресурсам локальной сети с удаленных компьютеров. Некоторые из них работают дома или в дороге на портативных компьютерах. Один из способов, позволяющих обеспечить работу удаленных пользователей, не подвергая данные существенному риску, состоит в организации виртуальной частной сети (VPN — Virtual Private Network). Такая сеть предоставляет удаленному пользователю доступ к ресурсам так, как будто он работает в пределах локальной сети. Клиент и сервер VPN создают виртуальные сетевые интерфейсы и связывают их через Internet, причем данные передаются в закодированном виде. Таким образом, VPN позволяет связать удаленные компьютеры или удаленные сети с локальной сетью. В данной главе приводятся основные сведения, касающиеся конфигурации средств VPN, а также рассматриваются протоколы VPN: PPTP и FreeS/WAN, обеспечивающие работу.
Использование VPN
VPN позволяет расширить локальную сеть за счет взаимодействия с внешними компьютерами. Очевидно, что если локальная сеть подключена к Internet, внешние пользователи могут обращаться к ней без VPN. Однако VPN имеет ряд преимуществ перед обычными типами сетевого обмена.
• VPN создает иллюзию локального доступа. Во многих локальных сетях используются средства защиты против нежелательных обращений извне. Так, например, доступ к сетям и отдельным компьютерам ограничивается с помощью брандмауэров, кроме того, для контроля взаимодействия применяются также TCP Wrappers и средства, предоставляемые суперсервером и различными серверными программами. VPN позволяет обращаться к компьютеру так, как будто взаимодействие происходит в пределах локальной сети, что упрощает настройку многих серверов.