Установка firewall на yggdrasil сервер

Введение

Сеть Yggdrasil открывает много возможноcтей. Однако, иногда она открывает даже то, что хотелось бы не открывать. Не всякий сразу сообразит о дырах в защите, которые предоставляет эта сеть. Запустив Yggdrasil вы открываете все порты на своей машине для доступа из сети Yggdrasil (tun-интерфейс), даже если она закрыта файрволом где-то на уровне роутера или провайдера. Вот понятная инструкция по установке защиты. Все команды ниже нужно выпулнять с правами суперпользователя.

Примечание: приведенные ниже правила применяются ко всем IPv6, не только Yggdrasil. Укажите dev tun0, чтобы ограничения работали только для указанного интефейса (tun0 - интерфейс Yggdrasil (в вашей конфигурации имя может отличаться)).

1. Убираем все правила, если надо. Если не знаете - тоже убираем.

ip6tables -P INPUT ACCEPT
ip6tables -P FORWARD ACCEPT
ip6tables -P OUTPUT ACCEPT
ip6tables -t nat -F
ip6tables -t mangle -F
ip6tables -F
ip6tables -X

2. Устанавливаем защиту. В данном случае мы оставляем открытыми только ssh и http порты. Все остальные закрываем.

ip6tables -P INPUT DROP
ip6tables -P FORWARD DROP
ip6tables -P OUTPUT ACCEPT
ip6tables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
ip6tables -I INPUT 1 -i lo -j ACCEPT
ip6tables -A INPUT -p icmpv6 -j ACCEPT
ip6tables -A INPUT -p tcp --dport 80 -j ACCEPT
ip6tables -A INPUT -p tcp --dport 22 -j ACCEPT

3. Проверяем. Должно показать примерно то же самое, но в других выражениях.

ip6tables -L

4. Теперь эту конфигурацию нужно сохранить.

ip6tables-save > /etc/ip6tables.conf

5. Готово. Для того, чтобы поднять защиту, сразу после старта системы нужно выполнить команду

ip6tables-restore < /etc/ip6tables.conf

Заключение

В ОС на базе Debian для автоматического применения правил iptables при загрузке можно использовать пакет iptables-persistent.

Некоторые системы, например Федора или RH имеют сервис iptables.service или firewalld.service, который стартует при загрузке и устанавливает файрвол по своему усмотрению. Если вы за NATом, то это дело можно смело отключить. Можно также дополнить этот стандартный сервис тем, что я написал выше.

Ссылки

Обсуждение

Nitta, 2022/02/09 14:09, 2022/02/10 13:07

Для ubuntu/debian чтобы автоматом поднимать защиту сразу после старта системы можно использовать iptables-persistent. После установки сохранение правил для IPv6 ip6tables выглядит так:

sudo su
ip6tables-save > /etc/iptables/rules.v6


d4708, 2023/10/16 18:35
Я мало знаком с синтаксисом iptables, сам пользуюсь настройкой ufw, позволяющей также сохранять правила iptables в автозагрузку

По части доступа по ssh/22, мне кажется более сообразным ограничивать подключения еще и по IP (потому что без fail2ban и других костылей 22 порт постоянно брутфорсят боты), в yggdrasil он статичный, что удобно, а в случае аварии сервера yggdrasil, можно зайти или локально или через веб консоль провайдера.

ufw allow from [REMOTE_YGGDRASIL_IP] to any port 22

newbie, 2023/12/06 09:30, 2023/12/07 17:30
sshd можно повесить на конкретный интерфейс/IP (кстати, это можно сделать для большинства демонов).
В /etc/ssh/sshd_config можно добавить:
ListenAddress 10.1.1.1 # или yggdrasil-адрес

Только в override.conf для ssh.service нужно будет еще добавить
After=wg-quick@wg0.service или yggdrasil.service
(чтобы sshd запускалось после wg или yggdrasil)

d4708, 2023/12/06 05:47, 2023/12/06 05:53
Конечно, может нубовский заскок, но мне кажется сервис игдрасиля должен из коробки иметь какой то фаервол или вайтлист портов, для людей которые ставят но думают потом - всякие криптоанархисты и прочая аудитория у которых цель пробовать всё что называется не интернет.

newbie, 2023/12/06 09:31
Быть файерволом - это не цель Yggdrasil )
Только авторизованные участники могут оставлять комментарии.
yggdrasil/firewall_setup.txt · Последнее изменение: 2023/10/10 18:06 — 127.0.0.1
 
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki