Гайд по обеспечению безопасности Linux-системы

Спросите любого гика, и он вам скажет, как интересно устанавливать Linux на новую машину. Если вы пытаетесь протестировать новый дистрибутив или установить обновлённую версию, есть в этом действии нечто сакральное, возвышающее вас над всем сущим, и на секунду делающее сверхчеловеком, этаким полубогом в доспехах, повергающим, своим сверкающим на солнце клинком, Горгону Медузу.

Хотя Linux более безопасен, чем Windows, все еще есть шаги, которые необходимо предпринять после установки, чтобы захардкорить систему на длительные приятные часы работы в ней. Выполните эти шаги, чтобы сделать ваш Linux дистрибутив защищённым как неприступная крепость. Более продвинутый пользователь чем я, безусловно возразит, что это не всё, что нужно еще сделать так-то и так, но пардон, я не всезнайка, прошу в комментариях дополнить.

1. Обновите систему

После первой загрузки в новоустановленную систему, сразу рекомендую обновить её до самых актуальных версий пакетов. Обусловлено это тем, что в новых версиях закрыты старые уязвимости и известные баги и добавились новые уязвимости и неизвестные баги.
В Manjaro Linux это делается простым:
yaourt -Syyuu
В Ubuntu и прочих Fedora сами знаете как.

2. Включите файрвол

Файрвол(firewall, межсетевой экран, брандмауэр) - технологический барьер, предназначенный для предотвращения несанкционированного или нежелательного сообщения между компьютерными сетями или хостами. Простыми словами это та штука которая не позволит гипотетическому злоумышленнику произвести несанкционированные действия на вашем ПК. В линукс уже есть iptables -встроенная утилита командной строки представляющая интерфейс управления работой межсетевого экрана. Если есть желание, то можно раскурить маны разобраться в ней и настроить всё с помощью неё. Но если вы ленивая жопа привыкли к удобным утилитам с графическим интерфейсом, то ваш выбор GUFW — графическая надстройка над другой утилитой командной строки ufw, выполняющую аналогичную функцию iptables.

3. Установите антивирусное ПО

На вопросе необходимости антивирусов в операционных системах на базе Linux, лопнуло немало пуканов сконцентрировано внимание, как приверженцев идеи их использования, так и противников. Лично я считаю, что безопасности много не бывает, и если вы ставите перед собой цель построение защищённой системы, то неплохо бы установить этот вид ПО. Перечислю известные мне неплохие решения — ClamAV, Sophos, ESET, Comodo и Bitdefender.

4. Контроль сторонних приложений

Если вы устанавливаете приложения не из официальных репозиториев, то я бы порекомендовал устанавливать их в каталог /opt . Так же рекомендую проверить автозапускаемые процессы и программы и явно вам ненужные удалить из автозапуска. Чтобы посмотреть их список можно воспользоваться незатейливой командой:
netstat -npl
Ну а убить можно например с помощью
Неиспользуемые службы systemd можно отключать по имени службы:
systemctl disable servicename где вместо servicename имя ненужной службы.

5. Отключение входа под Root в SSH

Для этого достаточно отредактировать файл /etc/ssh/sshd_config в вашем любимом текстовом редакторе, и убрать комментарий # в начале строки:
#PermitRootLogin no сохраните файл и перезапустите ssh в зависимости от вашей системы инициализации:
sudo /etc/init.d/sshd restart или sudo systemctl restart sshd.service

6. Включаем защиту BIOS

Откройте ваши настройки биос и отключите загрузку с CD/DVD, USB, внешних & floppy носителей. После чего включите и задайте хороший пароль BIOS.

7. Проведите аудит своей системы

Существует много различных утилит для аудита системы. Я пользовался Lynis — утилиту с открытым исходным кодом, которая выполняет местную оценку безопасности и аудит служб на уязвимость.
Для запуска аудита выполняем команду:
./lynis audit system

8. Запрещаем считывание с USB

Для тру параноиков желающих не позволить супостату подключить USB к вашему ПК. Создаём в директории /etc/modprobe.d/ файл usb-storage.conf:
sudo nano /etc/modprobe.d/usb-storage.conf следующего содержания:
install usb-storage /bin/true Перезагружаем систему и наслаждаемся невозможностью смонтировать USB.

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

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

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

Дистрибутив на базе Ubuntu, разработанный для тестирования вторжений. За счет использования XFCE в качестве стандартного оконного менеджера, работает очень быстро.

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

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

На Википедии представлены краткие обзоры многих встроенных инструментов. Несмотря на то, что Backbox первоначально создавался исключительно для тестирования, дистрибутив также поддерживает сеть Tor, которая поможет скрыть ваше цифровое присутствие.

Kali

Вероятно, самый популярный дистрибутив для тестирования на проникновения, основанный на Debian Wheezy. разработан компанией Offensive Security Ltd и является продолжением более раннего проекта BackTrack Linux.

Kali доступ в виде 32-битных и 64-битных ISO-образов, которые можно записать на USB-носитель или CD диск, или даже установить на жесткий диск или твердотельный накопитель. Проект также поддерживает архитектуру ARM и может запускаться даже на одноплатном компьютере Raspberry Pi, а также включает огромное количество инструментов анализа и тестирования. Основным рабочим столом является Gnome, но Kali позволяет создать персонализированный ISO-образ с другой средой рабочего стола. Этот гибко настраиваемый дистрибутив позволяет пользователям даже изменять и пересобирать ядро Linux, чтобы соответствовать конкретным требованиям.

О популярности Kali можно судить по тому, что система является совместимой и поддерживаемой платформой для MetaSpoilt Framework - мощного инструмента, который позволяет разрабатывать и выполнять код эксплойта на удаленном компьютере.

Доступный для 32-битных и 64-битных машин, является дистрибутивом для тестирования вторжений, который основан на Gentoo Linux. Пользователи Gentoo могут дополнительно устанавливать Pentoo, который будет инсталлироваться поверх основной системы. Дистрибутив основан на XFCE и поддерживает сохранение изменений, поэтому при отключении USB-носителя, все примененные изменения будут сохранены для будущих сессий.

Встроенные инструменты делятся на 15 различных категорий, например, Exploit, Fingerprint, Cracker, Database, Scanner и т.д. Будучи основанным на Gentoo, дистрибутив унаследовал набор защитных функций Gentoo, которые позволяют выполнять дополнительные настройки безопасности и более детально управлять дистрибутивом. Вы можете использовать утилиту Application Finder для быстрого обнаружения приложений, расположенных в различных категориях.

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

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

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

Security Onion построен вокруг XFCE и включает все самые необходимые приложения, имеющиеся в Xubuntu. Security Onion не предназначен для любителей, а скорее подойдет опытным специалистам, которые имеют определенный уровень знаний в области мониторинга сети и предотвращения вторжений. К счастью проект постоянно сопровождается подробными руководствами и видеоуроками, чтобы помочь в работе с сложным встроенным ПО.

Caine

Учетная запись по умолчанию: root:blackarch. BlackArch имеет размер более 4 гигабайт и поставляется с несколькими различными оконными менеджерами, включая Fluxbox, Openbox, Awesome.

В отличие от других дистрибутивов для тестирования на проникновение, BlackArch также может использоваться в качестве инструмента повышенной конфиденциальности. Кроме различных инструментов анализа, мониторинга и тестирования, дистрибутив также включает инструменты защиты от слежения, в частности sswap и ropeadope для безопасного стирания содержимого файла подкачки и системных журналов соответственно и многие другие программы для обеспечения приватности.

Разработанный итальянской сетью Frozenbox, посвященной IT-безопасности и программированию, основанный на Debian, может использоваться для тестирования вторжений и поддержания конфиденциальности. Также как BlackArch, Parrot Security OS является дистрибутивом плавающего релиза. Логин по умолчанию для Live-сессии: root:toor.

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

Персонализируемая среда рабочего стола Mate предлагает привлекательный интерфейс, а сам Parrot Security OS работает очень шустро даже на машинах с 2 гигабайтами ОЗУ. В систему встроено несколько нишевых утилит, например, apktool - инструмент изменения APK файлов.

Для пользователей, которые заботятся о приватности, в дистрибутиве предусмотрена специальная категория приложений, где пользователи могут включить анонимный режим серфинга в Интернете (используются сети Tor) за один клик.

JonDo

Нашли опечатку? Выделите и нажмите Ctrl + Enter

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

Если вы хотите остаться анонимным в сети и защитить свои данные, в этой статье мы рассмотрим самые безопасные дистрибутивы linux, которые помогут вам в этом.

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

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

