Самоучитель системного администратора. 5-е издание



Download 19,93 Mb.
Pdf ko'rish
bet54/141
Sana27.06.2022
Hajmi19,93 Mb.
#710588
1   ...   50   51   52   53   54   55   56   57   ...   141
Bog'liq
Samouchitel-sistemnogo-administratora RuLit Me 610071


Глава 5 
Таблица 5.5
(окончание) 
Параметр
Описание 
--source-port 
(или 
--sport

Определяет порт отправителя. Эта опция может использоваться 
только вместе с параметром 
-p

Например: 
iptables -A FORWARD -p tcp -source-port 23 ... 
--destination-port
(или 
--dport

Задает порт-назначение. Опция возможна только с параметром 
-p

Синтаксис такой же, как и в случае с 
-source-port
-state
Позволяет отфильтровать пакеты по состоянию. Параметр 
-state
доступен только при загрузке модуля state с помощью другого
параметра: 
-m state
. Состояния пакета: 

NEW
— новое соединение (еще неустановленное); 

ESTABLISHED
— установленное соединение; 

RELATED
— пакеты, которые не принадлежат соединению,
но связаны с ним; 

INVALID
— неопознанные пакеты. 
Пример: 
iptables -A FORWARD -m state -state RELATED,INVALID 
-in-interface 
(или 
-i

Определяет интерфейс, по которому прибыл пакет. 
Пример: 
iptables -A FORWARD -i eth1 
-out-interface 
(или 
-o

Определяет интерфейс, по которому будет отправлен пакет: 
iptables -A FORWARD -o ppp0 
-tcp-flags
Производит фильтрацию по TCP-флагам (см. man iptables) 
Ранее мы познакомились с основными действиями iptables. В табл. 5.6 представле-
ны все действия iptables (цели iptables). Действие задается параметром 
-j

Таблица 5.6.
Цели iptables 
Действие Описание 
ACCEPT 
Принять пакет. При этом пакет уходит из этой цепочки и передается дальше 
DROP 
Уничтожить пакет 
REJECT 
Уничтожает пакет и сообщает об этом отправителю с помощью
ICMP-сообщения. Параметр 
-reject-with
позволяет уточнить тип
ICMP-сообщения: 

icmp-host-unreachable — узел недоступен; 

icmp-net-unreachable — сеть недоступна; 

icmp-port-unreachable — порт недоступен; 

icmp-proto-unreachable — протокол недоступен. 


Работа в глобальной сети 
211 
Таблица 5.6
(окончание) 
Действие Описание 
По умолчанию отправляет сообщение о недоступности порта. Но, используя 
сообщение icmp-host-unreachable, можно сбить злоумышленника с толку. 
Предположим, что вы просто решили отбрасывать неугодные вам пакеты 
(действие 
DROP
). Но злоумышленник будет посылать и посылать вам эти па-
кеты, чтобы брандмауэр только бы и делал, что занимался фильтрацией и 
удалением этих пакетов (один из видов атаки на отказ). А если вы ответите 
сообщением icmp-host-unreachable, то злоумышленник будет думать, что узел 
недоступен, т. е. компьютер выключен, либо он уже достиг своей цели — до-
бился отказа компьютера. С другой стороны, помните, что это действие поро-
ждает ответный ICMP-пакет, нагружающий исходящий канал, который в неко-
торых случаях (например, одностороннее спутниковое соединение) очень 
«узкий». Если злоумышленник пришлет вам 1 миллион пакетов, то вы должны 
будете отправить 1 миллион сообщений в ответ. Подумайте, готовы ли вы 
к такой нагрузке на исходящий канал
LOG 
Заносит информацию о пакете в протокол. Полезно использовать для прото-
колирования возможных атак — если вы подозреваете, что ваш узел кем-то 
атакуется. Также полезно при отладке настроек брандмауэра 
RETURN 
Возвращает пакет в цепочку, откуда он прибыл. Действие возможно, но лучше 
его не использовать, т. к. легко ошибиться и создать непрерывный цикл:
вы отправляете пакет обратно, а он опять следует на правило, содержащее 
цель 
RETURN
SNAT 
Выполняет подмену IP-адреса отправителя (Source NAT). Используется
в цепочках 
POSTROUTING
и 
OUTPUT
таблицы 
nat
(см. рис. 5.10) 
DNAT 
Выполняет подмену адреса получателя (Destination NAT). Используется 
только в цепочке 
POSTROUTING
таблицы 
nat
MASQUERADE 
Похож на 
SNAT
, но «забывает» про все активные соединения при потере
интерфейса. Используется при работе с динамическими IP-адресами, когда 
происходит потеря интерфейса при изменении IP-адреса. Применяется
в цепочке 
POSTROUTING
таблицы 
nat
Пример настройки брандмауэра 
Создать шлюз в Linux очень просто, и сейчас вы сами в этом убедитесь. Гораздо 
сложнее правильно его настроить — чтобы шлюз не только выполнял свою непо-
средственную функцию (т. е. передачу пакетов из локальной сети в Интернет и об-
ратно), но и защищал сеть. 
В последнее время очень популярны DSL-соединения, поэтому будем считать, что 
для подключения к Интернету используется именно оно. Хотя вся разница только
в названии интерфейса — ppp0. Вполне может быть, что у вас иная конфигурация. 
Например, у вас может быть два сетевых интерфейса: eth0 и eth1. Первый «смот-
рит» в локальную сеть, а второй — подключен к Интернету. Тогда и правила вы 
будете формировать исходя из того, что соединение с Интернетом происходит по 
интерфейсу eth1. 
При DSL-соединении у нас тоже будет два сетевых адаптера: первый (eth0) соеди-
нен с локальной сетью, а к второму (eth1) подключен DSL-модем. Перед настрой-


212 
Глава 5 
кой шлюза проверьте, действительно ли это так. Вполне может оказаться, что сете-
вая плата, к которой подключен DSL-модем, — это интерфейс eth0, а не eth1. Тогда 
вам придется или изменить названия интерфейсов при формировании правил, или 
просто подключить модем к другому сетевому адаптеру. 
IP-адрес DSL-соединения будет динамическим (обычно так оно и есть), а вот
IP-адрес сетевого адаптера, обращенного к локальной сети, назначим такой: 
192.168.1.1. Вы можете использовать и другой адрес (адрес должен быть локаль-
ным, если только у вас нет подсети с реальными IP-адресами). 
Итак, мы настроили локальную сеть, узнали имена сетевых адаптеров, включили 
IP-переадресацию. Осталось только ввести команду: 
sudo iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE 
Установите на всех компьютерах вашей сети IP-адрес 192.168.1.1 в качестве шлюза 
по умолчанию (можно настроить DHCP-сервер, чтобы не настраивать все компью-
теры вручную) и попробуйте пропинговать с любого узла какой-нибудь сайт. 
Оказывается, вы прочитали всю эту главу ради одной строчки. Так и есть. Но, сами 
понимаете, на этом настройка шлюза не заканчивается. Надо еще защитить вашу 
сеть. Как минимум, требуется установить следующие действия по умолчанию: 
sudo iptables -P INPUT DROP 
sudo iptables -P FORWARD ACCEPT 
sudo iptables -P OUTPUT DROP 
Разрешим входящие соединения на шлюз только от узлов нашей внутренней сети 
192.168.1.0: 
sudo iptables –A INPUT –i 
eth0
–-source 
192.168.1.0/24
–-match state –-state 
NEW,ESTABLISHED –j ACCEPT 
Надо также установить правило для цепочки 
OUTPUT
— оно разрешает шлюзу отве-
чать компьютерам нашей локальной сети: 
sudo iptables –A OUTPUT –o 
eth0
–-destination 
192.168.1.0/24
–-match state –-
state NEW,ESTABLISHED –j ACCEPT 
Будьте внимательны при указании имен интерфейсов и IP-адресов. Очень легко 
запутаться, а потом полчаса разбираться, почему шлюз не работает. 
Нам осталось только запретить соединения из Интернета (компьютеры нашей сети 
смогут устанавливать соединения с серверами Интернета, зато внешние интернет-
пользователи не смогут установить соединения с компьютерами нашей сети): 
sudo iptables –A FORWARD –i 
eth0
–-destination 
192.168.1.0/24
–-match state –-
state ESTABLISHED –j ACCEPT 
У нас получилась вполне приличная конфигурация: компьютеры нашей сети могут 
выступать инициаторами соединения, а интернет-узлы могут передавать данные
в нашу сеть только в том случае, если инициатором соединения выступил локаль-
ный компьютер. 
Но и это еще не все. Как вы уже догадались, поскольку мы не сохранили правила 
брандмауэра, при перезагрузке компьютера его придется настраивать заново. Нам 


Работа в глобальной сети 
213 
нет резона описывать настройку брандмауэра (сохранение и восстановление пра-
вил) в каждом дистрибутиве (пусть это будет вашим домашним заданием), так что 
рассмотрим универсальный способ. Он заключается в создании bash-сценария, вы-
зывающего необходимые нам команды настройки iptables. Такой сценарий вам ос-
танется только вызывать при загрузке системы. А для этого придется изучить 
строение системы инициализации в вашем дистрибутиве. 
Вместо того чтобы объяснять вам, как вызвать сценарий, загружающий правила 
брандмауэра (с этим вы и сами разберетесь), мы лучше приведем здесь сценарий 
(понятно, с комментариями), реализующий более сложную конфигурацию iptables. 
Этот сценарий (листинг 5.1) будет не только выполнять все функции шлюза, но и 
защищать сеть от разного рода атак. Сценарий лучше сразу поместить в каталог 
/etc/init.d
(это наша вам подсказка) и сделать исполняемым: 
# touch /etc/init.d/firewall_start 
# chmod +x /etc/init.d/firewall_start 
Листинг 5.1. Сценарий firewall_start 
# Путь к iptables 
IPT="/sbin/iptables" 
# Сетевой интерфейс, подключенный к Интернету 
INET="ppp0" 
# Номера непривилегированных портов 
UPORTS="1024:65535" 
# Включаем IPv4-forwarding (чтобы не думать, почему шлюз не работает) 
echo 1 > /proc/sys/net/ipv4/ip_forward 
# Удаляем все цепочки и правила 
$IPT -F 
$IPT -X 
# Действия по умолчанию. 
$IPT -P INPUT DROP 
$IPT -P FORWARD ACCEPT 
$IPT -P OUTPUT DROP 
# Разрешаем все пакеты по интерфейсу lo (обратная петля) 
$IPT -A INPUT -i lo -j ACCEPT 
$IPT -A OUTPUT -o lo -j ACCEPT 
# Запрещаем любые новые соединения с любых интерфейсов, кроме lo, 
# с нашим компьютером 
$IPT -A INPUT -m state ! -i lo --state NEW -j DROP 
$IPT -A INPUT -s 127.0.0.1/255.0.0.0 ! -i lo -j DROP 


214 
Download 19,93 Mb.

Do'stlaringiz bilan baham:
1   ...   50   51   52   53   54   55   56   57   ...   141




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish