Сегодня мы будем обсуждать, как синхронизировать файлы с помощью rsync с нестандартным портом SSH. Возможно, вы зададитесь вопросом, зачем нам использовать нестандартный порт SSH? Это связано с безопасностью. Всем известно, что 22 – это стандартный порт SSH.

Поэтому обязательно измените номер порта SSH на что-то отличное, что сложнее угадать. В таких случаях, как вы будете синхронизировать ваши файлы/папки с удаленным сервером? Не волнуйтесь, это не так уж и сложно. Здесь мы увидим, как синхронизировать файлы и папки с использованием rsync с нестандартным портом SSH.
Как вы, возможно, знаете, rsync, также известный как Remote Sync, – это быстрый, универсальный и мощный инструмент, который можно использовать для копирования и синхронизации файлов/каталогов с локального на локальный или с локального на удаленные хосты. Для более подробной информации о rsync смотрите страницы руководства:
# man rsync
Или обратитесь к нашему предыдущему руководству по ссылке ниже.
Изменение порта SSH на нестандартный порт
Как известно, по умолчанию rsync использует стандартный порт SSH 22 для синхронизации файлов с локальных на удаленные хосты и наоборот. Мы должны изменить порт SSH нашего удаленного сервера для усиления безопасности.
Для этого откройте и отредактируйте файл конфигурации SSH /etc/ssh/sshd_config:
# vi /etc/ssh/sshd_config
Найдите следующую строку. Разкомментируйте и измените номер порта на свой выбор. Рекомендую выбрать любое число, которое сложно угадать.
Убедитесь, что вы используете уникальный номер, который не используется существующими службами. Проверьте эту статью netstat, чтобы узнать, какие службы работают на каких TCP/UDP-портах.
Например, здесь я использую номер порта 1431.
[...] Port 1431 [...]
Сохраните и закройте файл.
В системах на основе RPM, таких как RHEL, CentOS и Scientific Linux 7, необходимо разрешить новый порт через вашу брандмауэр или маршрутизатор.
# firewall-cmd --add-port 1431/tcp # firewall-cmd --add-port 1431/tcp --permanent
В RHEL/CentOS/Scientific Linux 6 и выше вы также должны обновить разрешения selinux, чтобы разрешить порт.
# iptables -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 1431 -j ACCEPT # semanage port -a -t ssh_port_t -p tcp 1431
Наконец, перезапустите службу SSH, чтобы изменения вступили в силу.
# systemctl restart sshd [On SystemD] OR # service sshd restart [On SysVinit]
Теперь посмотрим, как синхронизировать файлы с помощью rsync с нестандартным портом.
Как использовать Rsync с нестандартным портом SSH
Выполните следующую команду из терминала, чтобы синхронизировать файлы/папки с помощью Rsync с нестандартным портом ssh.
Синтаксис:
# rsync -arvz -e 'ssh -p <port-number>' --progress --delete user@remote-server:/path/to/remote/folder /path/to/local/folder
Для целей этого руководства я буду использовать две системы.
Сведения о удаленной системе:
IP Address: 192.168.1.103 User name: tecmint Sync folder: /backup1
Сведения о локальной системе:
Operating System: Ubuntu 14.04 Desktop IP Address: 192.168.1.100 Sync folder: /home/sk/backup2
Давайте синхронизируем содержимое папки /backup1
удаленного сервера с папкой /home/sk/backup2/
на моей локальной системе.
$ sudo rsync -arvz -e 'ssh -p 1431' --progress --delete [email protected]:/backup1 /home/sk/backup2
Пример вывода
[email protected]'s password: receiving incremental file list backup1/ backup1/linux-headers-4.3.0-040300-generic_4.3.0-040300.201511020949_amd64.deb 752,876 100% 13.30MB/s 0:00:00 (xfr#1, to-chk=2/4) backup1/linux-headers-4.3.0-040300_4.3.0-040300.201511020949_all.deb 9,676,510 100% 12.50MB/s 0:00:00 (xfr#2, to-chk=1/4) backup1/linux-image-4.3.0-040300-generic_4.3.0-040300.201511020949_amd64.deb 56,563,302 100% 11.26MB/s 0:00:04 (xfr#3, to-chk=0/4) sent 85 bytes received 66,979,455 bytes 7,050,477.89 bytes/sec total size is 66,992,688 speedup is 1.00.
Давайте проверим содержимое папки /backup1/
на удаленном сервере.
$ sudo ls -l /backup1/
Пример вывода
total 65428 -rw-r--r-- 1 root root 9676510 Dec 9 13:44 linux-headers-4.3.0-040300_4.3.0-040300.201511020949_all.deb -rw-r--r-- 1 root root 752876 Dec 9 13:44 linux-headers-4.3.0-040300-generic_4.3.0-040300.201511020949_amd64.deb -rw-r--r-- 1 root root 56563302 Dec 9 13:44 linux-image-4.3.0-040300-generic_4.3.0-040300.201511020949_amd64.deb
Теперь давайте проверим содержимое папки /backup2/
на локальной системе.
$ ls /home/sk/backup2/
Пример вывода
backup1
Как вы видите в вышедшем выводе, содержимое /backup1/
успешно копировано в директорию /home/sk/backup2/
локальной системы.
Проверка содержимого папки /backup1/
:
$ ls /home/sk/backup2/backup1/
Пример вывода
linux-headers-4.3.0-040300_4.3.0-040300.201511020949_all.deb linux-image-4.3.0-040300-generic_4.3.0-040300.201511020949_amd64.deb linux-headers-4.3.0-040300-generic_4.3.0-040300.201511020949_amd64.deb
Видите, удалённая и локальная системы имеют те же файлы.
Заключение
Синхронизация файлов/папок с использованием Rsync с SSH является не только простой, но и быстрой и безопасной методикой. Если вам перед собой установлен брандмауэр, который запрещает порт 22, не волнуйтесь. просто измените дефолтный порт и синхронизируйте файлы как профессионал.
Source:
https://www.tecmint.com/sync-files-using-rsync-with-non-standard-ssh-port/