У меня есть сервер, который позволяет некоторым пользователям моих сервисов загружать файлы с помощью SFTP. Когда я говорю о пользователях, я не могу сказать ни кто они, ни сколько из них имеют доступ.
Я настроил доступ следующим образом:
PasswordAuthentication yes
.sftp
который вынужден использовать internal-sftp
.ChrootDirectory %h
который /srv/sftp/incoming
./bin/false
.Могу ли я еще что-нибудь сделать, чтобы защитить SFTP-доступ для такого круга пользователей?
На машине работает ArchLinux. Веб-сервер nginx
но файлы в /srv/sftp/incoming
не обслуживаются веб-сервером. Это только для внутреннего использования.
Вы можете настроить SSH-ключи для каждого пользователя, поэтому они должны использовать закрытый ключ для доступа к SFTP-серверу. Позвольте клиентам самостоятельно генерировать закрытый и открытый ключ и позвольте им отправлять общественный ключ к вам, так что вы можете добавить его в ~/.ssh/authorized_keys
файл.
Конечно, вы можете сгенерировать закрытый и открытый ключи самостоятельно, но это означает, что вам нужно каким-то образом отправить закрытый ключ клиенту, что делает его небезопасным.
ssh-keygen -t rsa
Когда ключи настроены, вы можете отключить вход по паролю на /etc/ssh/sshd_config
поэтому они должны использовать закрытый ключ для доступа к серверу.
PasswordAuthentication no