您好,登錄后才能下訂單哦!
很多網友寫了不少關于ssh如何使用pam chroot限制遠程登錄用戶訪的文章,不過多少都有些問題,導致不能正常使用,筆者經過研究,將ssh如何使用pam_chroot模塊的方法寫出來,幫著大家學習.
關于Linux系統的PAM機制這里不再介紹,只給出實現步驟:
1.保證當前安裝的openssh支持pam,編譯時需要帶有--with-pam.如果編譯時沒有--with-pam以后想要啟用pam時,需要修改配置文件sshd_config,將該文件中的”UsePAM no”改為”UsePAM yes”,啟用這個選項后重啟ssh,會提示錯誤: ”Unsupported option UsePAM”.如果帶有—with-pam,還需要安裝庫pam-devel,否則調用./configure時會找不到PAM.h.
2.創建用戶push,設置密碼,必須設置密碼,否則不能登錄.
3.創建/tmp/test目錄作為用戶push的虛擬根目錄.
4.將/bin和/lib64拷貝到/tmp/test,注意如果不是64位系統則拷貝/lib目錄:
cp -a /bin /tmp/test/ 和 cp -a /lib64 /tmp/test/
5.將下面的腳本拷貝到/home/test設置可執行,運行.
#!/bin/sh CHROOT_DIR="/home/test" mkdir -p $CHROOT_DIR/{dev,proc,dev/pts} mount proc $CHROOT_DIR/proc -t proc #必須創建這個proc文件系統,用戶登錄后可以看到這個目錄中有很多文件/子目錄 mount devpts $CHROOT_DIR/dev/pts -t devpts #devpts文件系統,提供訪問終端的接口 mknod $CHROOT_DIR/dev/ptmx c 5 2 #必須有,用戶登錄后要使用它,作為作為偽終端的master設備. chmod 666 /dev/ptmx mkdir $CHROOT_DIR/{home,home/push} #必不可少,用戶目錄 chmod ugo+rw $CHROOT_DIR/home/push mkdir lib64 cp -a /lib64/* lib64/ #必不可少,提供bash運行所需要的庫,以及其它程序所需要的庫. #這些文件如果沒有,不會影響登錄,但登錄不能運行這些命令 mkdir bin cp -a /bin/rmdir bin/ cp -a /bin/rm bin/ cp -a /bin/bash bin/ cp -a /bin/mkdir bin/ cp -a "/bin/pwd" bin/ cp -a /bin/ls bin/ cp -a /bin/bash bin/ #必須要有,登錄后要根據這個文件查詢用戶信息.如果沒有這個,sshd調試時會出現錯誤:login_init_entry: Cannot find user "push" #這個錯誤說明找不到用戶. mkdir etc cp -a /etc/passwd etc/
6.openssh的配置文件sshd_config中添加UsePAM yes.
7.打開文件/etc/pam.d/sshd,改為如下的內容:
auth required pam_unix.so
account required pam_unix.so
session required pam_chroot.so
8.打開文件/etc/security/chroot.conf,添加”push /home/test”
9.重啟sshd
利用遠程登錄工具登錄即可.
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。