Безопасность в Linux - понятие относительное. Самые безопасные Linux дистрибутивы

Продолжаем знакомиться с документами, опубликованными британской правительственной комиссией Communications-Electronics Security Group, которая на днях назвала дистрибутив Ubuntu самой безопасной операционной системой для конечного пользователя.

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

Пункт 8 документа «End User Devices Security Guidance: Ubuntu 12.04» называется Policy Recommendations и содержит конкретные советы администраторам компьютеров с Ubuntu.

Отключите командные оболочки (shell) по умолчанию

Уберите доступ к командным интерпретаторам: настройте программы добавления пользователей (например, useradd) таким образом, чтобы в качестве оболочки по умолчанию использовался файл /bin/false. Для этого нужно внести изменения в конфигурационные файлы /etc/default/useradd и /etc/adduser.conf.

Отдельные разделы для /tmp и /home с запретом на запуск файлов

Для директорий /tmp и /home требуется задать отдельные разделы и в конфигурационном файле /etc/fstab запретить для этих разделов запуск любых файлов, разрешив только чтение и запись. Делается это с помощью опций «noexec,nosuid,nodev».

Найдите и закройте все доступные для записи директории вне /home и /tmp

Иногда так получается, что на файловой системе появляются места за пределами директорий /home и /tmp, где непривилегированный пользователь может создавать и запускать файлы. Ищутся такие места довольно просто. Разумеется, команду нужно запускать от имени непривилегированного пользователя:

Find / -type d -writable

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

Ограничьте использование скриптовых языков

Скриптовые языки (такие как Python, например) используются операционной системой для обеспечения нормального функционирования и не могут просто так быть деинсталлированы. Однако, скрипты создают дополнительную опасность, позволяя злоумышленнику загружать и исполнять собственные программы. Выход заключается в соответствующей настройке AppArmor. Необходимо разрешить запуск только системных сценариев (из /bin, /usr/bin и т.п.), а во всех остальных директориях запретить (/home, /tmp и т.д.). На примере Python:

#File: /etc/apparmor.d/usr.bin.python2.7 /usr/bin/python { #include /usr/bin/python2.7 mr, deny /home/** rw, deny /tmp/** rw, deny /some/user/writable/directory/** rw, /** rw, }

Грамотная настройка файервола в Ubuntu

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

# разрешаем все исходящие и запрещаем все входящие / sbin/ iptables -F / sbin/ iptables -X / sbin/ iptables -P OUTPUT ACCEPT / sbin/ iptables -P FORWARD DROP / sbin/ iptables -P INPUT DROP # разрешаем входящий ssh / sbin/ iptables -A INPUT -p tcp --dport 22 -j ACCEPT # разрешаем stateful return traffic / sbin/ iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT # разрешаем любой трафик на интерфейсе lo / sbin/ iptables -A INPUT -i lo -j ACCEPT / sbin/ iptables -A OUTPUT -o lo -j ACCEPT

Сохраняем настройки в конфигурационном файле /etc/fw-rules и не забываем закрыть к нему доступ посторонним:

Iptables-save > / etc/ fw-rules chmod 400 / etc/ fw-rules

Остается заставить систему загружать правила при каждом включении. Для этого создаем файл /etc/init/netfilter.conf со следующим содержанием:

Description "netfilter firewall" start on (starting networking) pre-start script iptables-restore < /etc/fw-rules end script

Готово. Теперь можно расслабить булки.

Безусловно, можно сказать, что Linux более безопасен (защищен), чем Windows. Безопасность в Linux встроенная, а не прикрученная где то сбоку, как это реализовано в Windows. Безопасность системы Linux охватывает область от ядра до рабочего стола, но есть шансы для хакеров навредить вашему домашнему каталогу (/home).

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

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

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

Начните с основ безопасности Linux

Шагнем к основам (), которые подойдут почти к любым
дистрибутивам Linux.

Зашифруем файловую систему в Linux для более полной безопасности Linux

Пользовательские пароли не решат проблему, если вы хотите чтобы действительно никто не смог прочитать ваш домашний каталог (/home) или определенный размер байтов. Можно его так, чтобы даже пользователь с высшими привилегиями root не сможет сунуть свой нос.

Удаляйте щепетильные файлы так, чтобы их больше никто не восстановил

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

Также не стоит забывать об имеющемся в ядре Linux брандмауэре. В состав всех дистрибутивов Linux входит lptables, которая является частью ядра. Lptables позволяет фильтровать сетевые пакеты. Конечно же, в терминале можно настроить эту утилиту. Но этот способ непосилен многим, в том числе и мне. Поэтому я устанавливаю, и произвожу настройку, с такой легкостью как будто играю в игру.

