29 марта, 2024

Тонкая настройка Ubuntu. Часть 2 (Защита от сетевых атак)

Содержание:

После установки Ubuntu в качестве основной ОС вы должны научиться устанавливать защиту от полезных нагрузок, передаваемых с помощью USB-уточек (Rubber Ducky), от изъятия ваших данных правоохранительными органами и в целом уменьшить количество мишеней, по которым можно нанести удар. При защите от сетевых атак вам необходимо минимизировать раскрытие информации о ваших аппаратных средствах, предотвратить работу снифферов пакетов, ужесточить правила брандмауэра и многое другое.

Продолжаем нашу мини-серию по усилению защиты операционной системы Ubuntu. В этой части вы научитесь подделывать MAC-адрес с целью запутывания пассивных хакеров, отключать неиспользуемые сетевые службы, такие как CUPS и Avahi, создавать правила брандмауэра для определенных портов с целью блокировки попыток несанкционированного доступа и изъятия ваших данных, защищаться от сниффинга паролей и cookie-файлов в ваших пакетах с помощью VPN.

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

Шаг 1. Защититесь от определения вашего оборудования

При подключении к новым Wi-Fi сетям и маршрутизаторам подделывайте MAC-адрес вашего Wi-Fi адаптера. Конечно, это не помешает мотивированному хакеру узнать, какую операционную систему вы используете, но может его запутать и не дать ему собрать информацию о вашем оборудовании.

Например, хакер, подключенный к Wi-Fi сети в кафе, может сосредоточить свои усилия на взломе любых устройств, кроме Apple. Если же вы появляетесь в сети с MAC-адресом Apple, то злоумышленник полностью проигнорирует ваше устройство. Или же он может попробовать на вашем устройстве некоторые атаки, специфичные для MacOS, которые не сработают, потому что вы на самом деле не используете MacBook, вы только отображаетесь в сети так, как будто используете технику Apple. В сочетании с поддельным User-Agent браузера это сможет действительно запутать не очень умного противника.

Чтобы изменить MAC-адрес в Ubuntu, откройте Network Manager и перейдите в меню «Edit» вашего Wi-Fi-соединения. На вкладке «Identity» введите в поле «Cloned Address» MAC-адрес, который вы хотите использовать.

Шаг 2. Защититесь от атак на «слушающие» сервисы

Когда фоновый процесс (или сервис) находится в состоянии «LISTEN» (прослушивания) , то это означает, что другие службы (сервисы) и приложения на вашем устройстве и в сети могут с ним взаимодействовать. Эти «слушающие» службы всегда ожидают на вход какие-нибудь данные, получив которые, сервис должен дать определенный ответ. Любая служба с локальным адресом 0.0.0.0, находясь в состоянии прослушивания, скорее всего, будет доступна для всех пользователей в данной локальной сети и, возможно, в Интернете тоже.

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

Чтобы отслеживать то, какие фоновые процессы находятся в состоянии прослушивания, мы будем использовать netstat — инструмент, используемый для вывода информации о сетевых подключениях, открытых портах и запущенных сервисах. Поскольку мы использовали минимальную установку Ubuntu, то необходимый нам набор утилит net-tools для работы с сетями (включая netstat) придется установить вручную. Это можно сделать с помощью команды sudo apt-get install net-tools.

sudo apt-get install net-tools

Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
  net-tools
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 194 kB of archives.
After this operation, 803 kB of additional disk space will be used.
Selecting previously unselected package net-tools.
(Reading database ... 149085 files and directories currently installed.)
Preparing to unpack .../net-tools_1.60+git20161116.90da8a0-1ubuntu1_amd64.deb ...
Unpacking net-tools (1.60+git20161116.90da8a0-1ubuntu1) ...
Processing triggers for man-db (2.8.3-2) ...
Setting up net-tools (1.60+git20161116.90da8a0-1ubuntu1) ...

Используйте следующую команду netstat для просмотра служб в состоянии «LISTEN».

