成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

在Ubuntu下用jailkit建立一個受限Shell

運維 系統運維
本文中我們將會探討在Ubuntu下用jailkit建立一個受限shell。Jailkit是一個讓你快速建立一個受限shell的工具,將受限用戶放到里面,并配置那些要在受限制環境里運行的程序。

Jailkit和jailed Shell

受限shell(Jailed Shell)是一類被限制的shell,它看起來非常像真實的Shell,但是它不允許查看和修改真實的文件系統的任何部分。Shell內的文件系統不同于底層的文件系統。這種功能是通過chroot和其他多種程序實現的。舉例來說,給用戶建立一個Linux shell去讓他“玩玩”,或者在一個限定的環境里運行一些程序的所有功能等等。

[[92350]]

本文中我們將會探討在Ubuntu下用jailkit建立一個受限shell。Jailkit是一個讓你快速建立一個受限shell的工具,將受限用戶放到里面,并配置那些要在受限制環境里運行的程序。

Jailkit 從這里下載:http://olivier.sessink.nl/jailkit/


在Ubuntu/Debian 上安裝 jailkit

1. 因為jaikit需要在系統上編譯,首先,我們需要有用于編譯的那些工具。所以,安裝如下包:

  1. $ sudo apt-get install build-essential autoconf automake libtool flex bison debhelper binutils-gold 

2. 從下述URL下載Jailkit,或者訪問它的網站以下載最新版本的,如果有了更新版本的話。http://olivier.sessink.nl/jailkit/jailkit-2.16.tar.gz

  1. $ wget http://olivier.sessink.nl/jailkit/jailkit-2.16.tar.gz 

3. 解壓

  1. $ tar -vxzf jailkit-2.16.tar.gz 

4. 編譯并創建deb軟件包

Jailkit已經包含了用于編譯成deb軟件包的代碼和配置,可以直接安裝在Debian系的Linux上。運行下列命令來完成它。

  1. $ cd jailkit-2.16/ 
  2. $ sudo ./debian/rules binary 

5. 安裝deb軟件包

上述命令創建的deb軟件包叫做: jailkit2.16-1amd64.deb.

  1. $ cd .. 
  2. $ sudo dpkg -i jailkit_2.16-1_amd64.deb 

就是這樣,現在Jailkit已經安裝完成了。Jailkit有許多命令可以用來設置一個基于chroot的受限環境,如下是這些命令:

  1. $ jk_ 
  2. jk_addjailuser   jk_chrootlaunch  jk_cp            jk_jailuser      jk_lsh           jk_uchroot        
  3.  
  4. jk_check         jk_chrootsh      jk_init          jk_list          jk_socketd       jk_update 

上述命令都有man幫助信息,如果你使用它們時,可以參考。


配置Jailed Shell

1. 配置受限環境

我們需要建立一個目錄來存放所有受限環境的配置。目錄隨便放在什么地方,比如我們可以創建個/opt/jail的目錄。

  1. $ sudo mkdir /opt/jail 

這個目錄應為Root所有。用chown改變屬主。

  1. $ sudo chown root:root /opt/jail 

2. 設置在受限環境中可用的程序

任何程序想要在受限環境中執行則必須用jk_init命令拷貝到目錄中。

例如:

  1. $ sudo jk_init -v /jail basicshell  
  2. $ sudo jk_init -v /jail editors  
  3. $ sudo jk_init -v /jail extendedshell  
  4. $ sudo jk_init -v /jail netutils  
  5. $ sudo jk_init -v /jail ssh  
  6. $ sudo jk_init -v /jail sftp 
  7. $ sudo jk_init -v /jail jk_lsh 

或一次性解決:

  1. $ sudo jk_init -v /opt/jail netutils basicshell jk_lsh openvpn ssh sftp 

像basicshell, editors, netutils是一些組名,其中包含多個程序。復制到jail shell中的每個組都是可執行文件、庫文件等的集合。比如basicshell就在jail提供有bash, ls, cat, chmod, mkdir, cp, cpio, date, dd, echo, egrep等程序。

完整的程序列表設置,你可以在/etc/jailkit/jk_init.ini中查看。

 jk_lsh (Jailkit limited shell) - 這是一個重要的部分,必須添加到受限環境中。

3. 創建將被監禁的用戶

