Как отключить антивирус линукс
Наши эксперты проанализировали сложные атаки и APT-кампании, нацеленные на Linux, и дали ряд рекомендаций по защите.
10 сентября 2020
Многие годы бытовало мнение, что под Linux вредоносов нет. Однако в действительности это заблуждение, которое зародилось под действием трех факторов. Во-первых, до недавнего времени Linux был системой для нишевых задач, он был гораздо менее распространен, нежели Windows. Во-вторых, им пользовались в основном IT-профессионалы, которые совершали ошибки реже, чем пользователи. Ну и в-третьих, из-за особенностей архитектуры системы для причинения ущерба вредоносу нужно было как-то получить root-права, что значительно усложняло задачу злоумышленников.
Однако ситуация со временем менялась. Сейчас системы на базе Linux в некоторых сферах догоняют Windows, а кое-где давно обогнали. Кроме того, многие разработчики пытаются сделать свои системы более удобными для конечного пользователя — снабжают их графическими оболочками и инструментами, которые на первый взгляд просто неотличимы от изначально дружелюбных пользователям систем семейства Windows. Это значительно повысило популярность Linux и привлекло больше пользователей, которые были уже не так профессиональны и ошибались чаще. А увеличение популярности и популярность Linux-систем в стратегически важной серверной нише, в свою очередь, привели к тому, что злоумышленники стали уделять этой системе больше внимания.
Да, действительно, мы до сих пор не видели ни одной крупномасштабной эпидемии, которая затрагивала бы машины под управлением систем на базе Linux. Однако операторы целевых и APT-атак все чаще создают инструменты именно под это семейство ОС. Наши коллеги из Global Research and Analysis Team (GReAT) проанализировали сложные угрозы за последние годы и обнаружили, что большинство современных групп злоумышленников всерьез интересуются Linux.
Средства для атак на Linux-системы есть у группировок Winniti (также известная как APT41 или Barium), Cloud Snooper, DarkHotel, Equation, Lazarus, Sofacy, The Dukes, The Lamberts, Turla, WildNeutron и многих других. Кроме того, свои инструменты под Linux разрабатывала и компания HackingTeam. Она разрабатывает ПО для так называемой легальной слежки и продает его правительствам и правоохранительным органам. Несколько лет назад ее взломали, так что теперь разработки компании есть и у киберпреступников. Более подробное описание группировок и их инструментов можно найти в отчете на блоге Securelist.
Краткие рекомендации по защите Linux-систем
Наши эксперты также разработали ряд рекомендаций, которые позволят минимизировать угрозу Linux-системам.
- Создать список доверенных источников ПО под Linux и не допускать установку софта и запуск скриптов, полученных из сторонних источников.
- Не забывать своевременно обновлять используемое ПО, причем следует делать это автоматически и избегать обновлений по нешифруемым каналам.
- Тщательно настроить файрвол: убедиться, что он ведет логи и блокирует все неиспользуемые в работе порты.
- Использовать двухфакторную аутентификацию и применять аппаратные токены.
- Быть готовыми к инсайдерским атакам: использовать шифрование, доверенную загрузку и средства контроля за целостностью аппаратных устройств.
- Периодически проводить аудит систем и проверять логи на индикаторы атак, а также проводить тесты на проникновение.
- Использовать решение для обеспечения безопасности Linux-серверов.
В частности, в состав нашего решения для корпоративной защиты Kaspersky Total Security для бизнеса входят компоненты для защиты почтовых серверов и сетевых шлюзов. Более развернутые рекомендации вы также можете найти в посте на Securelist.
Работающих вирусов в привычном понимании виндузятника для линукса нет, их нельзя принести с флешкой, вернее, принести можно, вот на скрине один из них, только толку то от таких вирусов, берешь и удаляеь, как обычные файлы и папки, сам вирус не запустится и работать не будет, да и создан он для другой операционной системы в принципе.
Права в линуксе распределены так, чтобы что-то сделать с ядром, нужно получить права рута, то есть бесконтрольно, вирус в принципе не может получить эти права, так как только полный даун будет сидеть в линуксе под рутом, опять же сам по себе линукс исключает то, что его используют дауны. В винде же в основном все сидят с правами администратора, потому что без этих прав в винде очень-очень туго, вот поэтому попав вирус на комп в винде, сразу начинает свои коварные действия, не имея ограничения в правах. Даже если представить, что каким-то образом на комп под линуксом попал рабочий вирус, то без прав рута он только сможет оставить свой след в пользовательской директории, где по сути только конфигурационные файлы и файлы пользователя и вирус в директории этого пользователя, как в аквариуме, отгорожен от ядра прочным стеклом :)
Думаете в винде нельзя сделать такое грамотное распределение прав? Можно, но это там никому не надо, потому что в коммерческих целях многих устраивает наличие вирусов, антивирусов, скрытые возможности проникновения в комп пользователя и т. д.
В линуксе, даже если представить, что вирус, как любая другая программа, был собран в пакет, который можно установить, то не забываем о наличии разных веток дистрибутивов линукса, то есть просто невозможно сделать такой универсальный пакет, который будет без бубна запускаться на всех вариациях линукса, с разными зависимостями, форматами файла этого пакета и т. д. . То есть остаются исходники, но чтобы в исходник и вдохнуть жизнь, нужно их сначала собрать, установить, то есть сделать это может только пользователь сам в трезвом уме и здравой памяти, ну разве что только для того, чтобы "посмотреть".
И еще один не маловажный момент. Это источники программного обеспечения. Где виндузятники берут софт? Зачастую не покупают, а ставят пиратский, рыская по варезным сайтам, собирая в дополнения к софту кейгены, кряки и т. д. , которые в большинстве своем уже с троянами. Для линукса же софт берется из репозитория того или иного дистрибутива. Никаких кряков для работы этого софта искать не надо, то есть уже тут сразу отпадает самый главные источник вирусов и троянов, потому как в репозиторий попадают только сто раз проверенный софт.
Естественно, не бывает идеальной системы, даже и в линуксе порой находятся уязвимости, но все это за 2-3 дня устраняется и уже буквально со следующем обновлением приходит и исправления с устраненной уязвимостью. В свое время для винда это частенько не 2-3 дня, а 2-3 месяца :)
Мы живём в опасное время: едва ли не каждый день обнаруживаются новые уязвимости, на их основе создают эксплойты, под ударом может оказаться и обычный домашний компьютер на Linux, и сервер, от которого зависит огромная организация.
Возможно, вы уделяете внимание безопасности и периодически обновляете систему, но обычно этого недостаточно. Поэтому сегодня мы поделимся двенадцатью советами по повышению безопасности Linux-систем на примере CentOS 7.
Защита терминала
Для того, чтобы повысить безопасность системы, можно защитить консольный доступ к ней, ограничив root-пользователя в использовании определённых терминалов. Сделать это можно, задав терминалы, которые может использовать суперпользователь, в файле /etc/securetty .
Рекомендуется, хотя это и не обязательно, позволить суперпользователю входить в систему только из одного терминала, оставив остальные для других пользователей.
Напоминания о смене пароля
В наши дни сложный пароль — вещь совершенно необходимая. Однако, ещё лучше, когда пароли регулярно меняют. Об этом легко забыть, поэтому хорошо бы задействовать какой-нибудь системный механизм напоминаний о возрасте пароля, и о том, когда его надо поменять.
Мы предлагаем вам два способа организации подобных напоминаний. Первый заключается в использовании команды chage , второй — в установке необходимых значений по умолчанию в /etc/login.defs .
Вызов команды chage выглядит так:
Тут мы используем ключ -M для того, чтобы установить срок истечения актуальности пароля в днях.
Использовать эту команду можно и без ключей, тогда она сама предложит ввести необходимое значение:
Второй способ заключается в модификации файла /etc/login.defs . Вот пример того, как могут выглядеть интересующие нас значения. Вы можете изменить их на те, которые нужны вам:
Помните о том, что вам, если вы играете роль администратора, следует способствовать тому, чтобы пользователи применяли сложные пароли. Сделать это можно с помощью pam_cracklib.
После установки этой программы, вы можете перейти в /etc/pam.d/system-auth и ввести примерно следующее:
Уведомления sudo
Команда sudo , с одной стороны, упрощает жизнь, а с другой, может стать причиной проблем с безопасностью Linux, которые могут привести к непоправимым последствиям. Настройки sudo хранятся в файле /etc/sudoers . С помощью этого файла можно запретить обычным пользователям выполнять некоторые команды от имени суперпользователя. Кроме того, можно сделать так, чтобы команда sudo отправляла электронное письмо при её использовании, добавив в вышеупомянутый файл следующее:
Также надо установить свойство mail_always в значение on :
Защита SSH
Если мы говорим о безопасности Linux, то нам стоит вспомнить и о службе SSH. SSH — это важная системная служба, она позволяет удалённо подключаться к системе, и иногда это — единственный способ спасти ситуацию, когда что-то идёт не так, поэтому об отключении SSH мы тут не говорим.
Тут мы используем CentOS 7, поэтому конфигурационный файл SSH можно найти по адресу etc/ssh/sshd_config . Сканеры или боты, которых используют атакующие, пытаются подключиться к SSH по используемому по умолчанию порту 22.
Распространена практика изменения стандартного порта SSH на другой, неиспользуемый порт, например, на 5555 . Порт SSH можно изменить, задав нужный номер порта в конфигурационном файле. Например, так:
Кроме того, можно ограничить вход по SSH для root-пользователя, изменив значение параметра PermitRootLogin на no :
И, конечно, стоит отключить аутентификацию с применением пароля и использовать вместо этого публичные и приватные ключи:
Теперь поговорим о тайм-аутах SSH. Проблему тайм-аутов можно решить, настроив некоторые параметры. Например, следующие установки подразумевают, что пакеты, поддерживающие соединение, будут автоматически отправляться через заданное число секунд:
Настроив эти параметры, вы можете увеличить время соединения:
Можно указать то, каким пользователям разрешено использовать SSH:
Разрешения можно назначать и на уровне групп:
Защита SSH с использованием Google Authenticator
Для ещё более надёжной защиты SSH можно использовать двухфакторную аутентификацию, например, задействовав Google Authenticator. Для этого сначала надо установить соответствующую программу:
Затем запустить её для проверки установки:
Так же нужно, чтобы приложение Google Authenticator было установлено на вашем телефоне.
Отредактируйте файл /etc/pam.d/sshd , добавив в него следующее:
Теперь осталось лишь сообщить обо всём этом SSH, добавив следующую строку в файл /etc/ssh/sshd_config :
Теперь перезапустите SSH:
Когда вы попытаетесь войти в систему с использованием SSH, вам предложат ввести код верификации. Как результат, теперь SSH-доступ к вашей системе защищён гораздо лучше, чем прежде.
Мониторинг файловой системы с помощью Tripwire
Tripwire — это замечательный инструмент для повышения безопасности Linux. Это — система обнаружения вторжений (HIDS).
Задача Tripwire заключается в том, чтобы отслеживать действия с файловой системой, следить за тем, кто меняет файлы, и когда происходят эти изменения.
Для того, чтобы установить Tripwire, нужен доступ к репозиторию EPEL. Это задача несложная, решить её можно следующими командами:
Теперь создайте файл ключей:
Вам предложат ввести сложный пароль для файла ключей. После этого можно настроить Tripwire, внеся изменения в файл /etc/tripwire/twpol.txt . Работать с этим файлом несложно, так как каждая строка оснащена содержательным комментарием.
Когда настройка программы завершена, следует её инициализировать:
Инициализация, в ходе которой выполняется сканирование системы, займёт некоторое время, зависящее от размеров ваших файлов.
Любые модификации защищённых файлов расцениваются как вторжение, администратор будет об этом оповещён и ему нужно будет восстановить систему, пользуясь файлами, в происхождении которых он не сомневается.
По этой причине необходимые изменения системы должны быть подтверждены с помощью Tripwire. Для того, чтобы это сделать, используйте следующую команду:
И вот ещё одна рекомендация, касающаяся Tripwire. Защитите файлы twpol.txt и twcfg.txt . Это повысит безопасность системы.
У Tripwire есть множество параметров и установок. Посмотреть справку по ней можно так:
Использование Firewalld
Firewalld — это замена для iptables , данная программа улучшает сетевую безопасность Linux. Firewalld позволяет вносить изменения в настройки, не останавливая текущие соединения. Файрвол работает как сервис, который позволяет добавлять и менять правила без перезапуска и использует сетевые зоны.
Для того, чтобы выяснить, работает ли в настоящий момент firewalld , введите следующую команду:
Просмотреть предопределённые сетевые зоны можно так:
Каждая из этих зон имеет определённый уровень доверия.
Это значение можно обновить следующим образом:
Получить подробные сведения о конкретной зоне можно так:
Просмотреть список всех поддерживаемых служб можно следующей командой:
Затем можно добавлять в зону новые службы или убирать существующие:
Можно вывести сведения обо всех открытых портах в любой зоне:
Добавлять порты в зону и удалять их из неё можно так:
Можно настраивать и перенаправление портов:
Firewalld — это весьма продвинутый инструмент. Самое примечательное в нём то, что он может нормально работать, например, при внесении изменений в настройки, без перезапусков или остановок службы. Это отличает его от средства iptables , при работе с которым службу в похожих ситуациях нужно перезапускать.
Переход с firewalld на iptables
Некоторые предпочитают файрвол iptables файрволу firewalld . Если вы пользуетесь firewalld , но хотите вернуться к iptables , сделать это довольно просто.
Сначала отключите firewalld :
Затем установите iptables :
Теперь можно запустить службу iptables :
После всего этого перезагрузите компьютер.
Ограничение компиляторов
Атакующий может скомпилировать эксплойт на своём компьютере и выгрузить его на интересующий его сервер. Естественно, при таком подходе наличие компиляторов на сервере роли не играет. Однако, лучше ограничить компиляторы, если вы не используете их для работы, как происходит в большинстве современных систем управления серверами.
Для начала выведите список всех бинарных файлов компиляторов из пакетов, а затем установите для них разрешения:
Создайте новую группу:
Затем измените группу бинарных файлов компилятора:
И ещё одна важная вещь. Нужно изменить разрешения этих бинарных файлов:
Предотвращение модификации файлов
Иммутабельные файлы не может перезаписать ни один пользователь, даже обладающий root-правами. Пользователь не может модифицировать или удалить такой файл до тех пор, пока установлен флаг иммутабельности, снять который может лишь root-пользователь.
Несложно заметить, что эта возможность защищает вас, как суперпользователя, от ошибок, которые могут нарушить работу системы. Используя данный подход, можно защитить конфигурационные файлы или любые другие файлы по вашему желанию.
Для того, чтобы сделать любой файл иммутабельным, воспользуйтесь командой chattr :
Атрибут иммутабельности можно удалить такой командой:
Так можно защищать любые файлы, но помните о том, что если вы обработали таким образом бинарные системные файлы, вы не сможете их обновить до тех пор, пока не снимите флаг иммутабельности.
Управление SELinux с помощью aureport
Нередко система принудительного контроля доступа SELinux оказывается, по умолчанию, отключённой. Это не влияет на работоспособность системы, да и работать с SELinux довольно сложно. Однако, ради повышения безопасности, SELinux можно включить, а упростить управление этим механизмом можно, используя aureport .
Утилита aureport позволяет создавать отчёты на основе лог-файлов аудита.
Список исполняемых файлов можно вывести следующей командой:
Можно использовать aureport для создания полного отчёта об аутентификации:
Также можно вывести сведения о неудачных попытках аутентификации:
Или, возможно, сводку по удачным попыткам аутентификации:
Утилита aureport значительно упрощает работу с SELinux.
Использование sealert
В дополнение к aureport вы можете использовать хороший инструмент безопасности Linux, который называется sealert . Установить его можно так:
Теперь у нас есть средство, которое будет выдавать оповещения из файла /var/log/audit/audit.log и даст нам дополнительные сведения о проблемах, выявленных SELinux.
Использовать его можно так:
Самое интересное тут то, что в оповещениях можно найти советы о том, как решать соответствующие проблемы.
Итоги
Надеемся, приведённые здесь советы помогут вам сделать вашу установку Linux безопаснее. Однако, если речь идёт о защите информации, нельзя, применив те или иные меры, считать, что теперь вам ничто не угрожает. К любым программным средствам защиты всегда стоит добавлять бдительность и осторожность.
На ежегодной конференции LinuxCon в 2015 году создатель ядра GNU/Linux Линус Торвальдс поделился своим мнением по поводу безопасности системы. Он подчеркнул необходимость смягчения эффекта от наличия тех или иных багов грамотной защитой, чтобы при нарушении работы одного компонента следующий слой перекрывал проблему.
В этом материале мы постараемся раскрыть эту тему с практической точки зрения:
- начнём с предварительной настройки и рекомендаций по выбору и установке дистрибутивов Linux;
- затем расскажем о простом и действенном пункте защиты — обновлении системы безопасности;
- далее рассмотрим, как настроить ограничения для программ и пользователей;
- как обезопасить соединение с сервером через SSH;
- приведём примеры настройки firewall и ограничения нежелательного трафика;
- в заключительной части объясним, как отключить ненужные программы и сервисы, как дополнительно оградить серверы от злоумышленников.
1. Настроить среду предзагрузки до установки Linux
Позаботиться о безопасности системы нужно ещё перед установкой Linux. Вот набор рекомендаций для настройки компьютера, которые стоит учесть и выполнить до установки операционной системы:
- Загрузка в режиме UEFI (не legacy BIOS – о нем подраздел ниже)
- Установить пароль на настройку UEFI
- Активировать режим SecureBoot
- Установить пароль на уровне UEFI для загрузки системы
2. Выбрать подходящий дистрибутив Linux
Скорее всего, вы выберете популярные дистрибутивы — Fedora, Ubuntu, Arch, Debian, или другие близкие ответвления. В любом случае, вам нужно учитывать обязательное наличие этих функций:
- Поддержка принудительного (MAC) и ролевого контроля доступа (RBAC): SELinux/AppArmor/GrSecurity
- Публикация бюллетеней безопасности
- Регулярный выпуск обновлений безопасности
- Криптографическая верификация пакетов
- Поддержка UEFI и SecureBoot
- Поддержка полного нативного шифрования диска
Все дистрибутивы отличаются, но существуют моменты, на которые обязательно стоит обратить внимание и выполнить:
- Использовать полное шифрование диска (LUKS) с надёжной ключевой фразой
- Процесс подкачки страниц должен быть зашифрован
- Установить пароль для редактирования boot-загрузчика
- Надёжный пароль на root-доступ
- Использовать аккаунт без привилегий, относящийся к группе администраторов
- Установить для пользователя надёжный пароль, отличный от пароля на root
3. Настроить автоматические обновления безопасности
Один из основных способов обеспечить безопасность операционной системы — обновлять программное обеспечение. Обновления часто исправляют найденные баги и критические уязвимости.
В случае с серверными системами есть риск возникновения сбоев во время обновления, но, по нашему мнению, проблемы можно свести к минимуму, если автоматически устанавливать только обновление безопасности.
Автообновление работает исключительно для установленных из репозиториев, а не скомпилированных самостоятельно пакетов:
- В Debian/Ubuntu для обновлений используется пакет unattended upgrades
- В CentOS для автообновления используется yum-cron
- В Fedora для этих целей есть dnf-automatic
Linux можно настроить на отправку оповещений о новых обновлениях по электронной почте.
Также для поддержания безопасности в ядре Linux есть защитные расширения, например, SELinux. Такое расширение поможет сберечь систему от неправильно настроенных или опасных программ.
SELinux — это гибкая система принудительного контроля доступа, которая может работать одновременно с избирательной системой контроля доступа. Запущенные программы получают права на доступ к файлам, сокетам и прочим процессам, и SELinux устанавливает ограничения так, чтобы вредные приложения не смогли сломать систему.
4. Ограничить доступ к внешним системам
Следующий после обновления способ защиты — ограничить доступ к внешним сервисам. Для этого нужно отредактировать файлы /etc/hosts.allow и /etc/hosts.deny.
Вот пример того, как ограничить доступ к telnet и ftp:
В файле /etc/hosts.allow:
Пример сверху позволит выполнять telnet и ftp соединения любому хосту в IP-классах 123.12.41.* и 126.27.18.*, а также хосту с доменами mydomain.name и another.name.
Далее в файле /etc/hosts.deny':
Добавление пользователя с ограниченными правами
Мы не рекомендуем подключаться к серверу от имени пользователя root — он имеет права на выполнение любых команд, даже критических для системы. Поэтому лучше создать пользователя с ограниченными правами и работать через него. Администрирование можно выполнять через sudo (substitute user and do) — это временное повышение прав до уровня администратора.
Как создать нового пользователя:
В Debian и Ubuntu:
Создайте пользователя, заменив administrator на желаемое имя и укажите пароль в ответ на соответствующий запрос. Вводимые символы пароля не отображаются в командной строке:
Добавьте пользователя в группу sudo:
Теперь вы можете использовать префикс sudo при выполнении команд, требующих прав администратора, например:
В CentOS и Fedora:
Создайте пользователя, заменив administrator на желаемое имя, и создайте пароль для его аккаунта:
Добавьте пользователя в группу wheel для передачи ему прав sudo:
Используйте только сильные пароли — минимум из 8 букв разного регистра, цифр и других специальных знаков. Для поиска слабых паролей среди пользователей вашего сервера используйте утилиты как «John the ripper», измените настройки в файле pam_cracklib.so, чтобы пароли устанавливались принудительно.
Установите период устаревания паролей командой chage:
Отключить устаревание паролей можно командой:
Узнать, когда пароль пользователя устареет:
Также вы можете отредактировать поля в файле /etc/shadow:
Чтобы узнать количество неудачных попыток входа:
Разблокировать аккаунт после неудачного входа:
Для блокирования и разблокирования аккаунтов можно использовать команду passwd:
Убедиться, что у всех пользователей установлены пароли, можно командой:
Заблокировать пользователей без паролей:
Проследите, чтобы параметр UID был установлен на 0 только для root-аккаунта. Введите эту команду, чтобы посмотреть всех пользователей с равному 0 UID.
Вы должны увидеть только:
Если появятся и другие строки, то проверьте, устанавливали ли вы для них UID на 0, ненужные строки удалите.
5. Настроить права доступа для пользователей
После установки паролей стоит убедиться, что все пользователи имеют доступ, соответствующий их рангу и ответственности. В Linux можно устанавливать права доступа на файлы и директории. Так появляется возможность создавать и контролировать различные уровни доступа для разных пользователей.
Категории доступа
Linux основана на работе с несколькими пользователями, поэтому каждый файл принадлежит одному конкретному пользователю. Даже если сервер администрирует один человек, для различных программ создаются несколько аккаунтов.
Просмотреть пользователей в системе можно командой:
Файл /etc/passwd содержит строку для каждого пользователя операционной системы. Под сервисы и приложения могут создаваться отдельные пользователи, которые также будут присутствовать в этом файле.
Помимо отдельных аккаунтов существует категория доступа для групп. Каждый файл принадлежит одной группе. Один пользователь может принадлежать к нескольким группам.
Посмотреть группы, к которым принадлежит ваш аккаунт, можно командой:
Вывести список всех групп в системе, где первое поле означает название группы:
Существует категория доступа «прочие», если пользователь не имеет доступа к файлу и не принадлежит к группа.
Типы доступа
Для категорий пользователей есть возможность устанавливать типы доступа. Обычно это права на запуск, чтение и изменение файла. В Linux типы доступа помечаются с помощью двух видов нотаций: алфавитной и восьмеричной.
В алфавитной нотации разрешения отмечены буквами:
В восьмеричной нотации уровень доступа к файлам определяется числами от 0 до 7, где 0 означает отсутствие доступа, а 7 означает полный доступ на изменение, чтение и выполнение:
6. Использовать ключи для соединения по SSH
Для подключения к хосту по SSH обычно используется аутентификация по паролю. Мы рекомендуем более безопасный способ — вход по паре криптографических ключей. В таком случае закрытый ключ используется вместо пароля, что серьёзно усложнит подбор грубой силой (brute-force).
Для примера создадим пару ключей. Действия нужно выполнять на локальном компьютере, а не на удалённом сервере. В процессе создания ключей вы можете указать пароль для доступа к ним. Если оставите это поле пустым, то не сможете использовать созданные ключи до сохранения их в keychain-менеджер компьютера.
Если вы уже создавали RSA ключи ранее, то пропустите команду генерации. Для проверки cуществующих ключей запустите:
Для генерации новых ключей:
Загрузка публичного ключа на сервер
Замените administrator на имя владельца ключа, а 1.1.1.1 на ip-адрес вашего сервера. С локального компьютера введите:
Чтобы проверить соединение, отключитесь и заново подключитесь к серверу — вход должен происходить по созданным ключам.
Настройка SSH
Вы можете запретить подключаться через SSH от имени root-пользователя, а для получения прав администратора использовать sudo в начале команды. На сервере в файле /etc/ssh/sshd_config нужно найти параметр PermitRootLogin и установить его значение на no.
Вы также можете запретить SSH-подключение по вводу пароля, чтобы все пользователи использовали ключи. В файле /etc/ssh/sshd_config укажите для параметра PasswordAuthentification значение no. Если этой строки нет или она закомментирована, то соответственно добавьте или разкомментируйте её.
В Debian или Ubuntu можно ввести:
Подключение можно также дополнительно обезопасить с помощью двухфакторной аутентификации.
7. Установить сетевые экраны
Недавно была обнаружена новая уязвимость, позволяющая проводить DDoS-атаки на сервера под управлением Linux. Баг в ядре системы появился с версии 3.6 в конце 2012 года. Уязвимость даёт возможность хакерам внедрять вирусы в файлы загрузки, веб-страницы и раскрывать Tor-соединения, причём для взлома не нужно прилагать много усилий — сработает метод IP-спуфинга.
Блокировать доступ с помощью Firewall
Firewall — это один из самых важных инструментов блокирования нежелательного входящего трафика. Мы рекомендуем пропускать только действительно нужный трафик и полностью запретить весь остальной.
Для фильтрации пакетов в большинстве дистрибутивов Linux есть контроллер iptables. Обычно им пользуются опытные пользователи, а для упрощённой настройки можно использовать утилиты UFW в Debian/Ubuntu или FirewallD в Fedora.
8. Отключить ненужные сервисы
Специалисты из Университета Виргинии рекомендуют отключить все сервисы, которые вы не используете. Некоторые фоновые процессы установлены на автозагрузку и работают до отключения системы. Для настройки этих программ нужно проверить скрипты инициализации. Запуск сервисов может осуществляться через inetd или xinetd.
Если система использует xinetd, то её конфигурация будет в директории /etc/xinetd.d. Каждый файл директории определяет сервис, который можно отключить, указав пункт disable = yes, как в этом примере:
Также стоит проверить постоянные процессы, которые не управляются inetd или xinetd. Настроить скрипты запуска можно в директориях /etc/init.d или /etc/inittab. После проделанных изменений запустите команду под root-аккаунтом.
9. Защитить сервер физически
Невозможно полностью защититься от атак злоумышленника с физическим доступом к серверу. Поэтому необходимо обезопасить помещение, где расположена ваша система. Дата-центры серьёзно следят за безопасностью, ограничивают доступ к серверам, устанавливают камеры слежения и назначают постоянную охрану.
Для входа в дата-центр все посетители должны проходить определенные этапы аутентификации. Также настоятельно рекомендуется использовать датчики движения во всех помещениях центра.
10. Защитить сервер от неавторизованного доступа
Система неавторизованного доступа или IDS собирает данные о конфигурации системы и файлах и в дальнейшем сравнивает эти данные с новыми изменениями, чтобы определить, вредны ли они для системы.
Например, инструменты Tripwire и Aide собирают базу данных о системных файлах и защищают их с помощью набора ключей. Psad используется для отслеживания подозрительной активности с помощью отчётов firewall.
Bro создан для мониторинга сети, отслеживания подозрительных схем действия, сбора статистики, выполнения системных команд и генерация оповещений. RKHunter можно использовать для защиты от вирусов, чаще всего руткитов. Эта утилита проверяет вашу систему по базе известных уязвимостей и может определять небезопасные настройки в приложениях.
Заключение
Перечисленные выше инструменты и настройки помогут вам частично защитить систему, но безопасность зависит от вашего поведения и понимания ситуации. Без внимательности, осторожности и постоянного самообучения все защитные меры могут не сработать.
Читайте также: