http://olivier.sessink.nl/jailkit/index.html
Jailkit is a set of utilities to limit user accounts to specific files using chroot() and or specific commands. Setting up a chroot shell, a shell limited to some specific command, or a daemon inside a chroot jail is a lot easier and can be automated using these utilities.
Jailkit is known to be used in network security appliances from several leading IT security firms, internet servers from several large enterprise organizations, internet servers from internet service providers, as well as many smaller companies and private users that need to secure cvs, sftp, shell or daemon processes.
編譯/安裝
wget http://olivier.sessink.nl/jailkit/jailkit-2.17.tar.gz tar zxvf jailkit-2.17.tar.gz cd jailkit-2.17 ./configure make make install cp -rp extra/jailkit /etc/init.d/jailkit chmod +x /etc/init.d/jailkit chkconfig jailkit on service jailkit start
建立 chroot 目錄 (我只要能夠 scp 及 sftp ,不要 ssh),我要把使用者皆限制在 /home/chrooted 裡面
jk_init -v -j /home/chrooted sftp scp jk_lsh
建立使用者
useradd sftpuser passwd sftpuser # 把 /home/sftpuser 關進 /home/chrooted 裡 jk_jailuser -m -j /home/chrooted sftpuser
設定權限,編輯 /home/chrooted/etc/jailkit/jk_lsh.ini 加入
[sftpuser] paths= /usr/bin, /usr/lib/ executables= /usr/bin/scp, /usr/libexec/openssh/sftp-server
scponly 也可以作得到
不過 scponly 只有 2008 年的 4.8 版,而 jailkit 則還有在更新 (2014-01-03 的 2.17 版本)
scponly 登入的狀況是這樣子
而 jailkit 目錄是長這樣子
jailkit 假如新增另一使用者在同一個 /home/chrooted 裡頭的話,就會看到彼此使用者的名字
參考
- http://olivier.sessink.nl/jailkit/howtos_sftp_scp_only.html
- http://www.ichiayi.com/wiki/tech/jailkit
在測試時遇到一個情況,
使用 CentOS 6.4 x64,yum 安裝 jailkit (2.11 版本) ,但測試 sftp 登入時,卻可以跑到家目錄以外的地方 (是 /home/chrooted 以外了),找不到方式處理掉,後來用 tarball 安裝 (2.17 版本) 就正常 ok 了,
是沒試過相同 2.11 版本的 tarball 是否會跟 yum 的 2.11 版本有相同的問題
留言