亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 1780 | 回復(fù): 0
打印 上一主題 下一主題

[FreeBSD] FreeBSD 8.0下jail虛擬機完全實踐 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2012-03-22 17:47 |只看該作者 |倒序瀏覽
在Linux下實現(xiàn)虛擬化,我們使用Xen或者KVM;在Windows下實現(xiàn)虛擬化,我們使用VMware或Hyper-V。相對應(yīng)的,說到BSD系統(tǒng)下的虛擬化解決方案,那么jail是不能不提的。嚴格來說jail算是一種安全工具,但經(jīng)過了多年的開發(fā),jail已經(jīng)是一個相當成熟的虛擬化解決方案,十分適合布置小規(guī)模的開發(fā)服務(wù)器環(huán)境。本文將介紹FreeBSD 8.0下使用jail來搭建一個小規(guī)模開發(fā)環(huán)境的詳細步驟。

jail是什么

BSD類操作系統(tǒng)從BSD4.2開始即提供了chroot。 chroot工具能夠改變一組進程的根目錄的位置,從而建立一個與系統(tǒng)中其他部分相隔離的安全環(huán)境,在chroot環(huán)境中的進程將無法訪問其外的文件或其他資源。正是由于這種能力,即使攻擊者攻破了某一個運行于chroot環(huán)境的服務(wù),也不能攻破整個系統(tǒng)。chroot對于那些不需要很多靈活性或復(fù)雜的高級功能的簡單應(yīng)用而言相當好用。另外,在引入chroot概念的過程中,曾經(jīng)發(fā)現(xiàn)過許多跳出chroot環(huán)境的辦法。盡管這些問題在較新的FreeBSD版本中已經(jīng)修正,但很明顯地,chroot并不是一些用于加固服務(wù)器安全的理想解決方案。因此,必須實現(xiàn)一個新的子系統(tǒng)來解決這些問題,jail便應(yīng)運而生了。

jail以多種方法改進了傳統(tǒng)的chroot環(huán)境概念。傳統(tǒng)的chroot環(huán)境只限制了進程能夠訪問文件系統(tǒng)的哪些部分,其他部分的系統(tǒng)資源 (例如系統(tǒng)用戶、正在運行的進程, 以及網(wǎng)絡(luò)子系統(tǒng)) 是由 chroot 進程與宿主系統(tǒng)中的其他進程共享的。jail擴展了這個模型,它不僅將文件系統(tǒng)的訪問虛擬化,而且還將用戶、FreeBSD 的網(wǎng)絡(luò)子系統(tǒng),以及一些其他系統(tǒng)資源虛擬化。

jail應(yīng)用環(huán)境

我們實際的開發(fā)環(huán)境用了一臺8核CPU、16G內(nèi)存的服務(wù)器充當宿主機,開了大約六七臺jail機作內(nèi)部開發(fā)和測試使用,效果還是比較讓大家滿意的。就是FreeBSD自身一樣,簡單和穩(wěn)定是其主要特點;特別是相對于Vmware的ESXI而言,配置起來要簡單很多。

安裝前的準備工作:

    宿主機的性能盡量高些,內(nèi)存是越大越好;
    /usr目錄越大越好,我分的/usr大約300-400G;
    為了權(quán)限和安裝的便利,我的操作均是以root進行。
    虛擬機上jail的IP跟我的宿主IP分別為192.168.43.128和192.168.43.129,物理bridge直接。

jail的安裝

①第一步就是為 jail 選擇一個位置。

這個路徑是在宿主系統(tǒng)中 jail 的物理位置。一種常用的選擇是

/usr/jail/jailname

此處jailname 是 jail 的主機名。對于“完整” 的 jail 而言, 它通常包含了 FreeBSD 默認安裝的基本系統(tǒng)中每個文件的副本。這里我創(chuàng)建了apache 目的是做一個apache 服務(wù)的jail

mkdir -p /usr/jail/apache

②編譯源碼

cd /usr/src

/usr/src可以選擇用sysisntall --> configure --> src --> DVD/CD來安裝,這樣速度最快。

make buildworld

③新建world

make installworld DESTDIR=/usr/jail/apache

④安裝配置文件

make distribution DESTDIR=/usr/jail/apache

distribution 這個 make target 將安裝全部配置文件,或者換句話說,就是將/usr/src/etc/復(fù)制到j(luò)ail環(huán)境中的/etc

※安裝jail的過程也是熟悉FreeBSD目錄結(jié)構(gòu)的過程。

⑤安裝devfs

