1/ 2/ 34
------------------------------------------------------------------------

jail環境構築(ezjail)

HOST 192.168.110.5
jail    192.168.110.6
------------------------------------------------------------------------

***************************************
ezjailインストール
***************************************

# cd /usr/ports/sysutils/ezjail/
# make install clean
# cp -p /usr/local/etc/ezjail.conf.sample /usr/local/etc/ezjail.conf

# vi /usr/local/ezjail.conf

////////////////////////////////////////////////////////////////////////////
# Location of jail root directories
#
# Note: If you have spread your jails to multiple locations, use softlinks
# to collect them in this directory
ezjail_jaildir=/usr/jails

# Location of the tiny skeleton jail template
ezjail_jailtemplate=${ezjail_jaildir}/newjail

# Location of the huge base jail
ezjail_jailbase=${ezjail_jaildir}/basejail

# Location of your copy of FreeBSD's source tree
ezjail_sourcetree=/usr/src

# In case you want to provide a copy of ports tree in base jail, set this to
# a cvsroot near you
# ezjail_portscvsroot=:pserver:anoncvs@anoncvs.at.FreeBSD.org:/home/ncvs
#ezjail_portscvsroot=":pserver:anoncvs@anoncvs.jp.FreeBSD.org:/home/ncvs"
# This is where the install sub command defaults to fetch its packages from
# ezjail_ftphost=ftp.freebsd.org

# base jail will provide a soft link from /usr/bin/perl to /usr/local/bin/perl
# to accomodate all scripts using '#!/usr/bin/perl'...
# ezjail_uglyperlhack="YES"

# Default options for newly created jails
#
# Note: Be VERY careful about disabling ezjail_mount_enable. Mounting
# basejail via nullfs depends on this. You will have to find other
# ways to provide your jail with essential system files
ezjail_mount_enable="YES"
ezjail_devfs_enable="YES"
ezjail_devfs_ruleset="devfsrules_jail"
ezjail_procfs_enable="YES"
ezjail_fdescfs_enable="YES"
////////////////////////////////////////////////////////////////////////////

# ezjail-update //長時間掛かるので注意

jail-remove.txtで不要なファイルを削除

# fetch http://memberwebs.com/stef/freebsd/jails/docs/6.x/jail-remove.txt
# sed "s#^/#/usr/jails/newjail/#" < jail-remove.txt | xargs rm -rfv
# sed "s#^/#/usr/jails/basejail/#" < jail-remove.txt | xargs rm -rfv

/usr/jails 158MB
jail-remove.txtで余計なファイルを消して121M

host# vi /etc/rc.conf
ezjail_enable="YES"
inetd_flags="-wW -C 60 -a 192.168.110.5"
ifconfig_fxp0_alias0="inet 192.168.110.6 netmask 255.255.255.255"
rpcbind_enable="NO" //ポートマッパーを止める

aliasの設定
host# ifconfig fxp0 inet 192.168.110.6 netmask 255.255.25.255 alias

jailでpingやtracerouteが使えるようにする。
host# vi /etc/sysctl.conf
security.jail.allow_raw_sockets=1

jailにSSHをアクセス
host# vi /etc/ssh/sshd_config
ListenAddress 192.168.110.5

このまま環境作ろうとすると

Warning: Some services already seem to be listening on all IPと出るので一度再起動。

jail環境構築
host# ezjail-admin create virtual 192.168.110.6 //一瞬で終わる。

jailにログイン
host# jexec 1 /bin/tcsh //JIDは変わる時があるのでjlsコマンドで確認すること


パスワード変更やユーザ追加
jail# passwd root
jail# adduser hoge
ホストのほうから.cshrcをコピーしておく。


ログアウトしてホストでcrontabをコメントアウト
host# exit
vi /usr/jails/virtual/etc/crontab
1,31 0-5 * * * root adjkerntz -a

/etc/fstab の設定
host# touch /usr/jails/virtual/etc/fstab

resolv.conf の設定をして名前解決出来るようにする

host# cp /etc/resolv.conf /usr/jails/virtual/etc/

ローカルタイムの設定
host# cd /usr/jails/virtual/etc
host# touch wall_cmos_clock
host# ln -sf ../usr/share/zoneinfo/Asia/Tokyo localtime

# vi /usr/jails/virtual/etc/rc.conf
defaultrouter="192.168.110.5"
hostname="virtual.example.com"
network_interfaces="" //ネットワークインターフェースの設定を無効
inetd_enable="YES"
inetd_flags="-wW -C 60 -a 192.168.110.6"
rpcbind_enable="NO" //ポートマッパーを無効
sendmail_enable="NONE" //sendmailを無効
sendmail_submit_enable="NONE"
sendmail_outbound_enable="NONE"
sendmail_msp_queue_enable="NONE"
sshd_enable="YES"
sshd_flags="-4"
syslogd_flags="-ss"
tcp_keepalive="NO"
tcp_extensions="NO"
cron_flags="-J 15"

/usr/jails/virtual/etc/ssh/sshd_config に一行加えます
ListenAddress 192.168.110.6

/usr/jails/virtual/etc/inetd.confや/usr/jails/virtual/etc/namedb/named.conf を編集する

jailでportsが使えるようにportsツリーのマウントポイントの設定
host# vi /etc/fstab //ホスト環境
/usr/ports /usr/jails/virtual/basejail/usr/ports nullfs ro,noauto 0 0
/usr/src /usr/jails/virtual/basejail/usr/src nullfs ro,noauto 0 0

portsの書き込み用ディレクトリ作成
jail# mkdir /var/ports
jail# mkdir /var/ports/distfiles
jail# mkdir /var/ports/packages

jail#/etc/make.conf
WRKDIRPREFIX= /var/ports
DISTDIR= /var/ports/distfiles
PACKAGES= /var/ports/packages
WITHOUT_X11=yes


