Debian файрвол и прокси — 3 из 4. Настройка iptables

Итак, мы с вами успели ранее настроить сеть на нашем будущем сервере и сконфигурировать сквид.

Теперь приступим к файрволу.

Для ознакомления и изучения, рекомендую почитать здесь.  Тогда вы будете вносить осмысленные изменения в систему, а не повторять мои ошибки (=

Включим в системе форвардинг. В файле /etc/sysctl.conf раскомментируем строчку
net.ipv4.ip_forward=1

Итак, на текущий момент мы имеем полностью сброшенные настройки файрвола (iptables).

Сбрасываем цепочки:
$ sudo iptables -F
$ sudo iptables -F -t nat

Запрещаем все входящие и разрешаем все исходящие и форвардинг:
$ sudo iptables -P INPUT DROP
$ sudo iptables -P OUTPUT ACCEPT
$ sudo iptables -P FORWARD ACCEPT

Разрешаем принимать ответ на УЖЕ установленный соединени:
$ sudo iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
Разрешаем loopback-трафик:
$ sudo iptables -A INPUT -i lo -j ACCEPT
Разрешаем весь трафик с нашей внутренней сети (возьмем подсеть 222):
$ sudo iptables -A INPUT -s 192.168.222.0/24 -i eth1 -j ACCEPT
И, залог прозрачности! Перенапрявляем весь исходящий http-трафик (на порт 80) на порт сквида 3128:
$ sudo iptables -t nat -A PREROUTING -s 192.168.222.0/24 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
$ sudo iptables -t nat -A POSTROUTING -s 192.168.222.0/24 -o eth0 -j SNAT --to-source 192.168.56.39

Проверяем на клиенте интернет. Напомню, что если прокси указывать не обязательно, шлюз выставить необходимо!
Однако, после первой же перезагрузки, мы поймем, что все наши старания ушли впустую.
Научим же их выживанию!
Итак, сохраним всё то, чем мы тут занимались:
$ sudo iptables-save > /etc/firewall.conf
У меня с судо этот финт не получился (хотя в теории вроде должен…), потому можно сделать влогинившись в рута полностью (su) и запустив команду, но без sudo.
А теперь создадим скрипт, заставляющий ifupdown воскрешать наш файрвол:
$ sudo nano /etc/network/if-up.d/00-iptables
Впишем в него следующее:
#!/bin/sh
iptables-restore < /etc/firewall.conf

Выставим права на исполнение:
$ sudo chmod +x /etc/network/if-up.d/00-iptables
Не забываем перекреститься и перезапускаем сеть/перезагружаемся. Должно работать ^_^
В принципе у нас есть рабочий файрвол с прозрачным прокси!
В последней статье просто добавим пару фич (которыми я пользуюсь) в сквид…

3 Responses to “Debian файрвол и прокси — 3 из 4. Настройка iptables”

  1. Driver 7 Декабрь 2008 at 12:20 #

    >>sudo nano /etc/network/if-up.d/00-iptables

    более debian-way будет
    >>sudo nano /etc/network/if-pre-up.d/00-iptables

    :)

  2. Malefic 10 Декабрь 2008 at 11:13 #

    Driver
    Спасибо, полезная информация!

  3. Driver 30 Апрель 2009 at 16:07 #

    кстати еще одно замечание по debian-way :)
    в дебиане форвадинг включается
    echo ip_forward=yes >> /etc/network/options

Добавить комментарий