Во время аудита /var/log/auth.log
одного из моих общедоступных веб-серверов я обнаружил следующее:
Jan 10 03:38:11 Bucksnort sshd[3571]: pam_unix(sshd:auth): authentication failure;
logname= uid=0 euid=0 tty=ssh ruser= rhost=61.19.255.53 user=bin
Jan 10 03:38:13 Bucksnort sshd[3571]: Failed password for bin from 61.19.255.53
port 50647 ssh2
На первый взгляд, это похоже на типичный ssh
спам при входе в систему от случайных хакеров; однако, когда я посмотрел ближе, я заметил кое-что еще. Большинство неудачных /var/log/auth.log
записей говорят invalid user
в них, как этот:
Jan 9 10:45:23 Bucksnort sshd[3006]: Failed password for invalid user sales
from 123.212.43.5 port 10552 ssh2
Вызывает беспокойство то, что сообщение о неудачном входе в систему bin
является тем, что оно является действительным пользователем, в /etc/passwd
котором даже есть оболочка входа:
[mpenning@Bucksnort ~]$ grep ^bin /etc/passwd
bin:x:2:2:bin:/bin:/bin/sh
Я думал, что охватил все имена пользователей по умолчанию, которые могли входить удаленно, когда я отключился PermitRootLogin
в /etc/ssh/sshd_config
; обнаружение этой записи открыло новые возможности в моем параноидальном уме. Если каким-то образом службы запускались bin
, то удаленно возможно, что кто-то мог каким-то образом вставить ключ ssh в bin
каталог пользователя из запущенной службы на коробке, поэтому я хотел бы полностью отключить вход для bin
пользователя, если это возможно.
Вопросов
Этот сервер является удаленным и дорогим в исправлении (т.е. я заплачу за удаленные руки, чтобы подключить KVM, плюс аренду KVM). Я пытаюсь выяснить, что я могу сломать, если я изменю
/etc/passwd
запись,bin
чтобы она выглядела так:bin:x:2:2:bin:/bin:/bin/false
Я выполнил следующие команды, пытаясь выяснить, для чего
bin
это нужно ... Однако эти команды не дали файлов, и я не смог найти процессы, которыми владеетbin
. Что делаетbin
пользователь в любом случае?$ sudo find / -group bin
$ sudo find / -user bin
Есть ли какие-либо другие пользователи, которым нужно установить свои оболочки входа
/bin/false
? К вашему сведению, у меня уже есть/bin/false
наwww-data
.Я слишком параноик?
Я использую Debian, если это имеет значение.
Ответы:
Пользователь, у которого есть действующая оболочка и нет пароля, может по-прежнему входить в систему, не используя парольные методы, наиболее распространенным из которых является ключ ssh. Действительная оболочка необходима для запуска заданий cron. Для работы также необходима корректная оболочка
su bin -c 'wibble'
(по крайней мере, в Linux,su bin -s /bin/sh -c 'wibble'
также будет работать).В случае
bin
, большинство систем никогда не запускают команду, какbin
при нормальной работе, поэтому установка оболочки/bin/false
будет в порядке.Нет никакого риска любой прямой атаки, позволяющей
bin
войти через SSH, потому что это потребует создания/bin/.ssh/authorized_keys
от имени пользователяbin
или от имени пользователя root. Другими словами, единственный способ войти - это войти. Однако наличие действительной оболочки увеличивает риск неправильной конфигурации. Это может также разрешить некоторые удаленные атаки с сервисами, отличными от SSH; например, пользователь сообщает, что злоумышленник может установить пароль дляdaemon
удаленного доступа через Samba, а затем использовать этот пароль для входа через SSH.Вы можете закрыть дыру в SSH, перечислив имена системных пользователей в
DenyUsers
директиве/etc/ssh/sshd_config
(к сожалению, вы не можете использовать числовой диапазон). Или, наоборот, вы можете поместитьAllowGroups
директиву и разрешить только группы, которые содержат физических пользователей (например,users
если вы предоставляете всем своим физическим пользователям это членство в группе).В Debian есть ошибки, связанные с этой проблемой ( # 274229 , # 330882 , # 581899 ), в настоящее время открытые и классифицированные как «список желаний». Я склонен согласиться с тем, что это ошибки, и системные пользователи должны иметь в
/bin/false
качестве оболочки, если нет необходимости делать иначе.источник
Вам не нужно беспокоиться о них как о пользователях. Они являются «пользователями» в смысле групп безопасности, а не пользователями в смысле «входите и пользуйтесь» людьми. Если вы посмотрите в «/ etc / shadow», то увидите, что все эти «пользователи» не имеют паролей («x» или «!» Вместо длинного соленого хэша). Это означает, что эти пользователи не могут войти, несмотря ни на что.
Тем не менее, я не знаю, будет ли хорошей идеей изменить "/ bin / sh" на "/ bin / false" для всех этих пользователей. Поскольку программы выполняются в этих группах, это может не позволить им выполнять команды, которые им необходимы. Я бы оставил их как "/ bin / sh".
Вам не нужно беспокоиться об этих пользователях. Беспокойство касается только тех пользователей, которых вы создаете (и тех, у кого есть хэши в "/ etc / shadow")
источник
/etc/shadow
, но если служба запускается от имени пользователя, теоретически возможно, что кто-то вставитssh
ключ входа, не так ли?rpcd
порты не были бы проблемой; однако я лично был свидетелем результатов удаленного эксплойта на старой машине Solaris, где злоумышленник получил доступ черезrpc
эксплойт на коробке.rhosts
был включен и доступен для записи этимrpc
пользователем (не могу вспомнить больше подробностей ... это было много лет назад) ... Аналогично, если они могут сделать~/.ssh/authorized_keys
для пользователя, который может войти, то это все еще кажется риском (даже без пароль в/etc/shadow
)Я полагаю, что это не проблема, поскольку для установки открытого ключа SSH в
bin
домашнем каталоге (/bin
) злоумышленнику необходимо иметь root-доступ к файловой системе, что означает, что вы все равно испорчены.Если хотите, вы можете отключить все методы аутентификации для
bin
пользователя в конфигурации sshd, используяMatchUser
блок.Тем не менее, похоже, что пользователь bin не используется в современных системах, основанных на Debian, и это просто дань традиции или соблюдение некоторых стандартов.
источник