在 jail 中不是必須要掛接devfs( 文件系統(tǒng)。而另一方面,幾乎所有的應(yīng)用程序都會需要訪問至少一個設(shè)備,這主要取決于應(yīng)用程序的性質(zhì)和目的?刂 jail 中能夠訪問的設(shè)備非常重要,因為不正確的配置, 很可能允許攻擊者在 jail 中進行一些惡意的操作。通過 devfs( 實施的控制,可以通過由聯(lián)機手冊devfs(

devfs.conf(5) 介紹的規(guī)則集配置來實現(xiàn),但為了以后能方便的ssh到j(luò)ail上,這里建議安裝。

我直接在宿主機的/etc/rc.conf里添加如下內(nèi)容

jail_apache_devfs_enable="YES" # 在jail中掛接devfs

⑥配置宿主機的/etc/rc.conf,vim /etc/rc.conf,添加內(nèi)容如下:

jail_enable="YES"
jail_list="apache"

jail_apache_rootdir="/usr/jail/apache"
jail_apache_hostname="你的主機名,如www.51cto.com"
jail_apache_ip="192.168.43.129"
jail_apache_exec="/bin/sh /etc/rc"
jail_apache_devfs_enable="YES"

/etc/rc.conf里原有內(nèi)容如下:

ifconfig_le0="inet 192.168.43.128  netmask 255.255.255.0"
defaultrouter="192.168.43.2"
hostname="mail.ewiz.com"
ifconfig_le0_alias0="inet 192.168.43.129 netmask 255.255.255.0"
#最后一行的目的是為了替Apache的jail添加IP

⑦使用sh /etc/rc來使jail生效,不需要重啟,只需要 sh /etc/rc以后,也就是使他jail enable,就可以啟用jail了,然后就可以使用jls看到j(luò)ail的狀態(tài)了;當然也可以用/etc/rc.d/jail腳本也可以用于手工啟動或停止rc.conf中配置的jail,如 /etc/rc.d/jail start apache。

jail的管理及其配置

管理jail選擇工具jailexec,可先用jls找出運行apache的jid

例如jexec 1 passwd root可以改變jail的root密碼

jexec 1 csh 可以用root和/bin/csh進入jail系統(tǒng)

如何啟動名為apache的jail的ssh

jexec 1 vi /etc/rc.conf
rpc_bind_enable="NO"
sshd_enable="YES"
hostname="你的主機名,如www.51cto.com"

sendmail_enable="NO"
sendmail_submit_enable="NO"
sendmail_outbound_enable="NO"
sendmail_msp_queue_enable="NO"

ntpd_enable="YES"
ntpd_sync_on_start="YES"
named_enable="YES"

以上,

    有關(guān)sendmail的選項是為了關(guān)閉郵件干擾
    Ntpd 是為了同步時間
    Rpc 綁定 no 為了在rc.conf 里面去掉網(wǎng)卡地址的綁定

然后是重要操作 jexec 1 sh /etc/rc 重啟虛擬機的服務(wù),不然啟動不了jail之a(chǎn)pache的ssh的。

另外,在宿主機上建一個用于apache_jail的ssh用戶

jexec 1 pw useradd admin && jexec 1 passwd admin

記得把yjwan 放入wheel 便于進去可以su root 賬戶

jexec 1 pw groupmod wheel -m admin

如何允許你的jail能夠ping

沒有配置前你會很郁悶的發(fā)現(xiàn),無論你ping啥,就會出現(xiàn)

ping: socket: Operation not permitted

如果想永久保留配置,可以在宿主機上面修改/etc/sysctl.conf 文件

加上

security.jail.allow_raw_sockets=1

重啟jail虛擬機

/etc/rc.d/jail restart apache

jail的優(yōu)化

從宿主機 將/etc/resolv.conf 文件 復(fù)制到j(luò)ail系統(tǒng)中

cp /etc/resolv.conf /usr/jail/apache/etc/resolv.conf

將宿主機的make.conf也復(fù)制過去,這樣ports安裝速度很快

cp /etc/make.conf /usr/jail/apache/etc/make.conf

在宿主機上將/usr/ports掛接到j(luò)ail上,此行可添加到/etc/rc.conf上。

mount_nullfs /usr/ports /usr/jail/cas/usr/ports

※這里值得一說的是,由于宿主機有二個IP:192.168.43.128和192.168.43.129,所以我們ssh jail的時候,很有可能還是在宿主機上;只有jail的ssh配置成功才可能ssh上去,ssh上去看,注意看下當前的hostname和ifconfig。

對于FreeBSD8下jail虛擬環(huán)境的搭建就介紹到這里。最后祝大家jail愉快,開發(fā)愉快,生活更愉快!

來源:51cto
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP