もじもじ様・川崎様

青木@名古屋です。 未だ誰からもツッコミが入りませんので...。

On Tue, 05 Jul 2016 09:42:17 +0900 (JST)
moto kawasaki <m...@kawasaki3.org> wrote:

> 
> 川崎です。こんにちは。
> 
> on Mon, 4 Jul 2016 23:08:41 +0900, "IIJIMA Hiromitsu" 
> <delmo...@dennougedougakkai-ndd.org> wrote:
> 
> delmonta> いいじま@二度目の大学生です。
> delmonta> 
> delmonta> > ただ、
> delmonta> > ・ネットブート
> delmonta> > ・ディスクレス
> delmonta> > です。
> delmonta> > DHCP サーバから、pxeboot のエントリ貰って、そこからカー
> delmonta> > ネルをロードしています。
> delmonta> > その後、ipfw + "open" で固まります・・・・
> delmonta> > タイミング的に、NFS のマウント後に ipfw で close->open
> delmonta> > の隙間に、ログが書き込めなくてガッチリホールド、とかあり
> delmonta> > 得るんでしょうか?
> delmonta> > ctl+alt+del すら効かなくなります・・・・
> delmonta> 
> delmonta> 素人考えですが、ipfwがNFSのパケットを遮断してしまって、起動前にこなす
> delmonta> ひとになっているwrite()システムコールをインターバルなしで永久に繰り
> delmonta> 返そうとしている、とか?
> delmonta> 仮想マシンをその場所に設置して、CPU負荷を見てみたいところです。
> 
> きっとこれですよね。
> 
> /boot/loader.conf に net.inet.ip.fw.default_to_accept=0 と書く(*)か、
> または、 https://www.freebsd.org/doc/handbook/firewalls-ipfw.html
> にあるような options を入れて再コンパイルしてますか?(特に
> IPFIREWALL_DEFAULT_TO_ACCEPT)
> 
> /etc/rc.conf に firewall_type="OPEN" と書くと、nat 回りの設定があれば
> それはやるけど他のルールは一切入れないようなので、ipfw の default の全
> パケット拒否が有効になっているような気がします。
> 
> (*) man ipfw の LOADER TUNABLES 参照

stable/10とstable/11だと、/etc/rc.firewallの189〓192行めで
全通にするルールが設定されていますよ。 具体的な設定部分は

 ${fwcmd} add 65000 pass all from any to any

になっています。

それよりも気になるのが、PXEブート等のネットワークブートは未経験のため
仕組みを理解していませんが、ローカルの起動と同様なら
 ローダの読み込み
 →少なくとも/bootだけは存在する起動用パーティション読み込み
 →/boot/loader.confの設定(又はデフォルト)に従ってtunable設定
 →同様にカーネルとモジュールを読み込み
 →同様に/をリマウント
 →リマウントされた/(以下同じ)の/sbin/initを起動
 →initからrcを実行し、そこからrc.conf等の処理を起動
 →rc.conf等の指定に従って/etc/rc.firewall等の処理を起動
という流れになります。 ネットワークブートの場合に/のリマウントが
無いのであれば、最低限起動に必要なディレクトリはPXEで読み込まれる
パーティションに揃っていないとアウトという気がします。

また、/etc/rc.d/でipfwからREQUIREされるものを目視で辿っていっても
mountcritremoteにたどり着きません。 NFS関連はこのmountcritremoteで
処理されるため、ipfw関連の処理でNFSシェアへのアクセスが必要になった
瞬間にアウトになりそうです。(見落としていたら申し訳ありません)

そこでもうひとつ気になるのが、/tmpや/varがどうなっているかです。
ネットワークブートの場合、起動用イメージは(セキュリティや管理上)
readonlyの運用が基本と推測しますが、下記はどうなっていますか?

 ・/tmpはmfsになっているか(下記のいずれか)
   ・rc.confでtmpmfs="YES"になっている
   ・上記未設定のままでfstabやZFSデータセットで/tmpが設定されて
    いない

 ・/varはmfsになっているか(下記のいずれか)
   ・rc.confでvarmfs="YES"になっている
   ・上記未設定のままでfstabやZFSデータセットで/varが設定されて
    いない

もし/tmpや/varがNFSシェアに設定されているとipfw絡みのログ等を書き込もう
とした時点でマウントが完了していないとアウトですが、/tmpや/varの中身が
再起動時に消失して問題なければ、tmpmfsやvarmfsの使用を考慮する価値が
あるかと。 設定については/etc/defaults/rc.confを参照して下さい。

 ※/var/db等、ipfwの起動時点で不要かつ消失しては困る(他サービスの
  起動時に参照したい)個別のディレクトリについてはfstabでNFSマウント
  する、/var/logは極力syslogサーバを立ててそちらに飛ばしつつ、飛ばせ
  ないものは何らかの手段でNFSシェアに一方通行で同期するようにせざるを
  得ませんが...。

> 
> -- 
> moto kawasaki <m...@kawasaki3.org>
> 
> _______________________________________________
> freebsd-users-jp@freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/freebsd-users-jp
> To unsubscribe, send any mail to "freebsd-users-jp-unsubscr...@freebsd.org"
> 


-- 
青木 知明  [Tomoaki AOKI]
    junch...@dec.sakura.ne.jp
_______________________________________________
freebsd-users-jp@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-users-jp
To unsubscribe, send any mail to "freebsd-users-jp-unsubscr...@freebsd.org"

メールによる返信