Как безопасно установить резервную копию 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). Мне не нужно иметь абсолютную максимально безопасную настройку. Я бы хотел что-то достаточно безопасное, но не настолько сложное, чтобы оно могло легко сломаться, и мне было бы трудно это исправить.

1 ответ

Решение

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

Палка с портом 22. Это сделает жизнь намного проще.

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

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

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

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