Наличие десятков тысяч Raspberry Pi, подключенных к Интернету, в конечном итоге привлечет интерес некоторых людей, которые хотели бы делать неприятные вещи с маленькими компьютерами, особенно когда многие люди используют свои Pi для сетевых серверов. Linux - это надежная операционная система с точки зрения безопасности, но кроме просто изменения пароля, что нужно сделать, чтобы «укрепить» Raspberry Pi, если я собираюсь разместить на устройстве службы, обращенные к Интернету?
Эбен Аптон (Eben Upton) сказал, что просто для того, чтобы поддержать мои «десятки тысяч», «Raspberry Pi продал более 200 000 своих базовых компьютерных модулей и в настоящее время отправляет 4000 единиц в день» . Вероятно, можно предположить, что десятки тысяч из этих 200 000 были подключены к Интернету. Менее безопасно предположить, что десятки тысяч подключенных к Интернету Raspberry Pis имеют общедоступный веб-сервис, но потенциал для хакерского энтузиазма все еще существует.
Ответы:
Обеспечить безопасность компьютера - непростой процесс, на эту тему написаны целые книги. Размер Pi не уменьшает угрозу безопасности или поверхность атаки, представленную возможному злоумышленнику. В результате я опишу соответствующие шаги и предоставлю ссылки на более подробные инструкции и учебные пособия.
Поскольку вы не упомянули, какой дистрибутив вы используете, я приму рекомендуемый дистрибутив Raspbian.
Я видел, что рекомендуемый дистрибутив Raspbian включает в себя веб-сервер Apache и включает его при запуске (кто-то может это подтвердить). Вам действительно нужен работающий веб-сервер? Если не отключить его. Если вам нужно запустить Apache, убедитесь, что он защищен , а также для других сервисов (например, FTP, NGINX, MySQL и т. Д.), Поиск в Google должен найти несколько ресурсов.Некоторые дополнительные вещи, которые вы можете рассмотреть:
Вам также следует прочитать этот связанный вопрос. Как я могу защитить себя от вторжений и вредоносных программ, прежде чем подключать их к Интернету (особенно на общедоступных IP-адресах)? ,
Это только минимальные шаги для защиты вашего Пи. Для получения дополнительной информации вы можете прочитать Руководство по безопасности Debian .
источник
Посмотрев на RPi, он выглядит как довольно безопасное устройство из коробки, если вы делаете несколько вещей.
Пользователь / пароль по умолчанию изменен. Как минимум, смените пароль. Для большей безопасности снова измените имя пользователя. (Добавьте нового пользователя, затем отключите PI. Убедитесь, что ROOT также отключен при входе через SSH, хотя я все равно думаю, что это по умолчанию.)
Сканирование RPi возвращает только один открытый порт, 22, который является SSH-соединением, и даже его нужно включить, прежде чем он покажет (хотя большинство людей будут использовать его вместо монитора, клавиатуры и мыши, я ожидаю, особенно на {веб} сервер)
Вы можете изменить номер порта SSH, но это мало что даст, так как его можно сканировать достаточно легко. Вместо этого включите аутентификацию по SSH-ключу.
Теперь у вас нет возможности получить доступ к вашей машине без правильного ключа SSH, имени пользователя и пароля.
Далее настройте свой веб-сервер. Apache в значительной степени там, где он есть. Это будет сидеть и контролировать порт 80 по умолчанию, и автоматически отвечать на подключения из браузеров, обслуживающих ваши веб-страницы.
Если у вас есть брандмауэр или маршрутизатор, вы можете изменить порты RPi и сделать так, чтобы маршрутизатор направлял трафик с одного порта на другой. Например, трафик порта 80 в маршрутизатор перенаправляется на порт 75 на RPi, а SSH на 22 перенаправляется на порт 72. Это добавило бы еще один уровень защиты, но немного сложнее.
Держите все обновленным и исправленным, очевидно.
Это не защитит вас от атак, использующих Java, Flash, SQL-серверы и т. Д., Которые вы могли бы добавить позже, но на самом деле это все, что нужно.
Вы также можете добавить брандмауэр, который будет замедлять любого, кто входит в вашу систему, выходить на другой порт, если они устанавливают новую службу. Ваш маршрутизатор должен иметь дело с этим, но если он подключен напрямую, то настройте его, и, как долго это займет, вы все равно могли бы запустить его в любом случае - это не добавит много системных ресурсов.
Вы можете добавить еще одну вещь - fail2ban ( http://www.fail2ban.org/wiki/index.php/Main_Page ), которая добавляет правило брандмауэра для блокировки нескольких попыток входа в систему, предотвращая атаки по словарю. Хотя они не могут работать в вашей системе, если вы выполнили вышеперечисленное, если вам по какой-то причине нужно оставить пароль только для SSH-аутентификации (например, для удаленного входа в систему с разных компьютеров), это предотвратит атаку по словарю. с работы. После указанного вами количества попыток он на какое-то время заблокирует все попытки с этого IP-адреса. (Просто позаботьтесь о том, чтобы он не видел ни одного маршрутизатора / локального IP-адреса, и запретите это слишком рано или слишком долго!)
Отредактировано, чтобы добавить: Как только вы все настроили, используйте инструмент, такой как dd или Win32DiskImager, чтобы сделать полную побитовую резервную копию вашей SD-карты. Таким образом, если что-то пойдет не так, вы можете восстановить его на той же карте или записать на новую карту, и продолжить в любом случае. (Но если взломать, вы захотите выяснить, какая дыра была найдена, и закройте эту первую, возможно!)
источник
У linode есть отличное руководство по защите Linux-сервера: http://library.linode.com/securing-your-server . те же правила могут быть применены к Raspberry Pi
источник
Помимо усиления безопасности ОС, вы также можете рассмотреть возможность использования облачной службы мониторинга безопасности для отслеживания активности на / с / на вашем устройстве и получения предупреждений в случае обнаружения каких-либо нежелательных событий. В настоящее время доступно несколько облачных инструментов SIEM, и некоторые (например, siemless) используют модель freemium, поэтому домашним пользователям не нужно платить ни копейки. Чтобы использовать такой сервис, вам необходимо ознакомиться с такими вещами, как rsyslog / syslog, который является стандартной частью всех дистрибутивов ОС Linux.
источник