Большинство из них используют для обеспечения анонимности программное обеспечение Tor, которое обеспечивает действительно высокий уровень анонимности, в отличие от VPN провайдеров, которые все еще знают ваш реальный IP адрес.

Но у VPN и сейчас есть множество преимуществ, что делает его лучшим вариантом в некоторых случаях. Если для вас важна скорость соединения или вы собираетесь передавать файлы по P2P, тут выиграет VPN.

Прежде чем рассматривать самые безопасные linux дистрибутивы, давайте поговорим о том, как обеспечивается анонимность Tor. Tor или The Onion Router это стандартный протокол шифрования, разработанный в ВМС США.

Программное обеспечение Tor работает с несколькими узлами, это и обеспечивает высокую надежность и анонимность. Данные при прохождении через случайный узел каждый раз перешифровываются и становятся полностью расшифрованными только на последнем узле. Разработчики Tor также отвечают за создание дистрибутива Tails, который рекомендует использовать Эдвард Сноуден.

Теперь вернемся к VPN. Обычно, это платные сервисы, найти хороший, бесплатный VPN очень сложно. Качество обслуживания VPN зависит от провайдера, но как правило, скорость работы серверов VPN намного быстрее, чем Tor.

1. Tails - анонимный LiveCD

Если вы хотите остаться неизвестным в интернете, Tails - отличный выбор. Его основная цель - следить, чтобы вы не оставили никаких цифровых следов во время веб-серфинга. Это один из наиболее часто используемых для обеспечения анонимности дистрибутивов, и единственный, где все интернет-соединения направляются через Tor.

Обычно Tails устанавливается на флешку, все данные хранятся в оперативной памяти, а после завершения работы стираются. Операционная система основана на Debian и поставляется с большим набором инструментов с открытым исходным кодом специально разработанных для обеспечения конфиденциальности. Здесь поддерживается подмена MAC адреса и камуфляж Windows, когда система выглядит очень похожей на Windows 8.

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

2. JonDo Live-DVD

JonDo Live-DVD - это коммерческое решение для анонимности в сети. Оно работает похожим образом на Tor, ваши данные тоже передаются через ряд смешанных серверов JonDonym. На каждом узле данные перешифровываются. Это отличная альтернатива для Tails, особенно если вы ищете что-то с менее ограниченным пользовательским интерфейсом.

Как и Tails, дистрибутив основан на Debian, а также включает в себя набор инструментов для обеспечения анонимности и наиболее часто используемые приложения.

JonDo Live-DVD это платный сервис, для коммерческого использования. Он ориентирован на использование в фирмах, а также быстрее чем Tails и тоже не поддерживает сохранение файлов.

Если вам нужно что-то совершенно другое, вам будет интересен Whonix. Здесь используется совсем другой подход. Это не LiveCD. Whonix работает в виртуальной машине VirtualBox, система изолирована от вашей основной системы, тем самым уменьшается риск подхватить вирусы или засветить свои данные в сети.

Whonix состоит из двух частей. Whonix Gatway выступает в качестве шлюза Tor, вторая - Whonix Workstation является полностью изолированной от сети и направляет все свои сетевые соединения через шлюз Tor.

Таким образом, здесь необходимо использовать две виртуальные машины, что может создать определенные проблемы, если у вас слабое оборудование. Но тем не менее она работает. Правда, это не самый безопасный дистрибутив Linux, как Live CD, поскольку там не сохраняются данные на жестком диске.

Whonix основан на Debian, но в качестве окружения рабочего стола используется KDE. Операционная система не подходит для повседневного использования и вы можете ее использовать только на виртуальной машине.

4. Qubes OS

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

Здесь совсем иной подход к анонимности. Идея Qubes - безопасность путем разделения. Это значит, что ваша цифровая жизнь будет разделена между изолированными виртуальными машинами. Любое приложение запускается в отдельной виртуальной среде.

Нужно отметить, что Qubes поставляется по умолчанию с флагманским ноутбуком от Purism. Этот ноутбук считается самым безопасным устройством для пользователей. И это правда, учитывая мощное программное обеспечения этого дистрибутива.

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

5. UPR (Ubuntu Privacy Remix)

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

