Базовая настройка iptables
В интернете существует масса примеров настройки стандартного для Linux фаервола iptables. Но большинство этих материалов являются очень громоздкими и сложными, т.к. в большинстве случаев описывается настройка какого-нибудь сервера с трансляцией адресов, несколькими сетевыми интерфейсами и т.д. Ниже я попытаюсь описать базовую максимально понятную настройку iptables, вполне достаточную для обеспечения безопасности пользовательской системы.
Пакет iptables и нужные для его работы модули ядра обычно присутствуют во многих дистрибутивах по умолчанию, поэтому я не буду останавливаться на их установке, а сразу перейду к процессу настройки.
Все действия, изложенные в данной статье, необходимо выполнять с правами пользователя root.
Для начала создадим файл, в котором будут храниться все правила нашего фаервола. Назовем его firewall.sh и разместим в системном каталоге /etc:
touch /etc/firewall.sh
Файл создан. Затем мы открываем наш файл firewall.sh в любом текстовом редакторе и вносим следующие строки:
#!/bin/bash
/sbin/iptables -F
/sbin/iptables -X
/sbin/iptables -A INPUT -i lo -j ACCEPT
/sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -P INPUT DROP
/sbin/iptables -P FORWARD DROP
/sbin/iptables -P OUTPUT ACCEPT
Затем сохраняем и выходим.
Теперь подробнее, что конкретно мы сделали:
/sbin/iptables -F - сбрасываем все правила
/sbin/iptables -X - сбрасываем все цепочки
/sbin/iptables -A INPUT -i lo -j ACCEPT - разрешаем любые соединения через внутренний сетевой интерфейс localhost
/sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT - разрешаем входящие подключения ранее установленных соединений
/sbin/iptables -P INPUT DROP - запрещаем все входящие соединения
/sbin/iptables -P FORWARD DROP - запрещаем все перенаправления
/sbin/iptables -P OUTPUT ACCEPT - разрешаем все исходящие соединения
Делаем наш файл исполняемым:
chmod +x /etc/firewall.sh
Теперь необходимо сделать, чтобы правила устанавливались на этапе загрузки системы. Для этого добавим в файл /etc/rc.local следующую строчку:
/etc/firewall.sh
Данной конфигурации правил вполне достаточно для обеспечения безопасности пользовательского компьютера.
Все порты закрыты для доступа из вне (в том числе и пинг). То есть наш компьютер полностью невидимый.
Если хотим, чтобы нас пинговали:
/sbin/iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
В случае возникновения необходимости, открыть какой-то определенный порт (допустим 80-й):
/sbin/iptables -A INPUT -p tcp --dport 80 -j ACCEPT - отрываем входящие tcp-соединения на 80-й порт
и так далее.
Если у вас возникли какие-то вопросы или трудности - пишите на наш форум.
Фролов Николай, aka linke
Специально для tuxnotes.ru
При использовании материалов сайта, ссылка обязательна.

