Successfully reported this slideshow.
Your SlideShare is downloading. ×

Free bsd jail入門

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad

Check these out next

1 of 27 Ad

More Related Content

Slideshows for you (20)

Viewers also liked (9)

Advertisement

Similar to Free bsd jail入門 (20)

Recently uploaded (20)

Advertisement

Free bsd jail入門

  1. 1. FreeBSD jail入門
  2. 2. 自己紹介  名前  乃村 翼  facebook  Tsubasa Nomura で検索してください  お仕事  Windows Serverのサポート  英語とMCPの勉強中。。。 サポート終了! 2
  3. 3. 目次 1. FreeBSD jailとは 2. FreeBSD jailとは(もう少し詳しく) 3. FreeBSD jailの構築(基本編) 4. FreeBSD jailの構築(ezjail編) 5. FreeBSD jail Tips 6. 【番外編】Hyper-Vでの仮想環境構築Tips 3
  4. 4. FreeBSD jailとは  コンテナ型仮想化のひとつ  Linux界隈で盛り上がっているLXCと類似。  各jailはホストマシン上で動く仮想機械であり、独自のファイ ルシステムやプロセス空間、ユーザーアカウントを持つ。 (by Wikipedia:http://ja.wikipedia.org/wiki/FreeBSD_jail) 引用元: http://ascii.jp/elem/000/000/419/419268/#eid419270 4
  5. 5. FreeBSD jailとは  FreeBSD 4.0で登場  2000年。LXCよりもだいぶ前!  安定 5
  6. 6. FreeBSD jailとは(もう少し詳しく)  ディレクトリツリー、プロセス、ネットワークスタックの分離  jail 環境ではプロセスは指定されたルートディレクトリから外に出るこ とは出来ません。  似た機構に chroot がありますが、こちらはアクセス出来るファイルシ ステムを限定するのみであり、 ユーザやネットワークはホスト環境と共 有します。  プログラムのロジックによっては、プロセスは chroot されたディレク トリの外にアクセスすることが出来てしまいます。  ネットワークスタックも仮想化。  FreeBSD 8.0からjail が Vimage 対応に。  ホスト名  jail では環境毎にホスト名を持つことが出来ます。 6
  7. 7. FreeBSD jailとは(もう少し詳しく)  IP アドレス  jail では構築時に IP アドレスが割り当てられます。複数のIPアドレスを割り 当てることも可能です。  コマンド  ファイルシステムが分離される為、もちろんコマンドパスは jail 毎に全く異 なります。ports シ ステムを使用した環境ではユーザ用コマンドは /usr/local/bin に配置されますが、コマンドパスを 変えることが出来ます。  root ユーザ  Unix では root ユーザは特権ユーザとして全ての権限を持っています。jail のゲスト環境でもroot ユーザは存在しますが、ホスト環境を破壊すること が無いように、root ユーザであっても、一部の機能に制限事項があります。 7
  8. 8. 動かしてみる 8
  9. 9. 構成 vyatta 192.168.20.x/24 FreeBSD Hyper-V Jail Jail Jail 9
  10. 10. FreeBSD jailの構築(基本編)〜jail 作成〜 1. jailのディレクトリを作成し、 2. ユーザランドをビルドして、 3. 指定したディレクトリへインストール。 4. ユーザランドのアプリが使うことがある為、デバイスのマウ ントもしておく。  セキュリティリスクが上がる為注意する。 5. インターフェースにエイリアスIPアドレスを設定して、起動 # export JAIL_D=/opt/jails/container01 # mkdir -p $JAIL_D # cd /usr/src/ # make -j 5 buildworld # make installworld DESTDIR=$JAIL_D # make distribution DESTDIR=$JAIL_D # mount -t devfs devfs $JAIL_D/dev # ifconfig hn0 alias 192.168.20.10 # jail /opt/jails/containers container01 192.168.20.10 /bin/sh /etc/rc 10
  11. 11. FreeBSD jailの構築(基本編)〜jail 起動と停止〜 1. jailの一覧を出力 2. jail IDを指定してシェルを実行 3. killall の jオプションでjail IDを指定 # jls # jexec 22 tcsh # killall -j 22 11
  12. 12. jail簡単ですね!でも。。。  jailコマンドで作成すると・・・  ディスクを無駄に使う。  同じ設定・構成のjailを何個も作るのが面倒。  バックアップやリカバリを簡単にしたい。  そこで。。。 ezjail 12
  13. 13. FreeBSD jailの構築(ezjail編)〜jail 作成〜 1. jailのインストール先を設定ファイルに記述 2. ベースシステムをインストール 3. jailを作成する # vi /usr/local/etc/ezjail.conf ezjail_jaildir=/opt/ezjails # ezjail-admin install # ezjail-admin create -f example container02 192.168.20.10  予めportsもしくはpkgでezjailをインストールする。 13
  14. 14. FreeBSD jailの構築(ezjail編)〜jail 起動と停止〜 1. ezjail-admin startで起動 2. ezjail-admin consoleでjailの中へ # ezjail-admin start container02 # ezjail-admin console container02 1. ezjail-admin stopで停止 2. ezjai-admin delete で削除 ※-wオプションでファイルの削除までします # ezjail-admin stop container02 # ezjail-admin delete –w container02 14
  15. 15. FreeBSD jailの構築(ezjail編)〜さらに詳しく〜  ezjail-admin install  -m manpageのインストール  -s FreeBSDソースのインストール  -p portsのインストール  -r リリースバージョンを指定してjail をインストールします。8.4- RELEASE、9.2-RELEASE などが指定できます。 尚、jail 環境下でuname -r をした場合でも、ホスト環境のバー ジョンが出力されます。ライブラリ、コマンドが指定されたバー ジョンでインストールされます。 # ezjail-admin install -r 9.2-RELEASE 15
  16. 16. FreeBSD jailの構築(ezjail編)〜さらに詳しく〜  ezjail-admin create  -i md デバイスを用い、img ファイルにjail のゲスト環境を構築し ます。  -c 他のファイルシステムを使用したjailを構築します。 以下コマンドでは、ZFS へjail のゲスト環境を構築します。 # ezjail-admin create -c zfs -s 300M container001 192.168.20.100 # ezjail-admin create -i -s 100M -f example C78 192.168.1.250 # ll /opt/jails/ total 102488 drwxr-xr-x 2 root wheel 512 Jul 26 01:50 C78 -rw-r--r-- 1 root wheel 104857600 Jul 26 01:50 C78.img drwxr-xr-x 9 root wheel 512 Jul 26 00:59 basejail drwxr-xr-x 3 root wheel 512 Jul 26 00:59 flavours drwxr-xr-x 12 root wheel 512 Jul 26 00:59 newjail 16
  17. 17. FreeBSD jailの構築(ezjail編)〜さらに詳しく〜  ezjail-admin console  -f 停止状態のゲスト環境を起動した後に、ログインすることが出来 ます。 バグがありましたが、V3.2.3で直してもらいました! https://erdgeist.org/gitweb/ezjail/ 17
  18. 18. FreeBSD jailの構築(ezjail編)〜さらに詳しく〜  ezjail-admin list  jail 環境を一覧で出力します。  STA の列にはjail のステータスが出力されています。それぞ れのアルファベットは以下の状態を表します。 D ディレクトリベースで構築されたjail。 I md ファイルイメージベースで構築されたjail。 B bde デバイスで構築されたjail。 E eli デバイスで構築されたjail。 Z zfs デバイスで構築されたjail。 R 起動状態のjail。 A bde デバイス、eli デバイスにおいて、attach されているjail。 S 停止状態のjail。 N config オプションにより、disable 状態となっているjail。 18
  19. 19. FreeBSD jailの構築(ezjail編)〜さらに詳しく〜  ezjail-admin config  -r run、norun により、disable/enable 状態を切り替えることが出 来ます。disable 状態となったjail は、start 時に起動しません。 複数のjail 環境が存在する場合に、特定のjail 環境を起動させたく ない場合に使用します。  -n jail名の変更ができます。  -c CPU が複数個ある場合、jail を動作させるCPU を指定することが 出来ます。内部的にcpuset(1) を使用しています。 # ezjail-admin config -r norun C78 # ezjail-admin config -n after before # ezjail-admin config -c 0 C80 19
  20. 20. FreeBSD jailの構築(ezjail編)〜さらに詳しく〜  ezjail-admin delete  jail のゲスト環境を削除します。 -w オプションにより、ファイルの削除を行いま す。ZFS を使用していた場合はデータセットを削 除します。 # ezjail-admin delete -w C80 20
  21. 21. FreeBSD jailの構築(ezjail編)〜さらに詳しく〜  ezjail-admin archive  jail 環境のバックアップを作成します。 -a オプションで作成後のファイル名、-d オプションで作成先の ディレクトリパスを指定します。 デフォルトではjail のルートディレクトリに、jail 名をファイル名 として作成されます。 また、-A オプションを使用することで全てのjail のバックアップ を作成することが出来ます。  ezjail-admin restore  archive オプションによって作成したバックアップから復元しま す。 # ezjail-admin restore C80 # ezjail-admin archive C80 21
  22. 22. FreeBSD jail Tips  インストールしたら以下の初期設定をしておく。  /etc/resolv.confの作成。  /etc/hostsの追記。  cronからadjkerntzのコメントアウト。  タイムゾーンの設定。 22
  23. 23. FreeBSD jail Tips  マウントポイントの設定  jail のマウントポイントはホスト環境の/etc/fstab.<jail 名>に記 述されています。内容は、ホスト環境のfstab と同様です。  dmesg の不可視化  jail 環境でセキュアな環境を構築する場合、ハードウェアやカー ネルログを出力するdmesg コマンドを実行できるのは好ましく ないでしょう。sysctl により、抑止することが出来ます。  以下をホスト環境のsysctl.conf に追記します。 ※下記カーネルパラメータを設定するとホストのrootユーザ以外 はdmesgの内容を取得することができません。 # security.bsd.unprivileged_read_msgbuf=0 23
  24. 24. FreeBSD jail Tips  pingを打てるようにする  /usr/local/etc/ezjail/<コンテナ名> ファイルに下記を記述する  ホストからパッケージ管理を行う export jail_container001_parameters="allow.raw_sockets" pkg –j コンテナ名 <info|install|delete|etc…> 24
  25. 25. 【番外編】Hyper-Vでの仮想環境構築Tips 25
  26. 26. まとめ  jailは簡単!  ezjailを使うともっと簡単&便利!  Dockerもいいけどjailも頑張ってます 26
  27. 27. ご清聴ありがとうございました。 27

×