Практика использования iptables: продолжение
Вот мы понастраивали фаервол ручным образом. Очевидно, что если есть много правил, в разное время появившихся, то достаточно неудобно писать их все вручную. Первый способ это полуавтоматизировать: /etc/sysconfig/iptables (осталось от Mandrake). Туда можно написать все правила кучей, и они будут добавляться при запуске iptables.
Второй способ --- вписать нужные настройки в соответствующий подкаталог /etc/net/.
Посмотрим в /usr/share/doc/etcnet-<version>/examples/firewall-hiddenman/ifaces/default/fw/iptables/nat и сделаем cat POSTROUTING
Для примера, настроим для второй машины, подключенной по 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}:
...
В задачу этой лекции не входило рассказать про весь iptables и etcnet, лектр только хотел показать примеры работы с ними.
Чего мы доидись? Включение и выключение iptables через /etc/net. При этом iptables вообще мжет быть выключен по умолчанию (например, в Lite), и как вы не редактируете /etc/net, пока вы не включите, оно бы не заработало. Тем не менее, iptables неявно включился.
Теперь забаним lor. Сначала добавим его ip:
$ host 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
Понятно, что этот способ общения с iptables --- традиция. Ведь это всё ключи, и правила можно добавлять не в свои таблицы, но так мы плоучим такой же сервер, в ктором каша.
Этими командами мы добавим в syslog варнинг о том, что кто-то лмится на лор и выбрасываем этот пакет.
Обратите внимание, что мы написали правила для форвардящихся пакетов, следовательно, к пакетам, которые идут с маршрутизатора, эти правила не применяются. Проверка:
на demo
# cal | netcat linux.org.ru 80
всё работает.
на localhost {{( # cal | netcat linux.org.ru 80 }}} не работает.
на demo
# tail /var/log/syslog/messages
Сведения о ресурсах
Готовность (%) |
Продолжительность (ак. ч.) |
Подготовка (календ. ч.) |
Полный текст (раб. д.) |
Предварительные знания |
Level |
Maintainer |
Start date |
End date |
11 |
1 |
1 |
1 |
|
1 |
|
|