Как защитить информацию linux

Защита Linux-сервера. Что сделать в первую очередь


Habib M’henni / Wikimedia Commons, CC BY-SA

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

Содержание

Нерутовый юзер

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

Поэтому нужно завести другого юзера, а для рута отключить удалённое администрирование по SSH.

Новый пользователь заводится командой useradd :

Затем для него добавляется пароль командой passwd :

Наконец, этого пользователя нужно добавить в группу, которая имеет право выполнять команды с повышением привилегий sudo . В зависимости от дитрибутива Linux, это могут быть разные группы. Например, в CentOS и Red Hat юзера добавляют в группу wheel :

В Ubuntu он добавляется в группу sudo :

Ключи вместо паролей SSH

Брутфорс или утечка паролей — стандартный вектор атаки, так что аутентификацию по паролям в SSH (Secure Shell) лучше отключить, а вместо неё использовать аутентификацию по ключам.

Есть разные программы для реализации протокола SSH, такие как lsh и Dropbear, но самой популярной является OpenSSH. Установка клиента OpenSSH на Ubuntu:

Установка на сервере:

Запуск демона SSH (sshd) на сервере под Ubuntu:

Автоматический запуск демона при каждой загрузке:

Нужно заметить, что серверная часть OpenSSH включает в себя клиентскую. То есть через openssh-server можно подключаться к другим серверам. Более того, со своей клиентской машины вы можете запустить SSH-туннель с удалённого сервера на сторонний хост, и тогда сторонний хост будет считать удалённый сервер источником запросов. Очень удобная функция для маскировки своей системы. Подробнее см. статью «Практические советы, примеры и туннели SSH».

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

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

Публичный ключ хранится в файле .pub и выглядит как строка случайных символов, которые начинаются с ssh-rsa .

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQ3GIJzTX7J6zsCrywcjAM/7Kq3O9ZIvDw2OFOSXAFVqilSFNkHlefm1iMtPeqsIBp2t9cbGUf55xNDULz/bD/4BCV43yZ5lh0cUYuXALg9NI29ui7PEGReXjSpNwUD6ceN/78YOK41KAcecq+SS0bJ4b4amKZIJG3JWm49NWvoo0hdM71sblF956IXY3cRLcTjPlQ84mChKL1X7+D645c7O4Z1N3KtL7l5nVKSG81ejkeZsGFzJFNqvr5DuHdDL5FAudW23me3BDmrM9ifUmt1a00mWci/1qUlaVFft085yvVq7KZbF2OP2NQACUkwfwh+iSTP username@hostname

Затем из-под рута создать на сервере директорию SSH в домашнем каталоге пользователя и добавить публичный ключ SSH в файл authorized_keys , используя текстовый редактор вроде Vim:

Наконец, установить корректные разрешения для файла:

и изменить владение на этого юзера:

На стороне клиента нужно указать местоположение секретного ключа для аутентификации:

Теперь можно залогиниться на сервер под именем юзера по этому ключу:

После авторизации можно использовать команду scp для копирования файлов, утилиту sshfs для удалённого примонтирования файловой системы или директорий.

Читайте также:  Нетбук как поменять windows

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

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

На CentOS/Red Hat находим строку PermitRootLogin yes в конфигурационном файле /etc/ssh/sshd_config и изменяем её:

На Ubuntu добавляем строку PermitRootLogin no в конфигурационный файл 10-my-sshd-settings.conf :

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

На CentOS/Red Hat находим строку PasswordAuthentication yes в конфигурационном файле /etc/ssh/sshd_config и изменяем её следующим образом:

На Ubuntu добавляем строку PasswordAuthentication no в файл 10-my-sshd-settings.conf :

Инструкцию по подключению двухфакторной аутентификации по SSH см. здесь.

Файрвол

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

Перед установкой файрвола нужно убедиться, что SSH внесён в список исключений и не будет блокироваться. Иначе после запуска файрвола мы не сможем подключиться к серверу.

