> Часть 1. Kali Linux: политика безопасности, защита компьютеров и сетевых служб
> Часть 2. Kali Linux: фильтрация трафика с помощью netfilter
> Часть 3. Kali Linux: мониторинг и логирование
В предыдущих трёх материалах мы рассказали о защите Kali Linux, о фильтрации трафика, о мониторинге. Сегодня подведём итоги и представим вашему вниманию несколько упражнений. Здесь приведён перевод разделов 7.6 и «Упражнения» главы 7 книги «Kali Linux Revealed».

В этой главе мы рассмотрели концепции формирования политик безопасности, рассказали о том, на что стоит обратить внимание, создавая подобную политику, и описали некоторые угрозы, которые направлены как на компьютеры, так и на самих специалистов в области информационной безопасности. Мы обсудили меры по защите ноутбуков и настольных компьютеров, показали приёмы настройки встроенного в ядро Linux файрвола
Ниже приведены несколько упражнений, которые позволят вам попрактиковаться в обеспечении безопасности Kali Linux.
Примечание: если есть такая возможность, хорошо бы ответы на вопросы сделать в сворачиваемом блоке. Аналогично — по ответам на другие вопросы.
> Вот решение на Asciinema (текст нельзя копировать из видео).
Надеемся, то, что вы узнали из серии материалов, в которых мы публиковали переводы фрагментов седьмой главы книги «Kali Linux Revealed», поможет вам сделать вашу систему безопаснее и надёжнее.
Уважаемые читатели! Справились ли вы с упражнениями, или пришлось подглядывать в ответы?
> Часть 2. Kali Linux: фильтрация трафика с помощью netfilter
> Часть 3. Kali Linux: мониторинг и логирование
В предыдущих трёх материалах мы рассказали о защите Kali Linux, о фильтрации трафика, о мониторинге. Сегодня подведём итоги и представим вашему вниманию несколько упражнений. Здесь приведён перевод разделов 7.6 и «Упражнения» главы 7 книги «Kali Linux Revealed».

