Различия
Показаны различия между двумя версиями страницы.
Предыдущая версия | |||
— | ufw [2024/06/02 15:10] (текущий) – [Настройка правил фаервола (iptables) с помощью UFW] darkfire | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
+ | ====== Настройка правил фаервола (iptables) с помощью UFW ====== | ||
+ | ~~Title: iptables для начинающих: | ||
+ | {{htmlmetatags> | ||
+ | metatag-description=(iptables - это сложно? | ||
+ | }} | ||
+ | {{ : | ||
+ | |||
+ | Uncomplicated Firewall (ufw) (англ. | ||
+ | |||
+ | GUI for Uncomplicated Firewall (Gufw) (англ. | ||
+ | |||
+ | UFW предназначен для легкого, | ||
+ | |||
+ | * [[cheklist_nastrojka_vps_vds_vydelennogo_servera_linux]] | ||
+ | * [[Fail2ban]] - защита от брутфорса | ||
+ | ===== Шаг 1: Введения в UFW ===== | ||
+ | |||
+ | Все современные решения Линукс по сетевой защите используют подсистему ядра Netfilter (сетевой фильтр). | ||
+ | |||
+ | Система пакетной фильтрации на уровне ядра неудобна для использования без пользовательского интерфейса для её управления. Для управления предназначен [[iptables|iptables]]. Когда пакет попадает на ваш сервер, | ||
+ | |||
+ | ===== Шаг 2: Установить брандмауэр UFW ===== | ||
+ | UFW устанавливается в Ubuntu по умолчанию во всех случаях, | ||
+ | |||
+ | Если UFW нет, мы можем установить его с помощью команды: | ||
+ | <file bash> | ||
+ | sudo apt install ufw | ||
+ | </ | ||
+ | |||
+ | <alert type=" | ||
+ | |||
+ | ==== Шаг 2.1: Конфигурационный файл UFW (опционально) ==== | ||
+ | Конфигурационный файл UFW находится в / | ||
+ | |||
+ | Вы можете в нем настроить, | ||
+ | |||
+ | Политики безопасности по умолчанию также находятся в файле / | ||
+ | <file bash> | ||
+ | sudo ufw default deny incoming | ||
+ | sudo ufw default allow outgoing | ||
+ | </ | ||
+ | |||
+ | ==== Шаг 2.2: Создание профилей приложений для UFW (опционально) ==== | ||
+ | Ufw умеет работать с профилями приложений, | ||
+ | |||
+ | Посмотреть созданные профили можно при помощи команды: | ||
+ | <file bash> | ||
+ | sudo ufw app list | ||
+ | </ | ||
+ | Просмотр детальной информации, | ||
+ | <file bash> | ||
+ | $ sudo ufw app info OpenSSH | ||
+ | Profile: OpenSSH | ||
+ | Title: Secure shell server, an rshd replacement | ||
+ | Description: | ||
+ | |||
+ | Port: | ||
+ | 22/tcp | ||
+ | </ | ||
+ | |||
+ | Все профили создаются вручную. Для создания профиля приложения перейдите в директорию / | ||
+ | <file php> | ||
+ | [< | ||
+ | title=< | ||
+ | description=< | ||
+ | ports=< | ||
+ | </ | ||
+ | После создания своего приложения запустите команду ufw reload, чтобы брандмауэр увидел ваш файл. | ||
+ | ===== Шаг 3: Первоначальная настройка сетевого фильтра при помощи UFW ===== | ||
+ | Вы только что установили сервер Linux Ubuntu с поддержкой UFW, не важно на вашем компьютере или на виртуальном хостинге. Ниже описаны шаги которые нужно сделать для безопасности вашего сервера. Соответственно под ваши нужды правила фаервола в дальнейшем должны расширяться. | ||
+ | |||
+ | Закрываем все кроме доступа к сервер по протоколу SSH: | ||
+ | <file bash> | ||
+ | $ sudo ufw app list | ||
+ | Available applications: | ||
+ | OpenSSH | ||
+ | Nginx Full | ||
+ | Nginx HTTP | ||
+ | Nginx HTTPS | ||
+ | OpenSSH | ||
+ | Postfix | ||
+ | </ | ||
+ | Разрешаем SSH и Nginx Full | ||
+ | <file bash> | ||
+ | $ sudo ufw allow OpenSSH | ||
+ | $ sudo ufw allow 'Nginx Full' | ||
+ | </ | ||
+ | Включаем ufw | ||
+ | <file bash> | ||
+ | $ sudo ufw enable | ||
+ | Command may disrupt existing ssh connections. Proceed with operation (y|n)? y | ||
+ | Firewall is active and enabled on system startup | ||
+ | </ | ||
+ | Проверяем что получилось: | ||
+ | <file bash> | ||
+ | $ sudo ufw status verbose | ||
+ | Status: active | ||
+ | Logging: on (low) | ||
+ | Default: deny (incoming), allow (outgoing), disabled (routed) | ||
+ | New profiles: skip | ||
+ | |||
+ | To | ||
+ | -- | ||
+ | 22/tcp (OpenSSH) | ||
+ | 22/tcp (OpenSSH (v6)) ALLOW IN Anywhere (v6) | ||
+ | </ | ||
+ | |||
+ | |||
+ | ==== Шаг 3.1: UFW правила для протокола ICMP ==== | ||
+ | Протокол [[ICMP|ICMP]] должен быть открыт в файрволе всегда! | ||
+ | |||
+ | ufw с одной стороны не позволяет указывать правила icmp с помощью команды интерфейса командной строки. Но он позволяет вам настраивать набор правил с помощью файлов правил, | ||
+ | |||
+ | ufw по умолчанию разрешает определенный icmp-трафик, | ||
+ | |||
+ | <file bash> | ||
+ | -A ufw-before-input -p icmp --icmp-type echo-request -j ACCEPT | ||
+ | </ | ||
+ | Если ваш хост не отвечает на пинг, посмотрите в этом файле, чтобы убедиться, | ||
+ | |||
+ | В дистрибутивах Linux на базе Debian, которые поставляются с брандмауэром приложений UFW, вы можете блокировать сообщения [[ICMP|ICMP]], | ||
+ | |||
+ | <file bash> | ||
+ | -A ufw-before-input -p icmp --icmp-type echo-request -j DROP | ||
+ | </ | ||
+ | ==== Шаг 3.2: Общая настройка логирования UFW и конкретной службы | ||
+ | В Ufw есть опция сохранения логов — журнал событий. По умолчанию логи включены и используется уровень low, что можно проверить командой вывода статуса. Как видите в моем примере настройки по умолчанию Logging: on (low). | ||
+ | <file bash> | ||
+ | ufw status verbose | ||
+ | Status: active | ||
+ | Logging: on (low) | ||
+ | </ | ||
+ | |||
+ | Для запуска, | ||
+ | <file bash> | ||
+ | ufw logging on | ||
+ | </ | ||
+ | Ufw поддерживает несколько уровней логирования: | ||
+ | |||
+ | * off — отключен. | ||
+ | * low — регистрирует все заблокированные пакеты, | ||
+ | * medium — все то, что при значении low. Плюс все разрешенные пакеты, | ||
+ | * high — работает также как и medium. Плюс все пакеты с ограничением скорости. | ||
+ | * full — также как и high, но без ограниения скорости. | ||
+ | |||
+ | Чтобы задать уровень, | ||
+ | <file bash> | ||
+ | ufw logging high | ||
+ | </ | ||
+ | Файлы относящихся с логам ufw находятся в стандартной директории: | ||
+ | <file bash> | ||
+ | ls / | ||
+ | |||
+ | / | ||
+ | </ | ||
+ | Вы можете добавить правило ведения журнала, | ||
+ | <file bash> | ||
+ | ufw allow log service_name | ||
+ | </ | ||
+ | Например, | ||
+ | <file bash> | ||
+ | ufw allow log 22/tcp | ||
+ | </ | ||
+ | |||
+ | ===== Шаг 4: Настройка NAT (преобразование сетевых адресов) в UFW ===== | ||
+ | Настройка [[NAT|NAT]] к сожалению не простая задача и нужно править конфигурационные файл UFW before.rules вручную. Чтобы не дублировать контент, | ||
+ | |||
+ | Также не забываем включать преобразование NAT на уровне ядра Linux, описано в той же статье. | ||
+ | ===== Расширенное использование UFW: лучшие команды брандмауэра UFW ===== | ||
+ | |||
+ | * sudo ufw enable - активировать UFW для применения внесённых изменений. | ||
+ | * sudo ufw disable - деактивировать UFW. | ||
+ | * Посмотреть статус сетевой защиты - з варианта: | ||
+ | <file bash> | ||
+ | sudo ufw status | ||
+ | sudo ufw status verbose | ||
+ | sudo ufw status numbered | ||
+ | </ | ||
+ | Status: active | ||
+ | |||
+ | To | ||
+ | -- | ||
+ | 22 | ||
+ | 443 ALLOW | ||
+ | 80 | ||
+ | 22 (v6) LIMIT | ||
+ | 443 (v6) | ||
+ | 80 (v6) ALLOW | ||
+ | </ | ||
+ | * Возможно разрешить доступ для определенных хостов или сетей. Следующий пример показывает как разрешить доступ хосту с ip адресом 192.168.0.2 на хост с любым ip по протоколу SOCKS. Если заменить 192.168.0.2 на 192.168.0.0/ | ||
+ | sudo ufw --dry-run allow proto tcp from 192.168.0.2 to any port 1080 | ||
+ | </ | ||
+ | Простые варианты разрешения доступа с удаленного IP и открытие порта | ||
+ | <file bash> | ||
+ | ufw allow from xxx.xxx.xxx.xxx | ||
+ | ufw allow 6000: | ||
+ | ufw allow 6000: | ||
+ | </ | ||
+ | <file bash> | ||
+ | sudo ufw allow proto tcp from 192.168.0.2 to any port 1080 | ||
+ | </ | ||
+ | * Правила могут быть добавлены с использованием нумерованного формата:< | ||
+ | sudo ufw insert 1 allow proto tcp from 37.73.96.0/ | ||
+ | </ | ||
+ | ==== Как удалить правило в UFW ==== | ||
+ | |||
+ | Для удаления правила используйте delete | ||
+ | <file bash> | ||
+ | sudo ufw delete deny proto tcp from any to any port 1080 | ||
+ | </ | ||
+ | Или еще проще удалять по номеру правила. Чтобы узнать номер правила в UFW используйте ключ numbered: | ||
+ | <file bash> | ||
+ | ufw status numbered | ||
+ | Status: active | ||
+ | |||
+ | | ||
+ | | ||
+ | [ 1] Nginx Full ALLOW IN Anywhere | ||
+ | [ 2] Anywhere | ||
+ | [ 3] Nginx Full (v6) ALLOW IN Anywhere (v6) | ||
+ | |||
+ | </ | ||
+ | Выше мы узнали номера правило, | ||
+ | <file bash> | ||
+ | ufw delete 3 | ||
+ | |||
+ | Deleting: | ||
+ | allow from 10.26.95.11 | ||
+ | Proceed with operation (y|n)? y | ||
+ | Rule deleted | ||
+ | </ | ||
+ | ==== Отключение или сброс UFW ==== | ||
+ | Если вы уже настроили правила UFW, но решите начать заново, | ||
+ | <file bash> | ||
+ | ufw reset | ||
+ | </ | ||
+ | Эта команда отключит UFW и удалит все ранее заданные правила, | ||
+ | <file bash> | ||
+ | sudo ufw default deny incoming | ||
+ | sudo ufw default allow outgoing | ||
+ | </ | ||
+ | ==== Удаление правил UFW ==== | ||
+ | Существует два способа удаления правил. Первый — по номеру правила. Выполните команду: | ||
+ | <file bash> | ||
+ | ufw status numbered | ||
+ | tatus: active | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | | ||
+ | |||
+ | | ||
+ | |||
+ | [ 1] 22 ALLOW IN Anywhere | ||
+ | [ 2] 80 ALLOW IN Anywhere | ||
+ | [ 3] 22 (v6) ALLOW IN Anywhere (v6) | ||
+ | [ 4] 80 (v6) ALLOW IN Anywhere (v6) | ||
+ | </ | ||
+ | После этого выполните команду ufw delete и укажите номер правила, | ||
+ | <file bash> | ||
+ | ufw delete 2 | ||
+ | </ | ||
+ | Второй способ заключается в том, что после команды ufw delete используется фактическое правило, | ||
+ | <file bash> | ||
+ | ufw delete allow http | ||
+ | или | ||
+ | ufw delete allow 80 | ||
+ | </ | ||
+ | <panel type=" | ||
+ | * [[firewalld]] | ||
+ | * [[zabbix# | ||
+ | * [[iptables|Как перенаправить пакет с IP:PORT на localhost: | ||
+ | </ |
📌 Удобный подбор VPS по параметрам доступен на DIEGfinder.com - официальном инструменте проекта DIEG. Это часть единой экосистемы, созданной для того, чтобы помочь быстро найти подходящий VPS/VDS сервер для любых задач хостинга.
📌 Для тестирования скриптов, установщиков VPN и Python-ботов рекомендуем использовать надежные VPS на короткий срок. Подробнее о быстрой аренде VPS для экспериментов - читайте здесь.
💥 Подпишись в Телеграм 💥 и задай вопрос по сайтам и хостингам бесплатно!7 Самых Популярных Статей
- Как запустить скрипты и веб-приложения на Python
- Что такое страны TIER 1,2,3
- 7 способов сравнения файлов по содержимому в Windows или Linux
- Установка и тестирование веб-панели HestiaCP
- Nginx простые примеры конфигурации
- top, htop, atop определение загрузки ОС (Load average, LA)
- Использование rsync в примерах
7 Самых Популярных Обзоров
- Хостинг для Python-скриптов и приложений
- ТОП 4 лучших антидетект браузеров (Бесплатные & Платные)
- Подборка купонов (промокоды) на хостинг, антидетект браузеры
- Обзор THE.Hosting (PQ Hosting): надежный хостинг с профессиональной поддержкой
- Хостинг в России
- Хостинг в Европе
- Обзор браузера Dolphin {anty} для мультиаккаунтинга