差異處
這裏顯示兩個版本的差異處。
兩邊的前次修訂版 前次修改 下次修改 | 前次修改 | ||
tech:jailkit [2008/05/29 16:42] – jonathan | tech:jailkit [2010/02/08 17:02] (目前版本) – jonathan | ||
---|---|---|---|
行 1: | 行 1: | ||
+ | ====== 使用 jailkit 限制使用者只能使用 scp/sftp 與特定目錄功能 ====== | ||
+ | |||
+ | * jailkit 官方網址 : http:// | ||
+ | |||
+ | 因為最近有需要提供一個 sftp 的上傳檔案服務,但是不希望使用者可以用到 ssh 登入操作的功能,在 Google 大神的指示下,先找到了 [[http:// | ||
+ | |||
+ | ===== - 下載與安裝 ===== | ||
+ | * 以下是針對在 CentOS 5 64bit 實際執行的語法 | ||
+ | * jailkit 版本為 2.7 | ||
+ | < | ||
+ | su - root | ||
+ | cd /tmp | ||
+ | wget http:// | ||
+ | tar -zxvf jailkit-2.7.tar.gz | ||
+ | cd jailkit-2.7 | ||
+ | ./configure | ||
+ | make | ||
+ | make install | ||
+ | cp extra/ | ||
+ | chmod a+x / | ||
+ | chkconfig jailkit on | ||
+ | </ | ||
+ | < | ||
+ | * 如果有安裝 rpmforge 可以直接< | ||
+ | * 然後設定自動啟動< | ||
+ | </ | ||
+ | |||
+ | ===== - 建立虛擬根目錄 ===== | ||
+ | * 預計讓所有 sftp 使用者上來的根目錄為 / | ||
+ | < | ||
+ | jk_init -v -j / | ||
+ | jk_init -v -j / | ||
+ | </ | ||
+ | |||
+ | ===== - 建立 sftp 使用者 ===== | ||
+ | * 預計建立 sftpuser 當預設使用者以及 sftpuser1, sftpuser2 兩位實際使用者, | ||
+ | < | ||
+ | useradd sftpuser | ||
+ | useradd -g sftpuser sftpuser1 | ||
+ | useradd -g sftpuser sftpuser2 | ||
+ | passwd sftpuser <- 設定 sftpuser 密碼 | ||
+ | passwd sftpuser1 <- 設定 sftpuser1 密碼 | ||
+ | passwd sftpuser2 <- 設定 sftpuser2 密碼 | ||
+ | jk_jailuser -m -j / | ||
+ | jk_jailuser -m -j / | ||
+ | jk_jailuser -m -j / | ||
+ | </ | ||
+ | * 建立完成之後可以在 /etc/passwd 看到如下的結果: | ||
+ | < | ||
+ | : | ||
+ | sftpuser: | ||
+ | sftpuser1: | ||
+ | sftpuser2: | ||
+ | </ | ||
+ | * 在 / | ||
+ | < | ||
+ | : | ||
+ | sftpuser: | ||
+ | sftpuser1: | ||
+ | sftpuser2: | ||
+ | </ | ||
+ | |||
+ | ===== - 建立虛擬 log device ===== | ||
+ | * jk_lsh 可能會出現一些訊息紀錄, | ||
+ | < | ||
+ | service syslog stop | ||
+ | syslogd -a / | ||
+ | service syslog start | ||
+ | </ | ||
+ | * 這樣應該會自動更改到 / | ||
+ | < | ||
+ | [/ | ||
+ | base=512 | ||
+ | peak=2048 | ||
+ | interval=10 | ||
+ | </ | ||
+ | * 然後重新啟動 jailkit 的 daemon | ||
+ | < | ||
+ | service jailkit restart | ||
+ | </ | ||
+ | |||
+ | ===== - 設定 sftpuser 群組使用者權限 ===== | ||
+ | * 編輯 / | ||
+ | < | ||
+ | [group sftpuser] | ||
+ | paths= /usr/bin, /usr/lib/ | ||
+ | executables= / | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | * 這樣的設定針對 **[[tech: | ||
+ | <code sh> | ||
+ | cp id_dsa.pub / | ||
+ | </ | ||
+ | 將權限設定正確 | ||
+ | <code sh> | ||
+ | chown -R sftpuser: | ||
+ | chmod 600 / | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | ===== 參考資料 ===== | ||
+ | * [[http:// | ||
+ | |||
+ | {{tag> | ||