- PVSM.RU - https://www.pvsm.ru -
Сегодня, когда я в очередной раз просматривал 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/
Нажмите здесь для печати.