SFTP (SSH File Transfer Protocol) – это защищенный файловый протокол для передачи файлов между двумя хостами по зашифрованному соединению. Он также позволяет выполнять различные файловые операции над удаленными файлами и возобновлять передачу файлов.
SFTP можно использовать в качестве замены устаревшего протокола FTP. Он имеет все функции FTP, но с более безопасным подключением.
В этой статье объясняется, как изменить порт SFTP по умолчанию в Linux. Мы также покажем вам, как настроить брандмауэр, чтобы разрешить на новом порту.
Не путайте SFTP с FTPS. Оба протокола служат одной и той же цели. Однако FTPS расшифровывается как FTP Secure и является расширением стандартного протокола FTP с поддержкой TLS.
SFTP является подсистемой SSH и обеспечивает тот же уровень безопасности, что и SSH.
Порт SFTP по умолчанию – 22.
Изменение порта SFTP/SSH по умолчанию добавляет дополнительный уровень безопасности вашему серверу, снижая риск автоматических атак.
Лучший способ защитить ваш сервер от атак – это настроить брандмауэр, чтобы разрешить доступ к порту 22 только с доверенных хостов, и настроить аутентификацию на основе ключей SSH.
Следующие шаги описывают, как изменить SSH-порт на компьютерах Linux.
В Linux номера портов ниже 1024 зарезервированы для известных служб и могут быть связаны только с правами root. Хотя вы можете использовать порт в диапазоне 1-1024 для службы SSH, чтобы избежать проблем с распределением портов, рекомендуется выбирать порт выше 1024.
В этом примере показано, как изменить порт SFTP/SSH на 4422, но вы можете выбрать любой порт по своему вкусу.
Перед изменением порта SFTP/SSH вам необходимо открыть новый порт в брандмауэре.
Если вы используете 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
Конфигурация сервера SSH хранится в файле /etc/ssh/sshd_config. Откройте файл в текстовом редакторе:
sudo vim /etc/ssh/sshd_config
Поиск строки, начинающейся с Port 22. Обычно эта строка закомментирована с использованием #(символа hash). Удалите хэш # и введите новый номер порта SSH:
/etc/ssh/sshd_config
Port 4422
Будьте очень осторожны при редактировании файла конфигурации. Неправильная конфигурация может помешать запуску службы 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.121.108:4422 192.168.121.1:57638 tcp LISTEN 0 128 [::]:4422 [::]:*
Чтобы указать номер порта, вызовите команду sftp с параметром -P, за которым следует новый номер порта:
sftp -P 4422 username@remote_host_or_ip
Если вы используете SFTP-клиент с графическим интерфейсом, просто введите новый порт в клиентском интерфейсе.
SFTP – порт по умолчанию – 22. Тем не менее, вы можете изменить порт на любой другой номер.
Если вы регулярно подключаетесь к нескольким системам, вы можете упростить рабочий процесс, определив все свои подключения в файле конфигурации SSH.
Не стесняйтесь оставлять комментарии, если у вас есть какие-либо вопросы.