С большим количеством Raspberry Pis в дикой природе и тем фактом, что большие группы из них настроены одинаково (когда на недавно установленную SD-карту устанавливается одно из немногих доступных изображений), они, вероятно, станут заманчивой целью для вредоносные программы, в том числе бот-сети.
Что можно сделать, чтобы смягчить это?
Достаточно хорошо известно, что нужно изменить пароль для пользователя «pi» (Debian) и «root» (Arch.). Но как насчет других системных учетных записей (например, «tli», «pnd»?). универсальные пароли, которые предположительно одинаковы для всех устройств?
И есть ли известные уязвимости в других пакетах, которые установлены в образах SD, доступных для Pi (например, из-за аппаратных ограничений или урезанных версий этих пакетов?)
В частности, меня беспокоит ssh
mysql и любые другие сервисы, которые могут работать на только что установленном образе.
источник
su
к ним.vipw
; это плохая идея? Нет, это не так. +1 для намека на использованиеvipw
.Существует много способов устранения уязвимостей, однако первое, что вам следует знать, это то, что Linux не так подвержен вторжению, как другие операционные системы. В основном это связано с отсутствием вредоносного ПО, предназначенного для * NIX. Тем не менее, вы хотите знать о способах доступа к вашей системе.
Пароли
Во-первых, вы должны изменить пароли по умолчанию для всех пользователей, которые могут войти. Для Debian это просто пользователь по умолчанию Pi . Для Arch Linux это суперпользовательский рут . Пароли изменяются при входе в систему как пользователь, введя
passwd
в командной строке.Политика безопасных паролей приветствуется, поскольку было бы довольно просто выполнить атаки методом перебора словаря на пользователя по умолчанию. Выберите приличный пароль средней длины.
неясность
Удаленный доступ, вероятно, самая важная дыра в безопасности. То, что мы можем использовать здесь, называется безопасностью по неизвестности . Распространенным методом атаки является сканирование диапазона IP-адресов на наличие открытых портов. Поэтому одна из самых простых мер противодействия, которую мы можем предпринять, - это быть пользователем, который не использует порты по умолчанию .
Все, что нужно сделать здесь, это изменить порты по умолчанию для часто используемых протоколов. Например, порт SSH по умолчанию - 22, а FTP - 21. В моей системе SSH использует 222 и FTP 221, что должно скрывать эти протоколы от любой автоматической атаки.
Безопасность соединения
Во-первых, наиболее важной проблемой безопасности является то, что корневая учетная запись не должна иметь возможность войти в систему через SSH. Вы можете отключить root-логин в
/etc/ssh/sshd_config
файле, комментируя или удаляя эту строку:По умолчанию он должен быть установлен в no, но лучше убедиться в этом.
Если вы часто используете SSH и беспокоитесь о человеке в середине атак, словарных атаках на ваш пароль, то вы можете использовать
SSH Keys
.Аутентификация на основе ключей имеет несколько преимуществ по сравнению с аутентификацией по паролю, например, значения ключей значительно сложнее, чем простые пароли.
Для настройки аутентификации по ключу SSH сначала необходимо создать пару ключей. Это проще всего сделать на вашем клиентском компьютере (на котором вы хотите получить доступ к Pi).
Как вы можете видеть, это создало два файла: закрытый ключ
id_rsa
и открытый ключid_rsa.pub
.Секретный ключ известен только вам и должен быть надежно защищен . Напротив, открытый ключ может свободно использоваться любым сервером SSH, к которому вы хотите подключиться.
Поэтому мы хотели бы скопировать открытый ключ на Raspberry Pi. Мы можем сделать это очень легко:
Где
pi
находится имя пользователя Raspberry Pi иaddress
IP-адрес Pi.Я повторюсь, мы распространяем открытый ключ. Закрытый ключ твой. Держите его крепко, чтобы отпустить этот ключ, нарушающий безопасность системы.
Вики Arch имеет превосходное описание того , как это работает:
Для получения более подробной информации о безопасности аутентификации с открытым ключом, Википедия имеет полное объяснение .
Благодаря безопасности SSH вы можете выполнять огромное количество зашифрованных и защищенных передач данных. Практически любое другое соединение порта может быть направлено через SSH, если это необходимо. Вы даже можете переслать сеанс X через SSH, чтобы он отображался на другом компьютере.
Как интересный пример, вчера я запускал Eclipse на своем рабочем столе, просматривал его на своем Raspberry Pi и управлял мышью и клавиатурой с моего нетбука. Такова сила SSH.
права доступа
Права доступа к файлам являются сутью системы безопасности Linux. Они влияют на то, кто может видеть ваши файлы и папки, и могут быть очень важны для защиты ваших данных. Например, войдите в Raspberry Pi как обычный пользователь и запустите:
shadow
Файл содержит зашифрованные пароли для пользователей системы, поэтому мы не хотели бы только о тех , чтобы взглянуть на него! Итак, вы должны увидеть этот ответ:Мы можем понять, почему это происходит, взглянув на права доступа к файлу:
Это говорит нам о том, что файл принадлежит пользователю root, и только владелец имеет права на чтение / запись. Давайте разберем этот вывод.
Это состояние разрешений. Первый бит сообщает нам тип файла (
-
означает обычный файл). Следующие три бита представляют действия, доступные владельцу файла. Вторые три бита представляют группу , а последние три - для других или для всех остальных. Таким образом, каталог с полными разрешениями будет выглядеть так:Это права на чтение, запись и выполнение для владельца, группы и всех остальных.
Следующая важная часть - это два имени. В нашем случае
root root
. Первый пользователь является владельцем файла. Вторая группа пользователей . Например, было бы обычно видеть:Это позволило бы получить доступ на чтение / запись для пользователя
pi
в его домашнем каталоге и доступ на чтение для всех остальных пользователей.Разрешения чаще всего упоминаются и контролируются с использованием восьмеричных значений. Например, если мы хотим установить rw только для владельца, мы набрали бы:
Это базовый обзор, для более подробной информации о разрешениях для файлов Linux, вот хорошая статья.
Это понимание важно при защите файлов и папок. Например, скажем, мы только что настроили ключи SSH. Мы определенно не хотим, чтобы другие пользователи видели внутри нашего
~/.ssh
каталога, иначе они могли бы взять наш закрытый ключ. Таким образом мы удаляем их права на чтение:Я надеюсь, что это прояснит некоторые ваши проблемы с безопасностью Linux. Из этого вы должны увидеть, что это довольно безопасная система, и если вы будете осторожны, у вас не должно быть проблем с безопасностью.
источник
Чтобы предотвратить атаки грубой силы, вы можете установить и настроить
fail2ban
. Он проанализирует файлы журнала (например,/var/log/auth.log
) и попытается определить, не удалось ли несколько попыток входа в систему. Затем он автоматически заблокирует исходные IP-адреса с помощьюiptables
.В интернете куча хулиганов.
источник