Действительно ли возможно “скрыть” учетную запись от/etc/passwd?

Сканирования SSH являются обычно атаками перебором. Они просто пробуют общие имена пользователей легкими, общими паролями. Я видел, что система получает поставленное под угрозу использование guest учетная запись, с паролем 'гость'. Вздох.

Большинство машин опрыскивается такими пакетами все время. Как общее решение, мне нравится делать две вещи на брандмауэре:

  • Использовать geoip и ipset предоставить доступ для портирования 22/tcp из определенных стран только. Существует необычно высокий процент этих нападений, происходящих в .cn netblocks, например.

  • Используйте ограничение уровня на 22/tcp SYN пакеты так, чтобы тот же IP-адрес мог только соединить времена N за минуту до быть заблокированным в течение 10 или 15 минут. Это удерживает программное обеспечение сканирования и также замедляет потенциальный ущерб к сетям других людей. Это - сервис сообщества.

Существуют другие пути также в зависимости от Ваших потребностей и ограничений.

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

2
17.12.2013, 16:30
4 ответа

Пользователи демона и потребители плоти-и-крови перечислены в тех же файлах. “Файл как /etc/passwd для демонов” /etc/passwd.

Нет никакого формального определения человека по сравнению с пользователями системы. Ядро не заботится (кроме предоставления большого количества полномочий пользователю с UID 0). Большинство команд администрирования не заботится также. Некоторые типичные различия:

  • У пользователя - человека есть настоящее имя как “John Doe”, тогда как у пользователя системы есть описательное имя как “Носовой демон” или ни один вообще.
  • У пользователя - человека есть реальная оболочка входа в систему (например. /bin/sh или /bin/bash или /bin/csh. У некоторых пользователей системы есть оболочка (почти всегда /bin/sh), другие не делают, в зависимости от того, как они предназначены, чтобы использоваться (например. su foo требует foo иметь оболочку).
  • У пользователя - человека часто есть пароль — но это не всегда имеет место, например, у удаленно-единственного пользователя мог бы только быть ключ SSH. Обратите внимание, что на современных нельдах, пароль не находится в /etc/passwd но в некотором другом файле такой как /etc/shadow.
  • Корневой каталог пользователя - человека обычно находится под /home (или некоторое сайт-специфичное местоположение), тогда как корневой каталог пользователя системы обычно находится не под /home и не мог бы существовать (но существуют исключения).
  • Большинство сайтов определяет диапазон идентификаторов пользователей для пользователей системы и непересекающийся диапазон для пользователей - людей. Резервирование 100–65533 или 500–65533 или 1000–65533 типично, и большинство дистрибутивов настраивается, чтобы начать выделять идентификаторы реального пользователя от 500 или 1000.

На сайтах, где учетные записи совместно используются через несколько машин, обычно существует центральный сервер, который содержит списки пользователей, доступные через NIS или LDAP. passwd запись в /etc/nsswitch.conf указывает, где найти информацию о пользователе. Распространено иметь пользователей системы в локальном /etc/passwd и реальные пользователи от базы данных всей сети, но иногда существуют пользователи системы в базе данных всей сети (для осуществления последовательного UIDs, который упрощает сервер и репликацию данных), и иногда существуют пользователи - люди в локальном файле (чтобы позволить им войти в систему, даже когда сеть полита из шланга).

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

9
27.01.2020, 21:49
  • 1
    , Если я получил Вас правильный, что возможно иметь пользователей, которые не перечислены в /etc/passwd если /etc/nsswitch.conf файл настроен для получения passwd информация в большем количестве мест это files? В моем файле я имею это допустимые опции nisplus или Нис +, Нис или yp, DNS, файлы, дб, разделяю, hesiod и специальный [NOTFOUND=return] –  RSFalcon7 07.05.2013, 00:40
  • 2
    @RSFalcon7 Да, у Вас могут быть пользователи, не перечисленные в /etc/passwd если существуют другие базы данных (что-то другое, чем compat или files упомянутый для passwd в /etc/nsswitch.conf). –  Gilles 'SO- stop being evil' 07.05.2013, 00:46

Нет никакой причины иметь отдельный пользовательский файл определения. Пользователи системы и реальные пользователи технически не разделяются, но организационно: диапазоном, от которого взяты их UIDs. взгляните на файл /etc/login.defs. Мой openSUSE имеет эти записи:

SYSTEM_UID_MIN            100
SYSTEM_UID_MAX            499
UID_MIN                  1000
UID_MAX                 60000

Инструменты дистрибутива используют эти значения, чтобы сказать этим двум группам независимо. Но если бы Вы создали учетную запись пользователя с UID 300 затем, то его, вероятно, не показали бы в меню входа в систему, но Вы могли использовать ту учетную запись как любой другой.

2
27.01.2020, 21:49
  • 1
    , который я знаю, нет никакой причины разделить их, но действительно ли это возможно? –  RSFalcon7 06.05.2013, 02:52
  • 2
    Единственный другой источник пользовательской информации был бы своего рода сетевой услугой аутентификации, но никто не собирается поместить сервисную учетную запись там. –  Bratchley 06.05.2013, 02:56
  • 3
    @RSFalcon7 Взглянул на /etc/nsswitch.conf. Необходимо было бы записать новый механизм (т.е. расширить функции glibc для пользователя, обрабатывающего). Это может быть довольно легко, поскольку, возможно, необходимо было бы просто скопировать files механизм и замена пути. Но почему кто-либо должен сделать это? –  Hauke Laging 06.05.2013, 03:00

Если Вы действительно хотите разделить пользователя и системные учетные записи (читающий некоторые комментарии к другим сообщениям, похоже, что Вам любопытно на предмет этого), Вы могли оставить всех пользователей системы внутри files (т.е./etc/passwd) база данных и помещенные люди пользователи во второй базе данных (своего рода как то, если Вы делали ldap).

Для этого можно использовать DB Беркли модуль NSS (доступный во многих системах через дополнительный glibc названный пакет nss_db). Я не уверен, что ОС Вы используете, но этот сайт предлагает некоторое понимание для Linux: http://www.linuxfromscratch.org/hints/downloads/files/nss_db.txt

Это не для слабонервных, поскольку документация не точно многочисленна, но это могла бы быть забава играть вокруг с тем, если Вы надеетесь узнавать больше, как этот вид работ материала (@Hauke предложение Laging о реализации Вашего собственного является большим также).

1
27.01.2020, 21:49

Большинство демонов, выполненных как корень, некоторые (из соображений безопасности, для ограничения их способности к вреду) выполненный как их собственные пользователи. Они перечислены в /etc/passwd файл. Большинство дистрибутивов ограничивает UID "пользователя системы" некоторым значением, как 500 или 1000, так, чтобы дал ключ к разгадке. Некоторые deamons имеют GECOS (пользовательское описание) записи, говоря, что "демон", у других есть странные оболочки. Но существуют также фантомные пользователи для NFS и другого использования.

0
27.01.2020, 21:49

Теги

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