Сервер Linux со следующим программным обеспечением:
- Ubuntu 10.04 LTS x64
- Linux kernel 2.6.38
Требуется следующая конфигурация / программное обеспечение:
- SSH through rsa key authentication
- SFTP with the following properties:
- Single user
- Access to ONLY /var/www (no home directory what so ever)
- Rsa key authentication
Сервер будет в Интернете, поэтому он должен быть безопасным. Как я могу это сделать правильно? Я застрял с конфигурацией пользователя SFTP, он может получить доступ к FTP, но ничего не писать, а также не загружать. Я предполагаю, что что-то не так с chown или разрешения не установлены должным образом, я просто не могу понять, что вызывает эту проблему.
sudo apt-get install openssh-server
sudo mkdir /var/www
sudo groupadd sftp_users
sudo useradd -d "/var/www" --groups sftp_users -s /bin/false -p '!' "root_sftp"
sudo passwd root_sftp
sudo chmod 751 /var/
sudo chmod 770 /var/www
sudo chown root:root_sftp /var/www
sudo nano /etc/ssh/sshd_config
Добавлены / изменены следующие вещи в файл sshd_configuration
PermitRootLogin no
AuthorizedKeysFile /etc/ssh/authorized_keys
PermitEmptyPasswords no
PasswordAuthentication yes
Subsystem sftp internal-sftp
Match User root_sftp
ChrootDirectory /var/www
ForceCommand internal-sftp
X11Forwarding no
AllowTcpForwarding no
PermitRootLogin no
AllowAgentForwarding no
И снова проблема в том, что пользователь может войти в систему с помощью ключа, SSH также работает отлично, но SFTP не работает должным образом.
Пользователь может войти в систему с помощью SFTP (я использовал filezilla), но тогда он не может загрузить и т. Д. Кажется, что у пользователя есть только бит выполнения (--x или 1)
Я очень надеюсь, что кто-то может мне помочь, я уже долго настраивал. Спасибо за помощь и ваше время.
Извлеченные разрешения root, / var и / var / www
# ls -lad / /var /var/www
drwxr-xr-x 22 root root 4096 2012-03-13 22:59 /
drwxr-x--x 15 root root 4096 2012-03-13 23:04 /var
drwxrwx--- 3 root root_sftp 4096 2012-03-13 23:15 /var/www
Каталог / var / www пуст.
Как root:
mkdir /var/www/files
chown root_sftp:sftp_users /var/www/files
Может ли ваш пользователь SFTP помещать файлы в то, что будет отображаться под chroot как / files? Я не припомню сразу, но думаю, что вы не сможете писать против очевидного / из-за chroot jail.
Обновить:
Ах, это на самом деле на странице руководства для sshd_config:
ChrootDirectory Specifies a path to chroot(2) to after authentication. This path, and all its components, must be root-owned directories that are not writable by any other user or group.
Итак, то, что вы указываете как ChrootDirectory в / etc / ssh / sshd_config, не может быть записано. Вы можете переосмыслить настройку своего каталога, так что корень документа для вашего веб-сайта - /var/www/example.com, где подкаталог example.com доступен для записи пользователем SFTP.