Настройка брандмауэра linux ubuntu

Содержание
  1. Настройка брандмауэра UFW на сервере Ubuntu 20.04
  2. Требования
  3. 1: Использование IPv6 (опционально)
  4. 2: Политика по умолчанию
  5. 3: Настройка соединений SSH
  6. 4: Включение UFW
  7. 5: Поддержка других соединений
  8. Настройка диапазонов портов
  9. Настройка IP-адресов
  10. Настройка подсетей
  11. Настройка сетевых интерфейсов
  12. 6: Блокирование соединений
  13. 7: Удаление правил
  14. Удаление правила по его номеру
  15. Удаление правила
  16. 8: Проверка состояния и правил UFW
  17. 9: Отключение или сброс правил UFW (опционально)
  18. Заключение
  19. Как настроить брандмауэр с UFW в Ubuntu 18.04
  20. Подготовка
  21. Установить UFW
  22. Проверить статус UFW
  23. Политики UFW по умолчанию
  24. Профили приложений
  25. Разрешить SSH-подключения
  26. Включить UFW
  27. Разрешить подключения к другим портам
  28. Открытый порт 80 — HTTP
  29. Открытый порт 443 — HTTPS
  30. Открытый порт 8080
  31. Разрешить диапазоны портов
  32. Разрешить определенные IP-адреса
  33. Разрешить определенные IP-адреса на определенном порту
  34. Разрешить подсети
  35. Разрешить подключения к определенному сетевому интерфейсу
  36. Запретить подключения
  37. Удалить правила UFW
  38. Отключить UFW
  39. Сбросить UFW
  40. Выводы

Настройка брандмауэра UFW на сервере Ubuntu 20.04

UFW (Uncomplicated Firewall) – это интерфейс, предназначенный для упрощения настройки технологий фильтрации пакетов iptables и nftables. Инструмент iptables надёжный и гибкий, но новичку будет непросто настроить его самостоятельно.

Данный мануал поможет настроить брандмауэр с помощью UFW в Ubuntu 20.04

Требования

Для работы вам нужен сервер Ubuntu 20.04, настроенный по этому мануалу. Чтобы приступить к настройке UFW, войдите в сессию пользователя с доступом к sudo.

В Ubuntu инструмент UFW установлен по умолчанию. Если в вашей системе он по какой-либо причине не установлен, введите команду:

sudo apt install ufw

1: Использование IPv6 (опционально)

Данный мануал предназначен для протокола IPv4, но подойдёт и для IPv6.

Если на вашем сервере Ubuntu включен протокол IPv6, убедитесь, что UFW поддерживает его. Откройте конфигурации UFW:

sudo nano /etc/default/ufw

Убедитесь, что в настройках есть строка:

Сохраните и закройте файл (Ctrl-X, Y, Enter). После включения UFW будет поддерживать правила для IPv4 и IPv6.

Прежде чем приступить к работе над правилами брандмауэра, нам нужно убедиться, что он поддерживает соединения SSH. Давайте посмотрим на политику UFW по умолчанию.

2: Политика по умолчанию

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

Чтобы вернуться к исходным правилам брандмауэра, введите команды:

sudo ufw default deny incoming
sudo ufw default allow outgoing

Теперь брандмауэр сбрасывает все входящие и поддерживает все исходящие соединения.

Стандартные правила брандмауэра подходят для персональных компьютеров; серверам обычно необходимо принимать входящий трафик.

3: Настройка соединений SSH

Если сейчас включить UFW, он заблокирует все входящие соединения. Потому сначала нужно создать правила, которые разрешат входящий трафик заведомо безопасных сервисов (например, SSH и HTTP). Трафик SSH нужно обязательно разрешить на облачном сервере, так как этот протокол позволяет вам подключаться к серверу.

Чтобы разблокировать соединения SSH, введите:

sudo ufw allow ssh

Это правило разрешит входящие соединения по порту 22 (порт SSH по умолчанию). UFW знает имена некоторых сервисов (в том числе и SSH). Все эти сервисы перечислены в файле /etc/services.

Вместо названия сервиса в правиле можно указать порт. Например:

sudo ufw allow 22

Если вы используете нестандартный порт SSH, укажите его в команде. К примеру, если SSH прослушивает порт 2222, нужно ввести такую команду:

sudo ufw allow 2222

4: Включение UFW

Чтобы включить UFW, введите:

sudo ufw enable

Вы получите предупреждение о том, что команда может прервать текущие SSH-соединения. Поскольку только что вы разблокировали трафик ssh, этого не произойдёт. Можно нажать y и Enter.

