Введение
SFTP (протокол передачи файлов SSH) — это безопасный файловый протокол для передачи файлов между двумя хостами по зашифрованному соединению. Он также позволяет выполнять различные удаленные операции с файлами и возобновлять передачу файлов.
SFTP можно использовать в качестве замены устаревшему протоколу FTP. Он имеет все функции FTP, но с более безопасным соединением.
В этой статье объясняется, как изменить порт SFTP по умолчанию в Linux. Мы также покажем вам, как настроить брандмауэр, чтобы разрешить новый порт.
Не путайте SFTP с FTPS. Оба протокола служат одной цели. Однако FTPS означает FTP Secure и является расширением стандартного протокола FTP с поддержкой TLS.
Стандартный порт SFTP
SFTP является подсистемой SSH и обеспечивает тот же уровень безопасности, что и SSH.
Порт SFTP по умолчанию — 22.
Изменить порт SFTP
Изменение порта SFTP/SSH по умолчанию добавляет серверу дополнительный уровень безопасности, снижая риск автоматических атак.
Лучший способ защитить сервер от атак — настроить брандмауэр так, чтобы доступ к порту 22 разрешался только доверенным хостам, и настроить аутентификацию на основе ключей SSH.
Следующие шаги описывают, как изменить порт SSH на компьютерах с Linux.
Выберите новый номер порта
В Linux номера портов ниже 1024 зарезервированы для известных служб и могут быть связаны только с root. Хотя для службы SSH можно использовать порт в диапазоне 1–1024, чтобы избежать проблем с распределением портов, рекомендуется выбирать порт больше 1024.
В этом примере показано, как изменить порт SFTP/SSH на 4422, но вы можете выбрать любой порт, который вам нравится.
Настройте брандмауэр
Перед изменением порта SFTP/SSH вам необходимо открыть новый порт в брандмауэре.
Если вы используете UFW, брандмауэр UFW по умолчанию в Ubuntu, выполните следующую команду, чтобы открыть порт:
sudo ufw allow 4422/tcp
В CentOS инструментом управления брандмауэром по умолчанию является FirewallD. Чтобы открыть дверь, введите следующие команды:
sudo firewall-cmd --permanent --zone=public --add-port=4422/tcp
sudo firewall-cmd --reload
Пользователи CentOS также должны настроить правила SELinux, чтобы разрешить новый порт SSH:
sudo semanage port -a -t ssh_port_t -p tcp 4422
Если вы используете другой дистрибутив Linux, на котором работает iptables, чтобы открыть новый порт, выполните:
sudo iptables -A INPUT -p tcp --dport 4422 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
Настроить SFTP/SSH
Конфигурация сервера SSH хранится в /etc/ssh/sshd_config
. Откройте файл в текстовом редакторе:
sudo vim /etc/ssh/sshd_config
Найдите строку, начинающуюся с Port 22
. Обычно эта строка закомментирована символом #
. Удалите хэш #
и введите новый номер порта SSH:
Будьте очень осторожны при редактировании файла конфигурации. Неправильная конфигурация может помешать запуску службы SSH.
После этого сохраните файл и перезапустите службу SSH, чтобы изменения вступили в силу:
sudo systemctl restart ssh
В CentOS служба SSH называется sshd
:
sudo systemctl restart sshd
Убедитесь, что демон SSH прослушивает новый порт:
ss -an | grep 4422
Вывод должен выглядеть так:
tcp LISTEN 0 128 0.0.0.0:4422 0.0.0.0:*
tcp ESTAB 0 0 192.168.111.111:4422 192.168.111.1:41438
tcp LISTEN 0 128 [::]:4422 [::]:*
Используйте новый порт SFTP
Чтобы указать номер порта, вызовите команду sftp
с параметром -P
, за которым следует новый номер порта:
sftp -P 4422 username@remote_host_or_ip
Если вы используете SFTP-клиент с графическим интерфейсом, просто введите новый порт в клиентском интерфейсе.
Вывод
Порт SFTP по умолчанию — 22. Однако вы можете изменить порт на желаемый номер.
Если вы регулярно подключаетесь к нескольким системам, вы можете упростить рабочий процесс, определив все подключения в файле конфигурации SSH.