Назад | Перейти на главную страницу

SFTP через порт 22 или vsftp через порт 20/21 - лучший способ защитить FTP-доступ к серверу

Я прочитал много статей и вопросов об этом по научной фантастике, но до сих пор не могу понять, является ли то, как я это делаю, (а) возможным и (б) безопасным.

Сервер работает на AWS EC2, и весь доступ осуществляется через ключи SSH. Я также открываю порт 22 только для своего собственного IP-адреса, но, похоже, если я хочу разрешить другим доступ через SFTP, мне нужно будет открыть порт 22 для всего мира (или потратить свои дни на управление правилами брандмауэра для динамических IP-адресов). Неужели это лучше, чем, скажем, vsftp на 21 порту?

Предполагая, что на данный момент лучше всего подходит SFTP на порту 22, я сделал следующее:

Теперь я застрял в кажущейся уловке 22, которая, я подозреваю (надеюсь), просто неправильная конфигурация. Без блока chroot в sshd_config я могу подключиться либо через Putty, либо через SFTP-клиент, и все в порядке - кроме доступа ко всей файловой системе. Установив блок chroot на место, я Could not chdir to home directory /home/ftp ошибка во время аутентификации, так как теперь /home/ftp/.ssh папка недоступна, поэтому ключи не работают. это старый вопрос / ответ предлагает поставить .ssh папка внутри /var/www/html/ папка, но мне это кажется очень странным - действительно ли это нормально, учитывая, что это доступно с веб-сервера?

Есть ли более «правильный» способ подключения пользователя через SSH-ключ, а затем ограничить его только / var / www / html?

В вашей конфигурации OpenSSH вы можете поместить некоторую конфигурацию в блоки соответствия. Это позволяет вам устанавливать различную конфигурацию для разных пользователей / групп / сетей.

Таким образом, вы можете поместить всех своих пользователей sftp в группу sftpd, а затем добавить такой блок. Этот принудительный chroot и принудительный sftp будут применяться только к этой группе. После этого ваша основная учетная запись сможет использовать оболочку как обычно.

Match Group sftp
    ChrootDirectory /var/www/
    AllowTCPForwarding no
    X11Forwarding no
    ForceCommand internal-sftp

.ssh внутри папки / var / www / html /, но мне это кажется очень странным - действительно ли это нормально?

Это не самое страшное. Можно было бы надеяться, что эти пользователи не устанавливают исходящие соединения, поэтому в этой папке не будет никаких пар ключей и известных_хостов, оставив только файл authorized_keys. В котором есть только открытые ключи. Открытые ключи являются общедоступными, их использование не должно быть особенно опасным. Хотя было бы неплохо установить в каталоге chroot для учетных записей sftp хотя бы один каталог из корневого веб-сайта, чтобы файл .ssh не обслуживался публично и за пределами корневого веб-сайта. Если ваш chroot должен был /var/www и вы устанавливаете корень для веб-сервера в /var/www/html казалось бы, удовлетворив ваше беспокойство