Уже судя по имени, можно сказать, что он основан на Ubuntu. Дистрибутив предлагает безопасный серфинг в интернете и использование шифрованных флешек, для эффективной защиты ваших данных от несанкционированного доступа. Дистрибутив поставляется с предустановленными инструментами для шифрования, такими как GnuPG и TrueCrypt. UPR предназначен только для безопасного серфинга в интернете, а не для анонимности. Он отлично подойдет, если вы хотите установить систему на свой компьютер, а не использовать LiveCD. Если нужна еще и анонимность можно установить Tor или подключить VPN.

Выводы

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

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

Компьютеры подвержены риску просто при соединении с Интернетом. Среди возможного риска вирусы, черви, трояны, шпионские программы, руфситы, вредоносные хакеры, фишинг, фарминг и социальная инженерия. Мри обсуждении безопасности профессионалы IT часто используют выражение: «Единственный способ по-настоящему защитить компьютер - закрыть его в стальном ящике»; в общем, не используйте компьютер, и вы будете в безопасности. Понятно, что это непрактично, так как компьютеры используются каждый день, поэтому вместо того чтобы бояться, будьте хитрее. Понимание того, как безопасно работать на компьютере и какие меры нужно предпринимать, — это разница между счастливым пользователем компьютера и тем, кто теряет свои файлы.

Передовой опыт компьютерной безопасности
Перед тем как изучать способы защитить компьютер под управлением Ubuntu, необходимо изучить некоторые термины и обратить внимание на основные принципы.

Терминология
В этой главе будут обсуждаться термины, объясненные ниже. Важно ознакомиться с ними, так как они часто встречаются на форумах, связанных с безопасностью.
. Ботнет (botnet). Несколько компьютеров (зомби), которые контролируются другим компьютером или пользователем. Обычно создается вирусом или другими вредоносными программами.
. Брандмауэр (firewall). Программный или аппаратный пакет, цель которого — предотвращать неавторизированпый доступ к компьютерной системе или сети.
. Взломщик (cracker). Человек, получающий доступ к компьютерной системе без разрешения.
. Вирус (virus). Программа, способная копировать себя, чтобы заразить компьютер без ведома оператора. Вирусы могут уничтожать или портить данные на зараженных компьютерах.
. Вредоносные программы (malware). Слово таксаге — это сокращение от malicious software. В общем, это любые программы, которые могут нанести компьютерной системе вред. Например, вирусы, трояны и черви.
. Зомби (zombie). Компьютер, зараженный вирусом, который позволяет кому-то управлять собой.
. Руткит (rootkit). Вредоносная программа, которая позволяет обращаться к компьютеру под управлением GNU/Linux с нравами пользователя root. В Microsoft Windows нападающий может получить права администратора.
. Социальная инженерия (Social engineering). Высокотехнологичная версия мошенничества. Метод обмана пользователей, при котором они сообщают информацию, которую можно использовать для «авторизированного» доступа к компьютерной системе или сети.
. Троян (trojan). Сокращение от «троянский конь» (Trojan horse), это компьютерная программа, устанавливаемая под видом другой программы. Она открывает доступ к компьютеру для нападающего.
. Уязвимость (vulnerability). Слабость компьютерной системы, процедуры или сетевой защиты, которую могут использовать взломщики, чтобы получить доступ к системе.
. Фарминг (pharming). Технология, при которой изменяются навигационные структуры DNS и человек перенаправляется на сайт злоумышленника, а не на сайт, на который он хотел попасть. Так часто собирают банковскую и другую личную информацию от ничего не подозревающих пользователей.
. Психинг (phishing). Технология, заключающаяся в посылке поддельного электронного письма или сообщения якобы от банка или фирмы. В сообщении у пользователя обычно запрашиваются информация об учетной записи и пароль. Сообщение также может содержать ссылки на поддельные веб-сайты, на которых у пользователя может спрашиваться подобная информация, и этой информацией затем пользуются злоумышленники.
. Хакер (hacker). Человек, который с помощью знаний и таланта решает сложные проблемы, связанные с компьютерами.
. Червь (worm). Вредоносная программа, которая может создавать свои копии, чтобы распространиться по компьютерной сети.
. Эксплойт (exploit). Ошибка в программном обеспечении, которой пользуются хакеры, чтобы получить доступ к компьютерной системе или сети.
Если вы искали сведения о GNU/Linux и Ubuntu в Интернете, то. вероятно, видели статьи и сообщения па форумах, в которых расхваливается безопасность этой операционной системы по сравнению с Microsoft Windows. Если вы еще этого не сделали, наберите в Google строку GNU/ Linux + security, и вы поймете, о чем я говорю.

