урок 9 обучение линукс

Цель урока: Глубоко понять, что такое файервол (межсетевой экран), почему его наличие на сервере абсолютно необходимо, и освоить ufw (Uncomplicated Firewall) - инструмент для создания надежного и понятного набора правил, который будет защищать ваш сервер 24/7.

Часть 1: Теория. Цифровой охранник на входе

Представьте, что ваш сервер - это важное здание. В Уроке 8 мы выяснили, что у него есть адрес (IP) и множество дверей (портов). Без файервола все эти двери широко распахнуты. Любой желающий в интернете может подойти и подергать за ручку каждой двери, пытаясь найти открытую.

Файервол - это ваш строгий и бдительный охранник, который стоит на входе. Он не пускает в здание никого, кроме тех, кто есть в утвержденном списке.

Почему это критически важно?

  1. Принцип "Запрещено всё, что не разрешено": Это золотой стандарт безопасности. Файервол работает по принципу "белого списка". Изначально он блокирует абсолютно все входящие соединения. Вы, как администратор, создаете явные и точные правила, какой трафик (на какой порт) следует пропустить. Весь остальной трафик, не подпадающий под правила, будет безжалостно отброшен.

  2. Защита от автоматизированных атак: Интернет кишит ботами, которые круглосуточно сканируют диапазоны IP-адресов в поисках уязвимых серверов. Их первая цель - найти открытые порты. Если у вас установлена, например, база данных, но вы забыли ее защитить, бот может это обнаружить за считанные минуты. Файервол сделает ваш сервер "невидимым" для таких сканеров - они просто не получат ответа с незащищенных портов.

  3. Уменьшение "поверхности атаки": Этот профессиональный термин означает совокупность всех возможных точек входа, через которые злоумышленник может попытаться проникнуть в систему. Каждая открытая служба, каждый слушающий порт - это часть этой поверхности. Правильно настроенный файервол сокращает эту поверхность до абсолютного минимума - только те порты, которые действительно нужны для работы вашего проекта.

Что такое ufw и почему именно он?

В ядре Linux есть встроенный, невероятно мощный и сложный механизм фильтрации пакетов под названием Netfilter. Для управления им используется утилита iptablesiptables - это стандарт де-факто для профессионалов, но его синтаксис сложен и неочевиден для новичков. Ошибка в правиле iptables может легко заблокировать вам доступ к серверу.

ufw (Uncomplicated Firewall) - это дружелюбный "интерфейс" к iptables, созданный разработчиками Ubuntu. Он позволяет описывать правила безопасности простым, человекочитаемым языком. При этом ufw преобразует ваши простые команды в корректный и надежный набор правил iptables. Для 95% задач администрирования VDS его возможностей более чем достаточно. Он сочетает в себе простоту для новичков и мощь для профессионалов.

Часть 2: Практика. Основные команды ufw

Мы работаем под root, поэтому sudo не требуется.

1. Проверка состояния и управление файерволом

  • ufw status: Показывает текущее состояние. Чаще всего при первой проверке вы увидите Status: inactive.

  • ufw status verbose: Показывает более подробную информацию, включая политику по умолчанию.

  • ufw enableВключает файервол. Он начнет работать и будет автоматически запускаться при старте системы.

  • ufw disable: Отключает файервол.

  • ufw reset: Сбрасывает все правила к состоянию "по умолчанию" (т.е. к выключенному состоянию без правил). Полезно, если вы "заигрались" и хотите начать с чистого листа.

2. Настройка политики по умолчанию

Это самый важный шаг, который выполняется до включения файервола.

  • ufw default deny incoming: Устанавливает политику по умолчанию для входящего трафика на "запретить". Это и есть наш принцип "запрещено всё, что не разрешено".

  • ufw default allow outgoing: Устанавливает политику для исходящего трафика на "разрешить". Это стандартная и безопасная практика. Она означает, что ваш сервер может инициировать соединения с внешним миром (например, скачивать обновления с помощью apt update), но мир не может инициировать соединения с вашим сервером.

3. Добавление разрешающих правил (allow)

Правила можно добавлять несколькими способами:

  • По имени службы: ufw знает стандартные порты для многих служб. Это самый простой способ.

    • ufw allow ssh (разрешает порт 22)

    • ufw allow http (разрешает порт 80)

    • ufw allow https (разрешает порт 443)

  • По номеру порта: Если у вас нестандартная служба или вы хотите быть точным.

    • ufw allow 22 (разрешает трафик на порт 22, и TCP, и UDP)

    • ufw allow 8080 (разрешает трафик на порт 8080)

  • По номеру порта и протоколу: Самый точный и правильный способ.

    • ufw allow 22/tcp

    • ufw allow 80/tcp

    • ufw allow 53/udp (пример для DNS-запросов)

  • Для конкретного IP-адреса: Повышенный уровень безопасности.

    • ufw allow from 195.12.11.2 to any port 22 (разрешить SSH только с вашего домашнего/офисного IP)

4. Удаление правил

  • По самому правилу: Просто напишите delete перед правилом, которое вы добавляли.

    • ufw delete allow http

  • По номеру (самый удобный способ):

    1. Сначала получаем нумерованный список всех правил: ufw status numbered

    2. Затем удаляем правило по его номеру: ufw delete [номер]

Часть 3: Практический сценарий. Безопасная настройка с нуля

Выполните эту последовательность шагов в точности, чтобы гарантировать безопасность и не потерять доступ к серверу.

⚠️ ЗОЛОТОЕ ПРАВИЛО ФАЙЕРВОЛА ⚠️

ВСЕГДА, АБСОЛЮТНО ВСЕГДА, ПЕРВЫМ ДЕЛОМ ДОБАВЛЯЙТЕ ПРАВИЛО, РАЗРЕШАЮЩЕЕ SSH! Если вы сначала включите политику deny и активируете файервол, вы немедленно потеряете SSH-соединение и не сможете подключиться к серверу снова.

  1. Зайдите на сервер под root.

  2. Проверьте текущий статус. Скорее всего, он inactive.

    ufw status
    ufw status
  3. Если файервол активен, для чистоты эксперимента сбросим его:

    ufw reset
    # Система предупредит, что это может нарушить текущие SSH-соединения.
    # Так как мы сразу его настроим, смело вводите 'y' и нажимайте Enter.
  4. ВЫПОЛНЯЕМ ЗОЛОТОЕ ПРАВИЛО. Разрешаем входящие соединения для SSH. Мы сделаем это самым точным способом - по порту и протоколу.

    ufw allow 22/tcp

    Система ответит Rule added. Теперь мы застрахованы от потери доступа.

  5. Теперь задаем политики по умолчанию. Закрываем все входящие, разрешаем все исходящие.

    ufw default deny incoming
    ufw default allow outgoing
    ufw разрешить и запретить соединения
  6. Представим, что наш сервер будет веб-сервером. Разрешим стандартный веб-трафик.

    ufw allow http   # Это то же самое, что ufw allow 80/tcp
    ufw allow https  # Это то же самое, что ufw allow 443/tcp
  7. Момент истины. Включаем файервол.

    ufw enable
    ufw enable

    Система снова выдаст предупреждение о возможном разрыве SSH-соединений. Мы знаем, что уже добавили разрешающее правило, поэтому уверенно вводим y и нажимаем Enter. Вы увидите Firewall is active and enabled on system startup.

  8. Проверим, что у нас получилось.

    ufw status

    Вывод будет выглядеть примерно так:

    Status: active
    
    To                         Action      From
    --                         ------      ----
    22/tcp                     ALLOW       Anywhere
    80/tcp                     ALLOW       Anywhere
    443/tcp                    ALLOW       Anywhere

    Это означает: "Разрешать подключения к портам 22, 80, 443 с любого IP-адреса. Все остальные входящие подключения - отбрасывать". Ваш сервер теперь под базовой защитой!

  9. Попрактикуемся в удалении. Допустим, мы решили временно отключить обычный HTTP.

    # Сначала смотрим нумерованный список
    ufw status numbered
    
    # Вывод будет примерно таким:
    # Status: active
    #      To                         Action      From
    #      --                         ------      ----
    # [ 1] 22/tcp                     ALLOW IN    Anywhere
    # [ 2] 80/tcp                     ALLOW IN    Anywhere
    # [ 3] 443/tcp                    ALLOW IN    Anywhere
    
    # Удаляем правило номер 2
    ufw delete 2

    Подтвердите удаление (y). Если вы снова вызовете ufw status, правило для порта 80 исчезнет.

Итоги урока и домашнее задание

  • Что мы освоили:

    • Что такое файервол и почему он является обязательным элементом безопасности.

    • Концепцию "запрещено всё, что не разрешено" (Default Deny).

    • Что ufw - это удобная оболочка для мощного iptables.

    • Полный цикл управления ufw: установка политик, добавление и удаление правил, включение и проверка статуса.

    • Золотое правило: всегда разрешать SSH в первую очередь.

  • Ваше девятое задание:

    1. Сбросьте все правила файервола командой ufw reset.

    2. Настройте файервол с нуля для следующего сценария:

      • Разрешить SSH (порт 22/tcp)

      • Политика по умолчанию: запретить все входящие, разрешить все исходящие.

      • Представьте, что вы запускаете веб-приложение для разработки, которое работает на порту 3000. Добавьте правило, разрешающее трафик на порт 3000/tcp.

      • Представьте, что у вас также есть игровой сервер, который использует порты с 27015 по 27020 по протоколу UDP. Добавьте правило, разрешающее этот диапазон (ufw allow 27015:27020/udp).

    3. Включите файервол.

    4. Просмотрите нумерованный список правил.

    5. Удалите правило для игрового сервера (диапазон портов UDP).

    6. Проверьте статус еще раз, чтобы убедиться, что правило удалено.

На следующем уроке мы рассмотрим управление файерволом с помощью iptables и ipset

Перейти к просмотру - УРОК №10.

подарок Промо-код: PROMO15 - скидка 15%! огонь

Введите при оформлении первого заказа на сайте: Hosting-VDS.com

авторское право цифровые решения

Помог ли вам данный ответ? 0 Пользователи считают это полезным (0 голосов)