sudo netstat -ntpul

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      651/systemd-resolve
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      806/cupsd
tcp6       0      0 ::1:631                 :::*                    LISTEN      806/cupsd
udp    47616      0 127.0.0.53:53           0.0.0.0:*                           651/systemd-resolve
udp        0      0 0.0.0.0:631             0.0.0.0:*                           812/cups-browsed
udp     2304      0 0.0.0.0:5353            0.0.0.0:*                           750/avahi-daemon: r
udp        0      0 0.0.0.0:38284           0.0.0.0:*                           750/avahi-daemon: r
udp6       0      0 :::37278                :::*                                750/avahi-daemon: r
udp6   25344      0 :::5353                 :::*                                750/avahi-daemon: r

Systemd-resolve используется для разрешения доменных имен и, понятное дело, его не стоит ни изменять, ни удалять. Про «cupsd» и «avahi-daemon» мы поговорим ниже в следующих разделах.

Читать также:  В ядре Linux обнаружена опасная 0-day уязвимость Dirty COW (CVE-2016-5195)

Отключите или удалите CUPS

Cupsd  является планировщиком для сервиса CUPS. Он используется приложениями для взаимодействия с принтерами. Существует несколько скриптов Nmap NSE, предназначенных для сбора информации из CUPS и представляющих очень незначительный риск для безопасности. Таким образом, если вы очень редко пользуетесь принтерами, то CUPS можно безболезненно отключить, используя команду systemctl disable cups-browsed. Изменения вступят в силу после перезагрузки.

systemctl disable cups-browsed

Synchronizing state of cups-browsed.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install disable cups-browsed

Если вы никогда не собираетесь использовать принтер, то CUPS можно полностью удалить с помощью sudo apt-get autoremove cups-daemon.

sudo apt-get autoremove cups-daemon

Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be REMOVED:
   bluez-cups (5.48-0ubuntu3)
   cups (2.2.7-1ubuntu2)
   cups-browsed (1.20.2-0ubuntu3)
   cups-core-drivers (2.2.7-1ubuntu2)
   cups-daemon (2.2.7-1ubuntu2)
   hplip (3.17.10+repack0-5)
   printer-driver-gutenprint (5.2.13-2)
   printer-driver-hpcups (3.17.10+repack0-5)
   printer-driver-postscript-hp (3.17.10+repack0-5)
   printer-driver-splix (2.0.0+svn315-6fakesync1)
0 upgraded, 0 newly installed, 10 to remove and 0 not upgraded.
After this operation, 8,383 kB disk space will be freed.
Do you want to continue? [Y/n] ^C
root@nullbyte:/home/tokyoneon# apt-get purge -V cups-daemon
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be REMOVED:
   bluez-cups* (5.48-0ubuntu3)
   cups* (2.2.7-1ubuntu2)
   cups-browsed* (1.20.2-0ubuntu3)
   cups-core-drivers* (2.2.7-1ubuntu2)
   cups-daemon* (2.2.7-1ubuntu2)
   hplip* (3.17.10+repack0-5)
   printer-driver-gutenprint* (5.2.13-2)
   printer-driver-hpcups* (3.17.10+repack0-5)
   printer-driver-postscript-hp* (3.17.10+repack0-5)
   printer-driver-splix* (2.0.0+svn315-6fakesync1)
0 upgraded, 0 newly installed, 10 to remove and 0 not upgraded.
After this operation, 8,383 kB disk space will be freed.
Do you want to continue? [Y/n] y

Отключите или удалите Avahi

Демон Avahi реализует архитектуру Apple Zeroconf  (также известную как «Rendezvous» или «Bonjour»). Демон регистрирует локальные IP-адреса и статические службы, используя mDNS/DNS-SD .

В 2011 году в avahi-daemon была обнаружена уязвимость, приводящая к отказу в обслуживании — DDoS. Хотя этот CVE довольно старый и у него весьма незначительная степень серьезности, но, тем не менее, он демонстрирует, каким образом хакер в локальной сети обнаруживает уязвимости в сетевых протоколах и манипулирует запущенными службами на устройстве жертвы.

