Статья Безопасный пингвин. Усиливаем защиту Kali Linux

lgotype.jpg

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


План работы
Перед началом рекомендую ознакомиться с основам работы в Linux и его командами. Если ты владеешь этими знаниями, то в настройке безопасности системы для чего ничего сложного не будет. Сама конфигурация является базовой и я не стану затрагивать анонимизацию в браузере и установку того же Tor вместе с прокси. Статьи по этой теме ты найдешь на форуме. Ну а по плану я расскажу тебе как обеспечить физическую защиту операционной системы, также мы заставим систему игнорировать не нужные нам пакеты. Установим подобие антивируса, в случае если произойдет заражение. Научимся искать и логировать подозрительную информацию, а также познакомимся с расширениями для браузера, которые сделают твой серфинг более безопасным. Приступим к работе.

Защита по периметру
Первым делом стоит позаботится о физической защите своего устройства. Нет, я сейчас не про двухфакторную аутентификацию или изоляции ноутбука в защитный кейс при завершении работы. Прежде всего стоит ставить хорошие пароли на систему. Если ты планируешь ставить Kali на устройство, то во время установки создай надежный пароль и запомни/запиши его, чтобы не потерять. В любой другой ситуации, когда Линукс уже давно работает, а сносить систему максимально лень вспомни самую базовую команду passwd. С ее помощью можно сменить пароль от учетной записи без root прав. Таким образом ты обезопасишь себя от брутфорса или ручного подбора дефолных паролей.


Сетевая безопасность
Скорее всего ты знаешь, что для того, чтобы узнать какая машина находится в сети следует использовать команду ping. Работает она за счет отправки ICMP пакета на хост и его возврат с последующим открытием и чтением. После этого выводится скорость доставки и другая информация о соединении. Если ты случайно спалил свой IP адрес, то можешь не волноваться так как сейчас я покажу, как заставить систему отправлять пакеты такого типа в игнорирование.

Для этого открываем терминал и пишем следующую команду:

Bash:
sudo open /etc/sysctl.conf

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

Код:
net.ipv4.icmp_echo_ignore_all = 1

Чтобы система снова начала реагировать на ICMP пакеты замени единицу на ноль. Переходим обратно в терминал и для применения изменений пишем такую команду:

Код:
sudo sysctl -p

Готово! Проверяем результат при помощи той же команды ping. Чтобы узнать свой айпишник открой новое окно и введи ifconfig. Подтверди действия и смотри цифры после inet. Результат работы ты можешь видеть ниже:

pignore.jpg


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

Для этого используем все тот же добрый терминал. Открываем его и переходим в каталог системы:

Bash:
cd /etc/ssh

Воспользуемся правами суперпользователя и создадим бекап наших старых ключей. Это сделано на тот случай, если вся работа пойдет не по плану.

Bash:
sudo mkdir backup

Теперь перемещаем всю информацию и файлы в этот каталог:

Bash:
sudo mv ssh_host_* backup

На всякий случай перекрестимся, помолимся и сделаем пару сотен копий нашей операционной системы на внешний накопитель. Все сделал? Переходи в новое окно и внимательно вводи такую команду:

Bash:
sudo dpkg-reconfigure openssh-server

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

ssh.jpg


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

Bash:
service ssh start

Аналогичная команда stop заставляет службу прекратить свою работу. Ну а чтобы понять, какие порты у тебя на устройстве используются и активны в этот момент используй такую команду:

Код:
sudo ss -tulwn | grep LISTEN

  • Показать только сокеты TCP в Linux (-t)
  • Показать только сокеты UDP (-u)
  • Показать прослушивающие сокеты (-l)
  • Не разрешать имена сервисов (-n)
Останавливать стоит только те службы и порты, которые точно не использует твоя система. Для справки воспользуйся файлом services. Для его открытия введи less /etc/services в консоли.

services.jpg


Также не будем далеко ходить и рассмотрим расширения под стандартный браузер Firefox, который уже предустановлен в нашей системе. Ниже я оставил весь список требуемых дополнений с кратким описанием, их основная цель обеспечить безопасную работу в Интернете и минимальный сбор данных о твоей системе.
  1. - защищает от отслеживания через «бесплатные», централизованные CDN. Предотвращает отслеживание через множество запросов к CDN, «доставляя» локальные файлы, чтобы не ломать сайты. Дополняет контент-фильтры.
  2. - автоматически учится блокировать невидимые трекеры.
  3. - переопределяет запросы к сайтам и принудительно активирует HTTPS. Решение зашифровывает соединения с сайтами, делая серфинг в Интернете безопаснее.
  4. - один из немногих расширений предоставляющий VPN соединения для серфинга на заблокированных сайтах. В отличие от других решений по прежнему доступен на территории Российской Федерации.

