Як відключити кореневий вхід в Ubuntu?


28

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

EDIT: щоб уточнити, це для локального входу як кореня; Я вже відключив віддалений вхід через SSH. Хоча спроба увійти як root через SSH, все ще вимагає ввести пароль root (який завжди не вдається). Це погано?


1
Відключення локального доступу до root має майже нульову перевагу безпеки. Користувач з фізичним доступом може перекласти вашу скриньку незліченними способами.
jscott

Точка взята. Не потрібно входити як root, якщо ви можете просто вийняти жорсткі диски. Я все ще хотів би знати, як повернути кореневий рахунок до того, як це було до того, як я його змінив, хоч би з цікавості зараз.
Бен Хімерс

дивіться оновлення моєї відповіді нижче. Я думаю, що зараз я розумію, про що ви питаєте.
jscott

@jscott під час відключення root може не надавати переваги безпеці від вторгнення, але не входити в систему, оскільки root забезпечує перемикач безпеки проти аварійних систем з неправильною rmкомандою чи іншим. Щось я навчився важким шляхом. Так, людина просто НЕ може увійти як root, але відключити це має сенс з точки зору sys admin.
codechimp

Здається, відмінно підходить для VPS або хостингу, насправді не мастер.
jjxtra

Відповіді:


34

Для мене сумнівно, що відключення кореня варте потенційних проблем. Я ніколи не перевіряв сервер, налаштований таким чином. Моя перевага - дозволити лише локальний кореневий доступ. Якщо зловмисник має фізичний доступ до вашого сервера, ви можете забути все, що ви зробили, щоб "убезпечити" встановлення.

Вимкнути кореневий sshдоступ, редагуючи, /etc/ssh/sshd_configщоб містити:

PermitRootLogin no

Якщо не встигати /etc/shadow, chsh -s /bin/false rootвсе можна скасувати простим завантажувальним CD / thumbdrive.

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

З help.ubuntu.com : "За замовчуванням пароль кореневого облікового запису заблокований в Ubuntu ". Будь ласка, перегляньте розділ "Повторне відключення вашого кореневого облікового запису" спеціально. Для того, щоб скинути стан облікового запису root, встановити за замовчуванням, використовуйте таку команду:

sudo usermod -p '!' root

Жодна система не захищена, коли зловмисник має фізичний доступ до цієї системи. Коли ви можете редагувати / etc / shadow, що заважає вам редагувати / etc / ssh / sshd_config?
Sven

@SvenW: Саме так. Ось чому я дискутую про корисність, безпеку, навіть, щоб не турбуватися про "відключення" root. Обмежте доступ до кореня, так. Вимкнути рахунок, ні.
jscott

4
після цього перезапустіть службу sudo ssh ........
Naweed Chougle

Посиланий файл довідки тепер дає таку команду: sudo passwd -dl root
MrG

21

Я припускаю, що ви посилаєтесь на віддалений вхід через ssh. Додайте наступний рядок до /etc/ssh/sshd_config:

PermitRootLogin no

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

sudo service ssh restart

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


Вибачте, я мав би сказати, це для місцевих входів. Я оновив питання.
Бен Хімерс

4

На головне питання відповіли кілька разів, але на другорядне - ні. SSH запитує пароль після введення root після його відключення як функції захисту. Він також запуститься, якщо ви спробуєте увійти як lkjfiejlksji.

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


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

2

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

У більшості випадків SSH має бути єдиною службою, доступною ззовні, яка потенційно дозволяє кореневим входом, тому ця двері буде заблокована.

Щоб ще більше обмежити це, ви можете встановити щось на кшталт fail2ban, яке забороняє IP-адреси протягом певного часу після ряду невдалих спроб входу.


У мене таке відчуття "*" - це те саме, що "!", Згідно з прийнятою відповіддю, тому я також проголосую за цю відповідь.
Бен Хімерс

1

JR та ін.,

Ваші AllowUsers привели мене до цього https://help.ubuntu.com/community/SSH/OpenSSH/Configuring

sudo vi / etc / ssh / sshd_config

PermitRootLogin так (змінено на ні)

(додайте рядок внизу файлу) DenyUsers user1 user2

зберегти та вийти, а потім

sudo service ssh перезапуск

Вирішили мою проблему. Дякую всім.


0

Якщо ви хочете відключити локальний кореневий вхід, ви можете спробувати змінити / etc / passwd та замінити / bin / bash на / bin / false. ЗАРАЗ, оскільки я його не перевіряв, я б сказав, залиште кореневий сеанс відкритим збоку, протестуйте його, і якщо є якийсь дивний побічний ефект, змініть його назад.


0

Re: Безпека.

IMHO є лише стільки, що ви можете зробити, безпечний, якщо не виймати коробку з розетки, від'єднати її від мережі та приварити всередину 3-дюймової коробки з нержавіючої сталі з твердої сталі.

Подумайте про це так - якщо люди можуть зламати Міністерство оборони, ЦРУ, ФБР та Citibank - решта з нас просто смертні не можуть зробити набагато кращого.

Re: безпека SSH.

Я не тільки забороняю доступ до root через ssh, я також встановлюю параметр "AllowUsers" на моє і лише моє ім'я користувача. Таким чином ніхто, крім мого власного користувача, не може входити через ssh. Це може бути зайвим, як і в моєму власному випадку, я так чи інакше створюю лише Одного некористуючого користувача.

На жаль, як уже багато разів говорили раніше, як тільки хтось отримує фізичний доступ до поля, усі ставки ВИМКНЕНІ!

Обмін сертифікатами для входу в ssh? Гмммм. . . . звучить добре. Як ти це робиш?

Джим (JR)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.