Sponsored Link
 戻る

260.あ

投稿者: ぴゅあ - 2003年07月15日 20時42分14秒

 以下 訂正してくだせぇ
 見りゃ判るだろけど

> #$IPTABLES -A FW_INT_EXT -p icmp --icmp-type echo-request -j ACCEPT
> $IPTABLES -A FW_INT_EXT -p icmp -j DROP
 FW_INT_EXT→FW_LAN_WAN
コメント>>過去ログについては訂正しました

259.で これ  (訂正済み)

投稿者: ぴゅあ - 2003年07月15日 20時36分38秒

 でぁ 再構築に入るでし
 所要時間は半日・・・
 とか掛かりそうと言いたいとこだけど実際のとこは日が変わるかどうか頃には終わってるだろう
 最小構成+bind,ntp,telnet,ftp(今回は後で個別追加な手順でやっとこう)だから重重マシンでも1時間ほどでインスト完了か?
 あ ハードディスク換装があったか

### ローカルループバック ###
$IPTABLES -A INPUT -i lo -j ACCEPT
$IPTABLES -A OUTPUT -o lo -j ACCEPT

### 内部ネットワーク ###
# INPUTルール定義
$IPTABLES -N IN_LAN

$IPTABLES -A IN_LAN -m state --state ESTABLISHED -j ACCEPT

$IPTABLES -A IN_LAN -s ! $LAN_NET -j DROP

$IPTABLES -A IN_LAN -p udp --dport domain -j ACCEPT
$IPTABLES -A IN_LAN -p udp --dport ntp -j ACCEPT
$IPTABLES -A IN_LAN -p tcp --dport telnet --syn -j ACCEPT
$IPTABLES -A IN_LAN -p tcp --dport ftp --syn -j ACCEPT

# 内部ネットワーク定義
$IPTABLES -A OUTPUT -o $LAN_IF -d $LAN_NET -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -i $LAN_IF -j IN_LAN

### 外部ネットワーク ###
# OUTPUTルール定義
$IPTABLES -N OUT_WAN

$IPTABLES -A OUT_WAN -d 127.0.0.0/8 -j DROP
$IPTABLES -A OUT_WAN -d 10.0.0.0/8 -j DROP
$IPTABLES -A OUT_WAN -d 172.16.0.0/12 -j DROP
$IPTABLES -A OUT_WAN -d 192.168.0.0/16 -j DROP
$IPTABLES -A OUT_WAN -d 169.254.0.0/16 -j DROP
$IPTABLES -A OUT_WAN -d 224.0.0.0/4 -j DROP
$IPTABLES -A OUT_WAN -d 240.0.0.0/5 -j DROP

$IPTABLES -A OUT_WAN -s $WAN_IP -p udp --dport domain -j ACCEPT
$IPTABLES -A OUT_WAN -s $WAN_IP -p udp --sport ntp --dport ntp -j ACCEPT

# ルーターからインタネへ向けてpingを出したいときに生かす
#$IPTABLES -A OUT_WAN -s $WAN_IP -p icmp --icmp-type echo-request -j ACCEPT

# 外部ネットワーク定義
$IPTABLES -A INPUT -i $WAN_IF -d $WAN_IP -m state --state ESTABLISHED -j ACCEPT
$IPTABLES -A OUTPUT -o $WAN_IF -j OUT_WAN

### フォワーディング ###
# FORWARDルール定義
$IPTABLES -N FW_LAN_WAN

$IPTABLES -A FW_LAN_WAN -m state --state ESTABLISHED -j ACCEPT

$IPTABLES -A FW_LAN_WAN -s ! $LAN_NET -j DROP

$IPTABLES -A FW_LAN_WAN -d $ROUTER_IP -p tcp --dport http --syn -j ACCEPT

