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

SFTP для chroot и SSH для управления системой в одном конфиге?

У нас есть веб-сервер, на котором пользователям разрешено загружать (SFTP) большие файлы в среде chroot. Мы также хотим иметь возможность использовать SSH для управления этим сервером.

В нашей старой ситуации мы использовали системный sshd и среду chroot с отдельным запущенным внутри sshd. Я надеялся, что смогу упростить конфигурацию с помощью «новой» опции ChrootDirectory.

Наш сервер имеет два IP-адреса, один для общего доступа, а другой для внутреннего доступа. Возможно ли, чтобы один sshd прослушивал два отдельных IP-адреса / интерфейса, но обрабатывал их по-разному? Во всей документации, которую я прочитал, кажется, что можно различать только пользователей или группы, но не IP-адреса / интерфейсы.

Если это невозможно, то является ли установка двойного sshd лучшим вариантом, следует ли мне улучшить управление пользователями, чтобы отфильтровать их по группе, или есть более элегантный способ настроить такой сервер?

Вы могли бы использовать Match в обратном порядке. Chroot по умолчанию, а затем отменяет директиву при подключении из внутренней сети.

ChrootDirectory /chroot/somedir
Match Address 10.0.0.0/24
    ChrootDirectory none

Однако вы должны учитывать последствия принятия решений о безопасности в сетях. Включая возможность аутентифицированного пользователя, создающего новый сеанс через loopback, чтобы обойти такие политики. Как правило, было бы безопаснее определить User и Group если возможно.

(править: напечатано перед чтением)

В итоге я использовал следующее решение:

Subsystem sftp internal-sftp
ChrootDirectory <my chroot directory>
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp

Match User <my admin account> Address <my ip>
  ChrootDirectory none
  X11Forwarding yes
  AllowTcpForwarding yes
  ForceCommand /bin/bash

Match User <my admin account>
  ForceCommand none

Так что это смесь ответов, которые я видел раньше, и я сделал два блока Match, чтобы люди с других IP-адресов, но пытающиеся использовать мою учетную запись администратора, не могли использовать sftp или ssh. Я буду внимательно следить за активностью на сервере, чтобы увидеть, сработает ли это, но внутренние тесты выглядят многообещающими.

Я создал группу под названием sftpuplod. В эту группу входит каждый клиент без ssh-доступа, который может использовать sftp:

# sshd_config:
Subsystem sftp internal-sftp
Match group sftpupload
    ChrootDirectory /home
    X11Forwarding no
    AllowTcpForwarding no
    ForceCommand internal-sftp

Вы также можете использовать ChrootDirectory% h для настоящего chroot в ~

увидеть страница руководства