5594
Комментарий:
|
6898
|
Удаления помечены так. | Добавления помечены так. |
Строка 3: | Строка 3: |
Вот мы понастраивали фаервол ручным образом. Рчевидно, что если есть много правил, в разное время появившихся, то достаточно неудобно писать их все вручную. Первый способ это полуавтоматизировать: /etc/sysconfig/iptables (осталось от Mandrake). | Вот мы понастраивали фаервол ручным образом. Очевидно, что если есть много правил, в разное время появившихся, то достаточно неудобно писать их все вручную. Первый способ это полуавтоматизировать: {{{/etc/sysconfig/iptables}}} (осталось от Mandrake). Туда можно написать все правила кучей, и они будут добавляться при запуске iptables. |
Строка 5: | Строка 5: |
Второй способ --- отредактировать в /etc/net/ | Второй способ --- вписать нужные настройки в соответствующий подкаталог {{{/etc/net/}}}. |
Строка 7: | Строка 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}}} |
Строка 9: | Строка 9: |
В ксах есть два места для копирования информации --- есть cutbuffer, причём их несколько. Второй из них --- copy area. cutbuffer заполняется автоматически поо выделению текста. copyarea заполняется, если вы явно вызываете команду копирования. То же с операцией вставки. П средней кнопке мыши --- из cutbuffer, по команде --- из copyarea. Идея с cutbuffer хороша, но на не принимается виндузовыми пользователями. | {{{ # cat POSTROUTING snat-to 5.6.7.8 if marked as 1 }}} |
Строка 11: | Строка 14: |
Создаём каталоги fw/iptables/nat в /etc/net/ifaces/eth0: | ## Это было лирическое отступление, вроде как непротокольное ##В ксах есть два места для копирования информации --- есть cutbuffer, причём их несколько. Второй из них --- copy area. cutbuffer заполняется автоматически поо выделению текста. copyarea заполняется, если вы явно вызываете команду копирования. То же с операцией вставки. П средней кнопке мыши --- из cutbuffer, по команде --- из copyarea. Идея с cutbuffer хороша, но на не принимается виндузовыми пользователями. Для примера, настроим для второй машины, подключенной по eth1, NAT, и заблокируем для неё соединения с некоторым адресом. Настройки eth0 на второй машине и соединённого с ним eth1 на первой не приводятся по причине рассмотренности ранее (ссылка на настройку сети через {{{/etc/net}}}). Создаём каталоги {{{fw/iptables/nat}}} в {{{/etc/net/ifaces/eth0}}}: |
Строка 19: | Строка 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}}} |
Строка 23: | Строка 31: |
... | # echo '-j SNAT --to-source ${IPV4ADDRESS}' > POSTROUTING |
Строка 26: | Строка 34: |
В задачу этой лекции не входило рассказать про весь iptables и etcnet, лектр только хотел показать примеры работы с ними. | В задачу этой лекции не входило рассказать про весь iptables и etcnet, лектор только хотел показать примеры работы с ними. |
Строка 28: | Строка 36: |
##Замечание: при удалении правил iptables не делается substitution у ${IPV4ADDRESS} | ##Замечание: при удалении правил iptables не делается substitution у ${IPV4ADDRESS} (бага!) |
Строка 30: | Строка 38: |
Чего мы дбидись? Включение и выключение iptables через etcnet. При этом iptables вообще мжет быть выключен по умолчанию (например, в Lite), и как вы не редактируете etcnet, пка вы не включите, оно бы не заработало. Тем не менее, iptables неявн включился. | Чего мы добились? Включение и выключение iptables через /etc/net. При этом iptables вообще может быть выключен по умолчанию (например, в Lite), и как вы не редактируете /etc/net, пока вы не включите, оно бы не заработало. Тем не менее, iptables неявно включился. |
Строка 32: | Строка 40: |
##У нас настрйка уестуе вручную в правильном порядке уже была, такие ручные поделки делат не рекомендуется, и делать это надо либо центром управления, либо правкой /etc/net Теперь забаним lor. Сначала добавим его ip: {{{ $ host linux.org.ru }}} Теперь добавим правило (по умолчанию исп. таблоица filter) |
Теперь забаним lor. Добавим правило (по умолчанию используется таблица filter, но мы это традиционно укажем явно) |
Строка 45: | Строка 46: |
Понятно, что этот способ общения с iptables --- традиция. Ведь это всё ключи, и правила можно добавлять не в свои таблицы, но так мы плоучим такой же сервер, в ктором каша. Этими командами мы добавим в syslog варнинг о том, что кто-то лмится на лор и выбрасываем этот пакет. |
Этими командами мы добавим в syslog варнинг о том, что кто-то ломится на лор и выбрасываем этот пакет. |
Строка 54: | Строка 53: |
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> |
|
Строка 58: | Строка 75: |
{{( | {{{ |
Строка 65: | Строка 82: |
# 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 |
Строка 75: | Строка 94: |
|| 0 || 1 || 1 || 1 || || 1 || MaximByshevskiKonopko, BorisTsema || || || | || 19 || 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, и заблокируем для неё соединения с некоторым адресом. Настройки eth0 на второй машине и соединённого с ним eth1 на первой не приводятся по причине рассмотренности ранее (ссылка на настройку сети через /etc/net).
Создаём каталоги 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 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 |
19 |
1 |
1 |
1 |
|
1 |
|
|