$IPTABLES -A FW_LAN_WAN -d 127.0.0.0/8 -j DROP
$IPTABLES -A FW_LAN_WAN -d 10.0.0.0/8 -j DROP
$IPTABLES -A FW_LAN_WAN -d 172.16.0.0/12 -j DROP
$IPTABLES -A FW_LAN_WAN -d 192.168.0.0/16 -j DROP
$IPTABLES -A FW_LAN_WAN -d 169.254.0.0/16 -j DROP
$IPTABLES -A FW_LAN_WAN -d 224.0.0.0/4 -j DROP
$IPTABLES -A FW_LAN_WAN -d 240.0.0.0/5 -j DROP

$IPTABLES -A FW_LAN_WAN -p tcp --sport 137:139 -j DROP
$IPTABLES -A FW_LAN_WAN -p udp --sport 137:139 -j DROP
$IPTABLES -A FW_LAN_WAN -p tcp --sport 445 -j DROP
$IPTABLES -A FW_LAN_WAN -p udp --sport 445 -j DROP
$IPTABLES -A FW_LAN_WAN -p tcp --dport 137:139 -j DROP
$IPTABLES -A FW_LAN_WAN -p udp --dport 137:139 -j DROP
$IPTABLES -A FW_LAN_WAN -p tcp --dport 445 -j DROP
$IPTABLES -A FW_LAN_WAN -p udp --dport 445 -j DROP

$IPTABLES -A FW_LAN_WAN -p tcp --syn -j ACCEPT
$IPTABLES -A FW_LAN_WAN -p udp -j ACCEPT

# 内部ネットワークからインタネへ向けてpingを出したいときに上の行を生かし下の行をコメントアウト
# 下の行のDROPをACCEPTに変えただけでもいいだろうけど
#$IPTABLES -A FW_LAN_WAN -p icmp --icmp-type echo-request -j ACCEPT
$IPTABLES -A FW_LAN_WAN -p icmp -j DROP

# フォワーディング定義
$IPTABLES -A FORWARD -i $WAN_IF -o $LAN_IF -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -i $LAN_IF -o $WAN_IF -j FW_LAN_WAN

# <<<内部ネットワーク:ログ抑止>>>
$IPTABLES -A INPUT -i $LAN_IF -p tcp --dport 137:139 -j DROP
$IPTABLES -A INPUT -i $LAN_IF -p udp --dport 137:139 -j DROP
$IPTABLES -A INPUT -i $LAN_IF -p tcp --dport 445 -j DROP
$IPTABLES -A INPUT -i $LAN_IF -p udp --dport 445 -j DROP

# <<<INPUT/OUTPUT:ログ>>>
$IPTABLES -A INPUT -i $LAN_IF -j LOG --log-prefix "-i(LAN) DROP: "
$IPTABLES -A INPUT -i $WAN_IF -j LOG --log-prefix "-i(WAN) DROP: "

$IPTABLES -A OUTPUT -o $LAN_IF -j LOG --log-prefix "-o(LAN) DROP: "
$IPTABLES -A OUTPUT -o $WAN_IF -j LOG --log-prefix "-o(WAN) DROP: "

# <<<フォワーディング:ログ>>>
$IPTABLES -A FORWARD -i $LAN_IF -o $WAN_IF -j LOG --log-prefix "-f(LAN-WAN) DROP: "
$IPTABLES -A FORWARD -i $WAN_IF -o $LAN_IF -j LOG --log-prefix "-f(WAN-LAN) DROP: "
コメント>>

258.やっと・・・

