亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > FreeBSD > 正文

freebsd下jail命令說明

2020-10-23 22:27:20
字體:
來源:轉載
供稿:網友
Jail 命令在FreeBSD 4.0中首次出現。用于“監禁”進程以及其衍生的子進程。而且jail和FreeBSD本身的secure_level合并使用可以顯著限制(jail中的)root的能力。

假設某一個應用程序在系統內中運行,一段時間之后該應用程序被發現包含有致命的安全漏洞,如果在通常的系統中,這個應用程序可能已經在這個上面構成了漏洞,甚至cracker們已經成功地攻破這一應用并且成為root,控制了系統;但假如該應用程序放在jail內運行,即使cracker們已經攻破系統,也無法訪問到jail之外系統的其他部分。因為盡管應用程序可以在jail之中自由活動,但是無法獲得更多權限以及訪問在jail之外的任何資源。通過這一特性,在系統管理上面可以做到防范未知漏洞,避免這些潛在的漏洞對整個系統的安全構成威脅。

jail通常有兩類應用方向:

一、對應用程序的活動能力進行限制。

比如ftp服務器,DNS服務器,這樣一些東西,比如wu-ftpd,bind這樣一些隔三岔五就會爆出漏洞的“著名”軟件放到jail里面會讓人更加放心。

二、受控制的主機。

某些時候,需要對外提供有shell的管理性訪問,比如作為某公司A,其合作單位B有某項目需要在A的機器上獲得shell乃至root權限,這就需要提供受控制的主機,用戶可以在jail里面控制幾乎所有他需要的資源(除了jail不允許他訪問的部分)。

第一類應用并不是非常復雜,實際上這類應用實現方法相對簡單,只要在Linux下面玩過chroot就沒有什么大問題;第二類應用則有很多有趣的特性,而jail最吸引人的部分也是這些很有趣的特性。

下面從最簡單的部分開始:

第一類:限制應用程序活動能力

首先按照通常習慣的方式安裝好你想要jail的應用程序,下面我們將會使用pure-ftpd(我不是很熟悉它,只不過順手拿過來而已,據說還算好用)作為例子。

這個ftpd的安裝位置,默認為:/usr/local/sbin;/usr/local/bin;在/etc下面還有一些相關的文件,整個結構感覺不是特別干凈,不過它運行需要的東西并不很多,包括 /usr/local/sbin/pure-ftpd , /etc/xxx /etc/xxxx 這樣一些文件。

接下來先用ldd看看/usr/local/sbin/pure-ftpd需要的那些運行庫:



tester# cd /usr/local/sbin

tester# ldd pure-ftpd

pure-ftpd:

libcrypt.so.2 => /usr/lib/libcrypt.so.2 (0x2807b000)

libpam.so.1 => /usr/lib/libpam.so.1 (0x28094000)

libc.so.4 => /usr/lib/libc.so.4 (0x2809d000)



這樣我們的工作任務清單上面就多出來這樣一些東西了: /usr/lib/......

使用ldd我們還可以獲得其他一些需要放入jail的程序的運行庫位置,信息搜集完成之后,我們開始建立jail目錄樹(這里我們假定jail環境構造在/jail內,當然你也可以選擇你喜歡的位置):



tester# mkdir -p /jail/usr/{lib,libexec,local/sbin,local/bin,local/etc,etc,var/run,var/log}



然后將上面列出的,libcrypt.so.2 等這些文件都復制到對應位置。當然還有我們FreeBSD下非常重要的一個文件ld-elf.so.1,盡管ldd沒有給出提示,也還需要復制過去,否則應用程序也跑不起來。這樣我們就獲得了一個很干凈(最小化)的應用程序運行環境jail命令的格式是:



jail path hostname ip-number command



下面開始在jail里面運行它:



tester# jail /jail jailed.host.name $JAILED_IP_ADDR /usr/local/sbin/pure-ftpd [options]



這里,/jail是你的jail環境的位置,也就是被jail之后,應用程序“以為”自己所在的“/”的位置;jailed.host.name是你打算提供給這個jail環境的主機名,某些情況下,應用程序需要知道這個變量;$JAILED_IP_ADDR是你打算提供ftp服務(如果是其他應用軟件,那就是其他服務咯,比如web服務)的那個IP地址,至于/usr/local/sbin/pure-ftpd [options] 則是你打算運行的那個應用程序在jail里面的所在位置以及運行所需的參數。

然后用ps 查看一下進程狀態:



tester# ps -axf |grep pureftpd

95 ?? IsJ 0:00.92 pure-ftpd (SERVER) (pure-ftpd)



可以看到所有這些pure-ftpd的進程都有一個J,標志這這一程序正在jail下面運行。

這時候可能會有一些管理用的程序無法正常工作,因為這些管理用程序無法找到他們需要訪問的那些文件,只要找到這些應用程序需要調用的文件(比如日志文件)的位置,然后制造一個soft link就可以了,通常這些管理程序都可以繼續正常運行。

到此為止,一個針對應用程序的jail構造完成。

第二類,構造受控制的主機

在這種情況下面,我們首先需要構造一個當前版本操作系統的完整鏡像(下面這個腳本是從FreeBSD 4.6r的man page里面來的,實際上4.5以及之前的man page在構造jail目錄樹腳本上面都有一定的問題,4.6才糾正過來):



tester# cat >>/root/mkjail.sh

jailhome=/data/jail

cd /usr/src

mkdir -p $jailhome

make world DESTDIR=$jailhome

cd etc

make distribution DESTDIR=$jailhome -DNO_MAKEDEV_RUN

cd $jailhome/dev

sh MAKEDEV jail

cd $jailhome

ln -sf dev/null kernel

^D

tester# sh /root/mkjail.sh



最后在/data/jail下面獲得一個完整的根據當前源碼樹編譯得來的jail目錄樹。

接下來:



/*

tester# mkdir $jailhome/stand

tester# cp /stand/sysinstall $jailhome/stand

tester# jail $jailhome jailed.system.box 192.168.0.123 /bin/csh

(這時候就獲得了一個jail下面的shell)

jailed# /stand/sysinstall

*/



通過sysinstall這個程序可以對jail系統的常用變量進行設置,比如時區,DNS,Mail。還有jail系統在“啟動”的時候需要執行的程序。

如果你足夠熟悉這個系統,可以考慮自己手工一個個的做過來。

復制/etc/localtime 到 $jailhome/etc,使jail環境下的應用程序可以得到正確的時間;

復制/etc/resolv.conf 到 $jailhome/etc/resolv.conf 使jail下面可以正確解釋域名;

在jail里面運行newaliases 避免sendmail的不斷抱怨;

如果打算運行inetd,需要修改inetd的啟動參數,加上 -a $LISTEN_ADDR 選項(因為jail無法自己獲得當前系統的ip地址,所以必須提供一個ip地址給它)在rc.conf里面看起來應該是這樣:



inetd_flags="-wW -a 192.168.0.123"



將系統本身的syslogd 運行加上 -ss 選項,避免這個syslog啟動****端口;修改/etc/rc.conf 加上 syslogd_flags="-ss" (對$jailhome/etc/rc.conf也如法炮制)

在jail內創建一個空的/etc/fstab,在rc.conf里面去掉網卡地址的綁定,這樣在jail系統在啟動的時候不會抱怨。

為了實際運行這個jail系統,還需要為jail提供一個可以連接的IP地址,這個地址可以與實際環境同一個子網,也可以處于另外一個子網中。



tester# ifconfig fxp0 192.168.0.123 netmask 0xffffffff alias



(這里為網卡fxp0綁定了一個別名,準備提供服務。)

所有這些東西都執行完了以后,可以有幾個方法把jail系統啟動起來,一個是在jail外面運行



tester# jail $jailhome jailed.system.box $jail_IP_ADDR /bin/sh $jailhome/etc/rc



一個是單純把ssh/telnetd這樣一些提供遠程訪問的服務在jail內啟動起來:



tester# jail $jailhome jailed.system.box $jail_IP_ADDR /bin/sh $jailhome/bin/inetd -wW -a $jail_IP_ADDR



然后從外面登錄系統,運行、配置jail系統環境,或者手工啟動需要的應用服務。

如果打算運行一個用于生產環境的jail系統的話,推薦使用第一種方法,并且把啟動jail的命令放到(實際環境的)/etc/rc.local腳本里面去,這樣jail系統可以有比較完備,與實際機器相類似的環境。