Как и все операционные системы, Linux склонен к накоплению всякого хлама при работе различных приложений. И это не его вина Linux, так как различные приложения, например, браузеры текстовые редакторы и даже видео плееры, работают не на уровне ядра и накапливают временные файлы. Можно установить утилиту BleachBit по универсальному удалению мусора.

Анонимный серфинг, скрываем свой IP — очень важно для безопасности вашей личности под ос Linux


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

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

По моему мнению, соблюдение и настройка всех этих правил обезопасит вас и ваш компьютер на 90%.

P.S. Я пользуясь облаком под названием dropbox. Храню в нем свои старые и новые, ещё не опубликованные статьи. Удобно иметь доступ к своим файлам с любой точки земли и на любом компьютере. При написании статей для сайта в текстовом редакторе, сохраняю свои текстовые документы с паролем и только после этого закачиваю на сервер dropbox. Никогда не стоит пренебрегать лишней безопасностью, которая сыграет вам только на руку.

  • Серверное администрирование ,
  • Системное администрирование
  • На ежегодной конференции LinuxCon в 2015 году создатель ядра GNU/Linux Линус Торвальдс поделился своим мнением по поводу безопасности системы. Он подчеркнул необходимость смягчения эффекта от наличия тех или иных багов грамотной защитой, чтобы при нарушении работы одного компонента следующий слой перекрывал проблему.

    В этом материале мы постараемся раскрыть эту тему с практической точки зрения:

    7. Установить сетевые экраны

    Недавно была новая уязвимость, позволяющая проводить DDoS-атаки на сервера под управлением Linux. Баг в ядре системы появился с версии 3.6 в конце 2012 года. Уязвимость даёт возможность хакерам внедрять вирусы в файлы загрузки, веб-страницы и раскрывать Tor-соединения, причём для взлома не нужно прилагать много усилий - сработает метод IP-спуфинга.

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

    Блокировать доступ с помощью Firewall

    Firewall - это один из самых важных инструментов блокирования нежелательного входящего трафика. Мы рекомендуем пропускать только действительно нужный трафик и полностью запретить весь остальной.

    Для фильтрации пакетов в большинстве дистрибутивов Linux есть контроллер iptables. Обычно им пользуются опытные пользователи, а для упрощённой настройки можно использовать утилиты UFW в Debian/Ubuntu или FirewallD в Fedora.

    8. Отключить ненужные сервисы

    Специалисты из Университета Виргинии рекомендуют отключить все сервисы, которые вы не используете. Некоторые фоновые процессы установлены на автозагрузку и работают до отключения системы. Для настройки этих программ нужно проверить скрипты инициализации. Запуск сервисов может осуществляться через inetd или xinetd.

    Если ваша система настроена через inetd, то в файле /etc/inetd.conf вы сможете отредактировать список фоновых программ «демонов», для отключения загрузки сервиса достаточно поставить в начале строки знак «#», превратив её из исполняемой в комментарий.

    Если система использует xinetd, то её конфигурация будет в директории /etc/xinetd.d. Каждый файл директории определяет сервис, который можно отключить, указав пункт disable = yes, как в этом примере:

    Service finger { socket_type = stream wait = no user = nobody server = /usr/sbin/in.fingerd disable = yes }
    Также стоит проверить постоянные процессы, которые не управляются inetd или xinetd. Настроить скрипты запуска можно в директориях /etc/init.d или /etc/inittab. После проделанных изменений запустите команду под root-аккаунтом.

    /etc/rc.d/init.d/inet restart

    9. Защитить сервер физически

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

    Для входа в дата-центр все посетители должны проходить определенные этапы аутентификации. Также настоятельно рекомендуется использовать датчики движения во всех помещениях центра.

    10. Защитить сервер от неавторизованного доступа

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

    Например, инструменты Tripwire и Aide собирают базу данных о системных файлах и защищают их с помощью набора ключей. Psad используется для отслеживания подозрительной активности с помощью отчётов firewall.

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

    Заключение

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

    О чем еще мы пишем:

    Теги:

    • 1сloud
    • linux
    • ИБ
    Добавить метки О безопасности компьютеров сейчас часто говорят в новостях, в журналах о компьютерах и торговле и во всем Интернете. Этот вопрос настолько часто поднимается, что некоторые считают его способом продать напуганным пользователям еще больше программного обеспечения. В конце концов, разве кто-то не заплатит 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, убрать лишние сервисы и не допускать ошибок конфигурирования.