需要將一個用戶放入jail里。可以先創建一個

  1. $ sudo adduser robber 
  2. Adding user `robber' ... 
  3. Adding new group `robber' (1005) ... 
  4. Adding new user `robber' (1006) with group `robber' ... 
  5. Creating home directory `/home/robber' ... 
  6. Copying files from `/etc/skel' ...   
  7. Enter new UNIX password:  
  8. Retype new UNIX password:  
  9. passwd: password updated successfully 
  10. Changing the user information for robber 
  11. Enter the new value, or press ENTER for the default 
  12.     Full Name []:  
  13.     Room Number []:  
  14.     Work Phone []:  
  15.     Home Phone []:  
  16.     Other []:  
  17. Is the information correct? [Y/n] y 

注意:目前創建的是一個在實際文件系統中的普通用戶,并沒有添加到受限環境中。

在下一步這個用戶會被放到受限環境里。

這時候如果你查看/etc/passwd文件,你會在文件最后看到跟下面差不多的一個條目。

  1. robber:x:1006:1005:,,,:/home/robber:/bin/bash 

這是我們新創建的用戶,最后部分的/bin/bash指示了這個用戶如果登入了那么它可以在系統上正常的Shell訪問

4. 限制用戶

現在是時候將用戶限制

  1. $ sudo jk_jailuser -m -j /opt/jail/ robber 

執行上列命令后,用戶robber將會被限制。

如果你現在再觀察/etc/passwd文件,會發現類似下面的最后條目。

  1. robber:x:1006:1005:,,,:/opt/jail/./home/robber:/usr/sbin/jk_chrootsh 

注意:最后兩部分表明用戶主目錄和shell類型已經被改變了。現在用戶的主目錄在/opt/jail(受限環境)中。用戶的Shell是一個名叫jk_chrootsh的特殊程序,會提供Jailed Shell。

jk_chrootsh這是個特殊的shell,每當用戶登入系統時,它都會將用戶放入受限環境中。

到目前為止受限配置已經幾乎完成了。但是如果你試圖用ssh連接,那么注定會失敗,像這樣:

  1. $ ssh robber@localhost 
  2. robber@localhost's password:  
  3. Welcome to Ubuntu 12.04 LTS (GNU/Linux 3.2.0-25-generic x86_64) 
  4. * Documentation:  https://help.ubuntu.com/ 
  5. 13 packages can be updated. 
  6. 0 updates are security updates. 
  7. *** /dev/sda7 will be checked for errors at next reboot *** 
  8. *** /dev/sda8 will be checked for errors at next reboot *** 
  9. Last login: Sat Jun 23 12:45:13 2012 from localhost 
  10. Connection to localhost closed. 

連接會立馬關閉,這意味著用戶已經活動在一個受限制的shell中。

5. 給在jail中的用戶Bash Shell

下個重要的事情是給用戶在限制環境中的一個正確的bash shell。

打開下面的文件

  1. /opt/jail/etc/passwd 

這是個jail中的password文件。類似如下

  1. root:x:0:0:root:/root:/bin/bash 
  2. robber:x:1006:1005:,,,:/home/robber:/usr/sbin/jk_lsh 

將/usr/sbin/jk_lsh改為/bin/bash

  1. root:x:0:0:root:/root:/bin/bash 
  2. robber:x:1006:1005:,,,:/home/robber:/bin/bash 

保存文件并退出。

6. 登入限制環境

現在讓我們再次登入受限環境

  1. $ ssh robber@localhost 
  2. robber@localhost's password:  
  3. Welcome to Ubuntu 12.04 LTS (GNU/Linux 3.2.0-25-generic x86_64) 
  4.  * Documentation:  https://help.ubuntu.com/ 
  5. 13 packages can be updated. 
  6. 0 updates are security updates. 
  7. *** /dev/sda7 will be checked for errors at next reboot *** 
  8. *** /dev/sda8 will be checked for errors at next reboot *** 
  9. Last login: Sat Jun 23 12:46:01 2012 from localhost 
  10. bash: groups: command not found 
  11. I have no name!@desktop:~$ 

受限環境說'I have no name!',哈哈。現在我們在受限環境中有了個完整功能的bash shell。

現在看看實際的環境。受限環境中的根目錄實際就是真實文件系統中的/opt/jail。但這只有我們自己知道,受限用戶并不知情。

  1. I have no name!@desktop:~$ cd / 
  2. I have no name!@desktop:/$ ls 
  3. bin  dev  etc  home  lib  lib64  run  usr  var 
  4. I have no name!@desktop:/$ 

也只有我們通過jk_cp拷貝到jail中的命令能使用。

如果登入失敗,請檢查一下/var/log/auth.log的錯誤信息。

現在嘗試運行一些網絡命令,類似wget的命令。

  1. $ wget http://www.google.com/ 

如果你獲得類似的錯誤提示:

  1. $ wget http://www.google.com/ 
  2. --2012-06-23 12:56:43--  http://www.google.com/ 
  3. Resolving www.google.com (www.google.com)... failed: Name or service not known. 
  4. wget: unable to resolve host address `www.google.com' 

你可以通過運行下列兩條命令來解決這個問題:

  1. $ sudo jk_cp -v -j /opt/jail /lib/x86_64-linux-gnu/libnss_files.so.2 
  2. $ sudo jk_cp -v -j /opt/jail /lib/x86_64-linux-gnu/libnss_dns.so.2 

這樣才能正確的定位到libnssfiles.so和libnssdns.so


在限制環境中運行程序或服務

現在配置已經完成了。可以在限制/安全的環境里運行程序或服務。要在限制環境中啟動一個程序或守護進程可以用jk_chrootlaunch命令。

  1. $ sudo jk_chrootlaunch -j /opt/jail -u robber -x /some/command/in/jail 

jk_chrootlaunch工具可以在限制環境中啟動一個特殊的進程同時指定用戶特權。如果守護進程啟動失敗,請檢查/var/log/syslog/錯誤信息。

在限制環境中運行程序之前,該程序必須已經用jk_cp命令復制到jail中。

 jk_cp - 將文件包括權限信息和庫文件復制到jail的工具

進一步閱讀有關其他jailkit命令信息,可以閱讀文檔,http://olivier.sessink.nl/jailkit/

via: http://www.binarytides.com/install-jailkit-ubuntu-debian/

via: http://www.binarytides.com/setup-jailed-shell-jailkit-ubuntu/

責任編輯:奔跑的冰淇淋 來源: Linux中國
相關推薦

2021-06-24 06:00:51

EleventyJavaScript靜態網站

2011-08-29 15:12:24

UbuntuLinux模塊

2010-08-19 10:02:25

AndroidEclipseUbuntu

2011-09-07 15:08:30

UbuntuNFS

2011-09-08 13:15:00

UbuntuFoxit Reade

2011-09-07 15:20:48

svnUbuntu

2015-09-09 13:29:17

FISHShellLinux

2013-09-22 14:42:55

鮑爾默微軟

2011-08-29 17:04:10

UbuntuMatlab

2023-05-09 07:10:53

2023-02-24 09:54:54

開源React

2011-03-02 15:47:37

PureftpdPureDBLinux

2021-06-26 16:24:21

Linux命令系統

2011-01-10 10:29:27

Ubuntu 10.1Gnome-Shell

2016-03-01 14:37:47

華為

2013-12-18 13:16:27

UbuntuXP

2021-03-05 10:13:45

Python 開發編程語言

2020-09-17 10:58:58

IT文化首席信息官領導者

2009-06-15 09:01:19

安裝Jboss

2009-12-03 10:06:33

Ubuntushell腳本
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 美国av毛片 | 91精品国产91久久久久久不卞 | 91福利影院| 久久久精品网站 | 无码日韩精品一区二区免费 | 色婷婷国产精品综合在线观看 | 欧美综合国产精品久久丁香 | 免费一区二区三区 | 青青久久 | 91在线| 国产精品久久久久久久一区探花 | 羞羞视频免费在线观看 | 国产亚洲一区二区三区 | 欧美在线视频观看 | 自拍中文字幕 | 欧美中文字幕一区二区三区 | 久久久2o19精品 | 精品一区二区三区免费毛片 | 狠狠干狠狠操 | 久久婷婷av | 国内av在线 | 久久精品亚洲精品国产欧美 | 亚洲精品自在在线观看 | 久久精品国产清自在天天线 | 久久久久久国产精品久久 | 日韩一二区| 日韩av三区 | 免费黄色大片 | 一级黄色毛片免费 | 日本a∨精品中文字幕在线 亚洲91视频 | 欧美国产日韩在线 | 欧美久久久久久久久 | 日韩精品成人 | 91精品国产综合久久久动漫日韩 | 久久久91精品国产一区二区三区 | 暖暖成人免费视频 | av影音在线 | 欧美午夜精品久久久久免费视 | 国产精品污www一区二区三区 | 九色国产 | 男女下面一进一出网站 |