- PVSM.RU - https://www.pvsm.ru -

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

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

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

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

Предполагается, что у вас 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

Источник [3]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/linux/48086

Ссылки в тексте:

[1] UFW: https://launchpad.net/ufw

[2] упоминали: http://habrahabr.ru/post/153589/

[3] Источник: http://habrahabr.ru/post/201764/