Мониторинг системы
По мимо физической и сетевой защиты не будем забывать о том, что наша система по прежнему подвержена атаке различными вирусами, к примеру rootkit и bootkit способен работать даже в среде Linux, а это одно из самых опасных вредоносных ПО, поскольку его трудно обнаружить в системе и все действия выполняются от прав суперпользователя. Скорее всего ты уже привык работать с процессами используя диспетчер задач. И чтобы не колупать систему и файлы с расширением log давай позаботимся о мониторинге всех программ в системе. Для этого я подобрал три утилиты, которые помогут тебе в этом.

xce4-taskmanager - простое в использовании приложение для мониторинга и управления запущенными процессами. Поддерживается на многих дистрибутивах Linux (в последних версиях Kali пакет предустановлен). Отображается процессы в виде древа и имеет функцию фильтрации всех данных.

taskmanager.jpg


top - команда Linux, работает по аналогии с диспетчером задач, имеет множество флагов и более простой интерфейс. Также можно настроить интервал отображения информации о процессах. Способен отображать только те программы, которые используют ресурсы процессора.

top.jpg


Какой диспетчер использовать в системе решать тебе, ну а если не хочешь каждый раз запускать лишнюю программу, то давай рассмотрим утилиту logcheck. Ее главная задача отслеживать системные лог-файлы на подозрительную активность. Всю информацию и сигналы тревоги она отправляет прямо тебе на почту. Для работы устанавливай программу при помощи apt-get и теперь давай глянем нашу конфигурацию:

Bash:
grep ^[^#] /etc/logcheck/logcheck.conf

logcheck.jpg


  • REPORTLEVEL - уровень отладочной информации (workstation, server, paranoid). В целях проверки работоспособности стоит выставлять paranoid.
  • SENDMAILTO - поле отвечающее за адрес, куда будут доставляться все письма с активностью.
  • MAILASATTACH - параметр отправки сообщения при помощи вложений.
  • FQDN - использовать или нет доменное имя устройства в заголовке письма (включить если в сети больше одного устройства).
  • TMP - альтернативная директория для временных файлов logcheck.

Настраиваем всю работу под себя, после чего перезагружаем конфигурацию командой reload и запускаем ее при помощи следующего кода (не забудь указать в конфигурации файлы, которые следует проверять):

Bash:
nano -w /etc/cron.hourly/logcheck.cron

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

chkrootkit - предназначена для поиска враждебного кода и иных подозрительных событий в системе. Имеет несколько модулей и расширенный арсенал для поиска угроз.

rootkit.jpg


Модули chkwtmp и chklastlog пытаются обнаруживать факты удаления записей из системных журналов wtmp и lastlog, но полное обнаружение всех изменений этих файлов не гарантируется.

Модуль chkproc проверяет файлы /proc для обнаружения скрытых от команд ps и readdir системных вызовов, которые могут быть связаны с троянскими модулями LKM. Вы можете использовать эту команду с флагом -v для вывода более подробного отчета.

Рассмотрим на примере эту утилиту. Для этого переходим в терминал и попробуем отследить все приложения, которые используют сниффинг:

Bash:
chkrootkit ps ls sniffer

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

Подводим итоги
При помощи таких небольших манипуляций в системе я описал тебе как достичь базовой безопасности в операционной системе Kali Linux. Конечно, до идеала еще далеко и как минимум следует установить браузер тор и прокси сервера. Но это уже переходит в тему анонимности и поэтому я не стал ее затрагивать в этой статье. Также теперь ты можешь быть уверен в том, что в случаи заражения системы ты точно будешь знать когда и как это произошло.
 
Последнее редактирование модератором:

D3L1F3R

Red Team
20.02.2022
352
148
BIT
719
Будь здрав, брат!
Очень полезная статья, спасибо автору!
 

lefury

New member
18.07.2023
1
0
BIT
2
Статья супер! Благодарю за труд)
Надеюсь, будет продолжение
 
12.12.2021
22
4
BIT
48
Здравствуйте.
Подскажите по поводу блокировки ICMP.
В чем будет заключаться разница между правилами дропа ICMP в iptables и отключение поддержки ICMP в параметрах ядра?

Кстати, в iptables можно логировать попытки передачи ICMP пакетов, например в отдельный журнал, даже если они дропаются :)
 

Bruoh

New member
26.08.2024
1
0
BIT
7
Хмм, зачем блокировать внешние ICMP пакеты так, когда можно использовать брандмауэр?? Нет ну вдруг тебе понадобиться их включить? Опять запоминать путь, открывать редактор и тд когда можно просто включить их в 1 клик в том же FirewallD? Если я не прав то прошу поправить, но это как странно!
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!