Настройка iptables

Iptables - это достаточно надежный, конфигурируемый файервол для Linux-систем, поставляющийся со всеми дистрибутивами на базе ядер 2.4.х и выше. Настройка достаточно простой процесс и не займет у вас много времени.

Первое, что нужно сделать - убедиться, что в файле конфигурации /etc/sysconfig/iptables-config параметр IPTABLES_SAVE_ON_STOP="yes". Это заставит сервис iptables сохранять свою конфигурацию в файл при каждом завершении работы, чтобы не пришлось конфигурировать все повторно. Начнем с того, что создадим начальный файл конфигурации

iptables-save > /etc/sysconfig/iptables

На свежеустановленной системе файл будет иметь примерно следующее содержимое:

# Generated by iptables-save v1.4.5 on Sat Dec  5 11:46:18 2009
*filter
:INPUT ACCEPT [17:1201]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [12:1341]
COMMIT
# Completed on Sat Dec  5 11:46:18 2009

Что означает полностью прозрачный (открытый) режим работы. Никаких ограничений не задано. Здесь цепочка INPUT отвечает за фильтрацию входящего трафика, OUTPUT - исходящего.

Добавление своих правил можно произвести двумя способами: либо редактировать этот файл и перезапускать iptables, либо отдавать по одной строке iptables через консоль, что не потребует перезагрузки сервиса (правила будут применены моментально).

1. Начнем с базовых вещей. Разрешим передачу трафика уже открытым соединениям:

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

2. Разрешаем входящие подключения на конкретных портах:

iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT

Этими командами мы открыли доступ извне всем новым подключеням на портах 80 и 22, по протоколу TCP.

3. Как только вы завершили открывать доступ на всех нужных вам портах нам необходимо сделать самое важное - заставить iptables отсекать весь остальной трафик, для которого нет описаных правил. ВНИМАНИЕ! Если вы осуществляете конфигурацию iptables на удаленном сервере по ssh, убедитесь, что вы прописали правило, которое позволит сохранить текущее подключение (в нашем случае это правило в пункте 1 и правило из пункта 2 для новых подлкючений), иначе вы рискуете быть заблокированным файерволом:

iptables -A INPUT -j REJECT --reject-with icmp-host-prohibited

Данная команда означает буквально следующее - отклонять все пакеты, которые не подходят ни под одно описанное выше правило, со статусом "узел запрещен".

4. Сохраните все ваши правила и убедитесь, что служба iptables будет автоматически запущена при рестарте системы.

iptables-save > /etc/sysconfig/iptables
chkconfig iptables on

После рестарта системы, iptables должен прочитать все правила из файла /etc/sysconfig/iptables и автоматически применить их. Проверить все дейвствующие правила можно командой
iptables -L

Если вы перезагрузились, а правил нет - проверьте, откуда их читает сервис. Посмотреть это можно в файле /etc/init.d/iptables, в параметре IPTABLES_DATA.

Спасибо!

Но я бы не советовал включать автоматическое сохранение. Так как всегда можно будет откатится простым передергиванием питания.

Так-же советую включить опции
IPTABLES_STATUS_LINENUMBERS="yes"
IPTABLES_STATUS_VERBOSE="yes"
и смотреть правила командой
/etc/init.d/iptables status

Добавлять и удалять можно командами iptables -I и iptables -D соответственно.

Сохранять правила - /etc/init.d/iptables save

--
foot

Спасибо, за ценный комментарий!

Спасибо!

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

Image CAPTCHA
Enter the characters shown in the image.