howto-db/data/pages/yggdrasil/firewall_setup.txt
2024-02-10 12:53:55 +00:00

59 lines
3.6 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

====== Установка firewall на yggdrasil сервер ======
===== Введение =====
Сеть [[yggdrasil:Yggdrasil]] открывает много возможноей. Однако, иногда она открывает даже то, что хотелось бы не открывать.
Не всякий сразу сообразит о дырах в защите, которые предоставляет эта сеть. Запустив Yggdrasil вы
открываете все порты на своей машине для доступа из сети Yggdrasil (tun-интерфейс), даже если она закрыта файрволом где-то
на уровне роутера или провайдера. Вот понятная инструкция по установке защиты. Все команды ниже нужно выпулнять с правами суперпользователя.
//**Примечание:** приведенные ниже правила применяются ко всем IPv6, не только Yggdrasil. Укажите ''%%dev tun0%%'', чтобы ограничения работали только для указанного интефейса (tun0 - интерфейс Yggdrasil (в вашей конфигурации имя может отличаться)).//
**1.** Убираем все правила, если надо. Если не знаете - тоже убираем.
<code bash>
ip6tables -P INPUT ACCEPT
ip6tables -P FORWARD ACCEPT
ip6tables -P OUTPUT ACCEPT
ip6tables -t nat -F
ip6tables -t mangle -F
ip6tables -F
ip6tables -X
</code>
**2.** Устанавливаем защиту. В данном случае мы оставляем открытыми
только ssh и http порты. Все остальные закрываем.
<code bash>
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
</code>
**3.** Проверяем. Должно показать примерно то же самое, но в других выражениях.
<code>
ip6tables -L
</code>
**4.** Теперь эту конфигурацию нужно сохранить.
<code>
ip6tables-save > /etc/ip6tables.conf
</code>
**5.** Готово. Для того, чтобы поднять защиту, сразу после старта системы нужно
выполнить команду
<code>
ip6tables-restore < /etc/ip6tables.conf
</code>
===== Заключение =====
В ОС на базе [[wpru>Debian|Debian]] для автоматического применения правил iptables при загрузке можно использовать пакет [[https://packages.debian.org/ru/sid/iptables-persistent|iptables-persistent]].
Некоторые системы, например Федора или RH имеют сервис iptables.service или firewalld.service, который стартует при загрузке и устанавливает файрвол по своему усмотрению.
Если вы за NATом, то это дело можно смело отключить. Можно также дополнить этот стандартный сервис тем, что я написал выше.
====== Ссылки ======
Просто об управлении iptables: https://www.digitalocean.com/community/tutorials/how-to-list-and-delete-iptables-firewall-rules-ru