четверг, 7 марта 2013 г.

Debian файрвол и прокси. Настройка 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
Не забываем перекреститься и перезапускаем сеть/перезагружаемся. Должно работать ^_^
В принципе у нас есть рабочий файрвол с прозрачным прокси!
В последней статье просто добавим пару фич (которыми я пользуюсь) в сквид…

Комментариев нет:

Отправить комментарий