Защита линукс от вторжения

Настройка безопасности Linux

Не так важно, поставили вы себе Linux, чтобы стать со временем хакером-грозой Пентагона или, напротив, чтобы надежнее защитить свой компьютер от несанкционированного вторжения, вам предстоит изучить несколько несложных настроек и познакомиться с программами, которые помогают шифровать данные и сохранять конфиденциальность при работе в сети. Безопасность операционной системы Linux не вызывает сомнений, однако и при работе с ней вам придется приложить некоторые усилия, чтобы уберечься от злоумышленников. В этой статье мы коснемся некоторых аспектов сетевой безопасности: использования vpn, Tor Browser в Linux, смены DNS-адресов, и расскажем про настройку в Linux firewall.

Зачем устанавливать vpn на Linux

Для пользователей Linux, желающих скрыть IP-адрес, у нас есть отдельная статья, где мы пошагово рассказываем, как установить впн на Linux. Скажем сразу – мы считаем установку vpn обязательным условием безопасности вашего компьютера. Каждый день вы посещаете десятки сайтов, оставляя на них ваши данные, которые становятся доступными администраторам. Имея на руках ваш IP, вам могут как запретить доступ к ресурсам, так и использовать его для проникновения уже на ваш компьютер, если вы чем-то заинтересуете злоумышленников. Большую опасность несет в себе и работа с устройства Linux в незащищенных wi-fi сетях. Никогда не решайте важные финансовые и рабочие вопросы, подключившись к публичному wi-fi без защиты впн-программы!

Интернет-провайдеру тоже ни к чему знать, где вы бываете и что там делаете. Vpn для Linux поможет зашифровать данные и скроет от глаз провайдера посещаемые вами сайты. Таким образом, соединяясь через впн-серверы, вы сможете без проблем заходить даже заблокированные вашим провайдером (к примеру, по запросу Роскомнадзора) интернет-ресурсы. То же и с блокировкой по географическому положению – youtube, Netflix, другие подобные ресурсы очень любят прятать самые интересный контент от неугодных им стран. Но с впн на Linux эти запреты не для вас.

Про установку vpn на Linux читайте здесь, а мы лишь напомним, как включить openvpn на Linux, если он уже установлен, и как отключить, если вы готовы вернуться к своему реальному IP.

Подключаемся к выбранному конфигу openvpn, указав в –config путь до файла конфигурации необходимого сервера:

sudo openvpn —config ./Whoer_Netherlands_nl.ovp n

Чтобы проверить, что IP-адрес сменился, введите:

Вы также можете зайти на сайт whoer.net и проверить ваш IP-адрес и другие параметры безопасности в сети.

Чтобы отключить vpn в Linux:

sudo service openvpn stop

Обратите внимание на то, что vpn-подключение может идти по TCP или UDP-протоколу. О разнице между ними и том, какой выбрать в каком случае, вы можете подробно прочесть здесь, скажем лишь, что UDP немного более быстрый, хоть и не такой надежный. А как отредактировать ваши openvpn-конфиги для Linux и сменить протокол, мы показываем в видео-ролике на ютьюб Меняем TCP на UDP в OpenVPN. Также вы можете при редактировании конфигов отключить некоторые из IP-адресов страны, оставив только необходимые вам. Как это сделать, упоминается в видео Как использовать Whoer VPN в клиенте OpenVPN.

Возможно, вам удобнее будет подключать vpn на Linux через графическое приложение GNOME. Как установить его смотрите в видео Как установить графическое приложение VPN на Linux.

Как сменить DNS в Linux

После того, как вы сменили в Linux IP-адрес, вам нужно произвести замену DNS. О том, что такое DNS, и зачем его менять, можно прочесть в нашей статье или посмотреть видео на нашем youtube-канале Зачем менять DNS. Если кратко – DNS-сервер, к которому подключается ваш компьютер, раскрывает ваше географическое положение, что может привести к блокировкам по геоданным, либо из-за несоответствия IP-данных и DNS-адресов.

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

В Настройках сети переходите во вкладку “IPv4”. Далее выбирайте автоматический метод и в поле DNS прописывайте адрес сервера. Адреса быстрых DNS-серверов вы можете найти в нашем блоге в статье Рекомендуемые публичные DNS сервера. Несколько адресов прописываются через запятую.

Если этот способ не сработал, попробуйте сменить DNS через терминал Linux. Как это сделать, мы пошагово рассказываем в видеоролике на нашем канале Как настроить DNS в Linux.

Как пустить vpn через TOR в Linux

TOR Browser совершенно необходим, если вы решили прогуляться по загадочному миру .onion сайтов, но и в качестве безопасного браузера, дающего дополнительный уровень анонимности, TOR для Linux неизменно популярен среди пользователей. Особенно, если настроить одновременное использование TOR с vpn на Linux. Настройка подобной цепочки позволяет на порядок повысить анонимность и конфиденциальность, поскольку скрывает от посещаемых сайтов сам факт использования TOR Browser.

Читайте также:  Команда удаления всех файлов linux

Для браузера TOR Linux – это идеальная операционная система, ведь разработчики браузера рассчитывают прежде всего на продвинутых пользователей, заинтересованных в анонимности и конфиденциальности. Скачать Tor для Linux можно с официального сайта 32-bit (sig) / 64-bit (sig), а как настроить цепочку подключения TOR+VPN мы пошагово показываем в нашем видео Как пустить VPN через TOR на Linux. Здесь вы можете скачать скрипт для подключения впн через TOR. Зарегистрировать для получения бесплатных конфигов Openvpn для Linux можно на этой странице.

