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

Как защитить SFTP без повторной компиляции OpenSSH?

Я предполагаю, что у многих из вас есть производственная среда, и возможность перекомпиляции программного пакета, такого как OpenSSH, который широко используется, не является вариантом, по крайней мере, постоянно. Решение в Защита SFTP требует, чтобы вы перестроили OpenSSH хотя бы для CentOS_5.1.

Я надеялся получить другой способ запретить моим конечным пользователям (с помощью sftp) не видеть другие каталоги, кроме их разрешенной папки. Аналогично режиму изоляции на FTP-сервере Windows.

После различных поисков в Google я подумал о том, чтобы поискать здесь, но ничего не нашел, кроме сообщения выше. Любые идеи?

  • OpenSSH поддерживает условную конфигурацию на основе пользователя, группы или адреса
  • OpenSSH также имеет интегрированный sftp-сервер, который не зависит от chroot для конфигурации, библиотек, ...

Этот метод не требует дополнительного обслуживания chroot!

Это также более безопасно, поскольку внутри тюрьмы не требуются исполняемые файлы или библиотеки.

Добавить это в ваш sshd_config:

Match Group mysftpgroup
        ChrootDirectory %h
        ForceCommand internal-sftp
        AllowTcpForwarding no
        X11Forwarding no

В этом случае пользователи в группе mysftpgroup UNIX не должны иметь возможность использовать какие-либо другие службы SSH, кроме SFTP. Конечно, проверьте это для вашей конкретной конфигурации!

Обратите внимание, что «раздел» соответствия заканчивается либо новым разделом Match, либо концом файла конфигурации. Смотрите man sshd_config для других опций. Поиск в Google страницы руководства может привести к появлению устаревшей версии.

Если я правильно понял ваш вопрос, вы можете сделать это с помощью файлов конфигурации. Видеть этот вопрос ServerFault для помощи в настройке chroot в конфиге. Набор инструментов OpenSSH недавно увидел несколько действительно хороших опций, доступных в конфигурациях. Это стоит вашего времени, чтобы прочитать руководства и Вопросы-Ответы, даже если вы внимательно их прочитали год или два назад.

Когда вы Когда-либо нужно перекомпилировать OpenSSH для обеспечения безопасности? Послужной список OpenSSH ведь безопасность - это то, о чем другие проекты (даже связанные с безопасностью) могут только мечтать. Остерегайтесь патчей от третьих лиц, которые думают, что они улучшат безопасность OpenSSH. Не забывайте глупости Debian.

Я понимаю, что вы выбрали Vshell, но мне очень повезло с использованием scponly. Не уверен насчет CentOS, но есть пакет debian, который довольно легко запустить:

sudo aptitude install scponly
sudo dpkg-reconfigure scponly
cd /usr/share/doc/scponly/setup_chroot/
sudo gunzip setup_chroot.sh.gz
sudo chmod +x setup_chroot.sh
sudo ./setup_chroot.sh #this creates the user and home dir
mkdir /home/<user>/dev
mknod -m 666 /home/<user>/dev/null c 1 3 #apparently there's a bug in setup_chroot.sh

Ограничение доступа для пользователей SFTP не должно требовать повторной компиляции openssh.

У вас должна быть возможность установить разрешения домашнего каталога и маска таким образом, что пользователь может видеть только свой собственный домашний каталог.

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

Я думаю, вы здесь говорите о двух разных видах безопасности.

Первый, который требует перекомпиляции (или установки упакованного двоичного файла), - это безопасность сквозной связи. Все, что вы делаете на сервере в отношении файлов / папок, к которым может получить доступ пользователь, не защитит связь между клиент-сервером. На самом деле, если вы не обновляете Openssh, есть вероятность, что кто-то может использовать это как вектор атаки для проникновения на ваш сервер.

Второй - безопасность файлов / папок. Вы можете ограничить настройки папки (chroot или режим изоляции), и это ограничит файлы, к которым может получить доступ зарегистрированный пользователь. Обратите внимание, что это не помогает защитить фактическую передачу файлов.

Надеюсь, это поможет!

То, что вы ищете, это chroot, иначе тюрьма. Настройка может быть несколько сложной, и маловероятно, что необходимые инструменты существуют в виде пакета в репозиториях CentOS по умолчанию. Однако вот учебник по debian, который я использовал раньше, он должен направить вас на правильный путь: www.debian.org/doc/manuals/securing-debian-howto/ap-chroot-ssh-env.en.html

Я стараюсь получить открытый исходный код, прежде чем рекомендовать или даже рассматривать платную версию программного обеспечения. Я ни в коем случае не имею отношения к этой рекомендации, она основана только на моих потребностях. Я потратил слишком много времени, пытаясь найти правильное решение, отвечающее моим требованиям. Я пробовал следующие варианты:

  • Установка OpenSSH 4.9 или выше, которая не сработала по многим техническим причинам.
  • rssh с сайта pizzashack.org
  • тюремщик
  • и упомянутый здесь учебник Debian.

Я уверен, что все вышеперечисленные решения работают нормально, но они не соответствовали моим требованиям для этого проекта. Одним из платных является Vshell Server от VanDyke. Его было легко установить (по крайней мере, пробную версию) и очень легко настроить chroot-доступ для моих пользователей.

Теперь мои пользователи sftp или scp будут видеть только свой домашний каталог и не смогут ничего выполнять. Легко поддерживать, просто добавьте пользователей в группу и назначьте им домашний каталог.