Если вы не планируете взаимодействовать с продуктами или сервисами Apple на других устройствах, avahi-daemon можно отключить, используя следующую команду sudo systemctl disa avahi-daemon.

sudo systemctl disable avahi-daemon

Synchronizing state of avahi-daemon.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install disable avahi-daemon
Removed /etc/systemd/system/dbus-org.freedesktop.Avahi.service.
Removed /etc/systemd/system/sockets.target.wants/avahi-daemon.socket.

Avahi также можно полностью удалить с помощью sudo apt-get purge avahi-daemon.

sudo apt-get purge avahi-daemon

Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be REMOVED:
   avahi-daemon* (0.7-3.1ubuntu1)
   avahi-utils* (0.7-3.1ubuntu1)
   libnss-mdns* (0.10-8ubuntu1)
0 upgraded, 0 newly installed, 3 to remove and 0 not upgraded.
After this operation, 541 kB disk space will be freed.
Do you want to continue? [Y/n] y

Шаг 3. Защитите ваши порты

Хакер-любитель может попытаться извлечь данные через 1337-й порт или создать обратный шелл на порту 4444 (прямо указанный в Википедии в качестве дефолтного порта для Metasploit). Брандмауэр, который разрешает только исходящие пакеты на нескольких портах, будет блокировать любые входящие пакеты.

Читать также:  Как взламывать пароли. Часть 1. Принципы и технологии

Для управления доступностью портов мы будем использовать UFW — программу, которая представляет собой простой интерфейс для настройки брандмауэров. UFW буквально означает Uncomplicated FireWall. Он действует как фронтенд для Iptables (пакетный фильтр) и не предназначен для обеспечения полной функциональности брандмауэра, а вместо этого является удобным средством добавления или удаления правил брандмауэра.

1. Запретите все входящие и исходящие соединения

Чтобы включить UFW, используйте команду sudo ufw enable.

sudo ufw enable

Firewall is active and enabled on system startup

Отключите все входящие соединения с помощью этой команды:

sudo ufw default deny incoming

Затем запретите все переадресации:

sudo ufw default deny forward

И запретите все исходящие соединения:

sudo ufw default deny outgoing

С этого момента доступ к Интернету с помощью Firefox или любого другого приложения у вас будет закрыт.

2. Найдите ваш Wi-Fi интерфейс

Чтобы разрешить исходящие подключения, сначала нужно найти имя Wi-Fi-адаптера, используя команду ifconfig -a.

ifconfig -a