Теперь брандмауэр включен. Чтобы просмотреть текущий набор правил, введите:

sudo ufw status verbose

Далее мы рассмотрим, как разрешить или заблокировать разные нужные соединения.

5: Поддержка других соединений

Теперь разблокируйте другие соединения, которые нужны для работы сервера. Список необходимых сервисов индивидуален для каждого сервера.

Читайте также:  Sip атс для windows

Ниже мы приведём несколько правил для поддержки наиболее востребованных сервисов.

Незашифрованные соединения HTTP можно разблокировать с помощью команд:

sudo ufw allow http
sudo ufw allow 80

Зашифрованные соединения HTTPS можно разрешить при помощи команд:

sudo ufw allow https
sudo ufw allow 443

Настройка диапазонов портов

UFW позволяет разблокировать диапазоны портов. Это полезно для тех приложений, которые используют несколько портов.

К примеру, чтобы разрешить трафик X11, нужно разблокировать порты 6000-6007:

sudo ufw allow 6000:6007/tcp
sudo ufw allow 6000:6007/udp

Указывая диапазон портов, вы должны задать протокол (tcp или udp). Если вы не укажете протокол, UFW будет использовать оба (в большинстве случаев это нормально).

Настройка IP-адресов

Также UFW может разблокировать трафик от определённых IP-адресов. К примеру, чтобы разрешить доступ IP-адресу 203.0.113.4, нужно ввести from и затем сам адрес:

sudo ufw allow from 203.0.113.4

Вы можете также ограничить доступ для IP конкретным портом с помощью опции to any port. Например, чтобы разрешить IP-адресу 203.0.113.4 SSH-доступ, используйте:

sudo ufw allow from 203.0.113.4 to any port 22

Настройка подсетей

Чтобы разблокировать подсеть IP-адресов, используйте CIDR-нотации для определения маски подсети. К примеру, чтобы разрешить трафик от диапазона IP-адресов 203.0.113.1-203.0.113.254 , нужно ввести:

sudo ufw allow from 203.0.113.0/24

Аналогичным образом можно указать порт, доступ к которому есть у подсети. Например, чтобы открыть доступ к порту 22, нужно ввести:

sudo ufw allow from 203.0.113.0/24 to any port 22

Настройка сетевых интерфейсов

Правила брандмауэра могут быть предназначены для конкретного интерфейса. Для этого нужно ввести allow in on, а затем указать имя интерфейса.

Прежде чем продолжить, просмотрите свои сетевые интерфейсы.

В выводе вы увидите:

2: eth0 :
mtu 1500 qdisc pfifo_fast state
. . .
3: eth1 :
mtu 1500 qdisc noop state DOWN group default
. . .

Имена интерфейсов выделены красным (обычно они называются eth0, enp3s2 и т.п.).

Чтобы разблокировать трафик HTTP для интерфейса eth0, введите:

sudo ufw allow in on eth0 to any port 80

Чтобы сервер MySQL (порт 3306) мог прослушивать соединения интерфейса частной сети eth1, нужно ввести:

sudo ufw allow in on eth1 to any port 3306

6: Блокирование соединений

По умолчанию UFW блокирует все входящие соединения. В целом это очень безопасная политика: чтобы разблокировать какой-то порт или IP-адрес, вам нужно создать правило.

Однако иногда возникает необходимость явно заблокировать определенные соединения по исходному IP или подсети (как правило, это касается потенциально вредоносных адресов). Также вам нужно уметь блокировать трафик определённых IP-адресов или подсетей, если вы хотите изменить политику брандмауэра по умолчанию на allow.

Правила, блокирующие трафик, пишутся точно так же, но вместо команды allow используется deny.

К примеру, чтобы заблокировать HTTP, нужно ввести:

sudo ufw deny http

Чтобы заблокировать все соединения адреса 203.0.113.4, введите команду:

sudo ufw deny from 203.0.113.4

7: Удаление правил

Существует два способа удалить правило: указать номер правила или само правило.

Удаление правила по его номеру

Чтобы узнать номер правила в списке, просмотрите список существующих правил. Для этого запросите состояние брандмауэра с опцией numbered.

sudo ufw status numbered
Status: active
To Action From
— —— —-
[ 1] 22 ALLOW IN 15.15.15.0/24
[ 2] 80 ALLOW IN Anywhere

К примеру, чтобы удалить правило 2 (открывающее трафик HTTP по порту 80), нужно запустить команду:

sudo ufw delete 2

Брандмауэр запросит подтверждение.