portsツリーをマウント
host# mount /usr/jails/virtual/basejail/usr/portshost
host# mount /usr/jails/virtual/basejail/usr/src


今のままだとnullfsが使えないのでkldstatでカーネルモジュール一覧を確認。
nullfs.koがなければkldload nullfsで読み込む。

参考
FreeBSDでサーバの仮想化技術「jail」を使った複数ドメインでの運用

ezjailでFreeBSDのjailを作る
tar.gz

圧縮
# tar czvf hoge.tar.gz hoge

解凍
# tar zxvf hoge.tar.gz



tar.bz2

圧縮
# tar jcvf hoge.tar.bz2 hoge

解凍
# bzip2 -dc hoge.tar.bz2 | tar xvf -
# tar jxvf hoge.tar.bz2



bz2

圧縮
# bzip2 hoge

解凍
# bunzip2 hoge
# bzip2 -d hoge




zip

圧縮
# zip hoge.zip hoge

解凍
# unzip hoge.zip
FreeBSDの日本語インストーラを配布している
有限会社小金丸コンピュータエンジニアリングサービスから
bootflp.tar.gzをダウンロードをして適当なフォルダに解凍する。

次にイメージファイルをFDに書き込むために必要なfdimageをダウンロード。
ftp://ftp.freebsd.org/pub/FreeBSD/tools/fdimage.exe
bootflp.tar.gzと同じフォルダまたはパスの通ってるフォルダに置く。

コマンドプロンプトを起動。
C:\bsd\>fdimage boot.flp a:
C:\bsd\>fdimage kern1.flp a:
C:\bsd\>fdimage kern2.flp a:
C:\bsd\>fdimage kern3.flp a:
C:\bsd\>fdimage mfsroot1.flp a:

毎回
C:\bsd\>
と表示されFDDのアクセスランプが消えたのを確認後取り出す。

フロッピーイメージの入れる順番は下記の通り
1.boot.flp
2.kern1.flp
3.kern2.flp
4.kern3.flp
5.boot.flp
6.mfsroot1.flp
7.boot.flp




FreeBSDのCDから起動ディスクを作成する。

コマンドプロンプトを起動後下記のコマンドを入力。

cd D:\floppies
..\tools\fdimage boot.flp a:
..\tools\fdimage kern1.flp a:
..\tools\fdimage kern2.flp a:
..\tools\fdimage kern3.flp a:
..\tools\fdimage mfsroot.flp a:

参考
有限会社小金丸コンピュータエンジニアリングサービス
# cd /usr/ports/net-im/pebrot
# make install clean;rehash
# pebrot // 初回起動はpebrotrcがコピーされる
# vi $HOME/.pebrot/pebrotrc

user=メールアドレス
password=パスワード
#encoding= ISO8859-1
encoding= EUC-JP

参考
腹部hiki - (Linux) Tips - Soft
びんずめ堂から必要なファイルをダウンロード。
自分のはintel製だったのでbbrlinux-0.1.0_i.zip for Intel Flashとramdisk-0.1.1.bz2を落とす。

bbrlinux-0.1.0_i.zipを解凍したあと

バイナリエディタのStirlingを使いbbrlinux_i.binを開く。

アドレス000C000の4Dを48に書き換え保存。


PCとBBR-4HGをLANケーブルで直接繋ぐ。

http://192.168.11.1にアクセス

ユーザー名 root
パス なし

アドバンスト→管理→bbrlinux_i.binを選択してファームウェア更新

BBR-4HGの電源入れ直す。

ローカルエリア接続→TCP/IPプロパティ→IPアドレスを自動的に取得する
192.168.0.100が割り当てられる。

puttyで接続タイプTelnetを選択して
192.168.0.1にアクセス

ユーザー名 root
パス bbr4mg

TFTPサーバー Poor TFTP Server for WIN32を使いTFTPサーバを立ち上げる。


ptftp32を実行してAuthorized Directoryをramdisk-0.1.1.bz2のある
ディレクリを選択。

ramdisk-0.1.1.bz2をramdisk.bz2にリネーム。

puttyでログイン後、以下のコマンドを打ち込む。
tftp -g -l /dev/mtd5 -r ramdisk.bz2 192.168.0.100

ctrl-dでログアウト後にACアダプターを外して再起動(rebootコマンドはやらないように!)

再度puttyでアクセス。

パスワード変更 (これを行うことでBBR-4HGの設定ファイルが消えるので注意)
# passwd
# sh /etc/format.sh
# sh /etc/write.sh

これでLinux化出来ました。




Ramdisk dataの作り直し

etc/init.d/rcSを書き換えたくてFreeBSDでramdisk.bz2(ext2)をマウントしようとしたけどOSがサポートしてないと言われマウント出来ず。

調べてみたらFreeBSDだとカーネル再構築が必要なようなのでCentOSでやることに。

FreeBSDで、LinuxのEXT2ファイルシステムをマウントする

解凍
# bunzip2 ramdisk-0.1.1.bz2

マウント
# mkdir /mnt/bbr4mg
# mount -o loop ramdisk-0.1.1 /mnt/bbr4mg

アンマウント
# umount /mnt/bbr4mg

圧縮
# bzip2 -z ramdisk-0.1.1
# mv ramdisk-0.1.1.bz2 ramdisk.bz2

TFTPサーバを再び立ち上げてputtyでアクセスして書き込む。
# tftp -g -l /dev/mtd5 -r ramdisk.bz2 192.168.0.100

再起動

参考
びんずめ堂
BUFFALO BBR-4MG(Linux導入)
  top  
忍者ブログ [PR]Android iphone


Copyright (C) 2007-2010 大塚味噌醸造所 All Rights Reserved.