Как отключить root-вход в Ubuntu?

28

Некоторое время назад я дал root пароль, чтобы я мог войти в систему как root и выполнить некоторые действия. Теперь я хочу отключить root-вход для усиления безопасности, так как я собираюсь выставить свою подачу в Интернет. Я видел несколько способов сделать это ( sudo passwd -l rootвозиться /etc/shadowи т. Д.), Но нигде это не говорит о том, какой самый лучший / самый разумный способ сделать это. Я сделал, sudo passwd -l rootно я видел совет, который говорит, что это может повлиять на сценарии инициализации, и что он не настолько безопасен, как кажется, так как он все еще запрашивает пароль, если вы пытаетесь войти, вместо того, чтобы отказываться от отказа в доступе. Так каков был бы способ достичь этого?

РЕДАКТИРОВАТЬ: чтобы уточнить, это для локального входа в систему как root; Я уже отключил удаленный вход через SSH. Хотя попытка войти в систему как root через SSH все равно запрашивает пароль root (который всегда терпит неудачу). Это плохо?

Бен Хаймерс
источник
1
Отключение локального доступа для root имеет практически нулевое преимущество для безопасности. Пользователь с физическим доступом может забить вашу коробку бесчисленными способами.
Джскотт
Дело принято. Не нужно входить в систему как root, если вы можете просто извлечь жесткие диски. Я все еще хотел бы знать, как вернуть учетную запись root к тому, что было до того, как я ее изменил, хотя бы из любопытства сейчас.
Бен Хаймерс
см. обновление к моему ответу ниже. Я думаю, что теперь я понимаю, что вы спрашиваете.
Jscott
@jscott при отключении root может не обеспечить преимущества безопасности от вторжения, но не может войти в систему, так как root обеспечивает защитный переключатель против сбоев sys с помощью неуместной rmкоманды или чего-то подобного. Что-то я выучил трудным путем. Да, вы просто НЕ МОЖЕТЕ войти в систему как root, но его отключение имеет смысл с точки зрения системного администратора.
codechimp
Кажется, отлично подходит для VPS или хостинга, ежу понятно.
jjxtra

Ответы:

34

Это спорный вопрос, мне, что отключение корня стоит потенциальных проблем. Я никогда не проверял сервер, настроенный таким образом. Я предпочитаю разрешить только локальный root-доступ. Если у злоумышленника есть физический доступ к вашему серверу, вы все равно можете забыть обо всем, что вы сделали, чтобы «обезопасить» вашу установку.

Отключите root- sshдоступ, отредактировав /etc/ssh/sshd_config:

PermitRootLogin no

Теребя /etc/shadow, chsh -s /bin/false rootвсе может быть отменено с помощью простого загрузочного CD / флэшки.

Обновление за ваш комментарий:

Из help.ubuntu.com : «По умолчанию пароль учетной записи root заблокирован в Ubuntu ». Пожалуйста, ознакомьтесь с разделом «Повторное отключение вашей учетной записи root». Чтобы сбросить состояние учетной записи root, для установки по умолчанию используйте следующую команду:

sudo usermod -p '!' root
jscott
источник
Ни одна система не защищена, когда злоумышленник имеет физический доступ к этой системе. Когда вы можете редактировать / etc / shadow, что мешает вам редактировать / etc / ssh / sshd_config?
Свен
@SvenW: Точно. Вот почему я обсуждаю полезность с точки зрения безопасности того, чтобы даже пытаться «отключить» root. Ограничить доступ root, да. Отключить аккаунт, нет.
Джскотт
4
sudo service ssh restart ....... после этого.
Naweed Chougle
Ссылочный файл справки теперь дает следующую команду: sudo passwd -dl root
MrG
21

Я полагаю, вы ссылаетесь на удаленный вход через SSH. Добавьте следующую строку в /etc/ssh/sshd_config:

PermitRootLogin no

и перезапустите службу SSH

sudo service ssh restart

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

kynan
источник
Извините, я должен был сказать, что это для локальных логинов. Я обновил вопрос.
Бен Хаймерс
4

На главный вопрос ответили несколько раз, а на вторичный - нет. SSH запрашивает пароль после ввода root после его отключения в качестве функции безопасности. Это также сработает, если вы попытаетесь войти в систему как lkjfiejlksji.

Это сделано для того, чтобы кто-то не смог протестировать кучу имен пользователей, чтобы попытаться выяснить, какие из них действительны в вашей системе. Однако с точки зрения безопасности, если вы отключили root через SSH, я бы также настроил программу обнаружения bruteforce (например, fail2ban) и настроил ее так, чтобы, если кто-то даже попытается войти в систему как root, он заблокирует их от пробовать любые дополнительные атаки.

Райан Гулер
источник
Хороший ответ, спасибо! У меня уже настроен fail2ban, я настрою его для блокировки с первой попытки входа в систему как root, хотя, хороший совет.
Бен Хаймерс
2

Замена зашифрованного пароля на * в / etc / shadow (второе поле после первого ':') - лучший способ, ИМХО. Кроме того, деактивируйте root-вход для ssh (таким образом, просто невозможно войти через ssh от имени root) и, возможно, ограничить ssh для входа в систему сертификатов, что намного более безопасно, чем вход на основе пароля.

В большинстве случаев SSH должен быть единственной службой, доступной извне, которая потенциально позволяет входить в систему root, поэтому эта дверь будет заблокирована.

Чтобы еще больше ограничить это, вы можете установить что-то вроде fail2ban, который блокирует IP-адреса в течение определенного периода времени после нескольких неудачных попыток входа в систему.

Свен
источник
У меня такое ощущение, что «*» - это то же самое, что и «!», Согласно принятому ответу, поэтому я тоже проголосую за этот ответ.
Бен Хаймерс,
1

JR et al,

Ваши AllowUsers привели меня к этому https://help.ubuntu.com/community/SSH/OpenSSH/Configuring

sudo vi / etc / ssh / sshd_config

PermitRootLogin да (изменено на нет)

(добавить строку внизу файла) DenyUsers user1 user2

сохранить и выйти, а затем

sudo service ssh restart

Решил мою проблему. Спасибо всем.

Джефф
источник
0

Если вы хотите отключить локальный root-доступ, попробуйте изменить / etc / passwd и заменить / bin / bash на / bin / false. ОДНАКО, так как я не проверял это, я бы сказал, оставьте корневой сеанс открытым на стороне, протестируйте его, и, если есть какие-то странные побочные эффекты, измените его обратно.

Жюльен Вехент
источник
0

Re: Безопасность.

ИМХО, есть только так много, что вы можете сделать, с точки зрения безопасности, если не отсоединять коробку, не отсоединять ее от сети и не сваривать ее в 3-дюймовом толстопробиваемом корпусе из твердосплавной стали.

Подумайте об этом так - если люди могут взломать Министерство обороны, ЦРУ, ФБР и Ситибанк - остальные из нас, простых смертных, не смогут добиться большего успеха.

Re: SSH безопасность.

Я не только запрещаю root-доступ через ssh, я также устанавливаю параметр «AllowUsers» для моего и только моего имени пользователя. Таким образом, никто, кроме моего собственного пользователя, не может войти через ssh. Это может быть избыточно, так как в моем случае я все равно создаю только ОДНОГО пользователя без полномочий root.

К сожалению, как уже много раз говорили другие, как только кто-то получит физический доступ к коробке, все ставки отключены!

Обмен сертификатов для входа по ssh? Хммм. , , , звучит хорошо. Как ты это делаешь?

Джим (младший)

Джим
источник