Как безопасно установить резервную копию rsync в Ubuntu?

Я следил за различными другими учебными пособиями и сообщениями в блоге по настройке машины Ubuntu в качестве резервного «сервера» (я буду называть его сервером, но это просто рабочий стол Ubuntu), к которому я добавляю новые файлы с помощью rsync. Прямо сейчас я могу подключиться к серверу с моего ноутбука с помощью rsync и ssh с помощью ключа RSA, который я создал, и без запроса пароля, когда мой ноутбук подключен к домашнему маршрутизатору, к которому также подключен сервер. Я хотел бы иметь возможность отправлять файлы с моего ноутбука, когда я нахожусь вне дома. В некоторых уроках, на которые я смотрел, были краткие предложения по безопасности, но они не фокусировались на них.

Что мне нужно сделать, чтобы мой ноутбук с файлами отправлял на сервер, не делая слишком легким взлом на сервер?

Вот что я сделал до сих пор :

  • Запустите ssh-keygen и ssh-copy-id, чтобы создать пару ключей для моего ноутбука и сервера.

  • Создал скрипт на сервере для записи его публичного IP-адреса в файл, шифрования файла и загрузки на FTP-сервер, к которому у меня есть доступ (я знаю, что могу подписаться на бесплатную динамическую учетную запись DNS для эта часть, но так как у меня есть учетная запись ftp и мне не нужно делать публично доступным ip, я подумал, что это может быть лучше).

Вот что я видел:

  • Переадресация портов: я знаю, что мне нужно назначить серверу фиксированный IP-адрес на маршрутизаторе, а затем сообщить маршрутизатору перенаправить порт или порты к нему. Должен ли я просто использовать порт 22 или выбрать случайный порт и использовать его?

  • Включите брандмауэр (ufw). Будет ли это что-нибудь делать, или мой маршрутизатор уже заблокирует все, кроме нужного мне порта?

  • Запустите fail2ban.

Стоит ли делать все эти вещи? Должен ли я сделать что-нибудь еще? Могу ли я настроить сервер так, чтобы он разрешал соединения только с ключом RSA (а не с паролем), или fail2ban обеспечит достаточную защиту от попыток злонамеренного соединения? Можно ли ограничить типы соединений, которые разрешает сервер (например, только ssh)?

Надеюсь, это не слишком много вопросов. Я довольно новичок в Ubuntu (но использую сценарии оболочки и bash в OSX). Мне не нужно иметь абсолютную максимально безопасную настройку. Мне бы хотелось, чтобы что-то было достаточно безопасным, но не настолько сложным, чтобы оно могло легко сломаться, и мне было бы трудно это исправить.

7
задан 17 December 2012 в 19:08

1 ответ

Хорошо, я думаю, что вы пытаетесь немного перепроектировать. SSH - один из самых безопасных протоколов передачи файлов, и если вы уже выполняете пересылку по ssh, то ваши 90% там. Ваш маршрутизатор действует как базовый брандмауэр, поэтому вам не нужно включать iptables для личного резервного сервера.

Придерживайтесь порта 22. Это значительно облегчит жизнь.

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

  • Идите вперед и получите динамический IP, это упростит вам задачу, и примерно во время вашего путешествия ваш ftp-скрипт потерпит неудачу по какой-то действительно странной причине. В основном KISS.
  • Отключить логин паролей для ssh. В / etc / sshd_config измените PasswordAuthentication yes на PasswordAuthentication no и убедитесь, что challengeresponse установлено на no. Это будет препятствовать любому без вашего личного ключа от входа в систему вообще.

За исключением того, что вы в значительной степени охвачены по умолчанию. ssh шифрует трафик и проверяет хост / клиент. Там не так много осталось после этого.

0
ответ дан 17 December 2012 в 19:08

Другие вопросы по тегам:

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