Защита моего сервера от его собственных пользователей

Q#1: Или, чтобы быть более общим, какие части программного обеспечения распространены среди всех дистрибутивов Linux, т.е. определяют дистрибутив Linux?

Если мы говорим о GNU/дистрибутиве Linux, я могу, конечно, предположить, что пространство пользователя является в значительной степени тем же среди дистрибутивов.

Я не могу думать о том что get's далеко, не используя GNU Coreutils, GNU Binutils, Bash GNU, Набор Компилятора GNU, и т.д.

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

Большинство дистрибутивов Linux также использует некоторую систему управления программным обеспечением, для упрощения установки программного обеспечения и конфигурации, например, (быть этим двоичным управлением пакетом как Debian или исходным управлением пакетом как хинду), и иногда, некоторый дистрибутив определенное программное обеспечение, как, например, административные средства (я могу думать debconf для Debian, или yast для OpenSuse, например). Если Вы хотели бы более категорический ответ, необходимо определенно смотреть на Linux С нуля

Q#2: часть Linux, который работает прежде chrooting в rootfs, характерный для всех дистрибутивов Linux (и вот почему начальная начальная загрузка работала на Arch и на Ubuntu)?

Да и нет. Большинство дистрибутивов использует немного измененную версию шагов ниже, но выбор технологии для различных частей может отличаться. Различные загрузчики (GRUB, Lilo, и т.д.), например.

выборка из названной статьи Wikipedia: Процесс Запуска Linux

  1. BIOS выполняет аппаратную платформу определенные задачи запуска
  2. После того как аппаратные средства распознаны и запущены правильно, BIOS загружает и выполняет загрузочный код раздела от обозначенного устройства загрузки, которое содержит фазу 1 загрузчика Linux. Фаза 1 загружает фазу 2 (объем кода загрузчика). Некоторые загрузчики могут использовать промежуточную фазу (известный как фаза 1.5) для достижения этого, так как современные большие диски не могут быть полностью читаемыми без дальнейшего кода.
  3. Загрузчик часто дарит пользователю меню возможных параметров загрузки. Это затем загружает операционную систему, которая распаковывает в память и настраивает системные функции, такие как существенные аппаратные средства и подкачка страниц памяти, прежде, чем назвать start_kernel ().
  4. start_kernel () затем выполняет большинство системной установки (прерывания, остальная часть управления памятью, инициализации устройства, драйверов, и т.д.) прежде, чем метать икру отдельно, неактивный процесс и планировщик и процесс Init (который выполняется в пространстве пользователя).
  5. Процесс Init выполняет сценарии по мере необходимости, которые настраивают все нерабочие системные службы и структуры, чтобы позволить пользовательской среде быть созданной и затем дарят пользователю экран входа в систему.

Более подробная информация

Большая часть кажущейся сложности (загрузчик фазы 1, называя фазу 2) имеет отношение к истории, в которой рос ПК, где вещи были соединены болтом на том, поскольку IBM и другие стандартизируют дизайн различных подсистем и как они сотрудничали.

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

4
28.01.2017, 05:05
2 ответа

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

0
27.01.2020, 21:05

Моя первая рекомендация - автоматическое обновление системы.

Если предположить, что это система Debian, вы можете найти эквивалентные команды.

apt-get update
apt-get upgrade

Поместите их в ежедневное задание cron , чтобы регулярно обновлять. Однако иногда делайте это вручную, так как иногда эти обновления требуют ручного ввода. Новые версии apt-get также поддерживают автоматический переключатель для обновлений, но мне все равно нравится время от времени запускать его сам. Дает мне душевное спокойствие.

Тогда я рекомендую вам найти EOL (конец жизни) дистрибутива Linux, который вы развернули.

Предполагая, что система Debian, вы можете найти их все на этой странице. https://wiki.debian.org/DebianReleases

Например, на момент написания этого сообщения:

Version Code name   Release date        End of life date
8.0     Jessie      April 25th 2015     ~June 6th 2018 (full) / ~June 6th 2020 (LTS)

Это дает вам крайний срок 6 июня 2018 г. , если вы установили Jessie , где вам следует вернуться и обновить исходные коды Apt, чтобы перейти к следующей версии.

Имейте в виду, что с LTS ( долгосрочная поддержка ) ваш дистрибутив по-прежнему будет получать обновления безопасности в течение некоторого периода после окончания срока службы, однако это не навсегда.

Не позволяйте вашему серверу участвовать в следующем https://shodan.io общемировом отчете об уязвимостях.

Некоторые другие шаги, которые могут иметь отношение к вашим потребностям:

  • Настройте других пользователей как обычных пользователей с ID> 1000
  • Настройте задание cron, чтобы сообщать вам обо всех файлах, доступных для записи во всем мире, по электронной почте
  • Отключить root-пароль входит в систему из SSH, чтобы избежать грубого взлома изнутри
0
27.01.2020, 21:05

Теги

Похожие вопросы