Базовая настройка 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

Источник


free-templates.ru