Традиционно в качестве брандмауэра (фильтра пакетов) в Ubuntu используется iptables, но поскольку Ubuntu позиционируется как простой дистрибутив, то и оболочка для iptables была разработана соответствующая — UTF (Uncomplicated Firewall) — несложный файрвол.
Первым делом нужно убедиться, что пакет ufw вообще установлен или установить его, если это не так:
# apt install ufw
На VDS от Xelent вы сразу получаете полномочия root, поэтому нет необходимости вводить команду sudo.
Как показано на следующей иллюстрации, уже установлена последняя версия пакета ufw.
UFW установлен
Теперь посмотрим состояние брандмауэра:
# ufw status verbose
По умолчанию фильтр пакетов выключен, поэтому вы получите сообщение
Status: inactive
Не нужно спешить включать файрвол: сначала его нужно настроить. Ведь если порт 22 окажется по умолчанию недоступен, то вы потеряете доступ к своему VDS. Конечно, в службе поддержки вам помогут, но все это — потеря времени.
По умолчанию брандмауэр запрещает все входящие соединения и разрешает все исходящие. Такая политика идеальна с точки зрения безопасности (дальше вы поймете почему) — ведь если
Рассмотрим две команды:
ufw default deny incoming
ufw default allow outgoing
Данные два правила как раз и задают политику по умолчанию — запрещаются все входящие соединения и разрешаются все исходящие.
Итак, все входящие соединения запрещены. Чтобы к серверу можно было «достучаться» по определенному порту, его нужно сначала открыть. UFW хорош тем, что вам даже не нужно помнить номер порта — нужно знать только название сервиса. Например, вот как можно разрешить подключение по SSH:
ufw allow ssh
При этом UFW сам создаст правило для порта 22 — именно этот порт используется для SSH. Брандмауэр знает порты и имена всех распространенных служб (http, ssh, ftp, sftp
Однако если вы перенастроили ssh на нестандартный порт из соображений той же безопасности, нужно явно указать номер порта:
ufw allow 3333
После разрешения ssh (это главное, чтобы сейчас файрвол нам не разорвал соединение) можно включить ufw командой:
ufw enable
Необходимо подтвердить запуск, ответив y:
Command may disrupt existing ssh connections. Proceed with operation (y|n)?
Посмотрите на следующий скриншот.
Базовая настройка выполнена
Посмотрим, что произошло. Сначала мы разрешили ssh, на что получили ответ, что правила обновлены:
Rules updated
Затем мы включаем файрвол и получаем сообщение, что он активен и будет запускаться при загрузке системы.
На этом базовая настройка выполнена — ssh успешно работает и мы можем приступить к дальнейшей настройке фильтра пакетов.
Теперь нужно разрешить работу других приложений. Как правило, нужно разрешить службу http (
ufw allow http
ufw allow https
ufw allow ftp
Сделать то же самое можно было бы и по номерам портов:
ufw allow 80
ufw allow 443
ufw allow 21
При желании можно разрешить целый диапазон портов, указав при этом транспортный протокол (UDP или TCP):
sudo ufw allow 2000:2200/tcp
sudo ufw allow 4000:4400/udp
Ufw позволяет разрешить определенному
ufw allow from
Если нужно разрешить доступ конкретному
ufw allow from
Здесь мы разрешаем не все подключения к ssh, а только подключения с
Разрешить доступ целого диапазона
ufw allow from
Запретить доступ с определенного
ufw deny from
При желании можно запретить все подключения к определенной службе:
ufw deny ftp
Сбросить все правила можно командой:
ufw reset
Но убедитесь, что на момент ввода этой команды вы отключили файрвол, иначе вы потеряете доступ по ssh.
Удалить конкретное правило можно по номеру. Сначала введите следующую команду, чтобы узнать номер правила:
ufw status numbered
Список правил
Отключить ufw можно командой ufw disable. Отключение может понадобиться, если
Если вы ранее использовали iptables, то наверняка заметили, что синтаксис ufw гораздо проще. Если же до этого вам не приходилось настраивать брандмауэр, то ufw — оптимальное решение, с которым не составит труда разобраться даже начинающему админу.