麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 系統(tǒng) > FreeBSD > 正文

freebsd下jail命令說(shuō)明

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

假設(shè)某一個(gè)應(yīng)用程序在系統(tǒng)內(nèi)中運(yùn)行,一段時(shí)間之后該應(yīng)用程序被發(fā)現(xiàn)包含有致命的安全漏洞,如果在通常的系統(tǒng)中,這個(gè)應(yīng)用程序可能已經(jīng)在這個(gè)上面構(gòu)成了漏洞,甚至cracker們已經(jīng)成功地攻破這一應(yīng)用并且成為root,控制了系統(tǒng);但假如該應(yīng)用程序放在jail內(nèi)運(yùn)行,即使cracker們已經(jīng)攻破系統(tǒng),也無(wú)法訪問(wèn)到j(luò)ail之外系統(tǒng)的其他部分。因?yàn)楸M管應(yīng)用程序可以在jail之中自由活動(dòng),但是無(wú)法獲得更多權(quán)限以及訪問(wèn)在jail之外的任何資源。通過(guò)這一特性,在系統(tǒng)管理上面可以做到防范未知漏洞,避免這些潛在的漏洞對(duì)整個(gè)系統(tǒng)的安全構(gòu)成威脅。

jail通常有兩類應(yīng)用方向:

一、對(duì)應(yīng)用程序的活動(dòng)能力進(jìn)行限制。

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

二、受控制的主機(jī)。

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

第一類應(yīng)用并不是非常復(fù)雜,實(shí)際上這類應(yīng)用實(shí)現(xiàn)方法相對(duì)簡(jiǎn)單,只要在Linux下面玩過(guò)chroot就沒有什么大問(wèn)題;第二類應(yīng)用則有很多有趣的特性,而jail最吸引人的部分也是這些很有趣的特性。

下面從最簡(jiǎn)單的部分開始:

第一類:限制應(yīng)用程序活動(dòng)能力

首先按照通常習(xí)慣的方式安裝好你想要jail的應(yīng)用程序,下面我們將會(huì)使用pure-ftpd(我不是很熟悉它,只不過(guò)順手拿過(guò)來(lái)而已,據(jù)說(shuō)還算好用)作為例子。

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

接下來(lái)先用ldd看看/usr/local/sbin/pure-ftpd需要的那些運(yùn)行庫(kù):



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)



這樣我們的工作任務(wù)清單上面就多出來(lái)這樣一些東西了: /usr/lib/......

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



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



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



jail path hostname ip-number command



下面開始在jail里面運(yùn)行它:



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



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

然后用ps 查看一下進(jìn)程狀態(tài):



tester# ps -axf |grep pureftpd

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



可以看到所有這些pure-ftpd的進(jìn)程都有一個(gè)J,標(biāo)志這這一程序正在jail下面運(yùn)行。

這時(shí)候可能會(huì)有一些管理用的程序無(wú)法正常工作,因?yàn)檫@些管理用程序無(wú)法找到他們需要訪問(wèn)的那些文件,只要找到這些應(yīng)用程序需要調(diào)用的文件(比如日志文件)的位置,然后制造一個(gè)soft link就可以了,通常這些管理程序都可以繼續(xù)正常運(yùn)行。

到此為止,一個(gè)針對(duì)應(yīng)用程序的jail構(gòu)造完成。

第二類,構(gòu)造受控制的主機(jī)

在這種情況下面,我們首先需要構(gòu)造一個(gè)當(dāng)前版本操作系統(tǒng)的完整鏡像(下面這個(gè)腳本是從FreeBSD 4.6r的man page里面來(lái)的,實(shí)際上4.5以及之前的man page在構(gòu)造jail目錄樹腳本上面都有一定的問(wèn)題,4.6才糾正過(guò)來(lái)):



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下面獲得一個(gè)完整的根據(jù)當(dāng)前源碼樹編譯得來(lái)的jail目錄樹。

接下來(lái):



/*

tester# mkdir $jailhome/stand

tester# cp /stand/sysinstall $jailhome/stand

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

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

jailed# /stand/sysinstall

*/



通過(guò)sysinstall這個(gè)程序可以對(duì)jail系統(tǒng)的常用變量進(jìn)行設(shè)置,比如時(shí)區(qū),DNS,Mail。還有jail系統(tǒng)在“啟動(dòng)”的時(shí)候需要執(zhí)行的程序。

如果你足夠熟悉這個(gè)系統(tǒng),可以考慮自己手工一個(gè)個(gè)的做過(guò)來(lái)。

復(fù)制/etc/localtime 到 $jailhome/etc,使jail環(huán)境下的應(yīng)用程序可以得到正確的時(shí)間;

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

在jail里面運(yùn)行newaliases 避免sendmail的不斷抱怨;

如果打算運(yùn)行inetd,需要修改inetd的啟動(dòng)參數(shù),加上 -a $LISTEN_ADDR 選項(xiàng)(因?yàn)閖ail無(wú)法自己獲得當(dāng)前系統(tǒng)的ip地址,所以必須提供一個(gè)ip地址給它)在rc.conf里面看起來(lái)應(yīng)該是這樣:



inetd_flags="-wW -a 192.168.0.123"



將系統(tǒng)本身的syslogd 運(yùn)行加上 -ss 選項(xiàng),避免這個(gè)syslog啟動(dòng)****端口;修改/etc/rc.conf 加上 syslogd_flags="-ss" (對(duì)$jailhome/etc/rc.conf也如法炮制)

在jail內(nèi)創(chuàng)建一個(gè)空的/etc/fstab,在rc.conf里面去掉網(wǎng)卡地址的綁定,這樣在jail系統(tǒng)在啟動(dòng)的時(shí)候不會(huì)抱怨。