При установке Microsoft Windows пользователи должны создать начальную учетную запись. Этой учетной записи сразу присваиваются права администратора, и, значит, пользователю разрешено все. Поэтому, если под этой учетной записью будет запущена вредоносная программа, она получит полный доступ к компьютеру. Ubuntu использует другой подход. Пользователи, созданные во время установки, не могут делать все, что хотят. Помните, как при установке вам надо было набирать sudo? Это потому что пользователь - не администратор, или root, как это называется в GNU/Linux. По этой причине инструменты Add/ Remove и Synaptic Package Manager запрашивают пароль, если вы пробуете что-то установить. Такой подход, безусловно, работает, так как и Microsoft теперь использует подобную процедуру в операционной системе Winodows Vista.

Еще одна причина, по которой GNU/Linux безопаснее Microsoft Windows, заключается в том, что количество вредоносных программ, заражающих Microsoft Windows, очень велико по сравнению с GNU/Linux. Отличаются и пользователи этих операционных систем. Windows — самая популярная операционная система в домах и офисах. Эта доля рынка включает большое число пользователей, которые не заботятся о безопасности компьютера. Люди, работающие с GNU/Linux, отличаются — они продвинулись на шаг дальше по сравнению с обычными пользователями и знают о компьютерах больше. Конечно, это только теория, и миллионы пользователей хорошо знакомы с Microsoft Windows. Данная теория указывает на то, сколь важен пользователь при поддержании безопасности компьютера. Установка таких программ, как антивирус и брандмауэр, - это ваша задача. Следует обеспечить частые обновления этих и всех других приложений. Что еще важнее, необходимо использовать приложения безопасности.

Никто из нас не хочет, чтобы личная информация попала в чужие руки. Но как защитить систему от атак и хищений данных? Неужели придется читать километровые мануалы по настройке и алгоритмам шифрования? Совсем не обязательно. В этой статье я расскажу, как сделать Linux-систему безопасной буквально за 30 минут.

Введение

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

Когда я потерял смартфон, мне сильно повезло, что установленный на него антивор оказался работоспособным и позволил удаленно стереть все данные из памяти девайса. Когда я по невнимательности открыл SSH-порт на домашней машине с юзером без пароля (!) во внешний мир (!!), мне сильно повезло, что на машину пробрались скрипт-кидди, которые кроме смешной истории шелла не оставили никаких серьезных следов своего пребывания в системе. Когда я случайно опубликовал в интернете листинг со своим паролем от Gmail, мне сильно повезло, что нашелся добрый человек, который предупредил меня об этом.

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

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

Пароль!

Все начинается с паролей. Они везде: в окне логина в Linux-дистрибутиве, в формах регистрации на интернет-сайтах, на FTP- и SSH-серверах и на экране блокировки смартфона. Стандарт для паролей сегодня - это 8–12 символов в разном регистре с включением цифр. Генерировать такие пароли своим собственным умом довольно утомительно, но есть простой способ сделать это автоматически:

$ openssl rand -base64 6

Никаких внешних приложений, никаких расширений для веб-браузеров, OpenSSL есть на любой машине. Хотя, если кому-то будет удобней, он может установить и использовать для этих целей pwgen (поговаривают, пароль получится более стойким):

$ pwgen -Bs 8 1

Где хранить пароли? Сегодня у каждого юзера их так много, что хранить все в голове просто невозможно. Довериться системе автосохранения браузера? Можно, но кто знает, как Google или Mozilla будет к ним относиться. Сноуден рассказывал, что не очень хорошо. Поэтому пароли надо хранить на самой машине в зашифрованном контейнере. Отцы-основатели рекомендуют использовать для этого KeePassX. Штука графическая, что не сильно нравится самим отцам-основателям, но зато работает везде, включая известный гугль-зонд Android (KeePassDroid). Останется лишь перекинуть базу с паролями куда надо.

Шифруемся

Шифрование - как много в этом слове… Сегодня шифрование везде и нигде одновременно. Нас заставляют пользоваться HTTPS-версиями сайтов, а нам все равно. Нам говорят: «Шифруй домашний каталог», а мы говорим: «Потом настрою». Нам говорят: «Любимое занятие сотрудников Dropbox - это ржать над личными фотками юзеров», а мы: «Пусть ржут». Между тем шифрование - это единственное абсолютное средство защиты на сегодняшний день. А еще оно очень доступно и сглаживает морщины.