投稿者: ぴゅあ - 2003年07月15日 20時20分23秒

 3周目の最適化を経て新NetFilterのルールが固まった
 なんで時間掛かるんぢゃーだが実際のルールは3つのネットワークを扱っているので対ルーターで1.5倍,フォワーディングで3倍あったのだ
 2つのネットワークだったら2周目で終わってたてことにもなるけどね
 (てより叩いてたからか?(照))

 てかネットワークが多いと各ルールを見るのに集中力の維持は大変よね・・・(><)

 以下に示してみとこう
 どういう考え方で作られているか考えてみて欲しい
 と大抵の解説は出来上がったルールを見せるだけのもので終わっているがどんなに安直に考えられたルールでも必ず1つ1つのルールには少なからず意図が含まれているものである
 例えそれが間違っているものだとしてもである
 殆ど全てとも言える解説サイトでそんなだから殆ど意味ないよって感じなんだが@特にぢぶんのネットワークに合わせて応用したいとき
 そりゃあ少しは得るものがあるだろうからゼロとは言わんが(が殆どゼロに等しかったりもする@学べるものが少ない(少なかったりもする)もんね)
 ただここでは掲示板という制限された情報スペースの上だからそれに留めておくけど
 詳細は自サイトでちゃんとやるつもり

 のでメンドイ作業になるかもだけどどんな考え方で設計したかを考えてみるといいかも知れない・・・って程度のものとして
 解説がないと1つ1つのルールの意図が読み取り辛いかもだけど
 それはここが解らん,ここは変ぢゃないか?と言えば答えんわけではない

 これを見るとプライベートIPアドレス偽装やNetBIOS over TCP/IPの破棄があまり出てきてないと思ったりするんではないだろうか
 その辺はルールの書き方によって対応している(ルール数が減っている)

 ログ出力にはログ解析のことを考慮してない
 --log-prefixに与える文字列に認識できるIDとかを付加しておくといいだろう

 ESTABLISH, RELATEDについてはインターフェイスを見ずに共通化しても良さそうな気もする(この場合ネットワークが2つだけなのであまり違いはないと思うが)
 ただ(テーブルがあるとして)検索範囲が広がることでパフォーマンスが落ちるかもしれないとも考えられなくないのでそのまま各々で評価するものとしてある
 実際に設計したぢぶんのルール(3つのネットワークによる)もその他の部分でもまとめられなくなさそうだけど返って解り難くなるかも知れないと考えこれ以上は手を付けないでおくことにした

 有効なルールだけで45個程あるけど実際はメインのルールはたった8個
 このうち3個のルールが各ユーザー定義ルールに分岐して追加の必要なルールを判定する
 分岐することで余計なルールが対象外になるということは結構速そうに思えるでしょ(基本チェインで分けられるからホントは大差ないんだが)
 しかし各ルールでの判定対象が大幅に減っているので実際パフォーマンスはかなり向上している筈
 ネットワーク数が増えるとそれだけ効果も大きくなってくるんだけど(基本チェインから例えばインターフェイスの組み合わせ毎に分岐させる)

 いちお今まで通り機能していることを確認
 パフォーマンスは・・・
 と言われても目で見て判るほどのわきゃないぢゃんっ
 元々ちゃんと計画してあるしか?(照)

 また溢れることは十分予測されるので分離(汗)
コメント>>

257.RE: RedHat8.0

投稿者: ぴゅあ - 2003年07月15日 16時10分42秒

> LAN内のクライアントPCはスイッチオフなのに
> RedHat8.0がのっているPCのHDが動いている…鬱だ
 別に気にすることはない
 それは普通のことだ
 別にLinuxに限らずマシンが立ち上がっているときは人が何かやっているときでなくたって自分自身で何かをやってる(自分自身でやることがなくてもアイドリングのプロセスが動いていたりもする)
 cronで定期的に動くもの
 ハードディスクへの書き込みは書き込みの完了を待っていたのでは時間が掛かるので取り敢えずメモリ上にキャッシュしておいて後でノンビリと書き込みをしていたりする(遅延書き込み)
 色々なデーモンが動いていたら関連ファイルの読み込みをしたりもあるだろうしログへの書き出しもある
 DNSやntpとか定期的にサーバーに問い合わせに行くしその結果をファイルに記録していたりもする
 インスト直後なんかは大幅に何かやってるらしくて長時間ガリガリアクセスもしていたりする

 ので色々あるのよ

 気にすることといえばどれくらいメモリを積んでいるか
 あまりに少ないと頻繁にスワップされハードディスクへのアクセスが増える
 即ち全体的にかなり重くなる
 極端に少な過ぎると常にスワップしている状態でWinとかでもメモリが少なくて重いよぉというのと同じ状態となりうる
 特に使っていないときはそんなでもなくてもたまたま各デーモンとかが動くタイミングが集中したときにはそういうことにもなりやすいだろう

 メモリの使用状態をみるのがあったと思うけどそれは判らん(X上だとそのまんまグラフィック表示できたりだけど)
 そういや随分前に書こうと思ったまま書いてなかったけどtopってコマンドがある
 打ってみると判る('h'キーを押すとヘルプ, 'q'キーを押すと終了)
 telnet端末からでも可