這樣一個jail系統就算構造完成并且可以正常運作,加上在實際環境里面定期的嚴格的備份,安全檢查與審計,就可以得到一個很不錯的安全系統。一般的scriptkids已經無法對你的系統構成實際威脅,即使是某些與黑帽子走得很近的人在漏洞公開之前得到實際的攻擊腳本,并且進入你的系統,他也只能在jail里面活動,而且你可以知道他什么時候進入和離開系統,做了什么。這樣你可以很輕松的恢復系統和防范下一次未知的攻擊。

在jail系統的管理上面有幾個問題需要注意:



1. jail里面的帳號、密碼是跟實際系統不同的,但是在jail之外ps或者查看jail目錄樹內的文件時,那些jail內部的uid會被看成外部的uid,因此最好把jail里面的/etc/adduser.conf進行修改,把他們的uid起始號碼放大,比如:uid_start="5000",這樣當你在jail外部進行文件、進程管理的時候不至于誤會文件或者進程的宿主。

2. jail內的任何活動,其能力都受到了限制。比如top/vmstat這樣的東西都不能使用,mknod,dd等等這樣需要訪問直接硬件的東西也無法工作。所以在jail內監控系統運行狀態也比較難。

3. 當想要遠程關閉jail系統的時候,可以有兩種方法,一是進入jail之后kill -TERM -1 或者 kill -KILL -1 ,這樣向所有該jail內的進程發送SIGTERM或者SIGKILL信號,也可以在jail里面運行/etc/rc.shutdown來關閉jail。如果是本地想要關閉jail倒是簡單,只要把所有帶有J標記的進程干掉就可以了。

4. 一個系統可以運行多個jail,各個jail之間無法互相干涉,如果在jail外面使用



tester# jail $jailhome jailed.system.box $jail_IP_ADDR /path/to/application



這種方式運行某個應用程序,下一次試圖通過運行



tester# jail $jailhome jailed.system.box $jail_IP_ADDR /bin/csh



這種方式獲得的jail過的shell來管理該應用程序將會失敗。因為這時是兩個各自獨立的jail,互相不能干涉。為了能對jail系統內進程靈活地進行管理,推薦在jail里面除開應用軟件之外,再啟動telnetd或者sshd之類的服務,這些服務此時與應用程序運行在同一個jail里面,就可以通過遠程登入系統后獲得與那些應用程序在同一個jail內的shell。

5. jail系統內的所有應用軟件版本號應該與外部實際系統保持一致。當外部系統的源碼同步到某個版本并且重新做過make world之后,推薦也重新生成一次jail,以避免某些可能的莫名其妙的錯誤。

6. 另外有一個做法不知道是否正確,在jail里面每次使用ps的時候,系統都會報告沒有/var/run/dev.db文件,讓人感覺很不舒服,復制實際系統的/var/run/dev.db 到 $jailhome/var/run/ ,就不會再碰到這個問題。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91成人免费观看网站| 久久久99久久精品女同性| 久久躁狠狠躁夜夜爽| 国产成+人+综合+亚洲欧洲| 欧美性生交xxxxxdddd| 色婷婷久久一区二区| 中文字幕精品www乱入免费视频| 亚洲精品在线观看www| 92看片淫黄大片看国产片| 午夜精品一区二区三区在线播放| 久久免费在线观看| 国产大片精品免费永久看nba| 26uuu国产精品视频| 国产精品国模在线| 国产精自产拍久久久久久蜜| 久久偷看各类女兵18女厕嘘嘘| 亚洲欧美第一页| 中文字幕在线视频日韩| 国产乱人伦真实精品视频| 国产精品美女午夜av| 久久久久久久影视| 成人97在线观看视频| 成人福利网站在线观看| 欧美专区在线视频| www.欧美免费| 亚洲自拍偷拍区| 欧美激情xxxx性bbbb| 亚洲精品在线视频| 欧美日韩在线一区| 亚洲自拍偷拍色图| 久久在线免费观看视频| 欧美专区中文字幕| 国产亚洲视频在线| 欧美高清不卡在线| 日韩电影中文字幕一区| 亚洲第一男人天堂| 中文字幕一精品亚洲无线一区| 亚洲人精选亚洲人成在线| 国产精品免费电影| 色婷婷成人综合| 欧美在线一区二区三区四| 久久久久99精品久久久久| 久久久久亚洲精品成人网小说| 亚洲精品wwwww| 在线成人免费网站| 国产精品黄色影片导航在线观看| 欧美日韩亚洲天堂| 欧美疯狂xxxx大交乱88av| 成人淫片在线看| 中文字幕亚洲欧美在线| 久久97久久97精品免视看| 中文字幕国产精品久久| 国产欧美最新羞羞视频在线观看| 久久久黄色av| 午夜剧场成人观在线视频免费观看| 宅男66日本亚洲欧美视频| 久久99热这里只有精品国产| 亚洲人成网站777色婷婷| 国产精品自产拍在线观看| 日本a级片电影一区二区| 成人福利网站在线观看| 亚洲人成啪啪网站| 国产精品久久久久久久7电影| 亚洲日本aⅴ片在线观看香蕉| 久久亚洲精品小早川怜子66| 国产精品一区二区av影院萌芽| 亚洲精品欧美一区二区三区| 91精品国产自产在线观看永久| 久久久久一本一区二区青青蜜月| 91国产视频在线| 国产精品美女久久久免费| 亚洲国产中文字幕久久网| 成人乱人伦精品视频在线观看| 欧美激情中文字幕在线| 日韩一中文字幕| 国产精品久久久久久一区二区| 日韩欧美在线播放| 中文日韩在线观看| 亚洲直播在线一区| 久久精品国产2020观看福利| 欧美日本国产在线| 欧美一级bbbbb性bbbb喷潮片| 日韩av电影在线网| 久久的精品视频| 91精品久久久久久久久久入口| 久久视频免费在线播放| 一本色道久久综合亚洲精品小说| 91精品国产成人www| 日韩在线视频线视频免费网站| 精品国产老师黑色丝袜高跟鞋| 日韩亚洲成人av在线| 国产精品xxxxx| 国产亚洲一区二区在线| 最近2019中文字幕第三页视频| 亚洲综合日韩中文字幕v在线| 97视频色精品| 亚洲图片在区色| 欧美电影院免费观看| 久久偷看各类女兵18女厕嘘嘘| 国产脚交av在线一区二区| 久久夜精品香蕉| 91成人精品网站| 成人精品久久av网站| 欧美在线影院在线视频| 热久久99这里有精品| 欧美性资源免费| 人体精品一二三区| 亚洲欧美日韩直播| 九九精品在线视频| 自拍偷拍免费精品| 欧美日韩亚洲网| 中文字幕亚洲一区二区三区五十路| 九九久久综合网站| 欧美在线精品免播放器视频| 欧美电影在线观看网站| 最近2019中文字幕一页二页| 57pao成人国产永久免费| 国产一区二区三区直播精品电影| 91在线免费视频| 91成人福利在线| 久久久电影免费观看完整版| 日韩av综合中文字幕| 欧美在线免费观看| 亚洲国产精品电影在线观看| 国产在线观看精品| 欧美做受高潮电影o| 色偷偷av亚洲男人的天堂| 成人性生交xxxxx网站| 在线观看欧美视频| 久久国产精品久久精品| 欧美在线观看日本一区| 久久国产精品亚洲| 91色在线观看| 欧美精品videos另类日本| 2019av中文字幕| 91社区国产高清| 亚洲免费av电影| 亚洲美女视频网| 欧美激情二区三区| 国产欧美在线播放| 国产精品黄色影片导航在线观看| 国产在线观看精品| 国产欧美日韩精品专区| 91精品国产综合久久香蕉922| 一区二区三区日韩在线| 亚洲一区二区三区乱码aⅴ蜜桃女| 精品国产乱码久久久久酒店| 成人羞羞国产免费| 亚洲一区免费网站| 日本国产一区二区三区| 96精品视频在线| 久久亚洲精品一区| 成人网中文字幕| 91九色国产社区在线观看| 4p变态网欧美系列| 国产精品久久久久影院日本| 欧美精品福利视频| 亚洲欧美激情视频| 欧美疯狂性受xxxxx另类| 中文字幕在线观看日韩| 国产成人精品在线播放| 九九精品在线播放| 亚洲**2019国产| 一本久久综合亚洲鲁鲁|