Введение
Шифрование конфиденциальных данных перед их передачей необходимо для сохранения их конфиденциальности, целостности и аутентичности в процессе передачи. При шифровании данные преобразуются в защищенный формат, который может быть понят только уполномоченными лицами, имеющими правильный ключ для расшифровки. Таким образом, неавторизованные лица и хакеры не могут перехватить и расшифровать конфиденциальные данные во время их передачи.
Более того, шифрование выступает в качестве дополнительного уровня безопасности, защищая конфиденциальную информацию, такую как персональные данные, финансовые сведения или интеллектуальная собственность, от несанкционированного доступа и подслушивания. Когда данные передаются по незащищенным каналам, таким как Интернет, шифрование становится решающим фактором снижения рисков, связанных с перехватом и утечкой информации. Для решения этой задачи создали SCP.
SCP — это утилита в UNIX-подобных системах, позволяющая копировать файлы и каталоги между локальными и удаленными хостами по защищенному протоколу SSH.
В целом, использование шифрования с помощью таких утилит, как SCP, обеспечивает спокойствие как отправителям, так и получателям данных. Они могут быть уверены, что их конфиденциальная информация защищена от несанкционированного доступа и манипуляций. Использование шифрования является одним из основных принципов безопасного обмена данными в современном компьютерном мире.
Требования к установке
- Root-права;
- Debian 11 или более поздняя версия;
- Некоторые знания о работе ОС;
- Подключение к Интернету.
Установка
Для безопасной передачи и перед использованием утилиты нам необходимо обновить и установить все пакеты:
apt update && apt upgrade -y

После этого необходимо проверить список репозиториев и пакетов. Если вы уверены, что ваша система соответствует всем требованиям, то этот шаг можно пропустить. Однако если вы еще не сделали этого, введите следующую команду CLI:
apt list | grep scp && scp

На рисунке выше мы видим список пакетов и с помощью написанной команды можем проверить, установлен ли один из них. Рассмотрим синтаксис этой команды:
scp [-346ABCpqrTv] [-c cipher] [-F ssh_config] [-i identity_file] [-] destination] [-l limit] [-o ssh_option] [-P port] [-S program] source… target
- [-346ABCpqrTv]: Это набор опций для управления поведением scp. Каждая опция имеет свое значение:
- -3: Позволяет копировать файлы между двумя удаленными хостами через локальный хост;
- -4: Принудительно использует IPv4 для соединения;
- -6: Принудительное использование IPv6 для соединения;
- -A: Аутентификация через агент аутентификации SSH;
- -B: Оптимизация пропускной способности и превращение копирования в фоновый процесс;
- -C: Включает сжатие данных при передаче;
- -p: Сохраняет атрибуты и права доступа к исходным файлам;
- -q: Тихий режим, не выводит сообщений о ходе копирования;
- -r: Рекурсивное копирование каталогов и их содержимого;
- -T: Отключает проверку TTY для удаленного хоста (используется при перенаправлении ввода/вывода);
- -v: Подробный вывод, отображает информацию о ходе копирования;
- [-c cipher]: Задает алгоритм шифрования, который будет использоваться для защиты данных при передаче. Например, aes128-ctr или blowfish-cbc;
- [-F ssh_config]: Указывает альтернативный конфигурационный файл SSH, в котором задаются параметры подключения к удаленному хосту;
- [-i identity_file]: Указывает файл с закрытым ключом, который будет использоваться для аутентификации при подключении по SSH;
- [-] destination: Опционально указывает место, куда будут скопированы исходные файлы или каталоги на удаленном хосте. Если параметр опущен, то копирование будет производиться в текущий каталог удаленного хоста;
- [-l limit]: Ограничивает пропускную способность соединения в Кбит/с;
- [-o ssh_option]: Позволяет задать дополнительные опции SSH;
- [-P port]: Задает порт;
- [-S program]: Указывает путь к программе, которая будет использоваться для выполнения шифрования, например, ssh-program.
Выше мы рассмотрели все опции и параметры, которые получают полезность при использовании. Рассмотрим различные способы использования этой полезности.
Обычная передача файла
Утилита позволяет перемещать защищенный файл между различными машинами. Для этого необходимо ввести команду CLI:
scp /etc/apple.txt root@78.140.240.178:/etc/

Введите свои учетные данные в форме user, IP, password и согласитесь с подключением. Отлично! Теперь мы можем найти на целевой машине тот же самый файл с помощью следующей команды:
cd /etc && ls

В первой колонке apple.txt успешно передан между двумя системами по ssh! Если необходимо передать целую папку или каталог, используйте опцию -r, посмотрим на примере:
scp -r -C -4 /etc/network root@78.140.240.178:/dump

Эту утилиту можно использовать для резервного копирования, начиная с простого файла и заканчивая ISO всего диска и системы. К счастью, в системе Linux все настройки хранятся в конфигурационных файлах, которые позволяют переносить данные без проблем. Также мы можем использовать обратное подключение и передавать файлы с удаленной машины на локальную, просто поменяв их местами.
Резервное копирование с архивом
С помощью SCP можно создать архив всего диска, системной базы данных и других вещей, которые могут содержать всю систему. Посмотрите на связку tar и scp, как передавать данные такого типа? Дополнительно многие компании используют нестандартный порт для SSH-соединения, давайте изменим на целевой машине порт на 2222 и подумаем, как передавать данные в такой ситуации. Запишите команды ниже:
tar -cvzf dump.tar.gz / && ls

Убедитесь, что файл был заархивирован, и напишите следующую команду:
scp -4 -C -v -P 2222 dump.tar.gz root@78.140.240.178:/

Теперь необходимо разархивировать папку с помощью следующей команды:
mkdir dump && tar -xvf dump.tar.gz -C /dump

Трансфер dd-образа диска
Убедитесь, что у вас достаточно прав для доступа к исходному файлу изображения и записи в каталог назначения. Также следует учитывать, что передача больших файлов образов DD может занять некоторое время, зависящее от вашего сетевого подключения и размера образа. Перед созданием ISO-образа всей системы необходимо узнать параметры дискового пространства с помощью следующей команды:
lsblk

В нашем случае мы видим один физический диск и два логических пространства, для наших манипуляций мы используем логический диск для создания ISO-образа:
dd if=/dev/vda1 of=dump.iso bs=4M status=progress

После успешного создания файла образа мы можем передать его предыдущим способом:
scp -4 -C -v -P 2222 /dump.iso root@78.140.240.178:/tmp

Вывод
В заключении следует отметить, что шифрование конфиденциальных данных при передаче имеет первостепенное значение для обеспечения их безопасности. SCP, утилита, доступная в UNIX-подобных системах, играет важную роль в обеспечении безопасной передачи файлов и каталогов между локальными и удаленными узлами по протоколу SSH. Шифрование с помощью таких инструментов, как SCP, вселяет уверенность в отправителей и получателей, обеспечивая защиту конфиденциальной информации от несанкционированного доступа и манипуляций. Использование шифрования — это не только передовая практика, но и необходимый компонент безопасной передачи данных в современном компьютерном ландшафте.