Linux下限制Shell:Rssh和Scponly
限制Shell,正如Rsh和Scponly讓系統管理員限制Linux用戶可以做哪些操作,你可以創建用戶,將被允許通過Scp復制文件,但不會被允許登錄到系統的命令行。這是非常重要的安全功能,應考慮每個系統管理員用戶,以防止未經授權的活動,例如通過SSH。
如果你有一些在線存儲,用于上傳超過Scp/ SSH或rsync從遠程主機的備份數據,那么,強烈建議使用限制彈這些傳入的連接,并確保即使攻擊者得到了用戶名/密碼(或密鑰),那么他(或她)將無法打入您的系統。
Scponly是極其簡單的受限Shell,用戶帳戶具有Scponly的二進制的殼將無法做任何事情將數據從遠程主機通過Scp協議或通過rsync/ Scp的除外。 RSSH提供多一點的功能:您可以限制用戶使用選定的協議,如Scp,SFTP,rsync的,CVS或Rdist的Chroot環境或不。
安裝:
我更喜歡使用yum或aptitude來安裝這類軟件像RSSH或Scponly的,最快的方法就是嘗試以下其中一項命令,根據您的需要:
- apt-get install rssh
- apt-get install Scponly
- yum install rssh
- yum install Scponly
如果有問題,在你的Linux發行版的信息庫中找到所需的受限Shell,然后你應該下載源代碼,并做一些。/ configure時,和make install。這里是鏈接:latest rssh .tar.gz, latest Scponly .tgz.
配置:
Scponly的,不需要任何配置,開箱,所以你就應該將其設置為一個Shell的用戶帳戶。下面是一些例子。
用Scponly創建一個新的賬號:
- useradd -s /usr/sbin/Scponly user1
用該用戶賬號用rssh作為Shell:
- usermod -s /usr/sbin/rssh user2
/usr/sbin/Scponly是Scponly的二進制可執行文件。
RSSH文本配置文件通常存儲在/etc/rssh.conf中的。您可以設置每個用戶的設置或配置全局限制使用RSSH所有賬目。默認rssh.conf文件有很好的注釋,所以不應該有任何問題,你需要配置RSSH。在同一時間,在這里有一些例子。
如果你想限制所有用戶Scp和rsync的才應該取消注釋在rssh.conf行,象下面這樣:
- allowScp
- #allowsftp
- #allowcvs
- #allowrdist
- allowrsync
現在來每個用戶的例子。允許用戶彼得是僅使用Scp協議,對以下符合在rssh.conf將做到這一點:
- user=sbk:022:00001:
允許用戶ann只可以Scp和rsync:
- user=sbk:022:10001:
正如你可以看到每個用戶設置啟用的協議指定為11000(Scp,SFTP),11111(Scp,SFTP,CVS,rdist的,rsync等)或00000(無協議啟用)。在上面的例子中指定的umask022。
測試:
讓我們假設你已經創建user1和只有Scp和rsync的使用RSSH啟用。嘗試訪問user1的帳號下的SSH服務器通過將結束與下面的輸出:
- artiomix$ ssh user1@1.2.3.4
- user1@1.2.3.4's password:
- This account is restricted by rssh.
- Allowed commands: Scp rsync
- If you believe this is in error, please contact your system administrator.
- Connection to 1.2.3.4 closed.
與此同時Scp過戶工作沒有問題:
- artiomix$ Scp -P 23451 /etc/test.file user1@1.2.3.4:/tmp
- user1@1.2.3.4's password:
- test.file 100% 983 1.0KB/s 00:00
進一步閱讀:
Rssh支持Chroot環境對于Rsync、Rsync和其他的傳輸協議。這意味著你不僅可以限制用戶通過命令他們也可以使用他們到達的文件系統。例如,User1可以可以chroot/chroot_user1,所以它不能被用來復制的東西從/etc目錄的服務器或/var/ www下面。這里有一個Chroot在RSSH中是不錯的手冊。
原文出處:http://www.linuxscrew.com/2012/07/05/linux-restricted-Shells-rssh-and-Scponly/