7.6. Итоги
В этой главе мы рассмотрели концепции формирования политик безопасности, рассказали о том, на что стоит обратить внимание, создавая подобную политику, и описали некоторые угрозы, которые направлены как на компьютеры, так и на самих специалистов в области информационной безопасности. Мы обсудили меры по защите ноутбуков и настольных компьютеров, показали приёмы настройки встроенного в ядро Linux файрвола
netfilter. И, наконец, мы рассмотрели средства и стратегии для мониторинга Kali, показали как внедрить их для того, чтобы получить возможность вовремя обнаруживать потенциальные угрозы. Теперь подведём итоги, вспомним самое важное.- Уделите время формированию политики безопасности.
- Если вы используете Kali Linux на общедоступном сервере, смените все стандартные пароли для служб, которые можно настраивать (подробнее — в разделе 7.3. «Защита сетевых служб») и ограничьте к ним доступ с помощью файрвола (подробнее — в разделе 7.4. «Файрвол или фильтрация пакетов»). Сделать это нужно до запуска служб.
- Используйте
fail2banдля отражения атак, основанных на угадывании пароля, или удалённых атак на пароли методом грубой силы.
- Если вы поддерживаете веб-службы, организуйте работу с ними через HTTPS для предотвращения перехвата трафика, который может включать аутентификационные куки-файлы, третьими лицами.
- Реальный риск часто возникает если вы путешествуете от клиента к клиенту. Например, ваш ноутбук могут украсть или изъять на таможне. Подготовьтесь к такому развитию событий, используя полное шифрование диска (подробнее — в разделе 4.2.2. «Установка на полностью зашифрованную файловую систему»). Рассмотрите возможность настройки функции самоуничтожения (подробности — в разделе «Установка пароля самоуничтожения для повышения уровня безопасности»). Это позволит вам надёжно защитить данные клиентов.
- Настройте правила файрвола (раздел 7.4. «Файрвол или фильтрация пакетов») для блокировки любого исходящего трафика, за исключением того, который генерирует ваше VPN-соединение. Как результат, вы организуете для себя безопасное сетевое подключение, а если оно окажется разорванным, вы тут же об этом узнаете (а не переключитесь на доступ к интернету по локальной сети).
- Отключите неиспользуемые службы. Kali упрощает эту задачу, так как все внешние сетевые службы по умолчанию отключены.
- В ядро Linux встроен файрвол
netfilter. Не существует универсальных правил настройки файрволов, подходящих на все случаи жизни, так как пользователи могут предъявлять разные требования к сетям и сетевым службам. Настроить файрвол так, как нужно именно вам, можно из пространства пользователя, используя командыiptablesиip6tables.
- Программа
logcheckумеет мониторить лог-файлы, просматривая их, по умолчанию, ежечасно, и отправлять администратору отчёты, содержащие необычные записи, для дальнейшего анализа.
- Утилита
top —это интерактивный инструмент, которые выводит список выполняющихся процессов.
- Команда
dpkg --verify(илиdpkg -V) позволяет вывести отчёт о системных файлах, которые были модифицированы (возможно — злоумышленником). Её недостаток заключается в том, что сравнивая файлы, она полагается на их контрольные суммы, которые могут быть изменены хорошо подготовленным злоумышленником.
- Инструмент Advanced Intrusion Detection Environment (AIDE) позволяет проверять целостность файлов, он обнаруживает любые изменения при сравнении существующих файлов с ранее сохранённым образом эталонной системы.
- Средство
tripwireочень похоже на AIDE, но оно использует методику подписывания конфигурационного файла, благодаря чему атакующий не может изменить его так, чтобы он указывал на нужную ему версию эталонной базы данных.
- Рассмотрите возможность использования утилит
rkhunter,checksecurity, иchkrootkit, которые предназначены для поиска руткитов.
Упражнения
Ниже приведены несколько упражнений, которые позволят вам попрактиковаться в обеспечении безопасности Kali Linux.
?Упражнение №1: защита при работе в сети
- Идентифицируйте все открытые порты в вашей установке Kali Linux.
- Настройте файрвол Kali так, чтобы он позволял осуществлять TCP-подключения только к портам 22, 80 и 443.
- Проверьте, заблокированы ли все остальные порты, используя утилиту вроде
netcat.
- Настройте систему так, чтобы правила файрвола сохранялись после перезагрузки. Перезагрузите компьютер для того, чтобы это проверить.
Примечание: если есть такая возможность, хорошо бы ответы на вопросы сделать в сворачиваемом блоке. Аналогично — по ответам на другие вопросы.
?Ответы к упражнению №1
Посмотреть
> Вот решение на Asciinema (текст из видео копировать нельзя).
Вот как всё выглядит, с точки зрения хост-системы, с которой осуществляется подключение к виртуальной машине с Kali Linux.
- Проверьте открытые порты:
root@kali:~# netstat -tulpen root@kali:~# iptables -n -L INPUT
Если в вашей системе некоторые порты уже заблокированы, или имеются ранее установленные правилаiptables, вы можете от всего этого избавиться:
root@kali:~# iptables -F INPUT root@kali:~# iptables -P INPUT ACCEPT root@kali:~# iptables -P FORWARD ACCEPT root@kali:~# iptables -P OUTPUT ACCEPT
Теперь проверьте, можете ли вы подключиться к порту 4444 на вашем компьютере, воспользовавшисьnetcatследующим образом:
root@kali:~# nc -lnvp 4444 listening on [any] 4444 ...
С вашего хоста (если Kali запущена на виртуальной машине), или с другого компьютера, попробуйте подключиться к экземпляруnetcat, который прослушивает порт 4444. После подключения введите что-нибудь с клавиатуры. Текст должен появиться там, где запущенnetcat:
root@HOST_MACHINE:~# nc -v 172.16.161.136 4444 aaaaaaaa
Обратите внимание на то, что если вы вводите текст с клавиатуры, но он не появляется на экране, значит — что-то пошло не так. Разберитесь с этим прежде чем продолжать. Если Kali установлена на виртуальную машину — переключитесь на использование сетевого моста вместо NAT. Добейтесь работоспособности сетевого соединения.
- Настройку файрвола можно выполнить с помощью следующих команд:
iptables -P INPUT DROP iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -m state --state NEW -p tcp --dport 22 -j ACCEPT iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT iptables -A INPUT -m state --state NEW -p tcp --dport 443 -j ACCEPT
Теперь проверьте, можно ли снова подключиться к порту 4444 на машине, защищённой файрволом:
root@kali:~# nc -lvp 4444 listening on [any] 4444 ... - Попытайтесь, с хост-компьютера, подключиться к
netcat. Попытка подключения должна завершиться неудачей.
root@HOST_MACHINE:~# nc -v 172.16.161.136 4444 nc: connectx to 172.16.161.136 port 4444 (tcp) failed: Operation timed out - Теперь создайте скрипт
iptablesиз ранее заданных правил:
root@kali:~# iptables-save > /usr/local/etc/myconfig.fw
Зарегистрируйте конфигурационный скрипт в директивеpre-upфайла/etc/network/interfaces. Перезагрузите систему для того, чтобы убедиться в том, что настройки файрвола сохранились.
auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp pre-up iptables-restore < /usr/local/etc/myconfig.fw
> Вот решение на Asciinema (текст из видео копировать нельзя).
Вот как всё выглядит, с точки зрения хост-системы, с которой осуществляется подключение к виртуальной машине с Kali Linux.
?Упражнение №2: мониторинг служб
- Установите
logcheck.
- Попытайтесь атаковать, методом грубой силы, собственную службу SSH, и посмотрите, заметит ли это
logcheck, отправит ли он вам отчёт об атаке.
- Запланируйте задание
cronдля ежечасного запускаlogcheckтаким образом, чтобы он, после анализа файлов журналов, создавал лог-файл в/data/$(date-time).log.
?Ответы к упражнению №2
Посмотреть
> Вот решение на Asciinema (текст можно копировать из видео).
- Установите
logcheckи запустите его в первый раз:
apt-get install logcheck sudo -u logcheck logcheck -o - Загрузите список паролей, атакуйте собственную службу SSH с помощью брутфорсера
hydra, посмотрите, что сообщит об этомlogcheck:
wget https://raw.githubusercontent.com/danielmiessler/SecLists/master/Passwords/500-worst-passwords.txt hydra -l root -P 500-worst-passwords.txt 127.0.0.1 ssh tail -f /var/log/auth.log sudo -u logcheck logcheck -o - Напишите bash-скрипт следующего содержания:
mkdir -p /data/ sudo -u logcheck logcheck -o > /data/$(date +"%m-%d-%Y-%T").log
Сделайте его исполняемым и поместите в директорию/etc/cron.hourly.
> Вот решение на Asciinema (текст можно копировать из видео).
?Упражнение №3: защита файловой системы
- Установите
tripwire. Начните наблюдение за изменениями файлов в директории/var/www/html/.
- Если вы всё сделали правильно, вы столкнётесь со множеством ошибок «File system error». Может быть вас хакнули? В любом случае, исправьте ситуацию.
?Ответы к упражнению №3
Посмотреть
- Установите
tripwireи задайте файлы, которые вы хотите защитить:
apt-get install tripwire # yes, yes, yes, yes nano /etc/tripwire/twpol.txt # list the directories and files you want to protect
Добавьте следующий блок кода в файл политикtripwire:
# Webserver file and folder monitoring ( rulename = "Web server file and directories", severity = $(SIG_HI) ) { /var/www/html -> $(SEC_BIN); }
Теперь сделайте так, чтобыtripwireреагировал на изменения файлов в директории/var/www/html:
twadmin -m P /etc/tripwire/twpol.txt #Create Policy File tripwire --init #Initialize database tripwire --check #Initial integrity check touch /var/www/html/shell_backdoor.php tripwire --check tripwire --update-policy -Z low /etc/tripwire/twpol.txt tripwire --check
> Вот решение на Asciinema (текст нельзя копировать из видео).
?Информация к размышлению
- Вот интересный пример использования
iptables. Можно превратить любой компьютер с беспроводным интерфейсом в беспроводную точку доступа с помощьюhostapd. Вот источник этой идеи:
iptables -t nat -F iptables -F iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT echo '1' > /proc/sys/net/ipv4/ip_forward (DNS, dhcp still required) - Взгляните на это потрясающее руководство по iptables.
?Итоги
Надеемся, то, что вы узнали из серии материалов, в которых мы публиковали переводы фрагментов седьмой главы книги «Kali Linux Revealed», поможет вам сделать вашу систему безопаснее и надёжнее.
Уважаемые читатели! Справились ли вы с упражнениями, или пришлось подглядывать в ответы?