Назад | Перейти на главную страницу

Доступ Sudo в Ubuntu

Я новичок в Linux и мире системных администраторов, поэтому я ищу несколько советов и пару ответов. Я установил экземпляр EC2 с Ubuntu 12.04 и подключился по SSH через пару ключей.

Прежде всего, я прочитал Страница управления пользователями Ubuntu но у меня осталось несколько вопросов. Я заметил это на странице

Sudo позволяет авторизованному пользователю временно повышать свои привилегии, используя собственный пароль, вместо того, чтобы знать пароль, принадлежащий учетной записи root.

Когда я запускаю команду sudo, мне не предлагается ввести пароль после использования SSH для доступа к моему серверу. Я прочитал, чтобы не хранить пароли для доступа к базе данных (например, для PHP и MySQL) в простых текстовых файлах, а использовать вместо них файлы .cnf с разрешением 600. Если кому-то удастся попасть на мой сервер, все, что у них есть сделать это ввести sudo vi /path/to/cnf а затем они могут просмотреть пароль. Весь смысл в том, что у меня есть пароль для sudo?

  1. Должен ли я добавить пароль для sudo, учитывая, что по умолчанию у меня его нет?

  2. Насколько велик риск для кого-то иметь возможность подключиться к моему серверу по SSH, учитывая, что я использую UFW для ограничения доступа к порту 22 и использую пару ключей?

  3. Поскольку я использовал EC2 для настройки своего сервера Ubuntu, все источники, которые я видел при добавлении / изменении паролей, говорят, что по умолчанию тот используется из установки. Я особо ничего не настраивал. Все это было предварительно настроено через AWS. Это проблема?

Насколько велик риск для кого-то, кто может использовать SSH

Риски действительно минимальны. Посмотрите на эти вопросы для некоторых вещей, которые вы можете сделать, чтобы минимизировать влияние попыток грубой силы.

Я должен добавить пароль ...

У вашей учетной записи есть пароль, но sudo настроен так, чтобы не запрашивать вас, если задана конфигурация ниже. ссылка Этот параметр подходит по большей части, если вы выполняете всю аутентификацию с помощью ключа. Вы можете удалить NOPASSWD из этого файла, если вы хотите, чтобы вас спросили.

# ubuntu user is default user in cloud-images.
# It needs passwordless sudo functionality.
ubuntu ALL=(ALL) NOPASSWD:ALL

Сначала несколько общих советов по безопасности:

  • Используйте ключевые логины - вы хороши в этом
  • используйте большие клавиши - например, сгенерировать ключ rsa 4k (вероятно, текущий - 1k или 2k
  • используйте надежный пароль для ключа - вы должны это сделать. Если я смогу достать ваш незащищенный ключ без пароля ... все спорный
  • переместите ssh на более высокий порт - например. 12322 - это немного поможет при поиске сервисов. И не забываем порт открыть в группе безопасности
  • следить за тем, что происходит с вашим сервером - fail2ban - замечательный инструмент
  • отключить логины по паролю (инструкции есть в других ответах)
  • реализовать AllowUsers / AllowGroups, чтобы разрешить доступ только определенным пользователям (и root не является одним из них) - в сочетании с агрессивной конфигурацией fail2ban это почти убийца.

А теперь вопросы:

Насколько велик риск для кого-то, кто может использовать SSH

Ничего особенного, если вообще ... просто установите безопасность

Я должен добавить пароль ...

Да, было бы неплохо, но не обязательно использовать что-то вроде

sudo passwd ubuntu

позволит вам изменить пароль, даже не зная об этом.

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