У меня есть клиент, которому нужен ftp
доступ к определенному файлу на одном из наших серверов.
Сервер работает
CentOS 7
вход в систему root отключен
вход по паролю отключен (для входа требуется ключ ssh)
ssh через нестандартный порт
Возможно ли предоставить клиенту ftp-доступ к файлу? Мне кажется, что я выполнил все "лучшие практики" по защите серверов, а ftp, похоже, может подорвать некоторые из них.
Я что-то упускаю? Придется ли нам искать другой подход для обеспечения безопасности?
решение1
FTP изначально небезопасен, поскольку передает все открытым текстом.
Так как у вас уже есть ssh, то используйте либоscpилиsftpОба они используют протокол ssh. Вы даже можете использовать клиенты вроде filezilla для подключения к вашему sftp-серверу.
Если еще не включено, вы можете добавить
Subsystem sftp /usr/lib/openssh/sftp-server
в ваш файл /etc/ssh/sshd_config на so.
Вы можете дополнительно заблокировать определенного пользователя, добавив директивы в sshd_config (если это необходимо)
Match User alice
# Force the connection to use SFTP and chroot to the required directory.
ForceCommand internal-sftp
ChrootDirectory /home/alice
# Disable tunneling, authentication agent, TCP and X11 forwarding.
PermitTunnel no
AllowAgentForwarding no
AllowTcpForwarding no
X11Forwarding no
Это позволит Алисе подключиться только с помощью sftp, а не ssh/scp.
решение2
FTPS (ftp через SSL) существует, но рассмотрите возможность использования SCP, если SSH уже существует.