Читайте также:
|
|
Устно проанализируйте приведенные ниже варианты конфигураций для Iptables, выполнять приведенные правила не нужно. Приведите в отчете варианты применения для первого и второго варианта конфигурации.
Вариант 1:
#!/bin/sh
#
# rc.firewall - Initial SIMPLE IP Firewall script
IPTABLES="/sbin/iptables"
$IPTABLES -P INPUT DROP
$IPTABLES -P FORWARD DROP
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -t nat POSTROUTING -o ppp0 -j MASQUERADE
$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -p ALL -i lo -j ACCEPT
$IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -p ALL -o eth0 -j ACCEPT
Вариант 2:
#!/bin/sh
#
# rc.firewall - Initial SIMPLE IP Firewall script
#
# Authors: Polianitsa Yuriy, Lavrenenko Pavlo
# Based on David Whitmarsh script
# (c) 2001, 2002 Sparkle Computer Co ltd.
# based on rc.firewall by Oskar Andreasson <blueflux@koffein.net>
###########
# Секция задания нужной конфигурации Вашего компьютера ускорит запуск
# приведенного сценария фильтра.
#
# Диапазон значений Вашей локальной сети и localhost IP. /24 означает,
# что под адрес сети используются только первых 24 бита 32-го IP
#адреса,что эквивалентно 255.255.255.0
LAN_BCAST_ADDRESS="xxx.xxx.xxx.63"
INTERNAL_ADDRESS_RANGE="xxx.xxx.xxx.56/29"
INET_IFACE="eth1"
LAN_IFACE="eth0"
LO_IFACE="lo"
LO_IP="127.0.0.1"
IPTABLES="/sbin/iptables"
# Очистить iptables от правил
$IPTABLES -F
$IPTABLES -X
$IPTABLES -t nat -F
$IPTABLES -t nat -X
$IPTABLES -t mangle -F
$IPTABLES -t mangle -X
#
# Установить политики по-умолчанию для цепочек INPUT, FORWARD и OUTPUT
#
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -P FORWARD DROP
# Начнем с таблицы mangle
# цепочка PREROUTING
$IPTABLES -t mangle -P PREROUTING DROP
# Запретить IP spoofing
$IPTABLES -t mangle -A PREROUTING -s 192.168.0.0/16 -j DROP
$IPTABLES -t mangle -A PREROUTING -s 10.0.0.0/8 -j DROP
$IPTABLES -t mangle -A PREROUTING -s 172.16.0.0/12 -j DROP
# Разрешить внутренние пакеты на внутреннем сетевом интерфейсе
$IPTABLES -t mangle -A PREROUTING -i $LAN_IFACE -s $INTERNAL_ADDRESS_RANGE -j ACCEPT
# Разрешить внешние пакеты на веншнем интерфейсе
$IPTABLES -t mangle -A PREROUTING -i $INET_IFACE! -s $INTERNAL_ADDRESS_RANGE -j ACCEPT
# Разрешить транзит пакетов
$IPTABLES -A FORWARD -p ALL -s $INTERNAL_ADDRESS_RANGE -j ACCEPT
$IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -m limit --limit 3/minute --limit-burst 3 -j LOG --log-level 7 --log-prefix "IPT FORWARD packet died: "
# Создать специальные цепочки для ICMP, TCP и UDP пакетов
$IPTABLES -N icmp_packets
#
# правила для ICMP пакетов
#
# Разрешить тип ICMP пакетов echo reply
$IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 0 -j ACCEPT
# Разрешить тип ICMP пакетов destination unreachable
$IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 3 -j ACCEPT
# Разрешить тип ICMP пакетов redirect
$IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 5 -j ACCEPT
# Разрешить тип ICMP пакетов time exceeded
$IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 11 -j ACCEPT
$IPTABLES -A FORWARD -p ICMP -j icmp_packets
#
# правила для UDP пакетов
#
$IPTABLES -N udpincoming_packets
$IPTABLES -A udpincoming_packets -p UDP -s 0/0 --source-port 53 -j ACCEPT # DNS
$IPTABLES -A udpincoming_packets -p UDP -s 0/0 --source-port 123 -j ACCEPT # ntp
$IPTABLES -A FORWARD -p UDP -j udpincoming_packets
# правила для TCP пакетов
$IPTABLES -N tcp_packets
#
# Цепочка allowed для разрешенных TCP соединений
#
$IPTABLES -N allowed
$IPTABLES -A allowed -p TCP --syn -j ACCEPT
$IPTABLES -A allowed -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A allowed -p TCP -j DROP
# Журналировать и отбросить TCP пакеты с признаком New и сброшеннм
# битом SYN
$IPTABLES -A tcp_packets -p tcp! --syn -m state --state NEW -j LOG --log-prefix "New not syn:"
$IPTABLES -A tcp_packets -p tcp! --syn -m state --state NEW -j DROP
$IPTABLES -A FORWARD -p TCP -j tcp_packets
# Обязательное правило для интерфейса петля
$IPTABLES -A INPUT -p ALL -i $LO_IFACE -d $LO_IP -j ACCEPT
$IPTABLES -A INPUT -m limit --limit 3/minute --limit-burst 3 -j LOG --log-level 7 --log-prefix "IPT INPUT packet died: "
#
# цепочка OUTPUT
#
$IPTABLES -A OUTPUT -p tcp! --syn -m state --state NEW -j LOG --log-prefix "New not syn:"
$IPTABLES -A OUTPUT -p tcp! --syn -m state --state NEW -j DROP
$IPTABLES -A OUTPUT -p ALL -s $LO_IP -j ACCEPT
$IPTABLES -A OUTPUT -p ALL -s $BR_IP -j ACCEPT
$IPTABLES -A OUTPUT -m limit --limit 3/minute --limit-burst 3 -j LOG --log-level 7 --log-prefix "IPT OUTPUT packet died: "
Содержание отчета
Отчёт должен содержать ход выполнения лабораторной работы с прокомментированными (назначение, описание параметров) листингами введенных команд IPTables, и команд, применяющихся для проверки конфигурации шлюза.
Контрольные вопросы
1. Опишите взаимосвязь основных компонентов netfilter. Возможно ли создание пользовательских таблиц.
2. Дайте определение терминального и нетерминального действия. Приведите пример отправки пакета в пользовательскую цепочку.
3. Какие цепочки содержатся в таблицах nat, mangle, filter, security, raw, rawpost. Опишите назначения цепочек INPUT, FORWARD, OUTPUT, PREROUTING, POSTROUTING.
4. Перечислите критерии состояния соединения. Опишите возможные состояния соединения.
5. Опишите действия ACCEPT, DROP, REJECT, RETURN, MARK, DELUDE. Все ли действия перечислены? Если нет, то опишите не перечисленные действия.
6. Назовите основные модули iptables. Как фильтровать пакеты по имени и UID программы отправившей пакет.
7. Опишите работу MASQUARADE при соединении хоста из локальной сети с хостом из внешней сети. Как «выглядит» соединение для внешнего хоста? Как маршрутизатор определяет адрес назначения пакета приходящего в ответ из внешней сети? Возможно ли установление соединения инициированого из внешней сети?
8. Опишите дополнительные критерии (multiport, iprange) и критерии маркировки (mark, connmark).
9. Опишите лимитирующие критерии (limit, hashlimit, connlimit, connbytes, quota, quota2, length, length2).
10. Опишите критерий recent. Приведите пример конфигурации для открытия порта «по стуку» при помощи критерия recent.
Дата добавления: 2015-11-14; просмотров: 36 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Преобразование сетевых адресов | | | Лабораторная работа №5. Настройка HTTP-прокси сервера Squid |