решение централизованного сервера аудита для управления несколькими серверами [закрыто]

У нас есть десятки серверов Linux и несколько разработчиков, и каждый разработчик обслуживает части серверов.

В настоящее время у каждого сервера есть учетная запись администратора, если кто-то хочет управлять этим сервером, его pubkey будет добавлен в ssh authorized_keys учетной записи администратора сервера, чтобы он мог получить доступ и редактировать этот сервер. Но это не лучшее решение:

  • Порт ssh каждого сервера не должен открываться для публики, это опасно.
  • Если к одному серверу обращается несколько человек с одной и той же учетной записью, мы не можем сказать, кто вошел в систему.
  • Трудно удалить или отозвать чей-то ssh-ключ для этого сервера.

Поэтому я думаю, что должно быть лучшее решение:

  • Один централизованный сервер аудита и администрирования ssh.
  • Каждый сервер разрешает доступ только к порту ssh с этого сервера.
  • Этот сервер может управлять учетной записью пользователей и правами доступа для каждого сервера.
  • Разработчик использует этот сервер аудита для выполнения операций сервера, все действия должны регистрироваться и предупреждать других, когда он делает что-то опасное.
  • Если этот сервер не работает, есть решение для экстренного доступа.

Если кто-нибудь знает подобное решение? Спасибо.

4
задан 2 November 2015 в 10:18
3 ответа

Порт ssh каждого сервера не должен быть открыт для публики, это опасно.

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

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

В вашем текущем сценарии это правильно - общие учетные записи не и Good Thing. Однако с подходящими подробными журналами sshd вы можете увидеть, кто и когда вошел в систему.

Трудно удалить или отозвать чей-то ssh-ключ для этих серверов.

Существуют доступные инструменты, которые позволят это сделать автоматизировано - марионетка, повар, ансибл и т. д. - инструменты управления конфигурацией в целом.

Общее решение вашей проблемы -

  • предоставить каждому свою учетную запись (автоматизировать ее с помощью инструмента управления конфигурацией)
  • Прекратить использование общего учетных записей.
  • Предоставьте каждому подходящий доступ sudo .
  • Используйте rsyslog для отправки всех журналов на центральный сервер журналов.

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

7
ответ дан 3 December 2019 в 03:05

Может быть, проверить Monkeyspere. Он позволяет вам настроить центральный сервер ключей, на котором вы можете отзывать ключи пользователей (воспринимайте это как сеть доверия для ключей ssh)

http://web.monkeysphere.info/getting-started-admin/

0
ответ дан 3 December 2019 в 03:05

Не предоставляйте разработчикам root-доступ на серверах! Используйте какой-либо инструмент централизованного управления, например chef или cfengine3, и позвольте разработчикам писать шаблоны, которые применяются к серверам. Вы можете отправить эти шаблоны в Git / SVN / Whatever для отслеживания изменений.

Кроме того, вы можете использовать VPN для доступа к своим серверам. Ваши серверы не обязательно должны быть открыты для всего мира, у них не обязательно должен быть публичный IP-адрес.

-1
ответ дан 3 December 2019 в 03:05

Теги

Похожие вопросы