Мне нужно отправить файлы с группы серверов на удаленный сервер. Мой план состоял в том, чтобы использовать rsync поверх SSH, так как он отвечает моим требованиям безопасного соединения и возможности удаления из источника при успешной передаче. Я также могу ограничить брандмауэр разрешением только тех IP-адресов, которым я доверяю на порту 22.

Если я настрою задание cron для передачи этих файлов с помощью rsync через SSH, я предполагаю, что мне потребуется настроить ключи SSH для связи. Однако каков риск безопасности хранения открытых ключей на нескольких серверах? Лучше ли создавать отдельные ключи для каждого сервера? Эта учетная запись будет использоваться только для передачи файлов.

Редактирование для расширения в моей сети.

У меня есть несколько серверов, размещенных в сторонней хостинговой компании, которые имеют публичные IP-адреса. Моя домашняя сеть имеет статический IP-адрес, а серверы располагаются за маршрутизатором NAT. Так что я не уверен, как я могу получить данные на центральном сервере с устройств за NAT.

Я мог бы создать центральный сервер за NAT, который собирает все и открывает порт вперед. Я полагаю, что с брандмауэром, ограничивающим порт 22 и статический IP-адрес сервера базы данных, он устранит любые возможные нарушения безопасности.

2 ответа2

1

Я добавлю, что при использовании rsync через ssh всегда полезно ограничить, какую команду можно запустить с соответствующим ключом: даже если секретный ключ украден на центральном сервере, только эта команда может быть выполнена на группе других серверов. ,

Вы можете сделать это с опцией «command = custom_script» в файле "author_keys".

Просто используйте скрипт "rrsync" в качестве "команды ограничения", он отлично работает. (/usr/share/doc/rsync/scripts/rrsync.gz в Debian-подобном дистрибутиве)

Подробнее здесь:

http://www.guyrutenberg.com/2014/01/14/restricting-ssh-access-to-rsync/

https://www.v13.gr/blog/?p=216

1
  1. Сделайте обратное, если можете.
  2. Выполните сценарий на центральном сервере со всеми действиями rsync и запустите его с этого сервера.
  3. Вы сохраните все ключи доступа на нем. Вы можете установить все client /bin /nologin в качестве оболочки, чтобы снова снизить риски.
  4. Если один из клиентов упадет, все остальные продолжат работать.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .