在FreeBSD下建立一個jail環境

chrooted jails非常有利於增加你係統上運行的程序的安全性,用FreeBSD的話,很容易就可以設置你的jail環境。

  你必須注意兩點。每個jail都須有自己的IP地址,所以如果需要的話,你可能需要增加一個NIC(網絡接口卡)。另外,如果你的系統有守護進程監聽了所有的ip的話,它將會阻止jail的啓動。你可以用socksta命令查看有哪些daemons在監聽。假如這樣的話,你應該重新配置他們去監聽一個IP.

1.內核選項(Kernel Options:)

jail需要3個不同的sysctl設置項:

jail.set_hostname_allowed
jail.socket_unixiproute_only
jail.sysvipc_allowed

  在大多數情況下,他們的安全級別設置爲0,但這樣會對以後帶來許多麻煩,所以應該把他們設置得更安全些!

2.我們需要下載源碼樹(src tree)。爲了增加安全性,你當然希望你的jail在自己的分區上。

下面就是在/jail分區上建立chroot jail的具體步驟:

(1).
# make world DESTDIR=/jailed
# make installworld DESTDIR=/jailed

(2).現在該在/etc中設置jail了:
# cd /usr/src/etc
# make distribution DESTDIR=/jailed NO_MAKEDEV_RUN=yes

(3).在/dev下進行設置:
# cd /jailed/dev
# sh MAKEDEV jail

[注意] :許多程序會在/kernel下尋找內核,所以幾需要在你的jail裏面僞造一個。

# cd /jailed
# ln -sf dev/null kernel

(4).爲jail設置一個IP:

# ifconfig xl0 alias 192.168.1.199 ,並在/etc/rc.conf中加入:
ifconfig_xl0_alias0="192.168.1.199" 以便在啓動時自動進行配置。

(5).在jail裏面設置一個procfs:

# mount -t procfs proc /jailed/proc

現在你就可以用jail命令來啓動jail了:

# jail <path to jail> <jail hostname> <jail ip> <command>
#jail /jailed myjailedhost 192.168.1.199 /bin/bash

在jail裏面,你還必須做如下幾步:

a.建立文件/jailed/etc/rc.conf,內容爲:

portmap_enable="NO"
network_interfaces=""
sshd_enable="YES"

b.#touch /etc/fstab
c.假如你在運行sendmail,你需要:#newaliases
d.爲jail設置root密碼:# passwd

現在一切都設置好了,但當你退出shell後,jail也會隨之退出,所以有必要把他設置爲一直運行,編寫文件/usr/local/etc/rc.d/jail.sh

停止jail:

# /bin/sh /usr/local/etc/rc.d/jail.sh stop
# /bin/sh /etc/rc.shutdown
# kill -15 -1 (dont do this on a non jailed server =P)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章