> # そんな再インストール意味ないじゃん(自爆)
 意味ない(笑)

 只今2周目のルール見直し
 再構築の時間を短縮しようと準備に重点を置くことにしたので・・・
 まだ再構築に至ってない(汗)
 (叩いているってのもあるかな(照))

 仕事探してもらっているとこから連絡がなくなった
 7月も既に半月が過ぎようとしている
 素でやばいやん
 まぢ・・・鬱・・・
コメント>>

256.RedHat8.0

投稿者: Pyzar - 2003年07月15日 14時39分20秒

LAN内のクライアントPCはスイッチオフなのに
RedHat8.0がのっているPCのHDが動いている…鬱だ
そもそも、ルーターの設定自体が悪いのだろうか…
でも、時間がないし…とりあえず…再インストールしてしまった…

# そんな再インストール意味ないじゃん(自爆)
# ログだけでもコピーしておけばよかったと今になって思う
コメント>>

255.あ 思い出した

投稿者: ぴゅあ - 2003年07月14日 16時11分51秒

 252への書き忘れ

 このアドレス偽装に対するルールだけど
 今まで見た解説のサンプルでは(て数種の特集くらいしか見てないが(照))
 INPUT/OUTPUTでこれをやらにゃと言っているのは多々あるけど
 FORWARDについては何もなくて非常に単純にフォワーディングさせてるのねん
 NetBIOS over TCP/IPの扱いについても同様

 そりゃあ
 INPUT/OUTPUTを中心に例は挙げたからFORWARDについては自分で検証してね
 て暗黙の意図があるのかも知れんけど
 ただ一言もそういうことも書いてないのねん
 特に最近多く見る聞いて・真似て書くだけって人だとそのまんまだったりするのがかなり多かったりするんだろう(?)

 でも実際は
 INPUT/OUTPUTなんて偽装に対してはそうだったとしても(その影響も対象となる数の多いクライアントよりもルーターかも知れんけど)
