← Назад ко всем вопросам

Как настраивать Firewall на Linux

1️⃣ Как кратко ответить

Настройка Firewall на Linux осуществляется с помощью утилиты iptables или firewalld. iptables предоставляет низкоуровневый интерфейс для управления таблицами правил фильтрации пакетов, в то время как firewalld предлагает более высокоуровневый и динамичный подход к управлению правилами. Выбор утилиты зависит от требований к гибкости и простоте управления.

2️⃣ Подробное объяснение темы

Firewall на Linux — это система, которая контролирует входящий и исходящий сетевой трафик на основе заранее определенных правил безопасности. Он играет ключевую роль в защите системы от несанкционированного доступа и атак.

Основные утилиты для настройки Firewall

  1. iptables: Это низкоуровневый инструмент для настройки правил фильтрации пакетов. Он позволяет детально управлять сетевым трафиком, но требует глубокого понимания сетевых протоколов и работы с командной строкой.

  2. firewalld: Это более высокоуровневый инструмент, который предоставляет динамическое управление правилами. Он поддерживает зоны безопасности и позволяет изменять правила без перезапуска службы.

Настройка с помощью iptables

iptables управляет таблицами правил, которые определяют, как обрабатываются пакеты. Основные таблицы включают:

  • filter: Основная таблица для фильтрации пакетов.
  • nat: Используется для изменения адресов пакетов.
  • mangle: Для изменения заголовков пакетов.

Пример базовой настройки iptables:

# Удаление всех существующих правил
iptables -F
​
# Установка политики по умолчанию: блокировать все входящие соединения
iptables -P INPUT DROP
​
# Разрешить входящие соединения на порт 22 (SSH)
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
​
# Разрешить входящие соединения на порт 80 (HTTP)
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
​
# Разрешить входящие соединения на порт 443 (HTTPS)
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
​
# Разрешить все исходящие соединения
iptables -P OUTPUT ACCEPT
  • iptables -F: Очищает все существующие правила, чтобы начать с чистого листа.
  • iptables -P INPUT DROP: Устанавливает политику по умолчанию для входящих соединений как "отклонить".
  • iptables -A INPUT -p tcp --dport 22 -j ACCEPT: Добавляет правило для разрешения входящих соединений на порт 22 (SSH).
  • iptables -A INPUT -p tcp --dport 80 -j ACCEPT: Добавляет правило для разрешения входящих соединений на порт 80 (HTTP).
  • iptables -A INPUT -p tcp --dport 443 -j ACCEPT: Добавляет правило для разрешения входящих соединений на порт 443 (HTTPS).
  • iptables -P OUTPUT ACCEPT: Устанавливает политику по умолчанию для исходящих соединений как "разрешить".

Настройка с помощью firewalld

firewalld использует концепцию зон, которые определяют уровень доверия к сетям. Каждая зона имеет свой набор правил.

Пример базовой настройки firewalld:

# Запуск службы firewalld
systemctl start firewalld
​
# Добавление службы SSH в зону public
firewall-cmd --zone=public --add-service=ssh --permanent
​
# Добавление службы HTTP в зону public
firewall-cmd --zone=public --add-service=http --permanent
​
# Добавление службы HTTPS в зону public
firewall-cmd --zone=public --add-service=https --permanent
​
# Применение изменений
firewall-cmd --reload
  • systemctl start firewalld: Запускает службу firewalld.
  • firewall-cmd --zone=public --add-service=ssh --permanent: Добавляет службу SSH в зону public и делает это изменение постоянным.
  • firewall-cmd --zone=public --add-service=http --permanent: Добавляет службу HTTP в зону public и делает это изменение постоянным.
  • firewall-cmd --zone=public --add-service=https --permanent: Добавляет службу HTTPS в зону public и делает это изменение постоянным.
  • firewall-cmd --reload: Применяет изменения, сделанные в конфигурации.

Зачем это нужно

Настройка Firewall необходима для защиты системы от несанкционированного доступа и атак. Она позволяет контролировать, какие соединения разрешены, а какие блокируются, обеспечивая безопасность и стабильность работы системы. В зависимости от требований и уровня знаний, можно выбрать между iptables для более детального контроля или firewalld для более простого и динамичного управления.

Тема: Базы данных
Стадия: Tech

🔒 Подпишись на бусти автора и стань Алигатором, чтобы получить полный доступ к функционалу сайта и отслеживать свой прогресс!

Твои заметки