Различия между версиями 12 и 14 (по 2 версиям)
Версия 12 от 2008-07-11 17:56:17
Размер: 7583
Редактор: BorisTsema
Комментарий:
Версия 14 от 2008-07-11 18:13:25
Размер: 7532
Редактор: BorisTsema
Комментарий:
Удаления помечены так. Добавления помечены так.
Строка 5: Строка 5:
#Не очень понятно, к чему относится следующий абзац. Ничего не пропущено в лекциях? ''Не очень понятно, к чему относится следующий абзац. Ничего не пропущено в лекциях? '' @SYG@
Строка 40: Строка 40:
В задачу этой лекции не входило рассказать про весь iptables и etcnet, лектор только хотел показать примеры работы с ними.
Строка 44: Строка 42:
Чего мы добились? Включение и выключение iptables через /etc/net. При этом iptables вообще может быть выключен по умолчанию (например, в Lite), и как вы не редактируете /etc/net, пока вы не включите, оно бы не заработало. Итак, мы добились включения и выключения iptables через /etc/net. При этом iptables может быть выключен по умолчанию (например, в Lite), в таком случае редактирование /etc/net не приведёт к его работе -- фаерволл следует сначала включить.
Строка 46: Строка 44:
Теперь забаним lor. Добавим правило (по умолчанию используется таблица filter, но мы это традиционно укажем явно) Для примера попробуем забанить сайт linux.org.ru. Добавим правило (по умолчанию используется таблица filter, но мы это традиционно укажем явно)
Строка 52: Строка 50:
Этими командами мы добавим в syslog варнинг о том, что кто-то ломится на лор и выбрасываем этот пакет. Первой строчкой мы добавили в syslog предупреждение о попытке посещения неким пользователем указанного сайта, а второй оборвали связь.
Строка 54: Строка 52:
Обратите внимание, что мы написали правила для форвардящихся пакетов, следовательно, к пакетам, которые идут с маршрутизатора, эти правила не применяются. Проверка: Обратите внимание, что мы написали правила для перенаправляемых пакетов, следовательно к пакетам, отправленным с маршрутизатора, эти правила не применяются. Проверка:
Строка 100: Строка 98:
|| 20 || 1 || 1 || 1 || || 1 || MaximByshevskiKonopko, BorisTsema || || || || 45 || 1 || 1 || 1 || || 1 || MaximByshevskiKonopko, BorisTsema || || ||

Практика использования iptables: продолжение

Ранее мы настроили фаерволл ручным образом. Но писать большое количество правил достаточно неудобно и желание полуавтоматизировать каким-нибудь образом этот процесс вполне естесственно. Существует два способа сделать это. Первый достался по наследству от дистрибутива Mandrake и позволяет записать все правила кучей в /etc/sysconfig/iptables. Теперь они будут добавляться при запуске iptables. Второй способ -- вписать нужные настройки в соответствующий подкаталог /etc/net/.

Не очень понятно, к чему относится следующий абзац. Ничего не пропущено в лекциях? @SYG@ Посмотрим в /usr/share/doc/etcnet-<version>/examples/firewall-hiddenman/ifaces/default/fw/iptables/nat и сделаем cat POSTROUTING

# cat POSTROUTING 
snat-to 5.6.7.8 if marked as 1

Для примера настроим NAT для второй машины на интерфейсе eth1, и заблокируем соединения с некоторым адресом. Настройки eth0 на второй машине и соединённого с ним eth1 на первой не приводятся по причине рассмотренности ранее Автоматическая настройка сетевых подключений. Для того, чтобы серверная машина смогла маршрутизировать пакеты необходимо включить в /etc/net/sysctl.conf опцию net.ipv4.ip_forward:

# grep forward sysctl.conf 
# IPv4 packet forwarding.
net.ipv4.ip_forward = 0
# sed -i '/net.ipv4.ip_forward = 0/s/0/1/' sysctl.conf 
# grep forward sysctl.conf 
# IPv4 packet forwarding.
net.ipv4.ip_forward = 1

Создадим каталог fw/iptables/nat в /etc/net/ifaces/eth0:

# cd /etc/net/ifaces/eth0
# mkdir -p fw/iptables/nat
# cp fw/iptables/nat
# echo 'snat-to 10.0.2.15' > POSTROUTING

Существует проблема управления iptables в etc-net, связанная с различными форматами синтаксиса. В файле документации /etc/net/ifaces/default/fw/iptables/syntax описано их взаимооднозначное соответствие. В связи с этим правильно заменить ip-адрес на ${IPV4ADDRESS}:

# echo '-j SNAT --to-source ${IPV4ADDRESS}' > POSTROUTING

Итак, мы добились включения и выключения iptables через /etc/net. При этом iptables может быть выключен по умолчанию (например, в Lite), в таком случае редактирование /etc/net не приведёт к его работе -- фаерволл следует сначала включить.

Для примера попробуем забанить сайт linux.org.ru. Добавим правило (по умолчанию используется таблица filter, но мы это традиционно укажем явно)

iptables -t filter -A FORWARD -d linux.org.ru -j LOG --log-level warning
iptables -t filter -A FORWARD -d linux.org.ru -j DROP

Первой строчкой мы добавили в syslog предупреждение о попытке посещения неким пользователем указанного сайта, а второй оборвали связь.

Обратите внимание, что мы написали правила для перенаправляемых пакетов, следовательно к пакетам, отправленным с маршрутизатора, эти правила не применяются. Проверка:

на demo (серверной машине)

# cal | netcat linux.org.ru 80
HTTP/1.1 400 Bad Request
Date: Tue, 08 Jul 2008 15:19:53 GMT
Server: Apache/2.2.8 (Fedora)
Content-Length: 352
Connection: close
Content-Type: text/html; charset=iso-8859-1

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>400 Bad Request</title>
</head><body>
<h1>Bad Request</h1>
<p>Your browser sent a request that this server could not understand.<br />
Request header field is missing ':' separator.<br />
<pre>
Su Mo Tu We Th Fr Sa       1  2  3  4  5 6  7  8  9 10 11 12</pre>
</p>
</body></html>

всё работает.

на localhost (клиентской)

# cal | netcat linux.org.ru 80

не работает.

на demo

# tail -2 /var/log/syslog/messages
Jul  8 19:19:13 demo kernel: IN=eth1 OUT=eth0 SRC=172.16.0.2 DST=217.76.32.61 LEN=52 TOS=0x00 PREC=0x00 TTL=63 ID=16897 DF PROTO=TCP SPT=1395 DPT=80 WINDOW=5840 RES=0x00 SYN URGP=0 
Jul  8 19:19:16 demo kernel: IN=eth1 OUT=eth0 SRC=172.16.0.2 DST=217.76.32.61 LEN=52 TOS=0x00 PREC=0x00 TTL=63 ID=16898 DF PROTO=TCP SPT=1395 DPT=80 WINDOW=5840 RES=0x00 SYN URGP=0


Сведения о ресурсах

Готовность (%)

Продолжительность (ак. ч.)

Подготовка (календ. ч.)

Полный текст (раб. д.)

Предварительные знания

Level

Maintainer

Start date

End date

45

1

1

1

1

MaximByshevskiKonopko, BorisTsema


CategoryLectures CategoryPspo CategoryMpgu CategoryUneex

PspoClasses/080708/03IptablesPractice (последним исправлял пользователь MaximByshevskiKonopko 2008-10-09 21:33:04)