Примечание: Если сервер поддерживает IPv6, нужно удалить соответствующее правило и для этого протокола.

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

Также можно указать в команде само «тело» правила, которое нужно удалить. К примеру, чтобы удалить allow http, нужно запустить:

sudo ufw delete allow http

sudo ufw delete allow 80

Этот метод работает и для IPv4, и для IPv6.

8: Проверка состояния и правил UFW

Чтобы проверить состояние UFW, введите:

sudo ufw status verbose

По умолчанию UFW отключен:

Если брандмауэр включен, на экране появится его состояние и список правил. К примеру, если брандмауэр поддерживает соединения SSH (порт 22), вывод будет выглядеть так:

Читайте также:  Как перезагрузить windows 10 при черном экране

Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip
To Action From
— —— —-
22/tcp ALLOW IN Anywhere

9: Отключение или сброс правил UFW (опционально)

Если вы хотите отключить брандмауэр UFW, введите:

sudo ufw disable

Все правила будут дезактивированы.

Если вы хотите сбросить текущий набор правил UFW, запустите:

Эта команда сбросит все текущие правила брандмауэра. Имейте в виду: при этом политика по умолчанию не будет восстановлена.

После этого вы можете добавить новые правила.

Заключение

Теперь ваш брандмауэр поддерживает SSH-соединения. Также вы знаете основные команды управления UFW. Обязательно откройте все необходимые входящие соединения, заблокировав при этом порты, которые не используются.

Источник

Как настроить брандмауэр с UFW в Ubuntu 18.04

Правильно настроенный брандмауэр — один из наиболее важных аспектов общей безопасности системы. По умолчанию Ubuntu поставляется с инструментом настройки межсетевого экрана под названием UFW (Несложный межсетевой экран). UFW — это удобный интерфейс для управления правилами брандмауэра iptables, и его основная цель — сделать управление iptables проще или, как следует из названия, несложным.

Подготовка

Прежде чем приступить к изучению этого руководства, убедитесь, что вы вошли на свой сервер с учетной записью пользователя с привилегиями sudo или с пользователем root. Лучше всего запускать административные команды от имени пользователя sudo, а не root. Если у вас нет пользователя sudo в вашей системе Ubuntu, вы можете создать его, следуя этим инструкциям .

Установить UFW

Несложный брандмауэр должен быть установлен по умолчанию в Ubuntu 18.04, но если он не установлен в вашей системе, вы можете установить пакет, набрав:

Проверить статус UFW

После завершения установки вы можете проверить статус UFW с помощью следующей команды:

По умолчанию UFW отключен. Если вы никогда раньше не активировали UFW, результат будет выглядеть так:

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

Политики UFW по умолчанию

По умолчанию UFW блокирует все входящие соединения и разрешает все исходящие соединения. Это означает, что любой, кто пытается получить доступ к вашему серверу, не сможет подключиться, если вы специально не откроете порт, в то время как все приложения и службы, работающие на вашем сервере, смогут получить доступ к внешнему миру.

Политики по умолчанию определены в /etc/default/ufw и могут быть изменены с помощью команды sudo ufw default

Политики брандмауэра являются основой для создания более подробных и определяемых пользователем правил. В большинстве случаев исходная политика UFW по умолчанию является хорошей отправной точкой.

Профили приложений

При установке пакета с помощью команды apt он добавит профиль приложения в каталог /etc/ufw/applications.d . Профиль описывает услугу и содержит настройки UFW.

Вы можете просмотреть все профили приложений, доступные на вашем сервере, набрав:

В зависимости от пакетов, установленных в вашей системе, вывод будет выглядеть примерно так:

Чтобы найти дополнительную информацию о конкретном профиле и включенных правилах, используйте следующую команду:

Как видно из выходных данных, профиль Nginx Full открывает порт 80 и 443 .

Разрешить SSH-подключения

Перед включением брандмауэра UFW нам нужно добавить правило, которое разрешит входящие соединения SSH. Если вы подключаетесь к своему серверу из удаленного места, что почти всегда так, и вы включаете брандмауэр UFW, прежде чем явно разрешать входящие SSH-соединения, вы больше не сможете подключиться к своему серверу Ubuntu.

Чтобы настроить брандмауэр UFW для разрешения входящих соединений SSH, введите следующую команду:

Если вы изменили порт SSH на пользовательский порт вместо порта 22, вам нужно будет открыть этот порт.

Например, если ваш демон ssh прослушивает порт 4422 , вы можете использовать следующую команду, чтобы разрешить соединения на этом порту:

Включить UFW