Настройка firewall в Linux Ubuntu

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

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

Если вдруг файрвола Iptables не обнаружилось в вашем дистрибутиве, или вы хотите обновить утилиту, введите следующую команду:

sudo apt-get install iptables

Iptables – первая линия системы безопасности Linux и любимец сетевых администраторов. Настраивается данный Linux файрвол через командную строку при помощи установленных команд. Проблема в том, что начинающему юзеру процесс контроля за поступлением и отправлением трафика бесчисленными командами iptables может показаться слишком сложным. К счастью, существует интерфейс, специально разработанный для упрощения процесса настройки утилиты Iptables: UFW (Uncomplicated Firewall или по-русски «простой брандмауэр»). Кстати, в Linux Ubuntu UFW встроен также по умолчанию. А если вы его удалили, то можете заново загрузить, введя в консоли:

sudo apt install ufw

Мы пошагово показываем настройку Uncomplicated Firewall Linux в нашем видео Как настроить фаервол в Ubuntu.

Заключение

Это лишь некоторые аспекты безопасного использования устройств с операционной системой Linux, но на первое время вам будет их достаточно, чтобы спокойно пользоваться компьютером и выходить в сеть. Не забывайте также своевременно обновлять программное обеспечение и устанавливайте только сильные пароли – из не менее 8 букв разного регистра, цифр и специальных знаков. Ну и, так как человеческий фактор – обычно самое слабое звено в цепи безопасности, посмотрите наше видео про то, Как хакеры используют Социальную Инженерию.

Читайте наши статьи, подписывайтесь на социальные сети и youtube-канал, и помните, что мы всегда стоит на страже вашей безопасности и конфиденциальности в сети!

Источник

Как обезопасить Linux-систему: 10 советов

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

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

/ фото Dave AllenCC

  • начнём с предварительной настройки и рекомендаций по выбору и установке дистрибутивов 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
Читайте также:  Смена загрузчика windows 10

3. Настроить автоматические обновления безопасности

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

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

Автообновление работает исключительно для установленных из репозиториев, а не скомпилированных самостоятельно пакетов:

  • В Debian/Ubuntu для обновлений используется пакет unattended upgrades
  • В CentOS для автообновления используется yum-cron
  • В Fedora для этих целей есть dnf-automatic

Для обновления используйте любой из доступных RPM-менеджеров пакетов командами:

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:

  • Minimum_days: Минимальное количество дней до истечения действия пароля.
  • Maximum_days: Максимальное количество дней до истечения пароля.
  • Warn: Количество дней перед истечением, когда пользователь будет предупреждён о приближающемся дне смены.
  • Expire: Точная дата истечения действия логина.

Также стоит ограничить переиспользование старых паролей в модуле pam_unix.so и установить предельное количество неудачных попыток входа пользователя.

Чтобы узнать количество неудачных попыток входа:

Разблокировать аккаунт после неудачного входа:

Для блокирования и разблокирования аккаунтов можно использовать команду passwd:

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

Заблокировать пользователей без паролей:

Проследите, чтобы параметр UID был установлен на 0 только для root-аккаунта. Введите эту команду, чтобы посмотреть всех пользователей с равному 0 UID.

Вы должны увидеть только:

Если появятся и другие строки, то проверьте, устанавливали ли вы для них UID на 0, ненужные строки удалите.

5. Настроить права доступа для пользователей

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

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

Просмотреть пользователей в системе можно командой:

Файл /etc/passwd содержит строку для каждого пользователя операционной системы. Под сервисы и приложения могут создаваться отдельные пользователи, которые также будут присутствовать в этом файле.

Помимо отдельных аккаунтов существует категория доступа для групп. Каждый файл принадлежит одной группе. Один пользователь может принадлежать к нескольким группам.

Посмотреть группы, к которым принадлежит ваш аккаунт, можно командой:

Вывести список всех групп в системе, где первое поле означает название группы:

Существует категория доступа «прочие», если пользователь не имеет доступа к файлу и не принадлежит к группа.

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

Читайте также:  Windows не удается найти сетевой адаптер

В алфавитной нотации разрешения отмечены буквами:

В восьмеричной нотации уровень доступа к файлам определяется числами от 0 до 7, где 0 означает отсутствие доступа, а 7 означает полный доступ на изменение, чтение и выполнение:

6. Использовать ключи для соединения по SSH

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

Для примера создадим пару ключей. Действия нужно выполнять на локальном компьютере, а не на удалённом сервере. В процессе создания ключей вы можете указать пароль для доступа к ним. Если оставите это поле пустым, то не сможете использовать созданные ключи до сохранения их в keychain-менеджер компьютера.

Если вы уже создавали RSA ключи ранее, то пропустите команду генерации. Для проверки cуществующих ключей запустите:

Для генерации новых ключей:

Загрузка публичного ключа на сервер

Замените administrator на имя владельца ключа, а 1.1.1.1 на ip-адрес вашего сервера. С локального компьютера введите:

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

Вы можете запретить подключаться через 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-спуфинга.

Максимум вреда для зашифрованных соединений 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, как в этом примере:

Также стоит проверить постоянные процессы, которые не управляются inetd или xinetd. Настроить скрипты запуска можно в директориях /etc/init.d или /etc/inittab. После проделанных изменений запустите команду под root-аккаунтом.

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

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

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

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

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

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

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

Заключение

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

Источник

Оцените статью