使用 rssh 來解決只能使用 scp/sftp 與限制權限功能
- rssh 官方網址 : http://www.pizzashack.org/rssh/
- 本頁內容目前測試還是無法正常運作
- 僅留下提供未來有機會需要時的參考資訊
- 實際完成此功能請參考 使用 jailkit 限制使用者只能使用 scp/sftp 與特定目錄功能
- 下載與安裝
- 以下是針對在 CentOS 5 32bit 實際執行的語法
- rssh 版本為 2.3.2
su - root cd /tmp wget http://nchc.dl.sourceforge.net/sourceforge/rssh/rssh-2.3.2.tar.gz tar -zxvf rssh-2.3.2.tar.gz cd rssh-2.3.2 ./configure make make install
- 執行以上指令後就會將 rssh 安裝到 /usr/local/bin/rssh , 可以執行以下語法瞭解相關檔案位置
rssh -v
[root@vm-server rssh-2.3.2]# rssh -v rssh 2.3.2 Copyright 2002-5 Derek D. Martin <rssh-discuss at lists dot sourceforge dot net> rssh config file = /usr/local/etc/rssh.conf chroot helper path = /usr/local/libexec/rssh_chroot_helper scp binary path = /usr/bin/scp sftp server binary = /usr/libexec/openssh/sftp-server cvs binary path = /usr/bin/cvs rdist binary path = /usr/bin/rdist rsync binary path = /usr/bin/rsync
- 參數檔設定
- vi /usr/local/etc/rssh.conf
: allowscp allowsftp #allowcvs #allowrdist #allowrsync :
- 設定登入後只能在自己的目錄內
- 設定 /usr/chroot 為登入後的根目錄
相關檔案如下:
- /usr/bin/scp
- /usr/libexec/openssh/sftp-server
- /usr/local/libexec/rssh_chroot_helper
mkdir -p /usr/chroot/usr/bin cp -p /usr/bin/scp /usr/chroot/usr/bin/ mkdir -p /usr/chroot/usr/libexec/openssh cp -p /usr/libexec/openssh/sftp-server /usr/chroot/usr/libexec/openssh/ mkdir -p /usr/chroot/usr/local/libexec cp -p /usr/local/libexec/rssh_chroot_helper /usr/chroot/usr/local/libexec/rssh_chroot_helper ldd `which scp` 看到一堆相關的 lib 必須複製進去 /usr/chroot 內 mkdir -p /usr/chroot/lib cp -p /lib/ld-linux.so.2 /usr/chroot/lib/ cp -p /lib/libresolv.so.2 /usr/chroot/lib/ cp -p /lib/libcrypto.so.6 /usr/chroot/lib/ cp -p /lib/libutil.so.1 /usr/chroot/lib/ cp -p /lib/libnsl.so.1 /usr/chroot/lib/ cp -p /lib/libcrypt.so.1 /usr/chroot/lib/ cp -p /lib/libcom_err.so.2 /usr/chroot/lib/ cp -p /lib/libdl.so.2 /usr/chroot/lib/ cp -p /lib/libc.so.6 /usr/chroot/lib/ cp -p /lib/libkeyutils.so.1 /usr/chroot/lib/ cp -p /lib/libpthread.so.0 /usr/chroot/lib/ cp -p /lib/libselinux.so.1 /usr/chroot/lib/ cp -p /lib/libsepol.so.1 /usr/chroot/lib/ mkdir -p /usr/chroot/usr/lib cp -p /usr/lib/libz.so.1 /usr/chroot/usr/lib/ cp -p /usr/lib/libgssapi_krb5.so.2 /usr/chroot/usr/lib/ cp -p /usr/lib/libkrb5.so.3 /usr/chroot/usr/lib/ cp -p /usr/lib/libk5crypto.so.3 /usr/chroot/usr/lib/ cp -p /usr/lib/libnss3.so /usr/chroot/usr/lib/ cp -p /usr/lib/libkrb5support.so.0 /usr/chroot/usr/lib/ cp -p /usr/lib/libplc4.so /usr/chroot/usr/lib/ cp -p /usr/lib/libplds4.so /usr/chroot/usr/lib/ cp -p /usr/lib/libnspr4.so /usr/chroot/usr/lib/ mkdir -p /usr/chroot/etc/ cp -p /etc/passwd /usr/chroot/etc/ cp -a /etc/ld.so* /usr/chroot/etc/ mkdir -p /usr/chroot/dev/ service syslog stop /sbin/syslogd -a /usr/chroot/dev/log service syslog start mkdir -p /usr/chroot/home/
- vi /usr/local/etc/rssh.conf
: chrootpath = /usr/chroot :
- 建立使用 rssh 帳號
- Exp. 建立 scusftp 這個帳號只能使用 sftp 與 scp
useradd scusftp -d /usr/chroot/home/scusftp -s /usr/local/bin/rssh passwd scusftp <- 設定密碼
- vi /etc/passwd
: scusftp:x:510:510::/home/scusftp:/usr/local/bin/rssh
- 使用 winscp 測試與驗證
- 如果不設定 chroot 可以正常運作..
- 依據以上將所有相關 lib 複製到 chroot 之後, 目前已不會出現錯誤訊息..但是 sftp 還是會立即登出
- 打算考慮改用 jailkit 來當替代方案
- 使用 winscp 版本 4.1.0 Build 375 測試可以正確登入
- 使用 ssh 登入時會出現以下的錯誤訊息(不允許使用 ssh 操作模式)
This account is restricted by rssh. Allowed commands: scp sftp If you believe this is in error, please contact your system administrator.