Теперь, когда ваш брандмауэр UFW настроен на разрешение входящих соединений SSH, мы можем включить его, набрав:

Вы будете предупреждены, что включение брандмауэра может нарушить существующие соединения ssh, просто введите y и нажмите Enter .

Разрешить подключения к другим портам

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

Читайте также:  Linux list user with group

Ниже мы покажем вам несколько примеров того, как разрешить входящие подключения к некоторым из наиболее распространенных сервисов:

Открытый порт 80 — HTTP

HTTP-соединения могут быть разрешены с помощью следующей команды:

вместо http вы можете использовать номер порта 80:

или вы можете использовать профиль приложения, в данном случае «Nginx HTTP»:

Открытый порт 443 — HTTPS

HTTP-соединения могут быть разрешены с помощью следующей команды:

Чтобы добиться того же, вместо профиля https вы можете использовать номер порта 443 :

или вы можете использовать профиль приложения Nginx HTTPS:

Открытый порт 8080

Если вы запустите Tomcat или любое другое приложение, которое прослушивает порт 8080 чтобы разрешить входящие соединения, введите:

Разрешить диапазоны портов

Вместо того, чтобы разрешать доступ к отдельным портам, UFW позволяет нам разрешать доступ к диапазонам портов. При разрешении диапазонов портов с помощью UFW необходимо указать протокол: tcp или udp . Например, если вы хотите разрешить порты с 7100 до 7200 как на tcp и на udp выполните следующую команду:

Разрешить определенные IP-адреса

Чтобы разрешить доступ ко всем портам с вашего домашнего компьютера с IP-адресом 64.63.62.61, укажите from а затем IP-адрес, который вы хотите добавить в белый список:

Разрешить определенные IP-адреса на определенном порту

Чтобы разрешить доступ к определенному порту, скажем, порт 22 с вашего рабочего компьютера с IP-адресом 64.63.62.61, используйте to any port за которым следует номер порта:

Разрешить подсети

Команда для разрешения подключения к подсети IP-адресов такая же, как и при использовании одного IP-адреса, с той лишь разницей, что вам нужно указать маску сети. Например, если вы хотите разрешить доступ для IP-адресов от 192.168.1.1 до 192.168.1.254 и до порта 3360 ( MySQL ), вы можете использовать эту команду:

Разрешить подключения к определенному сетевому интерфейсу

Чтобы разрешить доступ к определенному порту, скажем, порт 3360 только к определенному сетевому интерфейсу eth2 , тогда вам нужно указать allow in on и имя сетевого интерфейса:

Запретить подключения

Политика по умолчанию для всех входящих подключений настроена на deny и если вы не изменили ее, UFW заблокирует все входящие подключения, если вы специально не откроете подключение.

Допустим, вы открыли порты 80 и 443 и ваш сервер 23.24.25.0/24 атаке из сети 23.24.25.0/24 . Чтобы запретить все соединения с 23.24.25.0/24 вы можете использовать следующую команду:

Если вы хотите запретить доступ только к портам 80 и 443 из 23.24.25.0/24 вы можете использовать следующую команду:

Написание запрещающих правил аналогично написанию разрешающих правил, вам нужно только заменить allow на deny .

Удалить правила UFW

Есть два разных способа удалить правила UFW: по номеру правила и указав фактическое правило.

Удалить правила UFW по номеру правила проще, особенно если вы новичок в UFW. Чтобы удалить правило по номеру правила, сначала вам нужно найти номер правила, которое вы хотите удалить, вы можете сделать это с помощью следующей команды:

Чтобы удалить правило номер 3, правило, разрешающее подключения к порту 8080, используйте следующую команду:

Второй метод — удалить правило, указав фактическое правило, например, если вы добавили правило для открытия порта 8069 вы можете удалить его с помощью:

Отключить UFW

Если по какой-либо причине вы хотите остановить UFW и деактивировать все правила, которые вы можете использовать:

Позже, если вы захотите снова включить UTF и активировать все правила, просто введите:

Сбросить UFW

Сброс UFW отключит UFW и удалит все активные правила. Это полезно, если вы хотите отменить все изменения и начать все заново.

Чтобы сбросить UFW, просто введите следующую команду:

Выводы

Вы узнали, как установить и настроить брандмауэр UFW на своем сервере Ubuntu 18.04. Обязательно разрешите все входящие соединения, которые необходимы для правильного функционирования вашей системы, ограничив при этом все ненужные соединения.

Если у вас есть вопросы, не стесняйтесь оставлять комментарии ниже.

Источник

Оцените статью