(より気にする人が多かったりもしたりするだろう?@解らんままに(−−;)NetBIOS over TCP/IPに関してはルーターでsambaとかを動かさにゃその影響は全くないとも言えなくないくらい少ないんだろうと思え
 それよかバリバリ使い捲くってるWinが屯しているFORWARD対象への方がより必要だったりするんではないかと思ったりする

 偽装に関するルールも挙げたのでいいと思うけどFORWARDチェインのルールが終わった時点で再検討しとくとする

 あ
 作ったチェインの最後でRETURNが要るか?は要らんと思うということを書いとこぉ
 LOGでも採りつつ試せば解ることだけど
 チェイン単位で抜ける(最後に達する@それ以降のルールは評価しない)ということらしい
 つまりそのチェインが呼び出されたもの(=作ったもの)なら呼び出し元の次のルールへ進む
 大本のチェイン(INPUT/OUTPUT/FORWARD)ならデフォルトポリシー(-P)が適用されるということ(の筈である)

 呼び出された先のルールで完結するという場合には(完結させる単位にもよる・・・デフォルトポリシーに完結させるという場合)呼び出し元に戻ったときにRETURNしてデフォルトポリシーとかまで(数階層あれば)スキップさせていくというのではなくそのチェイン内で完結させておくのが理解し易いしいいだろう(デフォルトポリシー相当のルールを書く)

 -N INPUT_DROP
 -A INPUT_DROP ... 条件
 -A INPUT_DROP ... -j RETURN ... 特定の条件で評価終了(*1)
 -A INPUT_DROP ... 条件
 -A INPUT_DROP -j RETURN ... なくてもリターンする

 -A INPUT ... -j INPUT_DROP
 -A INPUT (前行と同じ条件) -j RETURN ... デフォルトポリシーへいく(*1があるときはうまくない)
   :
   :

 ではなく
 -P INPUT -j DROP

 -N INPUT_DROP
 -A INPUT_DROP ... 条件
 -A INPUT_DROP ... -j RETURN ... 特定の条件で評価終了(そのまま戻った先を続行)
 -A INPUT_DROP ... 条件
 -A INPUT_DROP -j DROP ... ここで完結させる

 -A INPUT ... -j INPUT_DROP
   :
   :

 やっと最後のルールの定義が終わった(叩いていたらこの落書きも途中で忘れてたが(汗))
 見直して整理
コメント>>

254.だるだる

投稿者: ぴゅあ - 2003年07月14日 14時02分53秒

 後できっちてん行くかな
 からだだるいや

 あとルール1ブロック
 眠いから寝ちった
 叩いてるから進まんのだな(汗)
 ???番に追記って書こうと思ったまま寝ちまったけど
 起きたら忘れちまった
 ま いっか(照)

> で、片方は二度と買うもんかと思っている…
 判る
 ○○○は家電界の○○○と言ってる@あちしは(逆もとーぜん同じ)
 でもみんな解らんのね
 メディアの威力は絶大なものである

> …と思い近所の家電量販店で買いました。
 あり?
 納品に時間は掛かるだろうけどオンラインで各社のが安く買えると思ったんだけど(利用したことはない・・・て既製品は買わんもんね(照))
 ノートは今までに(まだWinも生まれてない頃)一度だけ仕事上(いちお腐れ縁とかで買わなきゃではなく使うのに必要で・・・であるが)仕方なく買ったことはあるけど
 次にノートを買うとすればあのB5ノート欲しいわな

> てことで、しばらくXPのお世話…
 触る機会もないと思うので色々と情報くださいな
 こんなとこは便利とか
 ここはよく解らんとか
 こんなこともできたとか
 できんとか

> ログインできないときがある
> キーボードがまともに反応しない…
 キーボードが機能しないということだけですよね?
 OSがハングするとかではなく
 とするとハード的障害とかではないんでしょうか

 キーボードってことで考えてみると(あと前の文字化け(の原因として)も絡んでいるかもしれない)

 キーボード自身に問題がある(取り替えてみる)
 キーボードI/F(今のハードは解らんがそこに別CPUもある)が壊れている(とマウスも変だったりしたりもするだろうが)
 メモリに異常がある(BIOSでブート時にメモリチェックをやらせてみる)
 他には・・・これくらいだと思うけど

 HDDの媒体障害は稀だと思うけど
 Linuxインスト時にセクタのチェック(インスト後のfsckだっけか?でもチェックできるんかな(違うぢゃろ たぶん))をやらせてみる
 或いはLowレベルフォーマットを処す(HDD全体がまっさらになってしまう点に注意)
 とかってのも調べてみる価値ありだと思うけど

 オーバークロックなんてくだらんことやってると起き易いってのはあるけどそんなことはやってないとして・・・

 毎回再インストしてきたんだからOS的ってのは少ないんではないかと思ったりする

 そういやね
 取引先マシンで構築していたときの話
 CD-ROMドライブが古くて(或いはマイナーで)?対応していないのか
 CD-ROMドライブに障害があるのか
 原因は判らんが
・そのCD-ROMドライブでインストはできる
・インスト後マウントしようとするとハングアップする
 てのがあったりした
 マザー上ハード(I/F)の問題か?・・・とも思ったけどCD-ROMドライブを手持ちのと替えると問題ないのでそのCD-ROMドライブの問題と判断
 確かに・・・あの海外メーカー製だったし・・・
 てマザー上I/Fの問題だったらHDDも障害出るだろうしね
コメント>>

253.日立を買いました

投稿者: Pyzar - 2003年07月14日 12時54分04秒

>ぴゅあさん
レスありがとうございます

> > > SHARPもたまたま偶然あちしが「最初に出会った」ってだけのことだけど(前に言ったような)
> > わたしは日立でした…日立にするかな…
>  「出会った」というのは「出会ったものの傾向として何故か…」ってことで「その後評価した結果…」なのよね(照)
>  単に「最初に出会ったから」というのが理由ではないので
>  いちお(笑)

わたしの場合、たぶん極端なんだろうけれどSONYと日立のノートしか知らないので…
で、片方は二度と買うもんかと思っている…
で、その分もう片方はとても好きだったりする…

>  まぁメーカーとしては業界としてはメジャーな方に分類されないんではないか・・・という印象からだけですが・・・(汗)

ですよね…富士通というてもあるかなと思ったのですが…二枚以上高かった…

> > # 念のため…地方なので…
>  だって・・・
>  今時流行りな(?)オンラインショップを利用するんでしょ?
>  と選択肢はかなり増えてる筈

ノートだからなのか使い方が悪いのか…
片方は1度HD載せ替えているし、もう片方はディスプレイと本体の接触不良があったりで
結構修理に入れることがあったので(保険適用内だったのでどちらもその時はお金要りませんでしたが)
少々高くってもお手軽なのがいいかな…と思い近所の家電量販店で買いました。

てことで、しばらくXPのお世話…

RedHat…毎晩シャットダウンしているんだけど…おかしい…
ログインできないときがある
キーボードがまともに反応しない…
"r"を押すと"R^"見たいな感じに画面には出て…お構い無しに打っても無視される
端末からはログインできるんだけど…鬱
up2date再検証かな…それとも壊した??
(・_・)......ン? Webmin??
コメント>>

252.一部訂正

投稿者: ぴゅあ - 2003年07月14日 0時45分45秒

 FORWARDのときは必ず出てくると考えられるんだけど・・・
 示したINPUT/OUTPUTにはプライベートIPアドレス偽装のルールが書いてない
 内部ネットワークでは「ネットワークアドレス以外をDROP」となっているから問題はない
 また逆方向はESTABLISHEDを条件にしているから

 外部ネットワーク側では接続要求は外へ向かうのしかないから(外からは拒否される@ESTABLISHEDを条件にしているから)・・・
 それにポートでも制限してる
 と思ってたらちと悩んだ
 確かに外部ルーターで止めてあるというのもあるから現実としては支障はない
 しかし気になったら「まぁだいじょぶぢゃろう」ではなくちゃんとしておくべき@考え方を明確にするという意味でも@iptablesのルールを考えているという意味で(省略できるという意味ではなくてね)
 そこでいちお追加

 -A OUTPUT -o $WAN_IF -d 127.0.0.0/8 -j DROP
 -A OUTPUT -o $WAN_IF -d 10.0.0.0/8 -j DROP
 -A OUTPUT -o $WAN_IF -d 172.16.0.0/12 -j DROP
 -A OUTPUT -o $WAN_IF -d 192.168.0.0/16 -j DROP
 -A OUTPUT -o $WAN_IF -d 169.254.0.0/16 -j DROP
 -A OUTPUT -o $WAN_IF -d 224.0.0.0/4 -j DROP
 -A OUTPUT -o $WAN_IF -d 240.0.0.0/5 -j DROP

 OUTPUTだけよ
 INPUTはない
 これを-A OUTPUT -o $WAN_IF -s $WAN_IP -p udp --dport domain -j ACCEPTの「前」に追加
 考えてみてちょ

 書いとかなかったけど
 LAN_IF,WAN_IFはeth0とか
 LAN_NET,WAN_NETは192.168.0.0/24とか(内部/外部ね)
 WAN_IPもあったかな
 これはLANボードにつけてあるIPアドレス192.168.0.1とか

 いちおログに関してはテストのためだけのが入っているけど
 セキュリティ管理という点ではDROPするものも採った方がいい場合もあるかも
 ただし兎に角採りゃあいいというわけでもないので(そういう管理者?も結構居るが)
 ホントに必要と思うものだけにするのが正解
 DROPすると決めたものは正しくドロップできてると判れば採る必要はない
 それ以外としたものでもDROPするなら不要かも知れないし
 構築直後とかは拾い落としのチェックのために先に示しておいたようなログを採っておくといいというのもあるだろうし

 なおログ出力の制御をしようとこれを始める前に調べてたら・・・
 ある程度別のファイルに吐き出させることはできる
 でも切り出しってわけではなくて他のファイルにも出すというだけみたいなのね
 つまり/var/log/messagesに大量に溜まる&混ざるのを避けたかったけど
 無理みたい
 と2重にできるだけなのでやめといた方がいいかなと・・・
 切り出しの方法があるのかも知れんけどね
 取り敢えずそこまででやめといた

 さて続き
 やっぱ構築は明日にずれ込むかな
 って 今日はもう明日(汗)
コメント>>

251.やはり溢れるので続き・・・・(汗)

投稿者: ぴゅあ - 2003年07月13日 22時19分19秒

・DROPされるパケットを見るなら最後のルールとして以下を入れとくといい
 -A INPUT -i $LAN_IF -j LOG --log-prefix "-i(LAN) DROP: "
 -A INPUT -i $WAN_IF -j LOG --log-prefix "-i(WAN) DROP: "
 -A OUTPUT -o $LAN_IF -j LOG --log-prefix "-o(LAN) DROP: "
 -A OUTPUT -o $WAN_IF -j LOG --log-prefix "-o(WAN) DROP: "

 本来ここに来てDROPされるパケットはあり得ない(歓迎されない)パケットということなのでルールの評価がここまでくることは滅多にない筈である
 ので通常これらルールが評価されることはないので(それ以前にどれかの評価で終わっている筈である)このルールがあることでNetFilterのパフォーマンスに影響を与えることはない筈である(とまで考慮してあるのだ(照))

 ただこのままだとNetBIOS over TCP/IPのパケットが出てきて邪魔である(sambaはないので破棄であることが前提としてハッキリしている@最初の一度だけはここに来ていることを確認しておくと更に楽かもね)
 ので以下を先のルールの直前に入れておく
 内部ネットワークからのINPUTだけにしてあるのはこのマシンからOUTPUTされる筈はない(内部向け/外部向け共に)のと外部からのINPUTはあり得ないから
 もしあった場合はログ出力対象となるってくれもするのでこのままでいいだろう
 -A INPUT -i $LAN_IF -p tcp --dport 137:139 -j DROP
 -A INPUT -i $LAN_IF -p udp --dport 137:139 -j DROP
 -A INPUT -i $LAN_IF -p tcp --dport 445 -j DROP
 -A INPUT -i $LAN_IF -p udp --dport 445 -j DROP

 以上
 でもこれをこのまま並べるのではなく実際には頻度に合わせて並べ替えするのがいいと考える
 いちおブロック単位で関連するものの順番さえ間違えなければ依存関係はまずない

 とこんな感じになるだろう
 基本として--synよりESTABLISHED,RELATEDの方が頻度が高いので先に評価するようにまとめておく
 -A INPUT -i $LAN_IF -s ! $LAN_NET -j DROPは-A INPUT -i $LAN_IF -m state --state ESTABLISHED -j ACCEPTにも掛かってくるのでそれより前に書いてある
 なお前にも書いたけど--synは-m state --state NEWと同じだけど別途モジュールを使う気がするので元々ある機能だろう--synの方が軽いような気がしていいかと思う(既にESTABLISHED,RELATEDでそのモジュールが取り込まれている筈であるが)

 # 全て破棄を基本ポリシーとする
 -P INPUT DROP
 -P OUTPUT DROP

 # ここに単独で書いてあるということも重要
 -A INPUT -i $LAN_IF -s ! $LAN_NET -j DROP

 # 先に接続中のルール
 -A INPUT -i $LAN_IF -m state --state ESTABLISHED -j ACCEPT
 -A OUTPUT -o $LAN_IF -d $LAN_NET -m state --state ESTABLISHED,RELATED -j ACCEPT
 -A INPUT -i $WAN_IF -d $WAN_IP -m state --state ESTABLISHED -j ACCEPT

 # 発生頻度の低い接続要求のルール
 -A INPUT -i $LAN_IF -p udp --dport domain -j ACCEPT
 -A INPUT -i $LAN_IF -p udp --dport ntp -j ACCEPT
 -A INPUT -i $LAN_IF -p tcp --dport telnet --syn -j ACCEPT
 -A INPUT -i $LAN_IF -p tcp --dport ftp --syn -j ACCEPT

 -A OUTPUT -o $WAN_IF -s $WAN_IP -p udp --dport domain -j ACCEPT
 -A OUTPUT -o $WAN_IF -s $WAN_IP -p udp --sport ntp --dport ntp -j ACCEPT

 -A OUTPUT -o $WAN_IF -s $WAN_IP -p icmp --icmp-type echo-request -j ACCEPT

 # 以下ログ用(NetBIOS over TCP/IPは出さない@内部ネットワークからは必ず来て必ず破棄されるからログに出ると邪魔)
 -A INPUT -i $LAN_IF -p tcp --dport 137:139 -j DROP
 -A INPUT -i $LAN_IF -p udp --dport 137:139 -j DROP
 -A INPUT -i $LAN_IF -p tcp --dport 445 -j DROP
 -A INPUT -i $LAN_IF -p udp --dport 445 -j DROP

 -A INPUT -i $LAN_IF -j LOG --log-prefix "-i(LAN) DROP: "
 -A INPUT -i $WAN_IF -j LOG --log-prefix "-i(WAN) DROP: "
 -A OUTPUT -o $LAN_IF -j LOG --log-prefix "-o(LAN) DROP: "
 -A OUTPUT -o $WAN_IF -j LOG --log-prefix "-o(WAN) DROP: "

 なおESTABLISHEDやRELATEDを使うのは前に書いた通り若干遅くなると思う
 でも結局判断には使うことになるんだろうからこんな風になるんぢゃないかな
 またINPUT/OUTPUT(そしてFORWARD)はルールの順番として混在していても例えばOUTPUTを見るのにINPUTを見てからというようなダサいことはしない筈
 ので書く順番として混在していても支障はない筈で考え易いようにまとめとくのがいい
 同一のの順番は間違えないこと@書いたつもりでそれ以前のルールにマッチしてしまって特にACCEPTされてしまったときには後ろにいくら書いてもそこまで到達することはなくDROPされるということが起きなかったりするので(ACCEPT/DROPが逆の場合も同様)
 言うまでもないわね

 あとここではまだ整理してないけどnameを作るのも手
 管理しやすくもなるだろう
 例:
 -A INPUT -i $LAN_IF -p udp --dport domain -j ACCEPT
 -A INPUT -i $LAN_IF -p udp --dport ntp -j ACCEPT
 -A INPUT -i $LAN_IF -p tcp --dport telnet --syn -j ACCEPT
 -A INPUT -i $LAN_IF -p tcp --dport ftp --syn -j ACCEPT
  ↓
 -N INPUT_DROP

 -A INPUT_DROP -p udp --dport domain -j ACCEPT
 -A INPUT_DROP -p udp --dport ntp -j ACCEPT
 -A INPUT_DROP -p tcp --dport telnet --syn -j ACCEPT
 -A INPUT_DROP -p tcp --dport ftp --syn -j ACCEPT

 と予め書いておいて(より上にということ)
 元あった場所に以下を書けばいい
 -i $LAN_IFに対する評価が4-1個減る・・・というより読み易くなるかも?
 -A INPUT -i $LAN_IF -j INPUT_DROP

 name内ルールが最後まで行ったとき戻らないといけないことがあるかも知れないけどそれは明示的にRETURNが必要かどうかは未確認なので念のため(ってman見れば判る筈だけど)

 その他統合できるところはこんな風にしてまとめるといいかとも思うが逆に煩雑になったりパフォーマンスが落ちる書き方になってしまっていたりすることも十分にあり得るのでシッカリと計画して書くこと

 取り敢えずサンプルとして
 前に言ってたルールを挙げているのはちゃんとした答えをまだ出してなかったけどこれを参考にして見直してみては?
 特に問題なく書いてある筈・・・

 さて続きやるかな
 次はFORWARD
 こっちが本来のメインの機能となるんだけどね
コメント>>


トップへ