В этом руководстве объясняется, как ограничить доступ к ssh с помощью UFW (Uncomplicated Firewall), запрещая соединения с IP-адресов, которые не смогли установить минимум 6 соединений в течение 30 секунд.
Эта функция очень полезна для протоколов, поддерживающих соединения с аутентификацией входа, таких как ssh или ftp, и предотвращает атаки брутфорса.
Начало работы с UFW
Чтобы установить UFW на дистрибутивы Linux на базе Debian, выполните следующую команду.
sudo apt install ufw
Пользователи ArchLinux могут получить UFW с сайта https://archlinux.org/packages/?name=ufw.
После установки включите UFW, выполнив следующую команду.
sudo ufw enable
Примечание: вы можете отключить UFW, выполнив команду sudo ufw disable.
Вы можете проверить статус UFW, выполнив команду следующего примера.
Статус не только покажет, включен ли UFW, но и выведет порты источника, порты назначения, а также правила, которые будут выполняться брандмауэром.
sudo ufw status
Чтобы сбросить UFW, удалив все действия (правила), выполните следующую команду.
sudo ufw reset
sudo ufw status
Чтобы продолжить работу с ним, включите его обратно.
sudo ufw enable
Ограничение ssh с помощью UFW
Как уже говорилось ранее, ограничение службы с помощью UFW будет отклонять соединения с IP-адресов, которые пытаются войти в систему или подключиться более 6 раз за 30 секунд.
Эта функция UFW очень полезна против атак методом брута
Синтаксис для ограничения службы с помощью UFW – sudo ufw limit <service>.
Чтобы ограничить службу ssh, выполните следующую команду.
sudo ufw limit SSH
Вы можете проверить, ограничена ли услуга, показав статус UFW, как показано ранее:
sudo ufw status
sudo ufw limit ftp
Как вы можете видеть, и ftp, и ssh ограничены.
UFW – это просто фронтенд Iptables.
Правила, стоящие за нашими командами UFW, – это правила iptables или Netfilter из ядра.
Правила UFW, описанные выше, являются следующими правилами Iptables для ssh:
sudo iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j ACCEPT sudo iptables -A INPUT -p tcp --dport 2020 -m state --state NEW -m recent --set --name SSH sudo iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 30 --hitcount 6 --rttl --name SSH -j DROP
Заключение
Как вы можете видеть, UFW настолько прост, что применение правил через CLI становится проще и намного быстрее, чем использование его графического интерфейса.
В отличие от Iptables, пользователь Linux любого уровня может легко изучить и применить правила для фильтрации портов.
Изучение UFW – это хороший способ для новых пользователей сети получить контроль над безопасностью сети и получить знания о брандмауэрах.