Найти тему
gefy gefy

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

Оглавление

UFW (Uncomplicated Firewall — несложный фаервол) —  удобный интерфейс для управления политиками безопасности межсетевого экрана.  В этой заметке описана инструкция как настроить UFW. В начале заметки прикреплено видео. Удобнее смотреть видео, смотрите видео. Удобнее воспринимать текст, смотрим ниже.

Устанавливаем пакет Uncomplicated Firewall или сокращенно ufw

sudo apt-get install ufw

Проверяем правила и текущее состояние

Проверяем состояние

sudo ufw status verbose

Если UFW отключен, то увидим это

Status: inactive

Если UFW включен, то в консоли будут перечисляться заданные правила. Например, если firewall настроен таким образом — SSH (порт 22) соединение из любой точки мира, консоль может выглядеть следующим образом:

Status: active

Logging: on (low)

Default: deny (incoming), allow (outgoing), disabled (routed)

New profiles: skip



To Action From

-- ------ ----

22 ALLOW IN Anywhere

22 (v6) ALLOW IN Anywhere (v6)

Так вы всегда можете узнать как настроен фаервол.

Проведите первоначальную настройку перед тем, как включите UFW.

У вас должен быть доступ  SSH, иначе вы можете потерять доступ к серверу

Делаем начальную настройку

Задаем правила для фаервола

sudo ufw default deny incoming

sudo ufw default allow outgoing

Добавляем правила для SSH-соединений

Включаем разрешение входящих SSH-соединений

sudo ufw allow ssh

SSH демон прослушивает 22 порт. UFW знает об именах распространенных служб (ssh, sftp, http, https), поэтому вы можете использовать их вместо номера порта. Если ваш SSH-демон использует другой порт, вам необходимо указать его в явном виде, например:

sudo ufw allow 2222

Теперь, когда ваш межсетевой экран настроен, можете включать его.

Запускаем UFW

включаем UFW с командой:

sudo ufw enable

Вы получите похожее  предупреждение:

Command may disrupt existing ssh connections. Proceed with operation (y|n)?

Это означает, что запуск этого сервиса может разорвать текущее ssh соединение. Но, так как мы его уже добавили ssh в правила, этого не произойдет. Поэтому просто нажмите (y).

Рекомендуем к прочтению Заметка: устанавливаем и пересобираем viber на ubuntu 18.04

Добавляем правила для других подключений

Чтобы ваши приложения работали корректно, вам необходимо добавить другие правила. Ниже будут  показаны настроить для наиболее распространённых служб.

HTTP (80 порт)

Для работы не зашифрованных веб-серверов используем следующую команду:

sudo ufw allow http

Или

sudo ufw allow 80

HTTPS (443 порт)

То же самое, что и в предыдущем примере, но для зашифрованных соединений:

sudo ufw allow https

Или

sudo ufw allow 443

FTP (21 порт)

Данный порт используется для незашифрованной передачи файлов:

sudo ufw allow ftp

Или

sudo ufw allow 21/tcp

Добавление диапазонов портов

sudo ufw allow 3000:3100

Также вы можете указывать конкретный протокол:

sudo ufw allow 3000:3100/tcp
sudo ufw allow 3000:3100/udp

Добавление IP-адресов

Вs можете указать IP-адрес,  которому будет разрешен доступ.

sudo ufw allow from 123.45.67.89

В приведённом примере указанному адресу разрешается доступ ко всем портам сервера.

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

sudo ufw allow from 123.45.67.89 to any port 22

Аналогичным образом вы можете работать с диапазонами ip-адресов:

sudo ufw allow from 123.45.67.89/24

sudo ufw allow from 123.45.67.89/24 to any port 22

Ограничение подключений

Чтобы запретить HTTP-соединения, вы можете использовать следующую команду:

sudo ufw deny http

Если вы хотите запретить все соединения с 123.45.67.89, воспользуйтесь следующей командой:

sudo ufw deny from 123.45.67.89

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

Существует два способа удаления правил. Первый — по номеру правила.  Выполните команду:

sudo ufw status numbered

Status: active




     To                         Action      From

     --                         ------      ----

[ 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 и укажите номер правила, которое следует удалить:

sudo ufw delete 2

Рекомендуем к прочтению Как удалить программу с Ubuntu

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

sudo ufw delete allow http

или

sudo ufw delete allow 80

Отключение UFW

Отключить UFW можно при помощи команды:

sudo ufw disable

В результате её выполнения всё созданные ранее правила утратят силу.

Сброс правил

Если вам требуется сбросить текущие настройки, воспользуйтесь командой:

sudo ufw reset

В результате её выполнения все правила будут отключены и удалены.

Логи

В Ufw есть опция сохранения логов — журнал событий. Для запуска, используйте команду:

sudo ufw logging on

Ufw поддерживает нескоько уровней логгирования:

  • off — отключен.
  • low — регистрирует все заблокированные пакеты, не соответствующие заданной политике (с ограничением скорости), а также пакеты, соответствующие зарегистрированным правилам.
  • medium  — все то, что при значении low. Плюс все разрешенные пакеты, не соответствующие заданной политике, все недопустимые пакеты, и все новые соединения. Все записи ведутся с ограничением скорости.
  • high — работает также как и medium. Плюс все пакеты с ограничением скорости.
  • full — также как и high, но без ограниения скорости.

Что бы задать уровень, укажите его как параметр:

 sudo ufw logging high

По-умолчанию используется уровень low.

Для просмотра файлов относящихся с логам ufw, используйте команду:

ls /var/log/ufw*

Заключение

Теперь ваш фаервол имеет минимально необходимые настройки для дальнейшей работы. Далее удостоверьтесь, что все подключения используемые вашим веб-приложением также разрешены и заблокируйте те, в которых нет необходимости. Это снизит риски проникновения на ваш сервер и совершения хакерами вредоносных действ