У меня старая система Linux, к которой можно получить доступ через публичный IP-адрес.
При подключении к порту SSH вы можете войти в систему как root с любым паролем. Единственное ограничение - длина пароля должна быть не менее 1 символа.
В (далеком) прошлом, когда эта система разрабатывалась, это было нормально, поскольку система всегда находилась за модемом коммутируемого доступа, у которого была собственная аутентификация.
Уже несколько лет система подключается через ADSL и имеет общедоступный IP-адрес (без VPN) ... чудесным образом никто никогда не беспокоился о порте SSH ... до прошлой недели ...
На прошлой неделе китайский IP-адрес, подключенный через порт SSH, вошел в систему с учетной записью root, изменил некоторые системные настройки (включая пароль root) и вышел из системы ... Я мог видеть это в /var/log/messages
который я мог получить через другой порт.
Как я могу установить настоящий пароль для учетной записи root?
Я пытался установить его с помощью passwd
команда, дающая новый пароль, но после этого я все еще мог войти в систему с любым случайным паролем (до и после перезагрузки)
В /etc/shadow
в нем говорится следующее об учетной записи root:
root:8ZGWAPs9N9EJQ::::::
В /etc/ssh/sshd_config
Я вижу закомментированную следующую строку:
#PermitRootLogin yes
Поскольку "да" является значением по умолчанию, я не вижу в этом ничего плохого.
Немного информации о системе:
логин показывает:
BusyBox v1.00-pre9 (2004.07.09-11:06+0000) Built-in shell (ash)
cat /proc/version
дает:
Linux version 2.4.31 (<emailaddress>) (gcc version 3.3.2 20031022 (Red Hat Linux 3.3.2-1)) #4 Thu Sep 22 09:13:06 CEST 2005
Теперь я закрыл порт SSH в брандмауэре модема ADSL, поэтому к нему больше нельзя получить удаленный доступ, что дает мне время для решения этой проблемы.
Я хотел бы дать учетной записи root настоящий пароль, который должен использоваться с любым SSH-соединением, желательно без необходимости перезагружать систему.
Я считаю, что это возможно, поскольку на прошлой неделе система не была перезагружена, и все процессы все еще работали, но я больше не мог войти в учетную запись root с любым паролем.
[РЕДАКТИРОВАТЬ]
как подозревал pingz, это, похоже, вызвано nullok
в /etc/pam.d/system-auth
Можно ли отредактировать этот файл и загрузить новые настройки без остановки каких-либо запущенных процессов?
первые строки /etc/pam.d/system-auth
шоу :
#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
Если я сейчас удалю nullok
из этого файла, и где-то в будущем система будет перезагружена, будет nullok
вернусь, или моя сдача останется?
Есть способ отключить пароль пользователя, модуль nullok в PAM.
проверьте эту ссылку для получения дополнительной информации:
http://www.cyberciti.biz/tips/linux-or-unix-disable-null-passwords.html
Если это ваш случай, просто измените эту причудливую конфигурацию.
================================================== ==
Что касается ваших дополнительных вопросов, любые изменения в файлах конфигурации PAM вступят в силу мгновенно, это может привести к блокировке системы по ошибке. Итак, RHEL предоставляет инструменты authconfig / authconfig-tui, чтобы сделать это, как говорится в комментариях. Если вы запустите его, он сбросит конфигурацию для вас. Проверьте страницу руководства authconfig, прежде чем запускать ее.