Ab.の日記: 家鯖 wan jail 実装変更テスト
日記 by
Ab.
今まで外部にサービスするプロセスは non jail 環境で動作させる必要が無ければ wan ip address 上の jail 環境(通称 wan jail)で動かしていたのですが、その設定をちょっと変えてみることにしました。(ちなみに現状では外に口を開けてるプロセスはすべて wan jail で動いてます)
具体的には lo1 を作って private address を振り、jail はそこに作りサービスもそこで動作させます。
そして packet filter の pf で wan への着弾をサービスまでリダイレクトします。
こうしておくと、なんらかの要因で pf が動作しなくなった場合にサービスはインターネットから切り離されて安全側に倒れることになります。
現状では外部に提供しているサービスが exploit される可能性を考えて wan の address が src address のものは pf で lan 側へのパケットを落としているのですが、万一 pf が動作していない場合(/etc/rc.conf の pf_enable=YES を間違って消した等)に素通しになってしまいます。
これを pf からの redirect が無い限り外部にサービスを提供出来ないとしてしまえば、なぜか pf が居なくなってしまった場合でも大丈夫です。
pf が動いていないと内部アドレスのサービスから lan へはパケットが通ってしまいますが、そもそもその内部アドレスへ外部からは到達することが出来なくなるからです。
そのため遅延発火式の何かが仕込まれなければ安全、と。
jail 上の実行ファイルやら /etc やら .ssh なんかは全部 nullfs で read only mount して書き換えられないようになっているので、そっちも比較的安全でしょう。
あとはもう一工夫して、自分から外に出て行く可能性のあるサービス用と、コネクションを受け付けてそれに返答するだけのサービス用に jail を分けて、後者は自分からコネクションを開始しに行くことが出来ないように pf で設定してしまうという所まで考えましたが、そこまでするのも paranoid 過ぎるかなーと思って却下。
jail 一個増やすと mount 箇所が20行位増えちゃうし。ていうか mount って内部でテーブルに制限とかあったりするのかしら。
ちなみにこうして内側のアドレスで sshd を立てておけば ssh -R の方の remote forward も確実に安全に使うことが出来ます。(今までも pf で外部からの着弾は落としてたりして安全ではありましたが)
具体的には lo1 を作って private address を振り、jail はそこに作りサービスもそこで動作させます。
そして packet filter の pf で wan への着弾をサービスまでリダイレクトします。
こうしておくと、なんらかの要因で pf が動作しなくなった場合にサービスはインターネットから切り離されて安全側に倒れることになります。
現状では外部に提供しているサービスが exploit される可能性を考えて wan の address が src address のものは pf で lan 側へのパケットを落としているのですが、万一 pf が動作していない場合(/etc/rc.conf の pf_enable=YES を間違って消した等)に素通しになってしまいます。
これを pf からの redirect が無い限り外部にサービスを提供出来ないとしてしまえば、なぜか pf が居なくなってしまった場合でも大丈夫です。
pf が動いていないと内部アドレスのサービスから lan へはパケットが通ってしまいますが、そもそもその内部アドレスへ外部からは到達することが出来なくなるからです。
そのため遅延発火式の何かが仕込まれなければ安全、と。
jail 上の実行ファイルやら /etc やら .ssh なんかは全部 nullfs で read only mount して書き換えられないようになっているので、そっちも比較的安全でしょう。
あとはもう一工夫して、自分から外に出て行く可能性のあるサービス用と、コネクションを受け付けてそれに返答するだけのサービス用に jail を分けて、後者は自分からコネクションを開始しに行くことが出来ないように pf で設定してしまうという所まで考えましたが、そこまでするのも paranoid 過ぎるかなーと思って却下。
jail 一個増やすと mount 箇所が20行位増えちゃうし。ていうか mount って内部でテーブルに制限とかあったりするのかしら。
ちなみにこうして内側のアドレスで sshd を立てておけば ssh -R の方の remote forward も確実に安全に使うことが出来ます。(今までも pf で外部からの着弾は落としてたりして安全ではありましたが)
家鯖 wan jail 実装変更テスト More ログイン