Differences between revisions 1 and 3 (spanning 2 versions)
Revision 1 as of 2008-07-08 18:33:44
Size: 5594
Editor: eSyr
Comment:
Revision 3 as of 2008-07-08 19:51:47
Size: 6341
Comment:
Deletions are marked like this. Additions are marked like this.
Line 3: Line 3:
Вот мы понастраивали фаервол ручным образом. Рчевидно, что если есть много правил, в разное время появившихся, то достаточно неудобно писать их все вручную. Первый способ это полуавтоматизировать: /etc/sysconfig/iptables (осталось от Mandrake). Вот мы понастраивали фаервол ручным образом. Очевидно, что если есть много правил, в разное время появившихся, то достаточно неудобно писать их все вручную. Первый способ это полуавтоматизировать: /etc/sysconfig/iptables (осталось от Mandrake). Туда можно написать все правила кучей, и они будут добавляться при запуске iptables.
Line 5: Line 5:
Второй способ --- отредактировать в /etc/net/ Второй способ --- вписать нужные настройки в соответствующий подкаталог /etc/net/.
Line 7: Line 7:
Посмотрим в /usr/share/doc/etcnet-.../examples/firewall-hissenman/ifaces/default/fw/iptables/nat и сделаем cat POSTROUTING Посмотрим в /usr/share/doc/etcnet-<version>/examples/firewall-hiddenman/ifaces/default/fw/iptables/nat и сделаем cat POSTROUTING
Line 9: Line 9:
В ксах есть два места для копирования информации --- есть cutbuffer, причём их несколько. Второй из них --- copy area. cutbuffer заполняется автоматически поо выделению текста. copyarea заполняется, если вы явно вызываете команду копирования. То же с операцией вставки. П средней кнопке мыши --- из cutbuffer, по команде --- из copyarea. Идея с cutbuffer хороша, но на не принимается виндузовыми пользователями. {{{
# cat POSTROUTING
snat-to 5.6.7.8 if marked as 1
}}}

## Это было лирическое отступление, вроде как непротокольное
##
В ксах есть два места для копирования информации --- есть cutbuffer, причём их несколько. Второй из них --- copy area. cutbuffer заполняется автоматически поо выделению текста. copyarea заполняется, если вы явно вызываете команду копирования. То же с операцией вставки. П средней кнопке мыши --- из cutbuffer, по команде --- из copyarea. Идея с cutbuffer хороша, но на не принимается виндузовыми пользователями.

Для примера, настроим для второй машины, подключенной по eth1, NAT, и заблокируем для неё соединения с некоторым адресом.
Line 19: Line 27:
Проблема вот какая: существует два синтаксиса управления etc-net'ом iptables'ом. Один приближенный к iptables, другой human-readable. Есть в документации файл, который описывает взаимооднозначное соответствие этих форматов: /etc/net/ifaces/default/fw/iptables/syntax Проблема вот какая: существует два синтаксиса управления iptables в etc-net. Один с синтаксисом iptables, другой human-readable. Есть в документации файл, который описывает взаимооднозначное соответствие этих форматов: /etc/net/ifaces/default/fw/iptables/syntax
Line 23: Line 31:
... # echo '-j SNAT --to-source ${IPV4ADDRESS}' > POSTROUTING
Line 28: Line 36:
##Замечание: при удалении правил iptables не делается substitution у ${IPV4ADDRESS} ##Замечание: при удалении правил iptables не делается substitution у ${IPV4ADDRESS} (бага!)
Line 30: Line 38:
Чего мы дбидись? Включение и выключение iptables через etcnet. При этом iptables вообще мжет быть выключен по умолчанию (например, в Lite), и как вы не редактируете etcnet, пка вы не включите, оно бы не заработало. Тем не менее, iptables неявн включился. Чего мы добились? Включение и выключение iptables через /etc/net. При этом iptables вообще может быть выключен по умолчанию (например, в Lite), и как вы не редактируете /etc/net, пока вы не включите, оно бы не заработало. Тем не менее, iptables неявно включился.
Line 34: Line 42:
Теперь забаним lor. Сначала добавим его ip:
{{{
$ host linux.org.ru
}}}

Теперь д
обавим правило (по умолчанию исп. таблоица filter)
Теперь забаним lor. Добавим правило (по умолчанию используется таблица filter, но мы это традиционно укажем явно)
Line 45: Line 48:
Понятно, что этот способ общения с iptables --- традиция. Ведь это всё ключи, и правила можно добавлять не в свои таблицы, но так мы плоучим такой же сервер, в ктором каша.

Этими командами мы добавим в syslog варнинг о том, что кто-то лмится на лор и выбрасываем этот пакет.
Этими командами мы добавим в syslog варнинг о том, что кто-то ломится на лор и выбрасываем этот пакет.
Line 65: Line 66:
# tail /var/log/syslog/messages # 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
Line 75: Line 78:
|| 0 || 1 || 1 || 1 || || 1 || MaximByshevskiKonopko, BorisTsema || || || || 15 || 1 || 1 || 1 || || 1 || MaximByshevskiKonopko, BorisTsema || || ||

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

Вот мы понастраивали фаервол ручным образом. Очевидно, что если есть много правил, в разное время появившихся, то достаточно неудобно писать их все вручную. Первый способ это полуавтоматизировать: /etc/sysconfig/iptables (осталось от Mandrake). Туда можно написать все правила кучей, и они будут добавляться при запуске iptables.

Второй способ --- вписать нужные настройки в соответствующий подкаталог /etc/net/.

Посмотрим в /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

Для примера, настроим для второй машины, подключенной по eth1, NAT, и заблокируем для неё соединения с некоторым адресом.

Создаём каталоги 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. Один с синтаксисом iptables, другой human-readable. Есть в документации файл, который описывает взаимооднозначное соответствие этих форматов: /etc/net/ifaces/default/fw/iptables/syntax

Чтобы было совсем правильно, заменить ip-адрес на ${IPV4ADDRESS}:

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

В задачу этой лекции не входило рассказать про весь iptables и etcnet, лектр только хотел показать примеры работы с ними.

Чего мы добились? Включение и выключение iptables через /etc/net. При этом iptables вообще может быть выключен по умолчанию (например, в Lite), и как вы не редактируете /etc/net, пока вы не включите, оно бы не заработало. Тем не менее, iptables неявно включился.

Теперь забаним lor. Добавим правило (по умолчанию используется таблица 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

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

на 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

15

1

1

1

1

MaximByshevskiKonopko, BorisTsema


CategoryLectures CategoryPspo CategoryMpgu CategoryUneex

PspoClasses/080708/03IptablesPractice (last edited 2008-10-09 18:33:04 by MaximByshevskiKonopko)