В Linux можно найти тонны средств шифрования всего и вся, от разделов на жестком диске до одиночных файлов. Три наиболее известных и проверенных временем инструмента - это dm-crypt/LUKS, ecryptfs и encfs. Первый шифрует целые диски и разделы, второй и третий - каталоги с важной информацией, каждый файл в отдельности, что очень удобно, если потребуется делать инкрементальные бэкапы или использовать в связке с Dropbox. Также есть несколько менее известных инструментов, включая TrueCrypt например.

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

$ sudo apt-get install ecryptfs-utils

И, собственно, включить шифрование:

$ sudo ecryptfs-setup-swap $ ecryptfs-setup-private

Далее достаточно ввести свой пароль, используемый для логина, и перезайти в систему. Да, все действительно так просто. Первая команда зашифрует и перемонтирует своп, изменив нужные строки в /etc/fstab. Вторая - создаст каталоги ~/.Private и ~/Private, в которых будут храниться зашифрованные и расшифрованные файлы соответственно. При входе в систему будет срабатывать PAM-модуль pam_ecryptfs.so, который смонтирует первый каталог на второй с прозрачным шифрованием данных. После размонтирования ~/Private окажется пуст, а ~/.Private будет содержать все файлы в зашифрованном виде.

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

# ecryptfs-migrate-home -u vasya

Кстати, места на диске должно быть в 2,5 раза больше, чем данных у vasya, так что рекомендую заранее почиститься. После завершения операции следует сразу войти под юзером vasya и проверить работоспособность:

$ mount | grep Private /home/vasya/.Private on /home/vasya type ecryptfs ...

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

$ sudo rm -r /home/vasya.*

Заметаем следы

ОK, пароли в надежном месте, личные файлы тоже, что теперь? А теперь мы должны позаботиться о том, чтобы какие-то куски наших личных данных не попали в чужие руки. Ни для кого не секрет, что при удалении файла его актуальное содержимое остается на носителе даже в том случае, если после этого произвести форматирование. Наши зашифрованные данные будут в сохранности даже после стирания, но как быть с флешками и прочими картами памяти? Здесь нам пригодится утилита srm, которая не просто удаляет файл, но и заполняет оставшиеся после него блоки данных мусором:

$ sudo apt-get install secure-delete $ srm секретный-файл.txt home-video.mpg

# dd if=/dev/zero of=/dev/sdb

Эта команда сотрет все данные на флешке sdb. Далее останется создать таблицу разделов (с одним разделом) и отформатировать в нужную ФС. Использовать для этого рекомендуется fdisk и mkfs.vfat, но можно обойтись и графическим gparted.

Предотвращение BruteForce-атак

Fail2ban - демон, который просматривает логи на предмет попыток подобрать пароли к сетевым сервисам. Если такие попытки найдены, то подозрительный IP-адрес блокируется средствами iptables или TCP Wrappers. Сервис способен оповещать владельца хоста об инциденте по email и сбрасывать блокировку через заданное время. Изначально Fail2ban разрабатывался для защиты SSH, сегодня предлагаются готовые примеры для Apache, lighttpd, Postfix, exim, Cyrus IMAP, named и так далее. Причем один процесс Fail2ban может защищать сразу несколько сервисов.

В Ubuntu/Debian для установки набираем:

# apt-get install fail2ban

Конфиги находятся в каталоге /etc/fail2ban. После изменения конфигурации следует перезапускать fail2ban командой:

# /etc/init.d/fail2ban restart

Угроза извне

Теперь позаботимся об угрозах, исходящих из недр всемирной паутины. Здесь я должен был бы начать рассказ об iptables и pf, запущенном на выделенной машине под управлением OpenBSD, но все это излишне, когда есть ipkungfu. Что это такое? Это скрипт, который произведет за нас всю грязную работу по конфигурированию брандмауэра, без необходимости составлять километровые списки правил. Устанавливаем:

$ sudo apt-get install ipkungfu

Правим конфиг:

$ sudo vi /etc/ipkungfu/ipkungfu.conf # Локальная сеть, если есть - пишем адрес сети вместе с маской, нет - пишем loopback-адрес LOCAL_NET="127.0.0.1" # Наша машина не является шлюзом GATEWAY=0 # Закрываем нужные порты FORBIDDEN_PORTS="135 137 139" # Блокируем пинги, 90% киддисов отвалится на этом этапе BLOCK_PINGS=1 # Дропаем подозрительные пакеты (разного рода флуд) SUSPECT="DROP" # Дропаем «неправильные» пакеты (некоторые типы DoS) KNOWN_BAD="DROP" # Сканирование портов? В трэш! PORT_SCAN="DROP"

Для включения ipkungfu открываем файл /etc/default/ipkungfu и меняем строку IPKFSTART = 0 на IPKFSTART = 1. Запускаем:

$ sudo ipkungfu

Дополнительно внесем правки в /etc/sysctl.conf:

$ sudo vi /etc/systcl.conf # Дропаем ICMP-редиректы (против атак типа MITM) net.ipv4.conf.all.accept_redirects=0 net.ipv6.conf.all.accept_redirects=0 # Включаем механизм TCP syncookies net.ipv4.tcp_syncookies=1 # Различные твики (защита от спуфинга, увеличение очереди «полуоткрытых» TCP-соединений и так далее) net.ipv4.tcp_timestamps=0 net.ipv4.conf.all.rp_filter=1 net.ipv4.tcp_max_syn_backlog=1280 kernel.core_uses_pid=1

Активируем изменения:

$ sudo sysctl -p

Выявляем вторжения

Snort - один из любимейших инструментов админов и главный фигурант всех руководств по безопасности. Штука с долгой историей и колоссальными возможностями, которой посвящены целые книги. Что он делает в нашем гайде по быстрой настройке безопасной системы? А здесь ему самое место, Snort можно и не конфигурировать:

$ sudo apt-get install snort $ snort -D

Все! Я не шучу, стандартных настроек Snort более чем достаточно для защиты типовых сетевых сервисов, если, конечно, они у тебя есть. Нужно только время от времени просматривать лог. А в нем можно обнаружить строки типа этих:

[**] MS-SQL probe response overflow attempt [**] http://www.securityfocus.com/bid/9407]

Упс. Кто-то пытался вызвать переполнение буфера в MySQL. Тут сразу есть и ссылочка на страницу с детальным описанием проблемы. Красота.

Кто-то наследил…

Кто-то особенно умный смог обойти наш брандмауэр, пройти мимо Snort, получить права root в системе и теперь ходит в систему регулярно, используя установленный бэкдор. Нехорошо, бэкдор надо найти, удалить, а систему обновить. Для поиска руткитов и бэкдоров используем rkhunter:

$ sudo apt-get install rkhunter

Запускаем:

$ sudo rkhunter -c --sk

Софтина проверит всю систему на наличие руткитов и выведет на экран результаты. Если зловред все-таки найдется, rkhunter укажет на место и его можно будет затереть. Более детальный лог располагается здесь: /var/log/rkhunter.log. Запускать rkhunter лучше в качестве cron-задания ежедневно:

$ sudo vi /etc/cron.daily/rkhunter.sh #!/bin/bash /usr/bin/rkhunter -c --cronjob 2>&1 | mail -s "RKhunter Scan Results" [email protected]

Заменяем email-адрес Васи на свой и делаем скрипт исполняемым:

$ sudo chmod +x /etc/cron.daily/rkhunter.sh

$ sudo rkhunter --update

Ее, кстати, можно добавить перед командой проверки в cron-сценарий. Еще два инструмента поиска руткитов:

$ sudo apt-get install tiger $ sudo tiger $ sudo apt-get install lynis $ sudo lynis -c

По сути, те же яйца Фаберже с высоты птичьего полета, но базы у них различные. Возможно, с их помощью удастся выявить то, что пропустил rkhunter. Ну и на закуску debsums - инструмент для сверки контрольных сумм файлов, установленных пакетов с эталоном. Ставим:

$ sudo apt-get install debsums

Запускаем проверку:

$ sudo debsums -ac

Как всегда? запуск можно добавить в задания cron.


За пределами

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

Чтобы спокойно ходить по сайтам и только в случае необходимости включать прокси, можно воспользоваться одним из множества расширений для Chrome и Firefox, которые легко находятся в каталоге по запросу proxy switcher. Устанавливаем, вбиваем список нужных прокси и переключаемся на нужный, увидев вместо страницы табличку «Доступ к странице ограничен по требованию господина Скумбриевича».

