SSH Linux. Команды для настройки и работы.

Виртуальные серверы на Linux —
CentOS, Ubuntu и Debian на KVM или Xen.

Введение

Пожалуй, с первого дня, когда я познакомился с NAS-ами Synology, я не уставал повторять, что этим устройствам катастрофически не хватает функции централизованного бэкапа, когда инициатором резервного копирования является сам NAS, когда он сам заходит на клиентские машины и бэкапит с них то, что нужно. Централизованно, по расписанию, без установки на клиентские машины дополнительного ПО. Эта функция, именуемая в Linux-среде Rsync-насосом, способна значительно облегчить настройку резервного копирования парка Linux-серверов.

Преимущества NeoServer

Изменение мощности в любой момент Изменяйте производительность в любой момент, на любой срок. Используйте только те ресурсы, который вам нужны здесь и сейчас — оплата производится только за дни использования. Собственные серверы на двух континентах Наши серверы расположены в двух странах, на разных континетах. В России — городе Москве, и Америке — Кремниевой долине в Калифорнии. Вы можете выбрать любые из них.

Современное надежное оборудование Для наших серверов мы используем только современное и надежное оборудование от ведущих производителей отрасли: HP Proliant, Dell EqualLogic, Intel Xeon, Nvidia, Cisco. Высокий уровень безопасности данных Обеспечение безопасности на высоком уровне. Система хранения с применением самых надежных массивов дисков RAID 10. Резервные системы охлаждения и электропитания.

Что такое Rsync?

Rsync —  это remote sync или удаленная синхронизация, является средством удаленной и локальной синхронизации файлов. Он использует алгоритм, который минимизирует объем копируемых данных, перемещая только те части файлов, которые были изменены.

Утилита в основном используется для синхронизации деревьев веб-сайтов от промежуточных до рабочих серверов, а также может использоваться для резервного копирования ключевых областей файловых систем через cron. Rsync помогает легко передавать большие объемы данных, обеспечивая сверхбыстрое и эффективное резервное копирование.

SSH Linux. Команды для настройки и управления сервером.

04 Февраля 2018

SSH — самый распротсраненный инструмент системного администратора. Каждый день тысячи людей используют SSH для подключения к серверам, VPS/VDS, домашним машинам, роутеpам и даже смартфонам. SSH-клиенты есть для всех сколько-нибудь популярных платфоpм, а сервер SSH встраивают даже в умные лампочки. Но готов ли ты сказать, что на самoм деле знаешь обо всех возможностях SSH?

Свободная реализaция протокола SSH, названная OpenSSH, была выпущена разработчиками OpenBSD еще в 1999 году. И сегодня это де-факто стандaрт безопасного и удобного подключения к удаленной кoнсоли. Спустя семнадцать лет разработки в OpenSSH появилось огромное количеcтво возможностей, настроек и режимов работы, о которых знают дaлеко не все пользователи.

Задача

Синхронизация файлов между серверами — часто востребованная задача, которая наиболее просто решается с помощью Rsync. Однако, в некоторых случаях использование rsync затруднено. Например, это может быть ситуация, когда требуется как можно быстрее осуществить синхронизацию, а обработка по расписанию не подходит. В этом случае на помощь приходят утилиты, которые используют inotify — специализированный интерфейс Linux, позволяющий реагировать на изменения в файловой системе.

В более сложных конфигурациях в группе может быть несколько серверов, тогда настройка синхронизации «каждый с каждым» весьма утомительна — при добавлении к группе из N серверов еще одного, вам необходимо произвести 2xN настроек — на каждом из существующих серверов с новым и на новом сервере с существующими. Конечно, эта задача может быть автоматизирована с помощью средств управления инфраструктурой как кодом (Ansible, Chef, Puppet), но само решение, где необходимо настраивать взаимосвязь каждый с каждым выглядит весьма неудобно.

Для решения проблемы синхронизации файлов в группе серверов приходят на помощь утилиты, использующие пиринговые протоколы синхронизации. Один из популярных открытых инструментов называется SyncThing.

Далее мы рассмотрим, как с помощью SyncThing настроить синхронизацию файлов между несколькими серверами. Мы будем использовать операционную систему Linux. Руководство подойдет для любого дистрибутива, который использует systemd — Debian 9, Ubuntu , Ubuntu , CentOS 7 и т.п.

Опции Rsync

Теперь давайте кратко рассмотрим параметры rsync. Здесь перечислены не все опции. Для более подробной информации смотрите man rsync:

  • -v — Выводить подробную информацию о процессе копирования
  • -q — Минимум информации
  • -c — Проверка контрольных сумм для файлов
  • -a — Режим архивирования
  • -R — относительные пути
  • -b — создание резервной копии
  • -u — не перезаписывать более новые файлы
  • -l — копировать символьные ссылки
  • -L — копировать содержимое ссылок
  • -H — копировать жесткие ссылки
  • -p — сохранять права для файлов
  • -g — сохранять группу
  • -t — сохранять время модификации
  • -x — работать только в этой файловой системе
  • -e — использовать другой транспорт
  • -z — сжимать файлы перед передачей
  • —delete — удалять файлы которых нет в источнике
  • —exclude — исключить файлы по шаблону
  • —recursive — перебирать директории рекурсивно
  • —no-recursive — отключить рекурсию
  • —progress — выводить прогресс передачи файла
  • —stat — показать статистику передачи
  • —version — версия утилиты

Заключение

