Здравствуй, Ubuntu! Часть 3
АрхивОбзоры и тестыЕсть мнение, что на домашнем компьютере, работающем под управлением GNU/Linux, межсетевой экран не нужен. Позволим себе не согласиться с этой точкой зрения.
В следующем материале, посвященном Ubuntu Linux мы затронем более сложную тему — настройку межсетевого экрана. Статья предназначена для пользователей Windows, решивших установить на своей домашней машине Linux.
Есть мнение, что на домашнем компьютере, работающем под управлением GNU/Linux, межсетевой экран не нужен. Позволим себе не согласиться с этой точкой зрения — уязвимости находят не только в программах для Windows, а пользователи не всегда работают в защищенных сетях. Так что брандмауэр на вашей машине лишним не будет.
Где взять файрвол?
Первый вопрос, который возникает у пользователей Windows: где взять файрвол для Linux и как его установить? На самом деле ничего устанавливать не нужно — межсетевой экран netfilter/iptables входит в состав Ubuntu Linux. Он позволяет фильтровать и модифицировать (в том числе для трансляции сетевых адресов) пакеты по заданным через утилиту iptables правилам. Хочу обратить особое внимание на один момент — межсетевой экран работает в контексте ядра системы, в userspace запускаются только средства для его настройки, либо внешние программы для обработки пакетов. Поскольку netfilter отличается от привычных вам средств Windows, скажем пару слов о его архитектуре. Итак, все пакеты пропускаются через цепочки, представляющие из себя упорядоченные списки правил. Когда пакет проходит через цепочку, netfilter проверяет, соответствует ли он очередному правилу, и если да — выполняет нужное действие (пропустить, удалить, передать внешнему анализатору, вернуть в предыдущую цепочку и т.д.). Цепочки объединены в таблицы, притом цепочки с одинаковым названием но в разных таблицах являются различными объектами. Таким образом, мы имеем совокупность наборов правил, которые работают в определенной последовательности. Если вы хотите серьезно заняться изучением администрирования GNU/Linux — этих сведений вам будет маловато, но для настройки межсетевого экрана домашней машины их вполне достаточно. Подробнее об netfilter/iptables можно прочесть на сайте проекта. Перевод документации доступен на http://www.opennet.ru/.
Не ищите трудностей. Firewall — это просто!
Чтобы настроить простой межсетевой экран, не обязательно разбираться с тонкостями работы netfilter или изучать синтаксис iptables. Можно воспользоваться более простой в использовании конфигурационной утилитой ufw, (если пакет не установлен, поставьте его с помощью команды sudo apt-get install ufw).
Программа очень проста в использовании, для включения межсетевого экрана достаточно отдать команду:
sudo ufw enable
Для его отключения:
sudo ufw disable
Также ufw позволяет разрешить/запретить входящие соединения при помощи команд:
sudo ufw default allow или sudo ufw default deny
Обратите внимание, что речь здесь идёт именно о соединениях, а не о входящих пакетах вообще — после команды sudo ufw default deny инициировать входящее соединение с вашей машиной станет невозможно, при этом входящие пакеты для соединений, инициированных вами, приниматься будут. Например, будет работать "аська" или торрент-клиент, но на машину нельзя будет "зайти" по telnet или http. Кроме того, ufw позволяет добавлять собственные правила фильтрации трафика, например команда:
sudo ufw allow from 192.168.0.0/24
открывает полный доступ к вашей машине из сети 192.168.0.0/24 (обычно подобные адреса используются для организации домашней сети, хотя у вас они могут быть другими). Запретить доступ, скажем, к 80-му tcp-порту (его слушает веб-сервер) можно следующим образом:
sudo ufw deny 80/tcp
Можно разрешать или запрещать доступ к портам для конкретного диапазона ip-адресов, работать с группой портов, удалять созданные правила и так далее. Притом все изменения применяются немедленно и сохраняются после перезагрузки компьютера. Для получения подробной информации по синтаксису ufw наберите команду:
man ufw
В принципе, особой необходимости изучать этот мануал нет: для тех, кто привык работать с графическим интерфейсом, есть пакет gufw — графический фронтед к программе ufw. Установите его, после чего запустите [Главное меню/Система/Администрирование/Настройка файрвола] (окно программы показано на рисунке 1). Как видно из рисунка — никаких сложностей, любой, кто привык настраивать межсетевой экран Windows, без особого труда справится с задачей. Вообще, по своим возможностям ufw напоминает встроенный брандмауэр Windows, но при этом следует помнить важное отличие: ufw/gufw — не сам межсетевой экран, а всего лишь средства для его настройки. Средства простые в использовании, но ограниченные, позволяющие воспользоваться только частью функционала netfilter/iptables. Для более тонкой настройки вам придется воспользоваться утилитой iptables.
Политика настройки
Как настроить файрвол через ufw на домашней машине? Рекомендуем заблокировать входящие соединения и по мере необходимости добавлять разрешающие правила. Какие? Это зависит от сервисов, запущенных на компьютере. Кстати о сервисах, часто бывает нужно узнать, какие порты "слушает" ваш компьютер. Можно проделать при помощи команды netstat. Более того, если запустить sudo netstat -ap, можно узнать не только какие порты слушаются, но и какие программы это делают (вывод команды показан на рисунке 2). Есть еще один вариант — разрешить все входящие соединения и добавить дополнительные запрещающие правила. Сделать это при помощи gufw не сложнее, чем настроить брэндмауэр Windows XP. О вопросах тонкой настройки netfilter/iptables мы поговорим в следующих статьях, межсетевой экран GNI/Linux может многое, но его возможности сложно описать в короткой заметке.