5594
Комментарий:
|
7327
|
Удаления помечены так. | Добавления помечены так. |
Строка 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}}}). Для того, чтобы серверная машина смогла-таки маршрутизировать пакеты, включаем в /etc/net/sysctl.conf опцию net.ipv4.ip_forward: {{{ # grep forward sysctl.conf # IPv4 packet forwarding. = 0 # sed -i 'sESC[ESC[K/net.ipv4.ip_forward = 0ESC[KsESC[ESC[K/s/0/1/' sysctl.conf # grep forward sysctl.conf # IPv4 packet forwarding. net.ipv4.ip_forward = 1 }}} Создаём каталоги {{{fw/iptables/nat}}} в {{{/etc/net/ifaces/eth0}}}: |
Строка 19: | Строка 36: |
Проблема вот какая: существует два синтаксиса управления 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: | Строка 40: |
... | # echo '-j SNAT --to-source ${IPV4ADDRESS}' > POSTROUTING |
Строка 26: | Строка 43: |
В задачу этой лекции не входило рассказать про весь iptables и etcnet, лектр только хотел показать примеры работы с ними. | В задачу этой лекции не входило рассказать про весь iptables и etcnet, лектор только хотел показать примеры работы с ними. |
Строка 28: | Строка 45: |
##Замечание: при удалении правил iptables не делается substitution у ${IPV4ADDRESS} | ##Замечание: при удалении правил iptables не делается substitution у ${IPV4ADDRESS} (бага!) |
Строка 30: | Строка 47: |
Чего мы дбидись? Включение и выключение iptables через etcnet. При этом iptables вообще мжет быть выключен по умолчанию (например, в Lite), и как вы не редактируете etcnet, пка вы не включите, оно бы не заработало. Тем не менее, iptables неявн включился. | Чего мы добились? Включение и выключение iptables через /etc/net. При этом iptables вообще может быть выключен по умолчанию (например, в Lite), и как вы не редактируете /etc/net, пока вы не включите, оно бы не заработало. |
Строка 32: | Строка 49: |
##У нас настрйка уестуе вручную в правильном порядке уже была, такие ручные поделки делат не рекомендуется, и делать это надо либо центром управления, либо правкой /etc/net Теперь забаним lor. Сначала добавим его ip: {{{ $ host linux.org.ru }}} Теперь добавим правило (по умолчанию исп. таблоица filter) |
Теперь забаним lor. Добавим правило (по умолчанию используется таблица filter, но мы это традиционно укажем явно) |
Строка 45: | Строка 55: |
Понятно, что этот способ общения с iptables --- традиция. Ведь это всё ключи, и правила можно добавлять не в свои таблицы, но так мы плоучим такой же сервер, в ктором каша. Этими командами мы добавим в syslog варнинг о том, что кто-то лмится на лор и выбрасываем этот пакет. |
Этими командами мы добавим в syslog варнинг о том, что кто-то ломится на лор и выбрасываем этот пакет. |
Строка 51: | Строка 59: |
на demo | на demo (серверной машине) |
Строка 54: | Строка 62: |
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> |
|
Строка 57: | Строка 83: |
на localhost {{( |
на localhost (клиентской) {{{ |
Строка 65: | Строка 91: |
# 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: | Строка 103: |
|| 0 || 1 || 1 || 1 || || 1 || MaximByshevskiKonopko, BorisTsema || || || | || 20 || 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). Для того, чтобы серверная машина смогла-таки маршрутизировать пакеты, включаем в /etc/net/sysctl.conf опцию net.ipv4.ip_forward:
# grep forward sysctl.conf # IPv4 packet forwarding. = 0 # sed -i 'sESC[ESC[K/net.ipv4.ip_forward = 0ESC[KsESC[ESC[K/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. Один с синтаксисом 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, пока вы не включите, оно бы не заработало.
Теперь забаним 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 |
20 |
1 |
1 |
1 |
|
1 |
|
|