Iptables в Debian: начало

Iptables предоставляет пакетную фильтрацию преобразование сетевых адресов (NAT) и другие преобразования пакетов. Два наиболее распространенных вида использования IPTables заключается в оказании поддержки брандмауэра NAT. 

Настройка IPTables вручную является сложной задачей для непосвященных. К счастью, есть много инструментов конфигурации (мастера), доступных для оказания помощи: например fwbuilder, bastille, ferm (wiki page), ufw

Просмотр текущей конфигурации:

iptables -L

Ответ команды будет следующим:

Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Эти правила разрешают все всем отовсюду.

Хранение правил IPTables в файле

Для начала создадим новый файл для правил:

nano /etc/iptables.rules

В этот файл внесем несколько простых правил:

*filter

# Разрешить весь локальный (lo0) трафик и отбрасывать весь трафик на сеть 127/8, который не идет через lo0
-A INPUT -i lo -j ACCEPT
-A INPUT ! -i lo -d 127.0.0.0/8 -j REJECT

# Разрешить все установленные изнутри подключения
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Разрешить весь исходящий трафик
-A OUTPUT -j ACCEPT

# Разрешить HTTP и HTTPS подключения отовсюду на сервер
-A INPUT -p tcp --dport 80 -j ACCEPT
-A INPUT -p tcp --dport 443 -j ACCEPT

# Разрешить подключения по SSH
# Номер порта --dport такой же как в /etc/ssh/sshd_config
-A INPUT -p tcp -m state --state NEW --dport 22 -j ACCEPT

# Разрешить пинг
#  заметьте, что блокирование других типов icmp трафика нежелательно
#  удалите -m icmp --icmp-type 8 отсюда чтобы разрешить все виды icmp:
#  https://security.stackexchange.com/questions/22711
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT

# логировать неудачные попытки доступа (доступен через команду 'dmesg')
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7

# Отбрасывать все входящие пакеты. по умолчанию все разрешается, что не хорошо:
-A INPUT -j REJECT
-A FORWARD -j REJECT

COMMIT

Активировать эти правила:

iptables-restore < /etc/iptables.rules

И посмотрите изменения:

iptables -L

Теперь вывод команды говорит нам о том, что только те порты что разрешили открыты, остальные закрыты.

Теперь, когда все верно, можно сохранить эти правила для восстановления их при перезагрузке:

iptables-save > /etc/iptables.rules

В файл:

nano /etc/network/if-pre-up.d/iptables

Добавьте следующие строки:

#!/bin/sh
/sbin/iptables-restore < /etc/iptables.rules

Файл должен быть исполняемым, поэтому выполняем команду:

chmod +x /etc/network/if-pre-up.d/iptables

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Unlix © Все права защищены 2023

Копирование материалов с сайта Unlix.ru без указания полной ссылки на источник ЗАПРЕЩЕНО!