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

Разрешения на резервное копирование для всей файловой системы

Вот что получилось: у меня есть Linode VPS, резервную копию которого я хочу сохранить на свой локальный ноутбук через rsync. Я только что сгенерировал ssh-ключи для связи и оставил пустую парольную фразу для закрытого ключа, чтобы я мог rsync через cron, не беспокоясь о паролях.

Для дополнительной безопасности я также запретил вход в систему по ssh root. В идеале я хотел бы сделать резервную копию всего из / вниз, но это просто невозможно с обычным пользователем, если я не дам конкретному пользователю rwx доступ ко всему.

Как лучше всего сделать резервную копию всей файловой системы через rsync, не разрешая вход в систему с правами root?

Вы можете запустить rsync в режиме демона на удаленном сервере и сделать резервную копию любого раздела / папки, которую вы хотите, используя следующую команду на стороне клиента:

rsync -au rsync://user@your.server.ip.addr:/folder /path/to/dest

Однако вам понадобится следующее:

  1. Запустите rsync в режиме демона на удаленном сервере.
  2. Вам необходимо открыть порт 873 между вами и удаленным сервером.
  3. Вам нужно определить модуль [folder] на удаленном сервере в /etc/rsyncd.conf.

Чтобы обработать часть безопасности / шифрования, вы можете настроить какой-нибудь туннель или VPN. Например, вы можете настроить туннель SSH, используя следующую команду:

sudo ssh -L 873:your.server.ip.addr:873 user@your.server.ip.addr

Как только туннель установлен, вы можете использовать rsync локально, и соединение будет перенаправлено на удаленный сервер через туннель.

rsync -au rsync://user@localhost:/folder /path/to/dest

В этом случае вам не нужно открывать порт 873 для публики, поскольку соединение туннелируется через SSH на порт 22.

Используйте учетную запись root: только uid 0 может читать все файловые системы.

Теперь, когда вы хотите повысить безопасность, вот что вы можете сделать:

  • Запретить root входить с паролем через ssh (PermitRootLogin без пароля в конфигурации sshd).
  • Используйте аутентификацию по ключу для резервного копирования.

В соответствии с человек 5 sshd_config :


"     PermitRootLogin
             Specifies whether root can log in using ssh(1).  The argument
             must be ``yes'', ``without-password'', ``forced-commands-only'',
             or ``no''.  The default is ``yes''.

             If this option is set to ``without-password'', password
             authentication is disabled for root.

             If this option is set to ``forced-commands-only'', root login
             with public key authentication will be allowed, but only if the
             command option has been specified (which may be useful for taking
             remote backups even if root login is normally not allowed).  All
             other authentication methods are disabled for root.

             If this option is set to ``no'', root is not allowed to log in."

Никогда не пробовал параметр "только принудительные команды", но выглядит интересно.

Как насчет помещения пользователя в корневую группу?

Я считаю, что корневая группа сможет читать другие файлы, аналогичные root.