Бруй В.В., Карлов С.В. - Linux-сервер - пошаговые инструкции - инсталляции и настройки (1077321), страница 42
Текст из файла (страница 42)
Система сетевой защитыGIPTables Firewall по умолчанию реализует концепцию безопасности «все, что не разрешено – то запрещено". Поэтому для обеспечения нормальной работы службы необходимо внести соответствующие изменения в конфигурационный файл giptables.conf. В качестве примера разрешим работу MySQLсервера на системе с одним внешним сетевым интерфейсом.Шаг 1Разрешите использования модуля для MySQL, для этого добавьте или раскомментируйте строку:ACCEPT_MYSQL="yes"Шаг 2Добавьте или раскомментируйте строки, разрешающие клиентские запросы к MySQL-серверу:INTERFACE0_MYSQL_SERVER="yes"INTERFACE0_MYSQL_IN_SRC_IPADDR[0]=$ANY_IPADDRINTERFACE0_MYSQL_IN_DST_IPADDR[0]=$INTERFACE0_IPADDRШаг 3Для того, чтобы изменения вступили в силу, перегрузите GIPTables Firewall:[root@bastion /]# /etc/init.d/giptables restartНастройка GIPTables Firewall для шлюза (прокси-сервера)Практика показывает, что наибольшее количество вопросов у начинающих пользователей возникаетпри настройке шлюза.
Ниже приведены пошаговые инструкции его настройки и пример конфигурационногофайладляGIPTablesFirewall,заосновукотороговзятконфигурационныйфайл/lib/giptables/conf/giptables.conf.gateway (комментарии на русском языке добавлены авторами). Предложенная конфигурация шлюза организует, так называемый маскарадинг (masquerading), приреализации которого компьютеры из внутренней сети имеют доступ в Интернет, но полностью скрыты длявнешней сети и не имеют официально зарегистрированных интернет-адресов.Шаг 1Разрешите пересылку пакетов между внутренним и внешним интерфейсом (по умолчанию эта опцияотключена).
Для этого в файле /etc/sysctl.conf замените строку:net.ipv4.ip_forward = 0на:net.ipv4.ip_forward = 1Для вступления изменений в силу перезагрузите сеть:[root@bastion /]# /etc/init.d/network restartДеактивируется интерфейс eth0:[ОК]Деактивируется интерфейс-петля:[ОК]Устанавливаются параметры сети:[ОК]Активируется интерфейс loopback:[ОК]Активируется интерфейс eth0:[ОК]Тот же самый эффект может быть достигнут и без перезагрузки сети:[root@bastion /]# sysctl -w net.ipv4.ip_forward = 1Шаг 2/lib/giptables/conf/giptables.conf.gatewayСкопируйтефайл/lib/giptables/conf/giptables.conf и создайте ссылку:[root@bastion /]# cp /lib/giptables/conf/giptables.conf.gateway/lib/giptables/conf/giptables.conf[root@bastion /]# ln -s /lib/giptables/conf/giptables.confetc/giptables.confвШаг 3Отредактируйте файл /lib/giptables/conf/giptables.conf в соответствии с рекомендациями приведенного ниже примера, вашими потребностями и конфигурацией сети. Особое внимание обратите на корректировку фрагментов, выделенных жирным шрифтом.Для этого можно воспользоваться командой:[root@bastion /]# vi /etc/giptables.conf# ----------------------------------------------------------------------# GIPTables Firewall v1.1 http://www.giptables.orgГлава 10.
GIPTables Firewall – программное обеспечение для настройки IPTables147# Copyright (C) 2002 Adrian Pascalau <apascalau@openna.com># GATEWAY main configuration file## ----------------------------------------------------------------------# This file is part of GIPTables Firewall## GIPTables Firewall is free software; you can redistribute it and/ormodify# it under the terms of the GNU General Public License as published by# the Free Software Foundation; either version 2 of the License, or# (at your option) any later version.## This program is distributed in the hope that it will be useful,# but WITHOUT ANY WARRANTY; without even the implied warranty of# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the# GNU General Public License for more details.## You should have received a copy of the GNU General Public License# along with this program; if not, write to the Free Software# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307USA# --------------------------------------------------------------------------# DEBUG#DEBUG="off"# --------------------------------------------------------------------------# Some definitions for easy maintenance# Edit these to suit your system# Если вы следовали нашим рекомендациям, то код iptables включен в кодядра.MONOLITIC_KERNEL="yes"# Interface 0: This is our external network interface# It is directly connected to Internet# Установите параметры внешнего интерфейса.INTERFACE0="eth0"INTERFACE0_IPADDR="x.x.x.x"ANY_IPADDR="0/0"# Interface 1: This is our internal network interface# It is directly connected to our internal Network 1# Проверьте, правильно ли указаны параметры внутренней сети.INTERFACE1="eth1"INTERFACE1_IPADDR="192.168.1.254"NETWORK1="192.168.1.0/24"# Do you need Network Address Translation for your internal network?NETWORK1_NAT="yes"# Your name servers ip address# Установите правильные значения IP-адресов ваших DNS-серверов.# Использование чужих DNS–серверов - плохой тон !!!ISP_PRIMARY_DNS_SERVER="a.a.a.a"ISP_SECONDARY_DNS_SERVER="b.b.b.b"# SYSLOG server ip address148Часть 2.
Система сетевой защиты####Если для хранения файлов регистрации используется шлюз - что не оченьхорошо с точки зрения безопасности - укажите IP-адрес внутреннегоинтерфейса. Если же файлы регистрации хранятся на другой системе внутрилокальной сети, то укажите ее IP-адрес.SYSLOG_SERVER="c.c.c.c"# Loopback interfaceLOOPBACK_INTERFACE="lo"# Loopback interface# Port declarations, do not change themPRIV_PORTS="0:1023"UNPRIV_PORTS="1024:65535"##############----------------------------------------------------------------------Loading custom firewall rules from /etc/rc.d/rc.giptables.customЕсли вы следовали нашим рекомендациям, то /etc/rc.d/rc.giptables.customне содержит никаких дополнительных правил.
Если в последующем они будутсозданы и добавлены, не забудьте изменить значение параметра на "yes".LOAD_CUSTOM_RULES="no"----------------------------------------------------------------------LoggingLimit the amount of incoming dropped packets that gets sent to the logsНиже выставляются параметры, устанавливающие разумный компромиссмежду объемом файлов регистрации и информативностью.
Не советуемизменять значения этих параметров.We log & drop all the packets that are not expected. In order to avoidour logs beeing flooded, we rate limit the logging# Interface 0 log dropped packetsINTERFACE0_LOG_DROPPED_PACKETS="yes"INTERFACE0_LOG_LIMIT="5/m"INTERFACE0_LOG_LIMIT_BURST="7"# Interface 1 log dropped packetsINTERFACE1_LOG_DROPPED_PACKETS="yes"INTERFACE1_LOG_LIMIT="7/m"INTERFACE1_LOG_LIMIT_BURST="9"# Network 1 log forwarded dropped packetsNETWORK1_LOG_DROPPED_PACKETS="yes"NETWORK1_LOG_LIMIT="9/m"NETWORK1_LOG_LIMIT_BURST="11"# ----------------------------------------------------------------------# Network Ghouls# Refuse any connection from problem sites## The /etc/rc.d/rc.giptables.blocked file contains a list of ip addressesthat# will be blocked from having any kind of access to your server on allyour# interfaces if the next option is "yes"# Если вы следовали нашим рекомендациям, то/etc/rc.d/rc.giptables.blockedГлава 10.
GIPTables Firewall – программное обеспечение для настройки IPTables149# не содержит никаких IP-адресов, доступ с которых к вашей системе запрещен.# Если в последующем они будут добавлены, не забудьте изменить значение# параметра на "yes".NETWORK_GHOULS="no"#####---------------------------------------------------------------------Syn-flood protectionLimit the number of incoming tcp connectionsЗащита от Syn-flood атак. Не советуем изменять значения этихпараметров.SYN_FLOOD_PROTECTION="yes"# Interface 0 incoming syn-flood protectionINTERFACE0_IN_SYN_FLOOD_PROTECTION="yes"INTERFACE0_IN_TCP_CONN_LIMIT="1/s"INTERFACE0_IN_TCP_CONN_LIMIT_BURST="3"# Interface 1 incoming syn-flood protectionINTERFACE1_IN_SYN_FLOOD_PROTECTION="yes"INTERFACE1_IN_TCP_CONN_LIMIT="3/s"INTERFACE1_IN_TCP_CONN_LIMIT_BURST="5"# Network 1 forwarded incoming syn-flood protectionNETWORK1_IN_SYN_FLOOD_PROTECTION="yes"NETWORK1_IN_TCP_CONN_LIMIT="5/s"NETWORK1_IN_TCP_CONN_LIMIT_BURST="7"# ------------------------------------------------------------------------# Sanity check# Фильтрация «некорректных» пакетов.
Не советуем изменять значения этих# параметров.SANITY_CHECK="yes"# Make sure NEW incoming tcp connections are SYN packetsINTERFACE0_IN_DROP_NEW_WITHOUT_SYN="yes"INTERFACE1_IN_DROP_NEW_WITHOUT_SYN="yes"NETWORK1_IN_DROP_NEW_WITHOUT_SYN="yes"# Drop all incoming fragmentsINTERFACE0_IN_DROP_ALL_FRAGMENTS="yes"INTERFACE1_IN_DROP_ALL_FRAGMENTS="yes"NETWORK1_IN_DROP_ALL_FRAGMENTS="yes"# Drop all incoming malformed XMAS packetsINTERFACE0_IN_DROP_XMAS_PACKETS="yes"INTERFACE1_IN_DROP_XMAS_PACKETS="yes"NETWORK1_IN_DROP_XMAS_PACKETS="yes"# Drop all incoming malformed NULL packetsINTERFACE0_IN_DROP_NULL_PACKETS="yes"INTERFACE1_IN_DROP_NULL_PACKETS="yes"NETWORK1_IN_DROP_NULL_PACKETS="yes"150Часть 2. Система сетевой защиты#----------------------------------------------------------------------# Spoofing and bad addresses#REFUSE_SPOOFING="yes"# Refuse incoming packets claiming to be from the ip addresses of ourinterfaces# Разрешаем пересылку пакетов между наружным и внешним интерфейсом,# локальной и внешней сетями.REFUSE_SPOOFING_IPADDR[0]=$INTERFACE0_IPADDRINTERFACE0_IN_REFUSE_SPOOFING[0]="yes"INTERFACE1_IN_REFUSE_SPOOFING[0]="no"NETWORK1_IN_REFUSE_SPOOFING[0]="yes"REFUSE_SPOOFING_IPADDR[1]=$INTERFACE1_IPADDRINTERFACE0_IN_REFUSE_SPOOFING[1]="no"INTERFACE1_IN_REFUSE_SPOOFING[1]="yes"NETWORK1_IN_REFUSE_SPOOFING[1]="no"# Refuse incoming packets claiming to be from broadcast-src address rangeREFUSE_SPOOFING_IPADDR[2]="0.0.0.0/8"# If you provide DHCP services on one of your interfaces, do not forgetto# set the following option related to that interface to "no"INTERFACE0_IN_REFUSE_SPOOFING[2]="yes"INTERFACE1_IN_REFUSE_SPOOFING[2]="no"NETWORK1_IN_REFUSE_SPOOFING[2]="yes"# Refuse incoming packets claiming to be from reserved loopback addressrangeREFUSE_SPOOFING_IPADDR[3]="127.0.0.0/8"INTERFACE0_IN_REFUSE_SPOOFING[3]="yes"INTERFACE1_IN_REFUSE_SPOOFING[3]="yes"NETWORK1_IN_REFUSE_SPOOFING[3]="yes"# Фильтруем пакеты, отправленные якобы с адресов, зарезервированных# для локальных сетей.