×
New project by Yuriy Vdovytchenko

ITCOD WEB DESKTOP - следующий этап развития проекта ITCOD.

Вопрос Cетевой экран - своими руками.

Больше
7 года 1 мес. назад - 7 года 1 мес. назад #1 от Aleksej
Aleksej создал эту тему: Cетевой экран - своими руками.
Логика построения защиты

Данная статья иллюстрирует процесс настройки ipchains в Linux.
Правда, на сегодняшний день актуальным является использование iptables; но - синтаксис изменился несильно, и логика та же.


Прежде всего -
1. Необходимо удалить существующие правила фильтрации.

ipchains -F

2. Ну что ж, поехали. Начнем с того, что запретим все:

ipchains -P input DENY
ipchains -P output REJECT
ipchains -P forward REJECT


В скобках; обратите внимание на первое правило. Для входящего трафика не разрешено уведомление о недоставке пакета (в противном случае имели бы брешь для атаки).

3. И для начала разрешим loopback.

ipchains - A input -i $LOOPBACK_INTERFACE -j ACCEPT
ipchains - A output -i $LOOPBACK_INTERFACE -j ACCEPT


Опции:
A - правило помещается в конец цепочки
i - определяет сетевой интерфейс,
j - действие.

4. Теперь - запрещаем прохождение пакетов с фальсифицированными адресами.
Т.е. -
пакеты, якобы отправленные с внешнего интерфейса нашего шлюза.
пакеты, содержащие в качестве исходящего адреса - loopback.
пакеты, содержащие в качестве исходящего адреса - адреса, входящие в диапазоны, выделенные для использования во внутренних сетях (A, B и С).
пакеты, содержащие в качестве адреса назначения - адреса из A, B и С.
пакеты, содержащие недопустимые широковещательные адреса.
(0.0.0.0 и 255.255.255.255).
пакеты, содержащие адреса группового вещания, применимы лишь в качестве адреса назначения:

ipchaines -A input -i $EXTERNAL_INTERFACE -s $CLASS_D_MULTICAST -j DENY -1
ipchaines -A output -i $EXTERNAL_INTERFACE -s $CLASS_D_MULTICAST -j REJECT -1


Опция 1 определяет логгирование исполнения правила.

5. Теперь - фильтрация ICMP сообщений - Echo Replay, Destination Ureachable и т.д. Необходимо решить, что именно - оставить, а что - запретить.

6. Далее - разрешаем протоколы высших уровней. FTP, HTTP, почтовые протоколы, DNS и др.

ipchains -A input -i $EXTERNAL_INTERFACE -p udp -s $IPADDR $UNPRIVPORTS -d $NAMESERVER 53 -j ACCEPT
ipchains -A output -i $EXTERNAL_INTERFACE -p udp -s $IPADDR $UNPRIVPORTS -d $NAMESERVER 53 -j ACCEPT
ipchains -A input -i $EXTERNAL_INTERFACE -p tcp -s $IPADDR $UNPRIVPORTS -d $NAMESERVER 53 -j ACCEPT
ipchains -A output -i $EXTERNAL_INTERFACE -p tcp -s $IPADDR $UNPRIVPORTS -d $NAMESERVER 53 -j ACCEPT


Разрешим сервера имен (53 порт, входящие и исходящие, tcp и udp).
IPADDR - адрес компа
UNPRIVPORTS - непривилегированные порты.

И, наконец - маршрутизация (в случае, когда необходимо соединить несколько подсетей) и masquerade.

ipchains -A forward -I $EXTERNAL_INTERFACE -s LAN-1 -j MASQ
Последнее редактирование: 7 года 1 мес. назад от Aleksej.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
6 года 5 мес. назад #2 от unior
unior ответил в теме Re: Cетевой экран - своими руками.
Aleksej писал(а):

Данная статья иллюстрирует процесс настройки ipchains в Linux.


Сильно ли отличаются ipchains и iptables?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
6 года 5 мес. назад #3 от Aleksej
Aleksej ответил в теме Re: Cетевой экран - своими руками.
Логика та же.
Изменился ряд имен действий и внутренняя реализация.

Фильтрация пакетов

Таблицы iptables

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.