UFW — простой фаервол для Debian/Ubuntu

в 17:13, , рубрики: Debian, iptables, linux, Netfilter, Ubuntu, ufw, vps, Веб-разработка, Серверное администрирование, метки: , , , , ,

image
Сегодня, когда я в очередной раз просматривал stackoverflow в поисках готового рецепта для iptables, который бы делал то, что мне нужно, а не что-то другое (к сожалению, я так и не осилил iptables настолько, чтобы самостоятельно составлять правила, и не так часто им пользуюсь, чтобы просто запомнить их), мне попалось упоминание о UFW — Uncomplicated Firewall. Сразу отмечу, что статья предназначена скорее не для суровых администраторов, а для обычных веб-разработчиков, которым нужно закрыть неиспользуемые порты на VPS-сервере, который им самим и приходится настраивать.

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

Использование на вашем сервере с сайтами

Предполагается, что у вас Ubuntu не старше 12.04 LTS или Debian Wheezy.

Устанавливаем:

sudo apt-get install usw

В первую очередь, перед закрытием лишних портов, открываем 22-й порт для ssh, иначе соединение с сервером у нас сразу же закроется и заново подключиться к нему мы не сможем:

sudo ufw allow ssh/tcp

Включаем фаервол (не открытые специально порты при этом закрываются для доступа извне):

sudo ufw enable

Теперь можно открыть порты для веб-сервера, например:

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

Важная деталь

Если оставить это, как есть, после перезагрузки правила исчезнут, т.к. автоматически они не сохраняются. Поэтому, чтобы сохранить их, выполним

sudo invoke-rc.d iptables-persistent save

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

Теперь можно спокойно спать по ночам, т.к. никто не будет пытаться подключиться к MySQL на вашем сервере или обращаться напрямую, без проксирования nginx-ом, к вашему приложению на node.js.

UFW покрывает и другие популярные юзкейсы фаервола, например, ограничение скорости соединений, но это я не вижу смысла описывать, т.к. в man-странице все кратко и понятно написано.

Автор: therussianphysicist

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js