新聞中心
本篇文章給大家分享的是有關(guān)Linux中怎么使用Jailkit管理用戶,小編覺(jué)得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說(shuō),跟著小編一起來(lái)看看吧。
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶,將通過(guò)不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名注冊(cè)、虛擬主機(jī)、營(yíng)銷軟件、網(wǎng)站建設(shè)、四子王網(wǎng)站維護(hù)、網(wǎng)站推廣。
安裝jailkit
代碼如下:
cd /tmp
wget http://olivier.sessink.nl/jailkit/jailkit-2.16.tar.gz
tar xzf jailkit-2.16.tar.gz
cd jailkit-2.16
./configure
make
make install
cp extra/jailkit /etc/init.d/jailkit
chmod u+x /etc/init.d/jailkit
chkconfig jailkit on
初始化chroot環(huán)境
代碼如下:
jk_init -v -j /home/chroot sftp scp jk_lsh netutils extendedshell
service jailkit start
配置Jailed Shell
配置受限環(huán)境:
我們需要建立一個(gè)目錄來(lái)存放所有受限環(huán)境的配置。目錄隨便放在什么地方,比如我們可以創(chuàng)建個(gè)/opt/jail的目錄。
代碼如下:
$ sudo mkdir /opt/jail
這個(gè)目錄應(yīng)為Root所有。用chown改變屬主。
代碼如下:
$ sudo chown root:root /opt/jail
設(shè)置在受限環(huán)境中可用的程序
任何程序想要在受限環(huán)境中執(zhí)行則必須用jk_init命令拷貝到目錄中。
例如:
代碼如下:
$ sudo jk_init -v /jail basicshell
$ sudo jk_init -v /jail editors
$ sudo jk_init -v /jail extendedshell
$ sudo jk_init -v /jail netutils
$ sudo jk_init -v /jail ssh
$ sudo jk_init -v /jail sftp
$ sudo jk_init -v /jail jk_lsh
或一次性解決:
代碼如下:
$ sudo jk_init -v /opt/jail netutils basicshell jk_lsh openvpn ssh sftp
像basicshell, editors, netutils是一些組名,其中包含多個(gè)程序。復(fù)制到j(luò)ail shell中的每個(gè)組都是可執(zhí)行文件、庫(kù)文件等的集合。比如basicshell就在jail提供有bash, ls, cat, chmod, mkdir, cp, cpio, date, dd, echo, egrep等程序。
完整的程序列表設(shè)置,你可以在/etc/jailkit/jk_init.ini中查看。
代碼如下:
jk_lsh (Jailkit limited shell) - 這是一個(gè)重要的部分,必須添加到受限環(huán)境中。
創(chuàng)建將被監(jiān)禁的用戶
需要將一個(gè)用戶放入jail里。可以先創(chuàng)建一個(gè)
代碼如下:
$ sudo adduser robber
Adding user `robber' ...
Adding new group `robber' (1005) ...
Adding new user `robber' (1006) with group `robber' ...
Creating home directory `/home/robber' ...
Copying files from `/etc/skel' ...
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for robber
Enter the new value, or press ENTER for the default
Full Name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n] y
注意:目前創(chuàng)建的是一個(gè)在實(shí)際文件系統(tǒng)中的普通用戶,并沒(méi)有添加到受限環(huán)境中。
在下一步這個(gè)用戶會(huì)被放到受限環(huán)境里。
這時(shí)候如果你查看/etc/passwd文件,你會(huì)在文件最后看到跟下面差不多的一個(gè)條目。
代碼如下:
robber:x:1006:1005:,,,:/home/robber:/bin/bash
這是我們新創(chuàng)建的用戶,最后部分的/bin/bash指示了這個(gè)用戶如果登入了那么它可以在系統(tǒng)上正常的Shell訪問(wèn)
限制用戶
現(xiàn)在是時(shí)候?qū)⒂脩粝拗?br/>
代碼如下:
$ sudo jk_jailuser -m -j /opt/jail/ robber
執(zhí)行上列命令后,用戶robber將會(huì)被限制。
如果你現(xiàn)在再觀察/etc/passwd文件,會(huì)發(fā)現(xiàn)類似下面的最后條目。
代碼如下:
robber:x:1006:1005:,,,:/opt/jail/./home/robber:/usr/sbin/jk_chrootsh
注意:最后兩部分表明用戶主目錄和shell類型已經(jīng)被改變了。現(xiàn)在用戶的主目錄在/opt/jail(受限環(huán)境)中。用戶的Shell是一個(gè)名叫jk_chrootsh的特殊程序,會(huì)提供Jailed Shell。
jk_chrootsh這是個(gè)特殊的shell,每當(dāng)用戶登入系統(tǒng)時(shí),它都會(huì)將用戶放入受限環(huán)境中。
到目前為止受限配置已經(jīng)幾乎完成了。但是如果你試圖用ssh連接,那么注定會(huì)失敗,像這樣:
代碼如下:
$ ssh robber@localhost
robber@localhost's password:
Welcome to Ubuntu 12.04 LTS (GNU/Linux 3.2.0-25-generic x86_64)
* Documentation: https://help.ubuntu.com/
13 packages can be updated.
0 updates are security updates.
*** /dev/sda7 will be checked for errors at next reboot ***
*** /dev/sda8 will be checked for errors at next reboot ***
Last login: Sat Jun 23 12:45:13 2012 from localhost
Connection to localhost closed.
$
連接會(huì)立馬關(guān)閉,這意味著用戶已經(jīng)活動(dòng)在一個(gè)受限制的shell中。
給在jail中的用戶Bash Shell
下個(gè)重要的事情是給用戶在限制環(huán)境中的一個(gè)正確的bash shell。
打開(kāi)下面的文件
/opt/jail/etc/passwd
這是個(gè)jail中的password文件。類似如下
代碼如下:
root:x:0:0:root:/root:/bin/bash
robber:x:1006:1005:,,,:/home/robber:/usr/sbin/jk_lsh
將/usr/sbin/jk_lsh改為/bin/bash
代碼如下:
root:x:0:0:root:/root:/bin/bash
robber:x:1006:1005:,,,:/home/robber:/bin/bash
保存文件并退出。
登入限制環(huán)境
現(xiàn)在讓我們?cè)俅蔚侨胧芟蕲h(huán)境
代碼如下:
$ ssh robber@localhost
robber@localhost's password:
Welcome to Ubuntu 12.04 LTS (GNU/Linux 3.2.0-25-generic x86_64)
* Documentation: https://help.ubuntu.com/
13 packages can be updated.
0 updates are security updates.
*** /dev/sda7 will be checked for errors at next reboot ***
*** /dev/sda8 will be checked for errors at next reboot ***
Last login: Sat Jun 23 12:46:01 2012 from localhost
bash: groups: command not found
I have no name!@desktop:~$
受限環(huán)境說(shuō)'I have no name!',哈哈。現(xiàn)在我們?cè)谑芟蕲h(huán)境中有了個(gè)完整功能的bash shell。
現(xiàn)在看看實(shí)際的環(huán)境。受限環(huán)境中的根目錄實(shí)際就是真實(shí)文件系統(tǒng)中的/opt/jail。但這只有我們自己知道,受限用戶并不知情。
代碼如下:
I have no name!@desktop:~$ cd /
I have no name!@desktop:/$ ls
bin dev etc home lib lib64 run usr var
I have no name!@desktop:/$
也只有我們通過(guò)jk_cp拷貝到j(luò)ail中的命令能使用。
如果登入失敗,請(qǐng)檢查一下/var/log/auth.log的錯(cuò)誤信息。
現(xiàn)在嘗試運(yùn)行一些網(wǎng)絡(luò)命令,類似wget的命令。
代碼如下:
$ wget http://www.google.com/
如果你獲得類似的錯(cuò)誤提示:
代碼如下:
$ wget http://www.google.com/
--2012-06-23 12:56:43-- http://www.google.com/
Resolving www.google.com (www.google.com)... failed: Name or service not known.
wget: unable to resolve host address `www.google.com'
你可以通過(guò)運(yùn)行下列兩條命令來(lái)解決這個(gè)問(wèn)題:
代碼如下:
$ sudo jk_cp -v -j /opt/jail /lib/x86_64-linux-gnu/libnss_files.so.2
$ sudo jk_cp -v -j /opt/jail /lib/x86_64-linux-gnu/libnss_DNS.so.2
這樣才能正確的定位到libnssfiles.so和libnssdns.so
在限制環(huán)境中運(yùn)行程序或服務(wù)
現(xiàn)在配置已經(jīng)完成了。可以在限制/安全的環(huán)境里運(yùn)行程序或服務(wù)。要在限制環(huán)境中啟動(dòng)一個(gè)程序或守護(hù)進(jìn)程可以用jk_chrootlaunch命令。
代碼如下:
$ sudo jk_chrootlaunch -j /opt/jail -u robber -x /some/command/in/jail
jk_chrootlaunch工具可以在限制環(huán)境中啟動(dòng)一個(gè)特殊的進(jìn)程同時(shí)指定用戶特權(quán)。如果守護(hù)進(jìn)程啟動(dòng)失敗,請(qǐng)檢查/var/log/syslog/錯(cuò)誤信息。
以上就是Linux中怎么使用Jailkit管理用戶,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見(jiàn)到或用到的。希望你能通過(guò)這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
當(dāng)前名稱:Linux中怎么使用Jailkit管理用戶
網(wǎng)頁(yè)路徑:http://www.ef60e0e.cn/article/jhgjeh.html