為了實(shí)際運(yùn)行這個(gè)jail系統(tǒng),還需要為jail提供一個(gè)可以連接的IP地址,這個(gè)地址可以與實(shí)際環(huán)境同一個(gè)子網(wǎng),也可以處于另外一個(gè)子網(wǎng)中。



tester# ifconfig fxp0 192.168.0.123 netmask 0xffffffff alias



(這里為網(wǎng)卡fxp0綁定了一個(gè)別名,準(zhǔn)備提供服務(wù)。)

所有這些東西都執(zhí)行完了以后,可以有幾個(gè)方法把jail系統(tǒng)啟動(dòng)起來(lái),一個(gè)是在jail外面運(yùn)行



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



一個(gè)是單純把ssh/telnetd這樣一些提供遠(yuǎn)程訪問(wèn)的服務(wù)在jail內(nèi)啟動(dòng)起來(lái):



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



然后從外面登錄系統(tǒng),運(yùn)行、配置jail系統(tǒng)環(huán)境,或者手工啟動(dòng)需要的應(yīng)用服務(wù)。

如果打算運(yùn)行一個(gè)用于生產(chǎn)環(huán)境的jail系統(tǒng)的話,推薦使用第一種方法,并且把啟動(dòng)jail的命令放到(實(shí)際環(huán)境的)/etc/rc.local腳本里面去,這樣jail系統(tǒng)可以有比較完備,與實(shí)際機(jī)器相類似的環(huán)境。

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

在jail系統(tǒng)的管理上面有幾個(gè)問(wèn)題需要注意:



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

2. jail內(nèi)的任何活動(dòng),其能力都受到了限制。比如top/vmstat這樣的東西都不能使用,mknod,dd等等這樣需要訪問(wèn)直接硬件的東西也無(wú)法工作。所以在jail內(nèi)監(jiān)控系統(tǒng)運(yùn)行狀態(tài)也比較難。

3. 當(dāng)想要遠(yuǎn)程關(guān)閉jail系統(tǒng)的時(shí)候,可以有兩種方法,一是進(jìn)入jail之后kill -TERM -1 或者 kill -KILL -1 ,這樣向所有該jail內(nèi)的進(jìn)程發(fā)送SIGTERM或者SIGKILL信號(hào),也可以在jail里面運(yùn)行/etc/rc.shutdown來(lái)關(guān)閉jail。如果是本地想要關(guān)閉jail倒是簡(jiǎn)單,只要把所有帶有J標(biāo)記的進(jìn)程干掉就可以了。

4. 一個(gè)系統(tǒng)可以運(yùn)行多個(gè)jail,各個(gè)jail之間無(wú)法互相干涉,如果在jail外面使用



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



這種方式運(yùn)行某個(gè)應(yīng)用程序,下一次試圖通過(guò)運(yùn)行



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



這種方式獲得的jail過(guò)的shell來(lái)管理該應(yīng)用程序?qū)?huì)失敗。因?yàn)檫@時(shí)是兩個(gè)各自獨(dú)立的jail,互相不能干涉。為了能對(duì)jail系統(tǒng)內(nèi)進(jìn)程靈活地進(jìn)行管理,推薦在jail里面除開應(yīng)用軟件之外,再啟動(dòng)telnetd或者sshd之類的服務(wù),這些服務(wù)此時(shí)與應(yīng)用程序運(yùn)行在同一個(gè)jail里面,就可以通過(guò)遠(yuǎn)程登入系統(tǒng)后獲得與那些應(yīng)用程序在同一個(gè)jail內(nèi)的shell。

5. jail系統(tǒng)內(nèi)的所有應(yīng)用軟件版本號(hào)應(yīng)該與外部實(shí)際系統(tǒng)保持一致。當(dāng)外部系統(tǒng)的源碼同步到某個(gè)版本并且重新做過(guò)make world之后,推薦也重新生成一次jail,以避免某些可能的莫名其妙的錯(cuò)誤。

6. 另外有一個(gè)做法不知道是否正確,在jail里面每次使用ps的時(shí)候,系統(tǒng)都會(huì)報(bào)告沒有/var/run/dev.db文件,讓人感覺很不舒服,復(fù)制實(shí)際系統(tǒng)的/var/run/dev.db 到 $jailhome/var/run/ ,就不會(huì)再碰到這個(gè)問(wèn)題。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 欧美1区2区在线观看 | 精品久久久久久久久久久久久久久久久久久 | 最新欧美精品一区二区三区 | 一级毛片免费大片 | 天天操天天看 | 九九色在线观看 | 爱操影视 | 毛片118极品美女写真 | 国产乱淫av一区二区三区 | 国产精品成人av片免费看最爱 | 欧美www | 国产精品久久久乱弄 | 97porn| 国产精品成人免费一区久久羞羞 | 国产一精品一av一免费爽爽 | 精品一区二区三区免费 | 国产精品视频海角社区88 | 国产精品剧情一区二区三区 | 国产免费一区二区三区视频 | 成人精品一区二区三区中文字幕 | 永久免费不卡在线观看黄网站 | 久草在线资源福利站 | 久久久国产电影 | 国产精品99久久久久久大便 | 成人在线观看免费爱爱 | 美女黄网站免费观看 | 免费在线观看国产精品 | 国产精品久久久久久模特 | 看片一区| 美女喷水网站 | 国产精品久久久久国产精品三级 | 一区二区三区欧美日韩 | 亚洲第一色婷婷 | 久草在线免费资源站 | 91成人免费网站 | 色淫视频 | 一级黄色欧美 | 中文字幕精品在线播放 | 欧美精品| 中文字幕一区二区三区四区 | 国产精品免费在线 |