суббота, 18 декабря 2010 г.

SFTP jail on linux

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

На RHEL5.5 решить это можно так:

1. Ставим OpenSSH поновее (собираем если не нашли готовых rpm'ок)

# yum install gcc
# yum install openssl-devel
# yum install pam-devel
# yum install rpm-build

# wget ftp://mirror.planetunix.net/pub/OpenBSD/OpenSSH/portable/openssh-5.2p1.tar.gz

# tar xvfz openssh-5.2p1.tar.gz
# cp openssh-5.2p1/contrib/redhat/openssh.spec /usr/src/redhat/SPECS/
# cp openssh-5.2p1.tar.gz /usr/src/redhat/SOURCES/
# cd /usr/src/redhat/SPECS/
# perl -i.bak -pe 's/^(%define no_(gnome|x11)_askpass)\s+0$/$1 1/' openssh.spec
# rpmbuild -bb openssh.spec
# cd /usr/src/redhat/RPMS/`uname -i`

# rpm -Uvh openssh*
# service sshd restart


2. Создаем юзеров:
#groupadd sftp
#useradd -g sftp -d /home/user1
#useradd -g sftp -d /home/user2
#passwd user1
#passwd user2

3. Правим /etc/ssh/sshd_config :
#Subsystem sftp /usr/libexec/openssh/sftp-server

Subsystem sftp internal-sftp
Match Group sftp
ChrootDirectory /sftp/%u
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
4. Создаем структуру каталогов:

#mkdir -p /sftp/user1/home/user1
#mkdir -p /sftp/user2/home/user2
#chmod -R 755 /sftp
#chown user1:sftp /sftp/user1/home/user1
#chown user2:sftp /sftp/user2/home/user2

Все, перечитываем конфиг sshd и должно начать работать.


Комментариев нет:

Отправить комментарий