С дистрибутивом Ubuntu идёт Uncomplicated Firewall (ufw), а с CentOS/Red Hat — firewalld.

Разрешение SSH в файрволе на Ubuntu:

На CentOS/Red Hat используем команду firewall-cmd :

После этой процедуры можно запустить файрвол.

На CentOS/Red Hat запускаем сервис systemd для firewalld:

На Ubuntu используем такую команду:

Fail2Ban

Сервис Fail2Ban анализирует логи на сервере и подсчитывает количество попыток доступа с каждого IP-адреса. В настройках указаны правила, сколько попыток доступа разрешено за определённый интервал — после чего данный IP-адрес блокируется на заданный отрезок времени. Например, разрешаем 5 неудачных попыток аутентификации по SSH в промежуток 2 часа, после чего блокируем данный IP-адрес на 12 часов.

Установка Fail2Ban на CentOS и Red Hat:

Установка на Ubuntu и Debian:

В программе два конфигурационных файла: /etc/fail2ban/fail2ban.conf и /etc/fail2ban/jail.conf . Ограничения для бана указываются во втором файле.

Джейл для SSH включён по умолчанию с дефолтными настройками (5 попыток, интервал 10 минут, бан на 10 минут).

Кроме SSH, Fail2Ban может защищать и другие сервисы на веб-сервере nginx или Apache.

Автоматические обновления безопасности

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

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

На CentOS/Red Hat нужно установить приложение dnf-automatic и включить таймер:

Смена портов по умолчанию

SSH был разработан в 1995 году для замены telnet (порт 23) и ftp (порт 21), поэтому автор программы Тату Илтонен выбрал порт 22 по умолчанию, и его утвердили в IANA.

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

Смена стандартных портов — обфускация — в несколько раз сокращает объём мусорного трафика, размер логов и нагрузку на сервер, а также сокращает поверхность атаки. Хотя некоторые критикуют такой метод «защиты через неясность» (security through obscurity). Причина в том, что эта техника противопоставляется фундаментальной архитектурной защите. Поэтому, например, Национальный институт стандартов и технологий США в «Руководстве по безопасности сервера» указывает необходимость открытой серверной архитектуры: «Безопасность системы не должна полагаться на скрытность реализации её компонентов», — сказано в документе.

Читайте также:  Mac os изображения рабочего стола

Теоретически, смена портов по умолчанию противоречит практике открытой архитектуры. Но на практике объём вредоносного трафика действительно сокращается, так что это простая и эффективная мера.

Номер порта можно настроить, изменив директиву Port 22 в файле конфигурации /etc/ssh/sshd_config. Он также указывается параметром -p

в sshd. Клиент SSH и программы sftp тоже поддерживают параметр -p

можно использовать для указания номера порта при подключении с помощью команды ssh в Linux. В sftp и scp используется параметр -P

(заглавная P). Указание из командной строки переопределяет любое значение в файлах конфигурации.

Если серверов много, почти все эти действия по защите Linux-сервера можно автоматизировать в скрипте. Но если сервер только один, то лучше вручную контролировать процесс.

На правах рекламы

Закажи и сразу работай! Создание VDS любой конфигурации и с любой операционной системой в течение минуты. Максимальная конфигурация позволит оторваться на полную — 128 ядер CPU, 512 ГБ RAM, 4000 ГБ NVMe. Эпичненько 🙂

Источник

14 советов по защите информации на Linux

Linux в компьютерном сообществе всегда считался более безопасной ОС. Многие думают, что другие ОС более подвержены атакам со стороны хакеров чем Linux, но в нем тоже есть много уязвимостей. О том, как улучшить защиту своих данных в Linux (Ubuntu), написал KV.BY.

Пароли

Используйте пароль для защиты своей учетной записи. Он не должен быть слишком простым. Лучше, чтобы в нем одновременно были буквы, цифры и спецсимволы. Для смены текущего пароля нужно зайти в раздел Settings – Details – Users. Там щелкнуть по строчке Password.

Далее сменить его на более безопасный.

Межсетевой экран (файрвол)

Файрвол в системе защитит вас от хакерских атак посредством фильтрации сетевого трафика. Обязательная вещь в любой операционной системе.

В Linux (Ubuntu) есть встроенный файрвол, но только в консольном исполнении. Называется он UFW (Uncomplicated Firewall). Настраивать его не так уж просто без графического интерфейса. Но к нему есть удобное дополнение – GUFW. Его мы и установим:

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

Здесь можно блокировать входящий и исходящий трафик, смотреть логи активности и какие порты открыты в данный момент.

SELinux и AppArmor

Защиты никогда не бывает мало, поэтому на любой Linux системе рекомендовано использовать SELinux или AppArmor. Эти модули немного похожи. Каждый из них является инструментом для разграничения доступа приложений к системным ресурсам. По сути, это базовая защита от вредоносных действий хакерского ПО. По умолчанию AppArmor уже включен в Ubuntu. Проверить это можно командой:

Если этот модуль не установлен либо выключен, обязательно задействуйте его.

Безопасные мессенджеры

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

для установки Signal:

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

Читайте также:  Wifi для windows phone

Установленные приложения и временные файлы

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

Руткиты

Регулярно проверяйте системы на наличие руткитов – программ для скрытого сбора данных о пользователе (как правило, с правами root). Для этого нам понадобится утилита chkrootkit. Для начала ее установим:

После этого запустим:

В результатах не должно быть строчек с информацией об инфицированных объектах.

Обновления

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

Screen Lock

Для безопасности лучше всего включить Screen Lock – экран блокировки, который включается если вы не были за компьютером какое-то время. Для этого откройте раздел Settings – Privacy – Screen Lock. Установите время через которое компьютер будет блокироваться. Показ уведомлений рекомендовано отключить.

Учетная запись

Не используйте учетную запись Администратора для работы. Лучше использовать тип учетной записи Standard. Когда вы создаете свою учетную запись, обычно выбирается именно этот тип (Standard), но лучше проверить еще раз. Стоит отметить, что некоторые операции в системе могут потребовать использовать учетную запись Администратора.

Браузер и расширения

Установите браузер Firefox, который не продает данные о вас о третьим лицам. Его обязательно стоит дополнить расширениями, которые совершенствуют вашу безопасность:

Ghostery – блокирует разнообразные жучки.

Privacy Badger – блокирует невидимые трекеры.

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

DNSCrypt

Зашифруйте ваши DNS запросы, чтобы никто не мог перехватить информацию о том на какие сайты вы ходите. Кроме этого это защитит вас от перенаправлений на другие страницы со стороны вашего провайдера.

Для установки необходимо набрать в консоли:

После установки службы ее необходимо сконфигурировать согласно инструкции. Затем перезапустить службу:

И перезагрузить саму систему. После этого DNSCrypt готов к работе.

Удаляем файлы безопасно с помощью Nautilus Wipe

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

Для ее установки нужно написать в консоли:

После этого в контекстном меню появятся 2 новых пункта «Wipe» и «Wipe available disk space». Теперь лучше всего удалять файлы с помощью них.

SSH доступ

Если вы используете в работе удаленный доступ по протоколу SSH, то стоит его правильно настроить, чтобы немного запутать хакеров. Найдите файл настроек на вашей системе:

Затем в строке Port поменять значение 22 (по умолчанию) на любое другое, например, 1023. Таким образом мы сменим порт SSH и злоумышленник не будет знать, на какой порт подключаться.

После этого перезапустите сервис:

Сервисы и порты

В Linux есть полезная команда:

С ее помощью можно увидеть сервисы и порты, которые они прослушивают. Если что-то открыто лишнее и вы этим не пользуетесь – лучше закрыть порт с помощью файрвола или удалить приложение.

Все советы актуальны для Ubuntu 18.04. Будьте в безопасности!

Источник

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