Install FreeBSD Jails

FreeBSD jails merupakan virtualisasi dalam freeBSD yang mirip XEN , openVZ , dll .Dalam kasus ini saya menggunakan FreeBSD 7.1
Buat folder lokasi jail , sebagai contoh saya meletakkan di /usr/jails/webserver

cd /usr/
mkdir jails
cd jails
mkdir webserver1
sysinstall

Pada saat sysinstall

1. Pada menu pilih “Custom”.
2. Pilih “2 Options” dan tujukan kursor ke “Install Root /”. Tekan spasi dan rubah “/” ke “/usr/jails/webserver”. Tekan ‘q’ untuk keluar.
3. Pilih “5 Distributions” dan pilih “A Minimal”.
4. Kemudian pilih “6 Media” , dan pilih media yang digunakan untuk installasi jail ,disini saya menggunakan cdrom.
5. Jika sudah semua , pilih “7 Commit”.

Visit the general configuration menu for a chance to set any last options? , pilih NO
Jika berhasil maka akan terbentuk beberapa directory

# cd /usr/jails/webserver
# ls
.cshrc           boot          libexec        rescue         tmp
.profile         dev           media          root           usr
COPYRIGHT        etc           mnt            sbin           var
bin              lib           proc           sys
#


Pada host machine , tambahkan di /etc/rc.local

ifconfig_em1_alias0="inet 192.168.8.201 netmask 255.255.255.255"
jail_set_hostname_allow="NO"
jail_enable="YES"
jail_list="webserver"
jail_interface="em1"
jail_devfs_enable="YES"
jail_procfs_enable="YES"

jail_webserver_rootdir="/usr/jails/webserver"
jail_webserver_hostname="webserver"
jail_webserver_ip="192.168.8.201"
jail_webserver_devfs_ruleset="devfsrules_jail"

Jika terdapat banyak jail sesuaikan jail_list dengan nama jail yang ada , misal jail_list=”webserver dnsserver mailserver”

Berikutnya , edit atau buat rc.conf pada jailnya /usr/jails/webserver/etc/rc.conf

hostname="webserver"
ifconfig_rl0="inet 192.168.8.201 netmask 255.255.255.0"
defaultrouter="192.168.8.1"
rpcbind_enable="NO"
clear_tmp_enable="YES"
sendmail_enable="YES"
sshd_enable="YES"

Berikutnya copy resolv.conf

# cp /etc/resolv.conf /usr/jails/webserver/etc/

Menjalankan jail :

# /etc/rc.d/jail start
Configuring jails:.
Starting jails: webserver.

Jika berhasil , lihat jail yang berjalan sekarang

# jls
   JID  IP Address      Hostname                      Path
     1  192.168.8.201   webserver                    /usr/jails/webserver

Sekarang jail sudah bisa berjalan :)

Ubah password root :

# jexec 1 touch /etc/fstab
# jexec 1 passwd
Changing local password for root
New Password:
Retype New Password:

Buat user baru :

# jexec 1 adduser
Username: kucing
Full name: kucing asia
Uid (Leave empty for default):
Login group [kucing]: wheel
Login group is wheel. Invite kucing into other groups? []:
Login class [default]:
Shell (sh csh tcsh nologin) [sh]: csh
Home directory [/home/kucing]:
Use password-based authentication? [yes]:
Use an empty password? (yes/no) [no]:
Use a random password? (yes/no) [no]:
Enter password:
Enter password again:
Lock out the account after creation? [no]:
Username : kucing
Password : ********
Full Name : kucing asia
Uid : 1001
Class :
Groups : wheel
Home : /home/kucing
Shell : /bin/csh
Locked : no
OK? (yes/no): yes
adduser: INFO: Successfully added (kucing) to the user database.
Add another user? (yes/no): no
Goodbye!

Untuk mengenable ssh kita perlu mengubah “ListenAddress” pada sshd_config , edit menjadi seperti ini

ListenAddress 192.168.8.201

perintah-perintahnya :

# jexec 1 login
# su
# /etc/rc.d/sshd stop
# ee /etc/ssh/sshd_config
# /etc/rc.d/sshd start

Saat pertama menggunakan jail , saya tidak dapat melakukan ping ke jaringan local

ping: socket: Operation not permitted

tambahkan pada host machine di /etc/sysctl.conf

security.jail.allow_raw_sockets=1