*USB flashの初期化 [#y3341308]
-CD Only ModeでLiveCDを立ち上げる。
-rootでログイン後、fdiskを実行~
USB flashによっては、BIOSからディスクジオメトリ報を取得できない場合があり、fdiskが正常に実行できない場合がある。その場合はCylinder/Head/Sectorを明示的に指定してfdiskを実行する。例えばdmesgで表示されたUSB flashがデバイスsd0で、サイズが248MBの場合、
 fdisk -c 248 -h 64 -s 16 sd0
head数を64, 1トラックあたりのsector数を16とすれば、1sector当たり512バイトであるから、~
''64 * 16 * 512 = 1024 * 1024''~
となり、1トラックあたり丁度1メガバイトとなるから、メガバイト単位での容量をシリンダ数として指定すれば良いことになる。
-fdiskパーティションとしてOpenBSD (ID=0xA6)確保。
-disklabelを使ってaパーティションを確保。
 disklabel -E sd0
-aパーティションをフォーマットする。
 newfs -b 4096 -f 512 -i 1024 /dev/rsd0a
保存容としてはシンボリックリンクやサイズの小さなファイルが多数含まれるため、ブロック/フラグメントサイズを最小にし、iノードの数も多めに設定。
-保存用ディレクトリを作成
 mount /dev/sd0a /mnt
 mkdir /mnt/livecd-config
 umount /dev/sd0a
*PFを使用したアドレス変換の例 
仕事で要になりそうなんで、予備実験の後ちょびっと書いてみた備忘録
**要件 
-異なるネットワークに属するホストA、ホストB間で通信したい。
-通信は両方のネットワークに接続されたゲートウェイで中継する。
-ホストA、ホストBのルーティング設定などをいじりたくないため;
--Host Aは同一ネットワークに属するゲートウェイのL側(下図参照)と通信しているように見せかけたい。
--同様に、Host BからはゲートウェイのR側と通信しているように見せかけ、実際にはHost Aと通信するようにしたい。
-使用プロトコルはHTTP及びFTPを想定。
--Host A及びBではproxyの存在などを意識せず、透過的に通信できるようにしたい。
-プロトコルとして、アクティブモードのFTPを使用することが予想される。
--そのため、Host A, Host BのどちらからでもTCPのセッションを開始できるようにする要がある。
**システム構成 
下図のとおり
    addr_A                    addr_B
 +------+        +-------+        +------+
 |Host A|------->|GateWay|------->|Host B|
 |      |<-------|       |<-------|      |
 +------+        +-------+        +------+
              if_L    if_R
            addr_L  addr_R
 
            ネットワーク構成図
(表記)
-Host A, Host BのIPアドレスをそれぞれ、addr_A, addr_Bとする
-GatewayのHost A側のネットワークインターフェース名をif_L、そのIPアドレスをaddr_L。
同様に、Host B側のネットワークインターフェース名をif_R、そのIPアドレスをaddr_Rとする。
**ソリューション 
-A->B方向の変換
--始点 addr_A, 終点 addr_L のパケットを if_L にて Host Bに向けなおす。/etc/pf.confの記述行は以下のようになる;
 rdr pass on if_L from addr_A to addr_L -> addr_B
''pass''は、フィルタリングルールをバイパスするための指定
--rdrによって向け直されたパケットは始点アドレスがaddr_Aのままなので、
Host Bからの復路のパケットの終点アドレスがaddr_Aとなり、このままでは戻りパケットがHost Aに到達しない。~
よって往路のパケットがif_Rを通過する時に、始点アドレスを書き換える。
 binat pass on if_R from addr_A to addr_B -> if_R
binatを使用するのは、アドレス変換に伴いポートが変ってしまわないための意味もある。

以上で保存メディアの作成は終了。
*保存データの作成 [#j0bbb5be]
*データの復帰 [#aeabe7fe]
*データの退避 [#x10d6dfc]
-B->A方向の変換
--B->A方向にもセッションを張れるようにするためには、
A->Bで挙げた例と対称な記述を付け加える。
 rdr pass on if_R from addr_B to addr_R -> addr_A
 binat pass on if_L from addr_B to addr_A -> if_L
**実行結果 
-HTTPに関しては、問題なく実行できた
-FTPは、ログインまでは可能であったが、ディレクトリの一覧やファイルの送受信は不能。
--FTPではデータコネクションを張るときにPORTコマンドを相手に送るが、このパラメータに生のIPアドレスが含まれているため、それに対して直接接続を張ろうとする。このため、うまく行かない~
→ FTPに関してだけは ftp-proxy(8)を使用する要がある。
**感想とか 
-PFでは、フィルタリングルールはlast matchだが、nat ruleはfirst matchらしい
-FTPマンドクセ


Front page   New Page list Search Recent changes   Help   RSS of recent changes