enp0s8: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.44  netmask 255.255.255.0  broadcast 192.168.1.255
        ether e8:e1:e8:c2:bc:b9  txqueuelen 1000  (Ethernet)
        RX packets 631  bytes 478024 (478.0 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 594  bytes 60517 (60.5 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 16  base 0xd040

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 259  bytes 17210 (17.2 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 259  bytes 17210 (17.2 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Для целей этой статьи мы используем Ubuntu в VirtualBox, поэтому имя нашего интерфейса «enp0s8». Команда ifconfig может отображать ваш беспроводной интерфейс как «wlp3s0», «wlp42s0» или что-то в этом роде.

3. Создайте исключения брандмауэра и настройте защищенное разрешение DNS

Разрешить DNS, HTTP и HTTPS трафик на беспроводном интерфейсе можно с помощью этих трех команд.

sudo ufw allow out on  to 1.1.1.1 proto udp port 53 comment 'allow DNS on '
sudo ufw allow out on  to any proto tcp port 80 comment 'allow HTTP on '
sudo ufw allow out on  to any proto tcp port 443 comment 'allow HTTPS on '

Адрес «1.1.1.1» в команде DNS — это новый DNS-резолвер CloudFlare. Многие интернет-пользователи не понимают, что даже если они просматривают веб-сайт с использованием зашифрованного соединения (небольшой зеленый замочек в строке URL), Интернет-провайдеры все равно могут видеть имя каждого домена, посещаемого с помощью DNS-запросов. Использование DNS-резолвера CloudFlare поможет предотвратить попытки Интернет-провайдеров (ISP) отслеживать ваш трафик.

Читать также:  Как за секунды скрыть секретные данные внутри файла изображения или аудио

4. Обновите конфигурацию DNS в Network Manger’е

После установки правил UFW в Network Manager перейдите в меню «Edit» вашего Wi-Fi-соединения и измените поле DNS на 1.1.1.1. Отключитесь и снова подключитесь к Wi-Fi сети, чтобы изменения DNS вступили в силу.

Просмотрите вновь созданные правила с помощью команды sudo ufw status numbered.

sudo ufw status numbered

Status: active

     To                         Action      From
     --                         ------      ----
[ 1] 1.1.1.1 53/udp             ALLOW OUT   Anywhere on enp0s8         (out) # allow DNS on enp0s8
[ 2] 443/tcp                    ALLOW OUT   Anywhere on enp0s8         (out) # allow HTTPS on enp0s8
[ 3] 80/tcp                     ALLOW OUT   Anywhere on enp0s8         (out) # allow HTTP on enp0s8

Ubuntu сможет делать стандартные HTTP/HTTPS запросы на портах 80 и 443 на указанном вами беспроводном интерфейсе. Если эти правила слишком строгие для вашей повседневной активности, то можно разрешить все исходящие пакеты с помощью этой команды:

sudo ufw default allow outgoing

5. Мониторьте брандмауэр

Если вы пытаетесь отладить входящие или исходящие соединения, то для этого можно использовать команду tail с аргументом -f, чтобы следить за сообщениями и расхождениями в логах UFW в реальном времени. Полностью эта команда будет выглядеть так:

tail -f /var/log/ufw.log

kernel: [ 3900.250931] [UFW BLOCK] IN= OUT=enp0s8 SRC=192.168.1.44 DST=104.193.19.59 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=47090 DF PROTO=TCP SPT=35944 DPT=9999 WINDOW=29200 RES=0x00 SYN URGP=0
kernel: [ 3901.280089] [UFW BLOCK] IN= OUT=enp0s8 SRC=192.168.1.44 DST=104.193.19.59 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=47091 DF PROTO=TCP SPT=35944 DPT=9999 WINDOW=29200 RES=0x00 SYN URGP=0

В приведенных выше логах UFW блокирует исходящие соединения (OUT=) с нашего локального IP-адреса (192.168.1.44) на сервер Null Byte (104.193.19.59), используя TCP с портом назначения (DPT) 9999. Это можно резолвить с помощью этой команды UFW:

sudo ufw allow out on  from 192.168.1.44 to 104.193.19.59 proto tcp port 9999

Для получения дополнительной информации по UFW можно почитать маны (страницы руководства) — man ufw.

man ufw

Читатели, интересующиеся очень тонкой настройкой брандмауэра, обязательно должны посмотреть вики Arch Linux по Iptables.

Шаг 4. Защититесь от пакетного сниффинга и перехвата файлов cookie

Атаки, направленные на манипуляции пакетами, можно предотвратить с помощью виртуальной частной сети (VPN). VPN предлагает набор технологий, которые:

  • Препятствуют хакерам в сетях Wi-Fi манипулировать пакетами и отслеживать вашу активность.
  • Запрещают Интернет-провайдерам следить за вашей активностью и продавать ваши данные на сторону.
  • Помогают обходить блокировки цензурных органов (вроде РКН), когда Интернет-провайдеры или сетевые брандмауэры блокируют доступ к определенным веб-сайтам.

Ценник большинства платных VPN-сервисов начинается с $5 в месяц. Вот некоторые заслуживающие внимания VPN-провайдеры: ProtonVPN, Mullvad, VyprVPN и Private internet Access.

Следующий шаг — усиление защиты приложений и создание «песочниц»

Вот и все, что касается установления защиты вашего присутствия и деятельности в Интернете. В следующей статье мы поговорим о приложениях для создания песочниц и обеспечения безопасности вашей системы в случае, если на устройстве будет запущена какая-нибудь вредоносная программа. После этого мы погрузимся в аудит с помощью антивирусного ПО и мониторинг системных логов.

Добавить комментарий