Защищаем домашний ПК

FirewallВсе адекватные пользователи понимают, что свои конфиденциальные данные необходимо беречь от посторонних глаз. Однако эти самые данные хранятся на наших домашних ПК совсем небезопасно.

Главные моменты при защите домашнего компьютера: защита от вирусов, безопасные пароли и межсетевой экран. С вирусами в Ubuntu пока проблем нет. Безопасные пароли и методы их хранения описаны во многих статьях, которые легко найти в Интернет. Безопасность паролей напрямую зависит от фантазии пользователя и его здравого смысла (в народе: «прямота рук»). А вот о межсетевом экране или фаерволе многие забывают.

Частично их понять можно. Ведь свежеустановленная Ubuntu не предлагает никаких сетевых ресурсов и защищать просто нечего. Но тут и появляется угроза: пользователь поставит какой-то сервис, а о фаерволе забудет (до этого же проблем небыло).

Приведу пример из собственного опыта. На домашнем ноутбуке я настроил samba и открыл одну папку для записи (без авторизации). Все поначалу было очень удобно: приходившие со своими ноутбуками друзья подключались по wifi и сбрасывали необходимую информацию прямо со своих походных «форточек». Буквально через неделю я заметил в папке странные файлы, их анализ показал что мне в эту папку прямо из Интернет залили кучу вирусов, троянов и другой «радости». А вся проблема была в том, что фаервол был не настроен.

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

В Ubuntu я не нашел приличного способа настройки фаервола, имеется ввиду приличную GUI-программу, поэтому пришлось опуститься на уровень ниже. В принципе, для настройки межсетевого экрана пользователю необходимо иметь начальные знания «что такое порт», «что такое подсети», «что такое входящий/исходящий трафик». Все работы придется вести в консоли: в Ubuntu ufw является довольно удобной утилитой.

Итак, задача: запретить доступ к всем сервисам, кроме нужных. Перечень «нужности» у каждого свой, поэтому я приведу свои.

Важное правило: если вы настраиваете фаервол удаленно через ssh, то прежде чем включить фаервол, убедитесь, что вы добавили порт, на котором работает ssh, в список разрешенных.

Итак, открываем терминал и в нем разрешаем доступ к ssh (у меня на рабочей машине есть доступ по ssh из интернет).

sudo ufw allow 22

После чего включаем фаервол (остальные приложения можно настроить позже).

sudo ufw enable

Отключение проводится командой:

sudo ufw disable

Статус фаервола проверяется командой:

sudo ufw status

У меня имеется настроенная samba, разрешим доступ к ней только из своей домашней сети (у меня — 192.168.1.x):

ufw allow proto udp from 192.168.1.0/24 to any port 137
ufw allow proto udp from 192.168.1.0/24 to any port 138
ufw allow proto tcp from 192.168.1.0/24 to any port 139
ufw allow proto tcp from 192.168.1.0/24 to any port 445

Следующий шаг — разрешить подключаться к демону transmission-daemon, которые круглосуточно качает и раздает торренты. Он у меня (у вас порты могут быть другими, смотрите свою конфигурацию демона) использует следующие порты: 6891 - для управления через веб, и порты с 49150 по 65535 для раздачи торрентов. Поэтому правила следующие:

sudo ufw allow 6891
sudo ufw allow 49150:65535/tcp
sudo ufw allow 49150:65535/udp

Если у вас имеется веб-сервер, который должен быть доступен из Интернет, то выполняем также:

sudo ufw allow www

По аналогии открываем доступ к остальным сетевым ресурсам своей машины. По окончании настройки firewall в Ubuntu просто отключим и снова включим его:

sudo ufw disable
sudo ufw enable

Собственно воздвижение защитной стены завершено.

Естественно, на Ubuntu Server firewall настраивается так-же, только не отключите себе доступ к серверу, ибо если он находится в другой стране, то у вас явно возникнут проблемы.

Есть еще один неприятный момент - DOS-атаки (генерируется большое количество запросов и ваша система просто не успевает их обрабатывать, в результате чего уходит в «нирвану»). Чтобы ваш домашний стал объектом такой атаки - дело очень маловероятное. Ну а сервера надо защищать используя не только софтовые методы, но и железные. Профессиональная защита от DOS — дело трудное и требует довольно много знаний, поэтому оставляйте это дело или своему хостеру (датацентру) или обратитесь к профессионалам.