В тех ситуациях, когда под фильтр попал весь сайт и его адрес внесли в черный список на стороне DNS-серверов провайдеров, можно воспользоваться свободными DNS-серверами, адреса которых опубликованы . Просто берем два любых понравившихся адреса и добавляем в /etc/resolv.conf:

Nameserver 156.154.70.22 nameserver 156.154.71.22

Чтобы разного рода DHCP-клиенты и NetworkManager’ы не перезаписали файл адресами, полученными от провайдера или роутера, делаем файл неперезаписываемым с помощью расширенных атрибутов:

$ sudo chattr +i /etc/resolv.conf

После этого файл станет защищен от записи для всех, включая root.

Чтобы еще более анонимизировать свое пребывание в Сети, можно воспользоваться также демоном dnscrypt, который будет шифровать все запросы к DNS-серверу в дополнение к прокси-серверу, используемому для соединения с самим сайтом. Устанавливаем:

$ wget http://download.dnscrypt.org/dnscrypt-proxy/dnscrypt-proxy-1.3.2.tar.bz2 $ bunzip2 -cd dnscrypt-proxy-*.tar.bz2 | tar xvf - $ cd dnscrypt-proxy-* $ sudo apt-get install build-essential $ ./configure && make -j2 $ sudo make install

Указываем в /etc/resolv.conf loopback-адрес:

$ vi /etc/resolv.conf nameserver 127.0.0.1

Запускаем демон:

$ sudo dnscrypt-proxy --daemonize

Кстати, версии dnscrypt есть для Windows, iOS и Android.

Луковая маршрутизация

Что такое луковая маршрутизация? Это Tor. А Tor, в свою очередь, - это система, которая позволяет создать полностью анонимную сеть с выходом в интернет. Термин «луковый» здесь применен относительно модели работы, при которой любой сетевой пакет будет «обернут» в три слоя шифрования и пройдет на пути к адресату через три ноды, каждая из которых будет снимать свой слой и передавать результат дальше. Все, конечно, сложнее, но для нас важно только то, что это один из немногих типов организации сети, который позволяет сохранить полную анонимность.

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

Тем не менее Tor очень легко установить и использовать:

$ sudo apt-get install tor

Все, теперь на локальной машине будет прокси-сервер, ведущий в сеть Tor. Адрес: 127.0.0.1:9050, вбить в браузер можно с помощью все того же расширения, ну или добавить через настройки. Имей в виду, что это SOCKS, а не HTTP-прокси.


INFO

Версия Tor для Android называется Orbot.

Чтобы введенный в командной строке пароль не был сохранен в истории, можно использовать хитрый трюк под названием «добавь в начале команды пробел».

Именно ecryptfs используется для шифрования домашнего каталога в Ubuntu.

Борьба с флудом

Приведу несколько команд, которые могут помочь при флуде твоего хоста.

Подсчет количества коннектов на определенный порт:

$ netstat -na | grep ":порт\ " | wc -l

Подсчет числа «полуоткрытых» TCP-соединений:

$ netstat -na | grep ":порт\ " | grep SYN_RCVD | wc -l

Просмотр списка IP-адресов, с которых идут запросы на подключение:

$ netstat -na | grep ":порт\ " | sort | uniq -c | sort -nr | less

Анализ подозрительных пакетов с помощью tcpdump:

# tcpdump -n -i eth0 -s 0 -w output.txt dst port порт and host IP-сервера

Дропаем подключения атакующего:

# iptables -A INPUT -s IP-атакующего -p tcp --destination-port порт -j DROP

Ограничиваем максимальное число «полуоткрытых» соединений с одного IP к конкретному порту:

# iptables -I INPUT -p tcp --syn --dport порт -m iplimit --iplimit-above 10 -j DROP

Отключаем ответы на запросы ICMP ECHO:

# iptables -A INPUT -p icmp -j DROP --icmp-type 8

Выводы

Вот и все. Не вдаваясь в детали и без необходимости изучения мануалов мы создали Linux-box, который защищен от вторжения извне, от руткитов и прочей заразы, от непосредственно вмешательства человека, от перехвата трафика и слежки. Остается лишь регулярно обновлять систему, запретить парольный вход по SSH, убрать лишние сервисы и не допускать ошибок конфигурирования.