Бруй В.В., Карлов С.В. - Linux-сервер - пошаговые инструкции - инсталляции и настройки (1077321), страница 38
Текст из файла (страница 38)
Её использование необходимо, например, при подключении сервера к сети через VPN-подключение.IP: GRE tunnels over IP (CONFIG_NET_IPGRE) [N/y/?] <y>Другой вид настройки туннелирования. Её использование необходимо, например, при подключении серверак сети через VPN-подключение.IP: TCP Explicit Congestion Notification support (CONFIG_INET_ECN)[N/y/?] <Enter>Опция включает/отключает поддержку уведомления клиентов о перегрузке системы. К сожалению, многиесервера отказывают в доступе тем системам, на которых включена эта опция, из соображений безопасности.IP: TCP syncookie support (disabled per default) (CONFIG_SYN_COOKIES)[N/y/?] YЭта опция включает/отключает поддержку защиты от атак типа "SYN-flood".**IP: Netfilter Configuration*Connection tracking (required for masq/NAT) (CONFIG_IP_NF_CONNTRACK)[N/y/?] (NEW) <y>FTP protocol support (CONFIG_IP_NF_FTP) [N/y/?] (NEW) <y>IRC protocol support (CONFIG_IP_NF_IRC) [N/y/?] (NEW) <y>IP tables support (required for filtering/masq/NAT)(CONFIG_IP_NF_IPTABLES) [N/y/?] (NEW) <y>limit match support (CONFIG_IP_NF_MATCH_LIMIT) [N/y/?] (NEW) <y>MAC address match support (CONFIG_IP_NF_MATCH_MAC) [N/y/?] (NEW) <y>netfilter MARK match support (CONFIG_IP_NF_MATCH_MARK) [N/y/?] (NEW) <y>Multiple port match support (CONFIG_IP_NF_MATCH_MULTIPORT) [N/y/?] (NEW)<y>TOS match support (CONFIG_IP_NF_MATCH_TOS) [N/y/?] (NEW) <y>LENGTH match support (CONFIG_IP_NF_MATCH_LENGTH) [N/y/?] (NEW) <y>TTL match support (CONFIG_IP_NF_MATCH_TTL) [N/y/?] (NEW) <y>tcpmss match support (CONFIG_IP_NF_MATCH_TCPMSS) [N/y/?] (NEW) <y>Connection state match support (CONFIG_IP_NF_MATCH_STATE) [N/y/?] (NEW)<y>Packet filtering (CONFIG_IP_NF_FILTER) [N/y/?] (NEW) <y>REJECT target support (CONFIG_IP_NF_TARGET_REJECT) [N/y/?] (NEW) <y>Full NAT (CONFIG_IP_NF_NAT) [N/y/?] (NEW) <y>MASQURADE target support (CONFIG_IP_NF_TARGET_MARK) [N/y/?] (NEW) <y>REDIRECT target support (CONFIG_IP_NF_TARGET_REDIRECT) [N/y/?] (NEW) <y>Packet mangling (CONFIG_IP_NF_MANGLE) [N/y/?] (NEW) <y>TOS target support (CONFIG_IP_NF_TARGET_TOS) [N/y/?] (NEW) <y>MARK target support (CONFIG_IP_NF_TARGET_MARK) [N/y/?] (NEW) <y>LOG target support (CONFIG_IP_NF_TARGET_LOG) [N/y/?] (NEW) <y>TCPMSS target support (CONFIG_IP_NF_TARGET_TCPMSS) [N/y/?] (NEW) <y>ipchains (2.2 style) support (CONFIG_IP_NF_COMPAT_IPCHAINS) [N/y/?] (NEW)<y>ipchains (2.0 style) support (CONFIG_IP_NF_COMPAT_IPWADM) [N/y/?] (NEW)<y>132Часть 2.
Система сетевой защитыШаг 3Настройте, перекомпилируйте и инсталлируйте ядро в соответствии с одним из приведенных вышевариантов конфигурации и инструкциями, изложенными в главе 6.ЗАМЕЧАНИЕ Если вы следовали инструкциям, изложенным в главе 6, то в настройке, перекомпиляциии инсталляции ядра нет необходимости. В этом случае достаточно лишь проверить правильность установкиопций, связанных с настройкой подсистемы сетевой безопасности ядра.Компиляция оптимизация и инсталляция IPTables из исходных кодовДля установки IPTables из исходных кодов необходимо сделать следующее. Авторы протестировалиработоспособность приведенных ниже рекомендаций для ядра версии 2.4.19 с наложенным на исходные коды патчем grsecurity-1.9.7d-2.4.19.Шаг 1Распакуйте архив с патчем patch-o-matic-20030107.tar.bz2 (этот патч применим к ядрамверсии 2.4.18…2.4.20) в каталоге /var/tmp:[root@bastion tmp]# /usr/bin/bunzip2 patch-o-matic-20030107.tar.bz2[root@bastion tmp]# tar –xpf patch-o-matic-20030107.tarШаг 2Примените патч к исходным кодам ядра:[root@bastion tmp]# cd patch-o-matic-20030107[root@bastion patch-o-matic-20030107]# makeKERNEL_DIR=path_to_kernel_source patching_optionПараметр path_to_kernel_sourceзадает путь к каталогу, в который распакованы исходные коды ядра, инсталлированного в вашей системе.
Врассматриваемом примере – KERNEL_DIR=/usr/src/linux-2.4.19.Параметр patching_optionопределяет степень модификации исходных кодов ядра.Параметр pending-patchesозначает, что при применении патча будут изменены только те фрагменты кодов ядра, которые содержатнаиболее существенные ошибки и в любом случае будут учтены группой разработчиков кода ядра.Параметр most-of-pomвнесет все из наиболее существенных, не противоречащих друг другу изменений, предлагаемыx группойразработчиков IPTables.Параметр patch-o-maticпредназначен для экспертов в области сетевой безопасности и позволяет самостоятельно добавлять, удалятьи получать информацию о каждом из патчей, применяемом к исходным кодам ядра. Если вы эксперт в области сетевой безопасности, то вряд ли вы будете читать этот раздел и книгу в целом.
Для остальных читателей, желающих поэкспериментировать с различными вариантами модификации исходных кодов ядра, может оказаться полезным ознакомление, по крайней мере, с Netfilter Hacking HOWTO и Netfilter ExtensionsHOWTO,которыеможнонайтипоадресуhttp://www.netfilter.org/documentation/index.html#HOWTO.Шаг 3Распакуйте архив с пакетом iptables-1.2.7a.tar.bz2 в каталоге /var/tmp:[root@bastion tmp]# /usr/bin/bunzip2 iptables-1.2.7a.tar.bz2[root@bastion tmp]# tar –xpf iptables-1.2.7a.tarШаг 4Удалите старую версию пакета iptables, если она установлена. Если iptables был установлениз rpm-пакета, например, при первичной установке с поставляемого дистрибутива, выполните:[root@bastion tmp]# rpm -e iptablesЕсли пакет устанавливался из исходных текстов, то наберите:[root@bastion tmp]# rm –rf list_installed_filesГлава 9.
Основные положения системы сетевой защиты (Firewall)133Параметр list_of_installed_files представляет собой список файлов, установленных в системе при инсталляции iptables из исходных кодов, разделенных пробелами. Описание команд для создания перечня установленных файлов приведено ниже.Шаг 5Перейдите в каталог /var/tmp/iptables-1.2.7a:[root@bastion tmp]# cd iptables-1.2.7a.tarОткомпилируйте исходный код iptables-1.2.7a:[root@bastion iptables-1.2.7a]# make KERNEL_DIR=/usr/src/linux-2.4.19.BINDIR=/sbin LIBDIR=/lib/iptables MANDIR=/usr/share/man/man8Установите iptables-1.2.7a:[root@bastion iptables-1.2.7a]# find /* > /var/tmp/iptables.1.txt[root@bastion iptables-1.2.7a]# make KERNEL_DIR=/usr/src/linux-2.4.19.BINDIR=/sbin LIBDIR=/lib/iptables MANDIR=/usr/share/man/man8Создайте и сохраните в надежном месте список файлов IPTables, установленных на системе:[root@bastion iptables-1.2.7a]# find /* > /var/tmp/iptables.2.txt[root@bastion iptables-1.2.7a]# diff /var/tmp/iptables.1.txt/var/tmp/iptables.2.txt > /var/tmp/iptables.installed.txt[root@bastion iptables-1.2.7a]# mv iptables.installed.txt/very_reliable_place/iptables.installed.YYYYMMDD.txt /Шаг 6Осуществите в соответствии с назначением системы и рекомендациями, изложенными выше, настройку, компиляцию и инсталляцию нового ядра, к исходным кодам которого был применен патч patcho-matic-20030107.
Инструкции по настройке компиляции и инсталляции ядра содержатся в главе 6.Шаг 7Удалите каталоги1.2.7a и их архивы:[root@bastion[root@bastion[root@bastion[root@bastion[root@bastion20030107.tarс исходными кодами ядра, патча patch-o-matic-20030107 и iptablesiptables-1.2.7a]#iptables-1.2.7a]#iptables-1.2.7a]#iptables-1.2.7a]#iptables-1.2.7a]#rmrmrmrmrm–rf /usr/src/linux-2.4.19–rf /var/tmp/patch-o-matic-20030107–rf /var/tmp/iptables-1.2.7a–f /var/tmp/ iptables-1.2.7a.tar–f /var/tmp/ patch-o-matic-Настройка системы сетевой защиты IPTablesIPTables используется для отправки, переадресации, организации маскарадинга (masquarade) и фильтрации пакетов, входящих в сеть или исходящих из нее.
В настоящее время существуют четыре главных подсистемы, но только три действительно важны для работы IPTables:• подсистема классификации пакетов;• подсистема мониторинга подключений (connection-tracking system);• подсистема трансляции адресов (network address translation).Обычно правила, определяющие, что же должна делать система сетевой защиты, передаются ей в виде команд:[root@bastion /]# /sbin/iptables RULEПараметр RULE представляет собой некоторое правило в виде набора опций команды iptables.Набор правил также может быть оформлен в виде скрипта командного интерпретатора, содержащего команды, аналогичные приведенной выше.
Подробное описание настроек сетевой защиты, применительно даже ктиповым вариантам ее конфигурации, может являться темой для отдельной книги и не может быть рассмотрено в пределах одной главы.Ниже приведены три примера, демонстрирующие возможность управления подсистемами классификации пакетов, мониторинга подключений и трансляции адресов. Для желающих детально изучить системусетевой защиты рекомендуем, по крайней мере, ознакомиться с документом Iptables Tutorial, автором которого является Оскар Андреассон (Oskar Andreasson).
Последнюю версию этого документа можно получить сhttp://www.netfilter.org/documentation/tutorials/blueflux/ или воспользоваться однойиз версий перевода на русский язык этого документа, сделанного Андреем Киселевым. Для тех, кто не жела-134Часть 2. Система сетевой защитыет или не имеет времени на детальное изучение системы сетевой безопасности, настоятельно рекомендуемизучить материалы следующей главы, где рассматриваются вопросы, связанные с установкой и настройкойGIPTables Firewall. Этот программный продукт прост в установке и настройке, и позволяет автоматическигенерировать правила IPTables для систем различного целевого назначения с одной или двумя сетевымикартами.Правила IPTables используются для определения того, что вы хотите сделать с входящими и исходящими пакетами.
По умолчанию существуют три цепочки правил:• для входящих пакетов используется цепочка правил INPUT;• для исходящих – OUTPUT;• для перенаправляемых – FORWARD.Для изменения концепции безопасности используйте команду:[root@bastion /]# /sbin/iptables –policy CHAIN TARGETПараметр CHAIN содержит имя цепочки правил (например, INPUT, OUTPUT или FORWARD), для которой изменяется концепция безопасности.