Мы рассмотрели три простые, но в тоже время мощные утилиты, которые следует взять на вооружение каждому администратору. Важно так же следовать стратегии «3-2-1». С нашей стороны мы выполняем нашу часть обязательств, предоставляя бесплатное место для хранения резервных копий на FTP сервере, в размере 20Gb для виртуальных VPS серверов и физических серверов, куда вы можете самостоятельно настроить резервное копирование. Кроме этого мы делаем недельный бекап виртуальных VPS серверов, что позволяет откатить состояние сервера на исходную дату в несколько минут. Так же мы предлагаем обратить внимание на дополнительное высоконадежное облачное хранилище CEPH, которое мы предоставляем. Хранилище использует технологию, позволяющую хранить информацию на распределенном компьютерном кластере с тройным дублированием данных за вполне доступную сумму. Стоимость за 1 Gb составляет грн. в месяц. Даже если ваша инфраструктура расположена в другом дата-центре или личной серверной, заказав самый простой VPS, и подключив к нему облачное хранилище CEPH, вы получаете отказоустойчивый сервер для хранения резервных копий, который позволит обеспечить надежность вашей инфраструктуры по стратегии 3-2-1.

Дата:

Твитнуть

Рекомендуемые статьи по теме:
  • Установка стека Grafana\Prometheus на Debian 10
  • Установка и настройка Ubuntu Server
  • Установка SSL-сертификата в Nginx с наивысший защитой А+
  • Inode в Linux — что это такое?
  • Centos 8 что нового?

Авторам статьи важно Ваше мнение. Будем рады его обсудить с Вами: Please enable JavaScript to view the comments powered by Disqus. comments powered by Disqus

Синхронизация не всех файлов в rsync

Опции include и exclude позволяют указать какие файлы нужно синхронизировать, а какие исключить. Опции работают не только с файлами но и с директориями.

Например, скопируем все файлы, начинающиеся на букву R:

$ rsync -avz —delete [email protected]:/documents/ /tmp/documents/

Если перед выполнением этой команды создать в папке файл которого нет на удаленном сервере, то он будет удален.

Максимальный размер файлов Вы можете указать максимальный размер файлов, которые нужно синхронизировать.

Для этого используется опция —max-size. Например, будем синхронизировать только файлы меньше 200 килобайт:

$ rsync —remove-source-files -zvh /tmp/backups/

Таким образом, файл будет удален после завершения копирования в папку /tmp/backups.

Как ограничить подключение по паролю

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

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

Для начала зайдем на сервер по ключу:

ssh [email protected] -i ~/.ssh/server-key

Используя консольный текстовый редактор nano, откроем под root файл настроек OpenSSH:

nano /etc/ssh/sshd_config [email protected]:~# nano /etc/ssh/sshd_config

После чего мы увидим содержимое файла настроек. Нам нужно найти строчку:

… #PasswordAuthentication yes …

Убрать # в начале и заменить yes на no. То есть ее надо преобразить вот в такой вид:

… PasswordAuthentication no …

Далее нажимаем сначала Ctrl + O , затем Enter, чтобы сохранить. И Ctrl + X, чтобы выйти.

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

systemctl restart sshd

Теперь выйдем с сервера и вернемся туда, откуда подключались.

И попробуем обратно подключиться к северу по паролю.

И видим, что сервер нас больше таким способом пускать не намерен. А теперь попробуем с помощью ключа.

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

Чтобы сервер был в безопасности, советую настроить на нем фаервол и добавить порт SSH в список доверенных.

Сменить порт

Port 9724

Теперь при авторизации вам нужно вместо стандартного 22 порта указывать 9724. Способ очень простой и действенный против большинства простых ботов хакеров, которые стучатся в стандартные порты. Тут главное не создать конфликт с другими службами и подобрать заведомо неиспользуемое число.

Запретить связь по старому протоколу

Здесь мы определяем, что связь возможна только по протоколу v2

Запретить авторизацию под root

По умолчанию no. Если yes, можно авторизовываться под рутом. Под root работать небезопасно, лучше создать своего пользователя и работать под ним.

Если вы авторизованы не под root, перед всеми консольными командами нужно добавлять sudo — расшифровывается как Substitute User and DO — подмени юзера и делай (под ним). Например, позволяет исполнять команды от имени суперпользователя root.

Уменьшить число попыток авторизации

MaxAuthTries 2

Количество попыток ввода пароля. По умолчанию 6. При неудачном переборе сеанс связи обрывается.

Уменьшить время ожидания авторизации

LoginGraceTime 30s

По умолчанию, 120 секунд может длиться сеанс авторизации. По истечению этого времени он обрывается. 2 минуты на авторизацию — это перебор, всё это время сервер держит связь открытой, что очень нерационально. Полминуты за глаза хватит.

Закрыть доступ по IP

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

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

  1. Открываем /etc/ и добавляем туда SSHD: — ваш IP. Если у вас динамический IP, определите IP с маской подсети и запишите Вашу подсеть вместо IP, например:

    SSHD:

  2. Открываем /etc/ и добавляем туда: SSHD: ALL

Теперь никто, кроме вас, не сможет авторизоваться на сервере по SSH.

Ещё один способ ограничения доступа по IP

Можно воспользоваться следующей директивой:

AllowUsers = *@1.2.3.4

Здесь мы разрешаем доступ только для IP 1.2.3.4

Читайте также:  Инструкция по записи видео с экрана монитора со звуком