1 :
い ◆cy/MQf2Y :
02/04/03 16:39 ID:5X/uCcgG 色々な書籍やwebに設定例が載っていますが、 他人のipchainsを見てみたいと思った事はないですか? みんなで公表して、みんなで添削しちゃいましょう。 ちなみに、うちのlinuxサーバは、 :input DENY :forward DENY :output ACCEPT -A input -d 0/0 80 -p tcp -j ACCEPT -A input -d 0/0 -s 0/0 80 -p tcp -j ACCEPT -A input -d 0/0 53 -p tcp -j ACCEPT -A input -d 0/0 53 -p udp -j ACCEPT -A input -d 0/0 -s 0/0 53 -p udp -j ACCEPT -A input -s 0/0 3 -p icmp -j ACCEPT です。 おてやわらかに。
2 :
2 :02/04/03 17:17 ID:gaKsfeOY
2
4 :
い ◆cy/MQf2Y :02/04/03 17:39 ID:5X/uCcgG
上級者の方のipchainsが見たいです。 勉強させてください。
5 :
login:Penguin :02/04/03 17:49 ID:rxSE7npa
6 :
2 ◆z.E39Q1k :02/04/03 17:59 ID:gaKsfeOY
7 :
い ◆cy/MQf2Y :02/04/03 18:08 ID:5X/uCcgG
>>5 こんな感じ?
:input DENY
:forward DENY
:output ACCEPT
-A input -d 0/0 80 -p tcp -j ACCEPT
-A input -d 0/0 -s 0/0 80 -p tcp -j ACCEPT
-A input -d 0/0 53 -p tcp -j ACCEPT
-A input -d 0/0 53 -p udp -j ACCEPT
-A input -d 0/0 -s 0/0 53 -p udp -j ACCEPT
-A input -s 0/0 3 -p icmp -j ACCEPT
-A input -s 0/0 -d 0/0 -i lo -j ACCEPT
>>6 -A input -d 0/0 80 -p tcp -j ACCEPT
と
-A input --dport www -p tcp -j ACCEPT
ってのは同じ意味なんですか?
8 :
2 ◆z.E39Q1k :02/04/03 20:35 ID:gaKsfeOY
9 :
2 ◆z.E39Q1k :02/04/03 20:42 ID:gaKsfeOY
それとさ送り元ポートが53だったら全部通ってよしってのは
やめようよ。これじゃあnmapとかで
nmap -sF -p調べたい番号 -g 53
>>1 のIPアドレス
ってやったらフィルタリングの意味ないよ。
10 :
login:Penguin :02/04/03 20:46 ID:ycMo44Tm
>>1 これって、TCP使うアプリケーションを指定したり出来ないの?
>>10 たぶん直接デーモンを指定するのは無理。
でも結局ポート番号で指定できるからおんなじようなものだと
思うけど。
12 :
login:Penguin :02/04/03 22:23 ID:ycMo44Tm
>>11 へぇ。そういう意味だとAVGとかWinのFWの方が軍配がageるんだね。
13 :
い ◆cy/MQf2Y :02/04/04 10:11 ID:Ui/X0NUt
>>9 どこを、どうしたらいいですか?
詳しく教えてください。お願いします。
14 :
い ◆cy/MQf2Y :02/04/04 11:18 ID:Ui/X0NUt
>>9 こんな感じにすればOKなのかな?
-A input -s ***.***.***.*** 53 -p udp -j ACCEPT
***.***.***.***は上位NSのIPアドレス
ここにUPできる程度の長さのipchains設定だったら なんにもしない方がマシ
>>15 そーす キボンヌ
分割してupもできるっしょ
17 :
い ◆cy/MQf2Y :02/04/04 13:00 ID:Ui/X0NUt
>>15 マジっすか?
そんなに設定する必要あるんすか?
ぜひ内容を見せてください!!
>>17 俺が書いた奴はコメント込みで 400 行くらい。某所にあるけど秘密。
最初は自分の手で書くより seawall とか使ったほうがいいぞ。
実際の設定方法の参考にもなるからな。
19 :
名無しさん@XEmacs :02/04/04 13:53 ID:Tv9hUOub
20 :
:02/04/04 13:58 ID:sagOvrJ/
>>19 ちゃうちゃう。通りすがりの非常勤です。
ちなみにコメントと空行削ったら半分になった。
>>20 それそれ。初心者が自分で書くよりずっといい。
22 :
い ◆cy/MQf2Y :02/04/04 14:20 ID:Ui/X0NUt
追加修正してみました。
こんなんでどうでしょ?
:input DENY
:forward DENY
:output ACCEPT
-A input -s 127.0.0.0/8 -d 127.0.0.0/8 -i lo -j ACCEPT
-A input -s 0/0 -d 0/0 -i lo -j ACCEPT
-A input -s 192.168.1.0/24 -d 0/0 -j ACCEPT
-A input -s 0/0 -d 0/0 -f -j DENY
-A input -s 0/0 -d 0/0 80 -p tcp -y -j ACCEPT
-A input -p tcp -s 0/0 -d 0/0 auth -j REJECT
-A input -s 0/0 -d 0/0 53 -p tcp -y -j ACCEPT
-A input -s 0/0 -d 0/0 53 -p udp -j ACCEPT
-A input -s www.zzz.yyy.zzz 53 -d 0/0 -p udp -j ACCEPT
-A input -s www.zzz.yyy.zzz 53 -d 0/0 -p udp -j ACCEPT
-A input -s 192.168.0.0/255.255.255.0 0 -d 0/0 -p icmp -j ACCEPT
-A input -s 0/0 -d 0/0 0 -p icmp -j ACCEPT
-A input -s 0/0 3 -d 0/0 -p icmp -j ACCEPT
-A input -p icmp -s 0/0 echo-reply -d 0/0 -j ACCEPT
-A input -p icmp -s 0/0 destination-unreachable -d 0/0 -j ACCEPT
-A input -p icmp -s 0/0 time-exceeded -d 0/0 -j ACCEPT
-A input -p icmp -s 0/0 echo-request -d 0/0 -j DENY
-A input -s 0/0 -d 0/0 ! -y -p tcp -j ACCEPT
※www.zzz.yyy.zzzは上位NS
>>18 400行っすか??
ほぇ〜。
設定内容見たいなぁ・・・・。
っていうか、seawallって何ですか?
23 :
login:Penguin :02/04/04 15:10 ID:akyB8Jpp
>>22 行にコメント付けて欲しいな。
つーか、今、firewall を作るなら
ipchains より iptables の方がイイんではないの?
まだ iptables は枯れてないからダメってこと?
>>18 むしろ設定行よりポリシーを列挙して欲しいかも。
設定行よりは短くすむでそ。
24 :
:02/04/04 16:14 ID:sagOvrJ/
25 :
2 ◆z.E39Q1k :02/04/04 16:24 ID:LlteKOHx
26 :
い ◆cy/MQf2Y :02/04/04 16:31 ID:Ui/X0NUt
>>23 # 基本ポリシー
# 下記の条件にすべて一致しない場合、適用される
:input DENY
:forward DENY
:output ACCEPT
# inputポリシーをDENYにする時は必須らしい
-A input -s 127.0.0.0/8 -d 127.0.0.0/8 -i lo -j ACCEPT
# ゲートウェイ内でのやり取りを許可するということかな?
-A input -s 0/0 -d 0/0 -i lo -j ACCEPT
# LAN内からのパケットはすべてACCEPT
-A input -s 192.168.1.0/24 -d 0/0 -j ACCEPT
# フラグメントは捨てるらしい
-A input -s 0/0 -d 0/0 -f -j DENY
#wwwを許可
-A input -s 0/0 -d 0/0 80 -p tcp -y -j ACCEPT
#意味不明
-A input -p tcp -s 0/0 -d 0/0 auth -j REJECT
#DNSのZONE転送を許可
-A input -s www.zzz.yyy.zzz 53 -d 0/0 53 -p tcp -y -j ACCEPT
#DNSを許可
-A input -s 0/0 -d 0/0 53 -p udp -j ACCEPT
-A input -s www.zzz.yyy.zzz 53 -d 0/0 -p udp -j ACCEPT
-A input -s www.zzz.yyy.zzz 53 -d 0/0 -p udp -j ACCEPT
#LAN内からのpingを許可
-A input -s 192.168.0.0/255.255.255.0 0 -d 0/0 -p icmp -j ACCEPT
#ping結果を許可
-A input -s 0/0 -d 0/0 0 -p icmp -j ACCEPT
#到達不能メッセージを許可
-A input -s 0/0 3 -d 0/0 -p icmp -j ACCEPT
# echo-reply は ping に必要
-A input -p icmp -s 0/0 echo-reply -d 0/0 -j ACCEPT
# destination-unreachable は 全ての tcp/udp トラフィックに必要
-A input -p icmp -s 0/0 destination-unreachable -d 0/0 -j ACCEPT
# time-exceeded は traceroute に必要
-A input -p icmp -s 0/0 time-exceeded -d 0/0 -j ACCEPT
# ping をかけてくる相手に自分の存在を知らせないため
-A input -p icmp -s 0/0 echo-request -d 0/0 -j DENY
# synパケット以外は許可
-A input -s 0/0 -d 0/0 ! -y -p tcp -j ACCEPT
※www.zzz.yyy.zzzは上位NS
参考にしたのは、
ttp://search.luky.org/linux-users.9/msg00310.html iptablesは、まだ情報が少ないんで、手を出しづらい・・・。
27 :
:02/04/04 16:45 ID:sagOvrJ/
結局PAL-NET三鷹って何なのよ?
ぅぇぃ
firestarterでマウス数回クリックしただけで、masquerade できるようになったよ。こんなに簡単で良いのか。 /sbin/iptables -L -nで見たら186行12KB分。 firewall.shにはコメント付き。こんな感じ。 # --------( Rules Configuration - Inbound Traffic - Default Ruleset )-------- #Block uPNP $IPT -t filter -A INPUT -p tcp -s 0/0 -d 0/0 --dport 5000 -i $IF -j $STOP $IPT -t filter -A INPUT -p udp -s 0/0 -d 0/0 --dport 5000 -i $IF -j $STOP これはipchainsにも使えるのかな?
っていうか、「これが私のipchainsです」って公開する人いないでしょ。。。 自分の手の内みせてどーする(笑) アプローチの仕方としては、この場合にこういう書き方どうでしょう? って質問形式の方が自然と思われ。
33 :
nanashi :02/04/05 13:05 ID:1VKXc9iy
正直、サービスが必要としているポートはわかるから、(tcp80とか) :input DENY :forward DENY :output ACCEPT のあとにどのパケットを通したらいいのか教えて欲しいのです。
34 :
login:Penguin :02/04/05 13:08 ID:6MmWaVvM
>>32 ipchainsの内容を知ってたって、IPばれなきゃいいじゃん。
自分で作った中途半端なipchainsを信用してサーバ公開するより
ipchainsの内容を添削してもらうほうが、よっぽど有意義。
35 :
login:Penguin :02/04/05 13:17 ID:6MmWaVvM
正直、サービスが必要としているポートはわかるから それ以外の必要なパケットを教えて欲しいのです。 linuxを普通に使う上で必要な設定とか、 よくある攻撃から守もるための設定とか、 linuxをインストールする時に、ファイアウォールの設定で高とか選ぶと、 自動的にipchainsが設定されますよね。 そのまま使ってれば安全って考え方でいいのかな??? そのipchainsに、必要なポート(WWWサーバの80番とか)を追記していけばいいのかな?? ipchainsの神の降臨を待ちます。
36 :
2 ◆z.E39Q1k :02/04/05 13:48 ID:piDoS8Du
>>35 ディストリ付属のファイアーウォール設定は
信用しないほうがいい。
自分で一からつくれ。
つまり基本的に全部通さないようにしてそこから必要な
ポートを開ければよろしい。
その通れるパケットのフラグやsportをチェックしておけば
とりあえず厨房クラッカーからは大丈夫じゃないの?
37 :
login:Penguin :02/04/05 13:52 ID:6MmWaVvM
>>36 その必要なポートが分からないんで、教えていただきたいんですが・・・。
WWWの80とかメジャーなサービスは分かりますが・・・。
38 :
2 ◆z.E39Q1k :02/04/05 13:53 ID:piDoS8Du
>>35 追記:
とりあえずicmpパケットを通しておけ。
あと53はTCPもUDPも開けておけ。
ftpはアクティブ?パッシブか?どっち?
それとlocalhostからのパケットを生通しは絶対にやめれ。
偽装されたらアウトだよ。
全部知ってたらスマソ
39 :
2 ◆z.E39Q1k :02/04/05 13:58 ID:piDoS8Du
>>37 結論:
「icmp」
以上。
(正確にはicmpパケット)
40 :
login:Penguin :02/04/05 13:59 ID:6MmWaVvM
>>38 様
情報ありがと!!
localhostからのパケットを生通し禁止って具体的にはどうしたらいいの?
41 :
2 ◆z.E39Q1k :02/04/05 14:05 ID:piDoS8Du
>>40 様
俺ずいぶん前にipchainsの文法忘れてiptablesになっちゃたんだよね。
具体的には
------------------------------------------------------------
例えlocalhostからでも不信なポートから不信なポートへアクセスが
きてないか?
例:53番から80番へのSYNパケット(これは偽装の可能性99%です)
------------------------------------------------------------
みたいな感じ。
上の以外にもいろいろあるけど長くなるから。
あと、上のは外部からきたのでも通用するから
ためしてみてね。
42 :
login:Penguin :02/04/05 14:11 ID:4opsunXw
>>40 ヒント。
全てのEthernetデバイスに対して、ソースアドレスが127.0.0.1(IPv4)
である通信全てを無視(drop)する。
あとは確実にあり得ない通信も無視するよう追加しておいた方がいい。
インターネットからの通信で、ソースアドレスがプライベートアドレスに
なっているものとか。
43 :
login:Penguin :02/04/05 14:14 ID:6MmWaVvM
>>41 様
>>42 様
なるほど。勉強になります。
情報ありがとうございます。
お二人を神を呼ばせていただきます。
>>41 っていうかそういうのは
echo 1 > /proc/sys/net/ipv4/conf/*/rp_filter
でいいんでないの。
>>44 だ、か、ら「ipchainsでの」極端な例を挙げたのっ。
別にそれでよければいいんじゃないの?
だめ?
>>45 やば、名前まちがえたぁ。
クッキーは恐ろしい...
47 :
44 :02/04/05 18:47 ID:eBT8ESlw
いやべつにいいけど。 2.2.x より前ではそれでしか対応できなかったし。
48 :
login:Penguin :02/04/05 18:52 ID:6MmWaVvM
っていうか、 echo 1 > /proc/sys/net/ipv4/conf/*/rp_filter って何者? 始めて聞いたわ。
50 :
login:Penguin :02/04/05 19:07 ID:6MmWaVvM
51 :
login:Penguin :02/04/05 19:15 ID:6MmWaVvM
>>49 URLサンクス!!
すごい情報量のページだな。
で、読んでみたんだけど、
> rp_filter
> ---------
> 発信元の検証を行うかどうかを整数で指定します。1 が有効で 0 が無効です。デフォ
> ルトでは無効ですが、しかしローカルアドレスやブロードキャストアドレスの偽称に
> 対しては常に有効になっています。
って書いてあるっすよ。
デフォルト無効だけど、常に有効だって。
どういうこと?
>>51 書いてあるままじゃないの?
デフォルトだと0(無効)の状態になってるけど、
その状態でもローカルアドレスやループバックアドレスに対しては
1(有効)の時と同じ動作をします。って読んだんだけど。
あってる?
53 :
login:Penguin :02/04/05 19:50 ID:6MmWaVvM
>>52 ってことは、わざわざ1にする必要もないって事??
それとも1にすれば、他にも効果がもあるの??
>1 iptablesなら興味がありますです
55 :
login:Penguin :02/04/05 20:03 ID:6MmWaVvM
>>54 iptablesとipchainsの大きな違いってなんですか?
iptablesのほうが詳しく設定できるってのは聞いた事があるけど・・。
っていうか、iptablesとかipchainsの設定自体は、それほど難しくないですよね。
どんなパケットを許可して、どんなパケットは禁止するかのルールを作るほうが難しい。
有名なサービス(例えばWWWとか)の使用しているポートは有名だからいいけど、
マイナーなポートは何に使われているのか分からないからね。
>>51 原文も読んだけど、よくわかんないねぇ。
解説きぼーん。
言葉通りの意味なんじゃねぇの?
>>55 誤爆しちまったのであらためて...
iptables と ipchains の最も大きな違いはフィルタの構成にある。
特にルータとして動くときが違う。IP forwarding によってマシンを
通過してゆくパケットは ipchains では input/forward/output の
三つを通るが、iptables では forward チェインしか通らない。
このためルータとして動くときのルールをよりシンプルに書ける。
また、ipchains のマスカレードは forward チェインで行われるが、
iptables では OUTPUT/FORWARD の後ろに置かれた POSTROUTING
チェインと INPUT/FORWARD の前に置かれた PREROUTING チェインで
行われる。だから自分自身から出て行くパケットも NAT できる。
ipchains のマスカレードではマスカレードで使用するポート範囲が
決まっていたが、iptables の NAT では空いているローカルポートを
使う。また必要が無ければポート番号は書き換えられない。
iptables の ip_conntrack 機構により、ステートフルなフィルタが
出来る。例えば外に出てゆく TCP コネクションを許可するのに、
外向きの SYN パケットを許可するルールのみを書けばいい。
戻りパケットやコネクションが成立した後のパケット付随する ICMP
パケットについては ip_conntrack に任せられる。
このためルールを非常に簡潔に書く事が出来るし、不要なポートを
開けっぱなしにしないで済む。
60 :
login:Penguin :02/04/05 21:36 ID:e8an97D8
>>56 あるインタフェースについて rp_filter を on にすると、その
インタフェースに届いたパケットの始点アドレスを調べる。
ルーティングテーブルを調べてその始点アドレスにパケットを戻す
時に同じインタフェース経由にならない場合はパケットを拒否する。
例えば eth0 と eth1 があって、eth0 がグローバル、eth1 が
192.168.1.0/24 だったとする。eth0 の rp_filter が 1 だと
eth0 に 192.168.1.XXX が来ると拒否する。
しかし eth0 に 192.168.2.XXX が来ても拒否しない。
だからやっぱり rp_filter を有効にしてても iptables/ipchains
でプライベートアドレスやリンクローカルを落したほうが安心だ。
そして rp_filter とは別に始点アドレスが 0.0.0.0/8 だったり、
マルチキャストだったり、ループバックだったりすると拒否する。
これが
>>51 に引用された部分が言いたい事。
62 :
login:Penguin :02/04/05 22:54 ID:l5YNGX56
そういえばお前ら、 フラグメントパケットに対する記述って使ってますか? 例えばこんなの ipchains -A input -f -j ACCEPT …とか、 iptables -A FORWARD -f -j ACCEPT …とか。 どっかで、これをルールの先頭の方に記述してるのを見た気がするんだが、 それだと、断片化してるパケットに関しては、 本来なら拒否すべきポート宛てのパケットであったとしても、 このルールをくぐる時点で許可されしまうのでは…? ふと思い出したんだけど、この辺わかる人はいませんかね…
>>62 ん、ん、ん?
どしてフラグメントパケットが許可なの?
DENYじゃないの?
(違ってたらスマソ)
64 :
login:Penguin :02/04/05 23:09 ID:e8an97D8
>>62 おぬしが心配する通り、フラグメントを許可するといたずらされる
可能性がある。たいていはフラグメントはたぶん無いだろうって事
にして許可してないサイトがほとんど。
実際、Path MTU discovery のおかげで TCP のトラフィックに
フラグメントが発生する事は稀。UDP では可能性があるけど、
DNS を始めとして UDP を使うプロトコルは最小の MTU である
512 バイトまでしか使わないものが多い。常識があればそういう
設計をする。フラグメントを発生させるのは NFS ぐらいかな?
iptables の場合 ip_conntrack でなんとかしてくれんじゃないかなぁ
なんて期待しちゃうけど、実際の所どうなんかね?
65 :
62 :02/04/05 23:14 ID:l5YNGX56
>>63-64 だよな。
いや、俺も許可する様にはしてないんだけどさ…
今、片っ端から本漁ったらソースを発見した。
オライリーのLinuxネットワーク管理(二版の方ね)だったよ。
最初は誤植かと思ったんだが、コメント部分に
"断片化は許可するべきで、{ipchains,iptables}ではこれを明示的に指定する"
…と書いてあった。
それで俺の"常識"は歪んでいるのかと思った次第です。
>>65 その本の著者って...
それとも俺たちがしらないようなもっと高度な点で
フラグメントを許可したほうがいいんだろうか?
その本に許可する理由書いてなかった?
名前♪名前♪ど〜して間違える... くっきぃは恐ろしい♪
>>66 誤訳、ていうかニュアンスを取り違えてるだけじゃないかなぁ。
確かにフラグメントを許可しないと動かない事もあるわけだから。
69 :
login:Penguin :02/04/05 23:27 ID:e8an97D8
netfilter のソース見てみたよ。ip_conntrack を使えば フラグメントについても良きにはからってくれそうだ。 結局、ステートフルなファイアウォールでないとフラグメントは 正しく扱えませんよって事ですな。
70 :
62 :02/04/05 23:29 ID:l5YNGX56
>>66 理由が書いてあれば悩まなかったんだけどね…
>それとも俺たちがしらないようなもっと高度な点で
>フラグメントを許可したほうがいいんだろうか?
俺も、そういうのがあるのかと思って聞いてみた次第。
そうでなきゃ、あんな先頭部分でいきなりACCEPTしないだろうし。
しかも"フラグメントされてれば無条件"なんて豪快なルールで…
>>69 そういえば、この本だとip_conntrackは有効にしてないな…
なんとなく納得しても良い様な気がしてきました。
72 :
login:Penguin :02/04/06 00:18 ID:nxPcqsf1
# ipchains -L Chain input (policy ACCEPT): target prot opt source destination ports ACCEPT all ------ localnet/16 localnet/16 n/a ACCEPT all ------ anywhere anywhere n/a ACCEPT all ------ localnet/16 anywhere n/a DENY tcp ----l- anywhere 192.168.0.0/24 any -> netbios-ssn DENY udp ----l- anywhere 192.168.0.0/24 any -> netbios-ssn DENY tcp ------ anywhere 192.168.0.0/24 any -> 1433 DENY udp ------ anywhere 192.168.0.0/24 any -> 1433 DENY tcp ------ anywhere 192.168.0.0/24 any -> 5432 DENY udp ------ anywhere 192.168.0.0/24 any -> 5432 DENY tcp ------ anywhere 192.168.0.0/24 any -> 2049 DENY udp ------ anywhere 192.168.0.0/24 any -> 2049 DENY tcp ------ anywhere 192.168.0.0/24 any -> 5999:6003 DENY udp ------ anywhere 192.168.0.0/24 any -> 5999:6003 DENY tcp ------ anywhere 192.168.0.0/24 any -> 7100 DENY udp ------ anywhere 192.168.0.0/24 any -> 7100 DENY tcp ----l- anywhere 192.168.0.0/24 any -> 31337 DENY udp ----l- anywhere 192.168.0.0/24 any -> 31337 DENY tcp ----l- anywhere 192.168.0.0/24 any -> 12345:12346 DENY udp ----l- anywhere 192.168.0.0/24 any -> 12345:12346 ACCEPT tcp ------ anywhere 192.168.0.0/24 any -> 1023:65535 ACCEPT udp ------ anywhere 192.168.0.0/24 any -> 1023:65535 ACCEPT tcp ------ anywhere 192.168.0.0/24 any -> ssh ACCEPT tcp ------ anywhere 192.168.0.0/24 any -> auth ACCEPT icmp ------ anywhere 192.168.0.0/24 any -> any ACCEPT icmp ----l- anywhere 192.168.0.0/24 any -> any DENY all ----l- anywhere anywhere n/a Chain forward (policy DENY): target prot opt source destination ports ACCEPT all ------ localnet/16 localnet/16 n/a ACCEPT all ------ 192.168.0.0/24 anywhere n/a MASQ all ------ localnet/16 anywhere n/a Chain output (policy ACCEPT): target prot opt source destination ports ACCEPT all ------ localnet/16 localnet/16 n/a ACCEPT all ------ anywhere anywhere n/a ACCEPT all ------ localnet/16 anywhere n/a - tcp ------ anywhere anywhere any -> www - tcp ------ anywhere anywhere any -> telnet - tcp ------ anywhere anywhere any -> ftp - tcp ------ anywhere anywhere any -> ftp-data ACCEPT icmp ------ 192.168.0.0/24 anywhere any -> any ACCEPT icmp ------ 192.168.0.0/24 anywhere any -> any ACCEPT icmp ------ localnet/16 anywhere any -> any ACCEPT icmp ------ localnet/16 anywhere any -> any ACCEPT all ------ anywhere anywhere n/a
73 :
:02/04/06 18:35 ID:J6kr8BmO
74 :
login:Penguin :02/04/07 13:55 ID:1MtQuwBP
んじゃ俺も。書いたばかりでテストしてないけど。 mynet="192.168.1.0/24" iwan="eth1" ilan="eth0" function tcpoutput { /sbin/iptables -A OUTPUT -p tcp --dport $1 --syn -j ACCEPT; } function udpoutput { /sbin/iptables -A OUTPUT -p udp --dport $1 -j ACCEPT; } function tcpforward { /sbin/iptables -A FORWARD -o $iwan -i $ilan -p tcp -s $mynet --dport $1 -j ACCEPT; } function udpforward { /sbin/iptables -A FORWARD -o $iwan -i $ilan -p udp -s $mynet --dport $1 -j ACCEPT; } function badaddress { /sbin/iptables -A INPUT -s $1 -j LOGDROP /sbin/iptables -A INPUT -d $1 -j LOGDROP } /sbin/iptables -N LOGREJECT /sbin/iptables -A LOGREJECT -j LOG /sbin/iptables -A LOGREJECT -j REJECT /sbin/iptables -N LOGDROP /sbin/iptables -A LOGDROP -j LOG /sbin/iptables -A LOGDROP -j DROP /sbin/iptables -A INPUT -i lo -j ACCEPT /sbin/iptables -A OUTPUT -o lo -j ACCEPT /sbin/iptables -A INPUT -i $ilan -j ACCEPT /sbin/iptables -A OUTPUT -o $ilan -j ACCEPT badaddress 192.168.0.0/16 badaddress 172.16.0.0/12 badaddress 10.0.0.0/8 badaddress 169.254.0.0/16 /sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT /sbin/iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT /sbin/iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT /sbin/iptables -A INPUT -p icmp --icmp-type 0 -j ACCEPT /sbin/iptables -A OUTPUT -p icmp --icmp-type 0 -j ACCEPT /sbin/iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT /sbin/iptables -A OUTPUT -p icmp --icmp-type 8 -j ACCEPT /sbin/iptables -A FORWARD -p icmp --icmp-type 8 -i $ilan -o $iwan -j ACCEPT tcpoutput www tcpforward www tcpoutput smtp tcpforward smtp tcpforward domain udpforward domain tcpoutput domain udpoutput domain udpoutput ntp udpforward ntp tcpoutput pop3 tcpforward pop3 /sbin/iptables -A INPUT -p tcp --dport auth -j REJECT --reject-with tcp-reset /sbin/iptables -t nat -A POSTROUTING -o $iwan -s $mynet -j MASQUERADE /sbin/iptables -A FORWARD -j LOGDROP /sbin/iptables -A INPUT -j LOGDROP /sbin/iptables -A OUTPUT -j LOGREJECT /sbin/iptables -P INPUT DROP /sbin/iptables -P OUTPUT DROP /sbin/iptables -P FORWARD DROP
75 :
login:Penguin :02/04/07 20:28 ID:D9AferT4
なんていうか、ルールをそのまま書くより ポリシーを記述して、もし要望があれば具体的な方法を 書くっていう風にした方が後学者達の役にたつと思いませんか?
何のためにこの部分があるかって簡単なコメントをつければ 今のままでも良いような。 どうしてこうするのかって、一言だけでも。
77 :
その1 :02/04/07 23:29 ID:1MtQuwBP
最初はコメントがいっぱい入ってたんだけど、 改行が多すぎますになっちゃってさ。 # LAN で使ってるネットワークアドレス mynet="192.168.1.0/24" # インターネット側につながってるネットワークインタフェース iwan="eth1" # LAN 側につながってるネットワークインタフェース ilan="eth0" # 繰り返し使う箇所をサブルーチンにしておく # TCP の外向けコネクションの許可 (Linux自身から) # 最初の SYN パケットのみを明示的に許可する。 # 残りは conntrack 機能に任せる。 function tcpoutput { /sbin/iptables -A OUTPUT -p tcp --dport $1 --syn -j ACCEPT; } # UDP の外向けパケットの許可 (Linux自身から) # これも同様に外向けのパケットのみを明示的に許可。 # 内向きパケットは conntrack が良きにはからってくれる。 function udpoutput { /sbin/iptables -A OUTPUT -p udp --dport $1 -j ACCEPT; } # TCP の外向けコネクションの許可 (LAN 内の他のマシンから) function tcpforward { /sbin/iptables -A FORWARD -o $iwan -i $ilan -p tcp -s $mynet --dport $1 -j ACCEPT; } # UDP の外向けパケットの許可 (LAN 内の他のマシンから) function udpforward { /sbin/iptables -A FORWARD -o $iwan -i $ilan -p udp -s $mynet --dport $1 -j ACCEPT; } # プライベートアドレス等の外からくるはずのないアドレスを拒否 function badaddress { /sbin/iptables -A INPUT -s $1 -j LOGDROP /sbin/iptables -A INPUT -d $1 -j LOGDROP }
78 :
その2 :02/04/07 23:35 ID:1MtQuwBP
# 拒否したパケットはログを取るようにしたいので、 # ユーザ定義チェイン LOGREJECT と LOGDROP を作る。 /sbin/iptables -N LOGREJECT /sbin/iptables -A LOGREJECT -j LOG /sbin/iptables -A LOGREJECT -j REJECT /sbin/iptables -N LOGDROP /sbin/iptables -A LOGDROP -j LOG /sbin/iptables -A LOGDROP -j DROP # ループバックインタフェース上のパケットは全て許可 /sbin/iptables -A INPUT -i lo -j ACCEPT /sbin/iptables -A OUTPUT -o lo -j ACCEPT # LAN につながってるインタフェース上のパケットは全て許可 /sbin/iptables -A INPUT -i $ilan -j ACCEPT /sbin/iptables -A OUTPUT -o $ilan -j ACCEPT # プライベートアドレスを拒否 badaddress 192.168.0.0/16 badaddress 172.16.0.0/12 badaddress 10.0.0.0/8 # リンクローカルアドレスを拒否 badaddress 169.254.0.0/16 # ループバックやマルチキャスト、ゼロアドレスはカーネルが # 自動的に拒否してくれるよ。 # conntrack 機能が既に確立したコネクションのパケットとか、 # それに付随する ICMP とか、FTP のデータコネクションとかは、 # ここで一括して許可しておく。現在何が許可されているかは # cat /proc/net/ip_conntrack で見れる。 /sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT /sbin/iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT /sbin/iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
79 :
その 3 :02/04/07 23:41 ID:1MtQuwBP
# ping を許可する。Linux自身は外からのpingにも応答する。 /sbin/iptables -A INPUT -p icmp --icmp-type 0 -j ACCEPT /sbin/iptables -A OUTPUT -p icmp --icmp-type 0 -j ACCEPT /sbin/iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT /sbin/iptables -A OUTPUT -p icmp --icmp-type 8 -j ACCEPT # LAN 内のマシンから外への ping を許可する。 /sbin/iptables -A FORWARD -p icmp --icmp-type 8 -i $ilan -o $iwan -j ACCEPT # WWW の閲覧を許可。 tcpoutput www tcpforward www # メール送信を許可。 tcpoutput smtp # LAN 内のマシンからのメール送信を許可。 tcpforward smtp # Linux がメールサーバの場合、許可しないほうがいい。 # ウィルスが勝手にメールを出すのを防げるかも。 # 外のネームサーバへのアクセスを許可 tcpforward domain udpforward domain tcpoutput domain udpoutput domain # NTP サーバへのアクセスを許可 udpoutput ntp udpforward ntp # 外の POP-3 サーバへのアクセスを許可 tcpoutput pop3 tcpforward pop3 # 他にも必要なサービスを追加してやればいい。 # 外から内向きのアクセスは一切許可していない事に注意。
80 :
その 4 :02/04/07 23:50 ID:1MtQuwBP
# 外からの auth (ident) へのアクセスを REJECT してあげないと、 # FTP サーバ等へのログインが遅くなる。 /sbin/iptables -A INPUT -p tcp --dport auth -j REJECT --reject-with tcp-reset # ipchains だと個々のサービス毎にマスカレードの設定が必要 # だったが、iptables のマスカレードのルールはこれだけで OK。 /sbin/iptables -t nat -A POSTROUTING -o $iwan -s $mynet -j MASQUERADE # 以上のルールに当てはまらないパケットは全て DROP しログを取る。 /sbin/iptables -A FORWARD -j LOGDROP /sbin/iptables -A INPUT -j LOGDROP # DROP はパケットを捨ててしまうのでタイムアウトまで待たされる。 # OUTPUT チェインだけは DROP でなくて REJECT にしておくと、 # エラーが返るのが早いので人間へのストレスが少ない。 /sbin/iptables -A OUTPUT -j LOGREJECT # ホントは 内から外への FORWARD も REJECT するようにして # おくといい。こんなかんじで # /sbin/iptables -A FORWARD -i $ilan -o $iwam -j LOGREJECT # 最後にポリシーを設定。 /sbin/iptables -P INPUT DROP /sbin/iptables -P OUTPUT DROP /sbin/iptables -P FORWARD DROP
81 :
login:Penguin :02/04/08 00:00 ID:Duewpl8I
長くてごめん。 ここには LAN から外に出て行くルールだけしかない。 自鯖を建てていて、外からのアクセスを許可したいなら、 function tcpinput { /sbin/iptables -A INPUT -p tcp --dport $1 --syn -j ACCEPT } tcpinput www tcpinput smtp とかのルールを追加する。 ネームサーバを建てていて外からのアクセスを許可するなら、 UDP ポート 53 (domain) 加えて、スレーブからの TCP も許可。 function udpinput { /sbin/iptables -A INPUT -p udp --dport $1 -j ACCEPT } udpinput domain /sbin/iptables -A INPUT -p tcp -s スレーブのアドレス --dport domain --syn -j ACCEPT FTP のアクセスを許可するにはモジュール ip_conntrack_ftp を ロードしておく必要がある。データコネクションを許可するため。 IRC の場合は ip_conntrack_irc。 あとは conntrack も完璧じゃないので、 いくつか手で許可するルールを追加しなきゃならんかも。
82 :
login:Penguin :02/04/08 00:17 ID:FcfkeMhY
>>35 = 1 かどうかはしらんけど普通に赤帽入れると
ipchains のフィルタリングに、なるんだから
TABLE止めてくれよ。。。
83 :
login:Penguin :02/04/08 00:50 ID:Duewpl8I
>>82 lokkit なんてオモチャみたいなもんだ。Red Hat はデフォルトで
ipchains と iptables が両方入ってる。iptables を使うには
ipchains 削除して iptables のルールを save するだけだ。
2.4 カーネルの ipchains は制限多いので、昔作った ipchains
のルールを流用する時以外は iptables に移行せろ。
84 :
login:Penguin :02/04/08 10:32 ID:/PTpL+r4
意外と良スレだな。 勉強になるわ。
ここの「い」さんのIPCHAINS
>>26 を参考に、input -P DENYしてから
SYNパケットの段階で判断させるってのは
シンプルでわかりやすかったのですが。
これだと何かまずいってことはありますか?
86 :
login:Penguin :02/04/08 14:26 ID:n06NMhjY
そもそも
>>26 のルールには誤りがあるが、
それを除いても、SYN だけでの判断ではザルになりやすい。
例えばこのルールでは SYN パケットだけを拒否していて、
その他のパケットは無条件に受け入れている。
家庭用のフィルタならいいが、サーバを守るとなるとちょっと。
ていうか、もっとやれる事があるのにしないのは不安。
87 :
26 :02/04/08 14:34 ID:/PTpL+r4
誤りを指摘してください。 お願いします。
88 :
login:Penguin :02/04/08 15:00 ID:n06NMhjY
例えば... # これは必要ない。下のルールでループバックを全て許可してるから。 -A input -s 127.0.0.0/8 -d 127.0.0.0/8 -i lo -j ACCEPT # 誤りじゃないでど単に -A input -i lo -j ACCEPT でいいのに。 -A input -s 0/0 -d 0/0 -i lo -j ACCEPT # 始点アドレスに基づくフィルタリングではなく、ループバックの # の場合と同様に -A input -i eth? -j ACCPET としたほうがいい。 -A input -s 192.168.1.0/24 -d 0/0 -j ACCEPT # これは不要。input ポリシーが DENY だから。 -A input -s 0/0 -d 0/0 -f -j DENY # 他の人も指摘してたが、始点ポート 53 を全て受け入れるのは危険 # IP アドレスを限定してるからまぁ大丈夫だろうけど。 -A input -s www.zzz.yyy.zzz 53 -d 0/0 -p udp -j ACCEPT -A input -s www.zzz.yyy.zzz 53 -d 0/0 -p udp -j ACCEPT # destination-unreachable を許可するルールが重複してる。 -A input -s 0/0 3 -d 0/0 -p icmp -j ACCEPT -A input -p icmp -s 0/0 destination-unreachable -d 0/0 -j ACCEPT ICMP は source-quench と parameter-problem も許可すべき。 細かいミスが目立つけど致命的な誤りは無さそうだね。 これは趣味の問題だけど、皆 ping に応答しなくしたがる。 自分の存在を隠したいって気持は判るし、そう勧めてる本もある が厳密に言えは RFC 違反。ping 以外にもホストの存在を調べる 手段は沢山あるし、むしろ echo-request よりも echo-reply の ほうが危険な事もある。 最近読んだ本に「パケットフィルタリングは技術じゃなくて教養」 とあった。つまり理論的にこれがベストという解はなくて、知識 と経験の積み重ねが全てって事。
89 :
26 :02/04/08 15:16 ID:/PTpL+r4
>>88 様
ありがとうございます!!
すごく勉強になります。
フィルタリングの神と呼ばせていただきます。
90 :
85 :02/04/08 17:37 ID:Yx8miAOA
91 :
login:Penguin :02/04/08 21:41 ID:n06NMhjY
>>90 うん。確かに DNS は TCP 使う時もある。忘れてた。指摘サンキュー。
でも自鯖に長い TXT レコードとか、数十台のラウンドロビンとかを
定義しない限り TCP での問い合わせが来る事は無いと思う。
だったら禁止しておくのも悪くないんじゃないかな、と今思った。
>>90 禁止している私は、いままで困ったことなど無いもんだが。
93 :
login:Penguin :02/04/08 22:30 ID:eRRV3ijF
無駄が多いかな? ########## MASTER_POLICY iptables -P INPUT DROP iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT ########## LOCALHOST iptables -A INPUT -i lo -s 127.0.0.1 -j ACCEPT ########## INTERNAL iptables -A INPUT -i eth1 -p tcp -d ! 192.168.1.0/24 --dport 137:139 -j DROP iptables -A INPUT -i eth1 -p udp -d ! 192.168.1.0/24 --dport 137:139 -j DROP iptables -A INPUT -i eth1 -p tcp -d ! 192.168.1.0/24 --dport 445 -j DROP iptables -A INPUT -i eth1 -p udp -d ! 192.168.1.0/24 --dport 445 -j DROP iptables -A INPUT -i eth1 -s 192.168.1.0/24 -j ACCEPT iptables -A POSTROUTING -o ppp0 -t nat -j MASQUERADE ########## SERVICES iptables -A PREROUTING -t nat -p tcp -d LOCALIP --dport 6699 -j DNAT --to 192.168.1.1 iptables -A PREROUTING -t nat -p udp -d LOCALIP --dport 6257 -j DNAT --to 192.168.1.1 ########## EXTERNAL #OUTGOING iptables -A OUTPUT -o ppp0 -j ACCEPT #INCOMING iptables -A INPUT -i ppp0 -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -i ppp0 -m state --state NEW,INVALID -j LOG --log-level warning --log-prefix ATTACK-1__ iptables -A FORWARD -i ppp0 -m state --state INVALID -j LOG --log-level warning --log-prefix ATTACK-INVARID__ iptables -A INPUT -i ppp0 -p udp -d LOCALIP --dport 1:1024 -j LOG --log-level warning --log-prefix ATTACK-UDP__ ########## DROP_ALL iptables -A INPUT -i ppp0 -j LOG --log-level warning --log-prefix ATTACK-DEFAULT__
94 :
login:Penguin :02/04/11 22:18 ID:Zg1fpMXL
ipchainsのスレじゃないの?
iptables のスレ建てたらいじめられそうなんだもん。
もう、ここは使われていないのでしょうか? どなたか教えてください。 次の2つの設定は同じ意味と思うのですが 自作版を使うとlynxすら使えません。 >lokkit版 inputのポリシーACCEPT ローカルデバイスのものを許可 プロバイダのDNSからで53番からのものUDPを許可 上記以外のtcpとudpを破棄 >自作版 inputポリシーDENY ローカルデバイスのものを許可 プロバイダのDNSからで53番からのものUDPを許可 icmpを許可 本当は自作版のほうはもっといろいろ設定されていたのですが 思うように動作しないのでほとんどの行がコメントアウトされて 現在の形になっています。
98 :
login:Penguin :02/04/16 18:22 ID:3QOaP/iN
>>97 そんな簡単なもんやおまへんで。
lokkit がどういう設定をしてるのか見てみれ。
/etc/sysconfig/ipchains に保存されてる。
早速のレス、ありがとうございます lokkitはこれだけしかやってないみたいですけど。 :input ACCEPT :forward ACCEPT :output ACCEPT -A input -s 0/0 -d 0/0 -i lo -j ACCEPT -A input -s xxx.xxx.xxx.xxx 53 -d 0/0 -p udp -j ACCEPT -A input -s 0/0 -d 0/0 -p tcp -y -j REJECT -A input -s 0/0 -d 0/0 -p udp -j REJECT 97での私の理解が間違っているのでしょうか?
100 :
login:Penguin :02/04/16 18:35 ID:3QOaP/iN
>>99 output ポリシーの違いじゃないのか?
outputは共にACCEPTのみです。
102 :
login:Penguin :02/04/16 18:37 ID:3QOaP/iN
>>99 ところであんた、こんな所で自分のメアド晒して大丈夫か?
ちょっと分かりにくい。 :output ACCEPT という意味です。
104 :
maruyama :02/04/16 18:38 ID:VGCYfc3x
105 :
login:Penguin :02/04/16 18:41 ID:3QOaP/iN
>>101 lynx が動かんのはあんたの自作版は input ポリシーを DENY なのに、
TCP の戻りパケットを許可してないからだろう。
DNS だけは動くと思う。host コマンドで調べてみれ。
もちろん ICMP 等も許可しないと駄目よ。
自作版ルールをアプしてくれないと指摘するのは難しいよ。
106 :
maruyama :02/04/16 18:48 ID:VGCYfc3x
以下が今現在の、コメントアウトしていない設定です :input DENY :forward ACCEPT :output ACCEPT -A input -i lo -j ACCEPT -A input -d 0/0 53 -p udp -j ACCEPT -A input -d 0/0 53 -p tcp -j ACCEPT -A input -s xxx.xxx.xxx.xxx 53 -p udp -j ACCEPT -A input -s 0/0 echo-reply -p icmp -j ACCEPT hostコマンド今から調べます。 LANケーブルつなぎ直さないといけないので。すみません。
107 :
maruyama :02/04/16 18:55 ID:VGCYfc3x
確かにDNS通ってました。
108 :
login:Penguin :02/04/16 18:55 ID:3QOaP/iN
>>106 足りないのは -A input -p tcp --sport 1024: ! -y -j ACCPET だよ。
自分自身がネームサーバなのか? そうでなければ
-A input -d 0/0 53 -p udp -j ACCEPT
-A input -d 0/0 53 -p tcp -j ACCEPT
はいらんぞ。
許可すべき ICMP は echo-reply だけじゃない。
エラー通知系の ICMP もちゃんと通してやんなきゃ。
109 :
maruyama :02/04/16 19:03 ID:VGCYfc3x
こんな感じ・・・ですか? :input DENY :forward ACCEPT :output ACCEPT -A input -i lo -j ACCEPT -A input -s xxx.xxx.xxx.xxx 53 -p udp -j ACCEPT -A input -p icmp -j ACCEPT -A input -p tcp --sport 1024: ! -y -j ACCPET linux worldで53番だけ開けておけば、httpも動くと 書いてあったような気がしますが、私の勘違い? ともかくありがとうございます。
110 :
maruyama :02/04/16 19:22 ID:VGCYfc3x
おりょ?? これでも動かない?? なんでじゃろ? 一応もう一回確認してみよ。
111 :
login:Penguin :02/04/16 19:42 ID:3QOaP/iN
>>110 ごめん。間違えた。
-A input -p tcp --dport 1024: ! -y -j ACCPET
だった。
112 :
maruyama :02/04/16 19:50 ID:VGCYfc3x
1024以上を受け取るのね。 やってみます。
113 :
login:Penguin :02/04/16 20:01 ID:3QOaP/iN
>>112 ていうか自分のローカルポート範囲を受け取ればいい。
cat /proc/sys/net/ipv4/ip_local_port_range
で範囲が判る。
114 :
maruyama :02/04/16 21:34 ID:N1j6o0ld
>>113 うむむ?ローカルポート範囲って初めて聞いた言葉で
あまり意味わかりませんが、とりあえず出た数字を使えばいいのかな。
アホでスマソ。
今から意味を調べます。
いちお、nfsは閉じました。
とにかく手取り足取りありがとうございました。
今、無事につながっています。わーい。
115 :
login:Penguin :02/04/16 21:41 ID:3QOaP/iN
「ローカルポート」は正式な用語じゃないな。 「短命ポート」あるいは「ephemeral ports」が一般に使われる用語。 パケットフィルタリングを究めるには「詳解TCP/IP」は必読。
116 :
maruyama :02/04/16 22:16 ID:N1j6o0ld
細かなフォローアップありがとうございます。 1日で解決できるとはビツクリ&感激 login:Penguin様に感謝。 この1週間の苦労は何だったの?状態。 だけど、その分勉強にはなりましたけど。 「詳解TCP/IP」そういえば本屋で見たような。
117 :
login:Penguin :02/04/26 00:52 ID:q2WSf+W/
LinuxをNATルータとして使用しています。www, smtp, imap, ssh2, ftp等が動いてい ますがftpはzebedee経由でつないでいるのでポートは閉じてあります。 自分はこんな感じでフィルタリングしているのですが、何かとてつもない過ちや 改善点などあったら教えていただきたいです。inputの4とか改善したいのですが。 # ポリシー # # ppp0 インターネット # eth1 内部ネットワーク # lo ループバック # # input # ポリシー DENY # 1. loは無条件にACCEPT # 2. eth1で内部ネットワークからはACCEPT # 3. ppp0で10.0.0.0/8、172.16.0.0/12、192.168.0.0/16、127.0.0.1、自分のグローバルアドレスからはDENY & LOG # 4. ppp0でSYN以外はACCEPT(?) # 5. ppp0でwww, https, smtp, ssh, imap2, 11965(zebedee), 5800(VNC), 5900(VNC)はACCPET(すべてSYNのみLOG) # 6. ppp0でAUTHはREJECT & LOG # 7. ppp0でプロバイダからのdomainはACCEPT(TCPはLOG) # 8. ppp0でタイムサーバーからのntpはACCEPT # 9. ppp0でICMPのecho-reply, destination-unreachable, time-exceededはACCEPT # 10. その他はすべてDENY & LOG # # output # ポリシー DENY # 1. loは無条件にACCEPT # 2. eth1で内部ネットワークへはACCEPT # 3. ppp0で10.0.0.0/8、172.16.0.0/12、192.168.0.0/16、127.0.0.1、自分のグローバルアドレスへはDENY & LOG # 4. ppp0で10.0.0.0/8、172.16.0.0/12、192.168.0.0/16、127.0.0.1からはDENY & LOG # 5. ppp0でソースポートがwww, https, ssh, imap2, 11965のSYN以外のものはACCEPT # 6. ppp0で宛先がプロバイダのdomainはACCEPT # 7. ppp0で宛先がプロバイダ、会社のPOP3はACCEPT # 8. ppp0で宛先がプロバイダのsmtpはACCEPT(SYNのみLOG) # 9. ppp0で宛先がタイムサーバーのntpはACCEPT # 10. ppp0で宛先がDynamic DNSサイトのwwwはACCEPT # 11. ppp0でソースポートが61000未満のパケットはDENY & LOG # 12. ppp0でソースポートが61000以上のパケットはACCEPT # 13. その他はすべてDENY & LOG # # forward # ポリシー DENY # 1. ローカルネットワークからはACCEPT # 2. それ以外はDENY & LOG
118 :
117 :02/04/26 16:12 ID:SVvpbDHa
もしかして、ipchains全部羅列しなきゃダメですか? それだとすごい長いんですが
119 :
login:Penguin :02/04/26 20:45 ID:GAEFUI6w
つーか、たぶん大丈夫だと思うyo。 細かいミスは実際の設定を見なきゃわからんけどさ。
120 :
117 :02/04/27 18:01 ID:Gff7Uft+
>> 119 ありがと ちょっと手直ししたけどこれで運用してみるよ。
:input DENY :forward DENY :output DENY -A input -s 0.0.0.0/0.0.0.0 -d 0.0.0.0/0.0.0.0 -p 6 -j ACCEPT ! -y -A input -s 0.0.0.0/0.0.0.0 -d 0.0.0.0/0.0.0.0 -i lo -j ACCEPT -A input -s 210.130.0.1/255.255.255.255 53:53 -d 0.0.0.0/0.0.0.0 -p 17 -j ACCEPT -A input -s 210.130.1.1/255.255.255.255 53:53 -d 0.0.0.0/0.0.0.0 -p 17 -j ACCEPT -A input -s 210.173.160.27/255.255.255.255 123:123 -d 0.0.0.0/0.0.0.0 -p 17 -j ACCEPT -A input -s 210.173.160.57/255.255.255.255 123:123 -d 0.0.0.0/0.0.0.0 -p 17 -j ACCEPT -A input -s 210.173.160.87/255.255.255.255 123:123 -d 0.0.0.0/0.0.0.0 -p 17 -j ACCEPT -A output -s 0.0.0.0/0.0.0.0 -d 0.0.0.0/0.0.0.0 -p 6 -j ACCEPT -A output -s 0.0.0.0/0.0.0.0 -d 0.0.0.0/0.0.0.0 -i lo -j ACCEPT -A output -s 0.0.0.0/0.0.0.0 -d 210.130.0.1/255.255.255.255 53:53 -p 17 -j ACCEPT -A output -s 0.0.0.0/0.0.0.0 -d 210.130.1.1/255.255.255.255 53:53 -p 17 -j ACCEPT -A output -s 0.0.0.0/0.0.0.0 -d 210.173.160.27/255.255.255.255 123:123 -p 17 -j ACCEPT -A output -s 0.0.0.0/0.0.0.0 -d 210.173.160.57/255.255.255.255 123:123 -p 17 -j ACCEPT -A output -s 0.0.0.0/0.0.0.0 -d 210.173.160.87/255.255.255.255 123:123 -p 17 -j ACCEPT でごまかしてるIIJ4Uユーザな私
122 :
121 :02/05/02 20:22 ID:AkRMFkKV
TCPが甘いのは判ってますが… というかftpの設定についてだれか教えてください。 アクティブとパッシブの場合についてipchainsの設定を。
123 :
121 :02/05/02 20:32 ID:AkRMFkKV
解説も必要なのか... :input DENY :forward DENY :output DENY デフォルトでは全て拒否。 -A input -s 0.0.0.0/0.0.0.0 -d 0.0.0.0/0.0.0.0 -p 6 -j ACCEPT ! -y -A input -s 0.0.0.0/0.0.0.0 -d 0.0.0.0/0.0.0.0 -i lo -j ACCEPT TCPにて外部からの接続要求で無いモノを受け入れる。 ループバックを許可。 -A input -s 210.130.0.1/255.255.255.255 53:53 -d 0.0.0.0/0.0.0.0 -p 17 -j ACCEPT -A input -s 210.130.1.1/255.255.255.255 53:53 -d 0.0.0.0/0.0.0.0 -p 17 -j ACCEPT 特定のDNS(210.130.0.1 及び 210.130.1.1)の53番から来るUDPを許可。 -A input -s 210.173.160.27/255.255.255.255 123:123 -d 0.0.0.0/0.0.0.0 -p 17 -j ACCEPT -A input -s 210.173.160.57/255.255.255.255 123:123 -d 0.0.0.0/0.0.0.0 -p 17 -j ACCEPT -A input -s 210.173.160.87/255.255.255.255 123:123 -d 0.0.0.0/0.0.0.0 -p 17 -j ACCEPT 特定のNTPサーバ(210.173.160.27 210.173.160.57 210.173.160.87)の123番から来るUDPを受け入れる。
124 :
121 :02/05/02 20:35 ID:AkRMFkKV
-A output -s 0.0.0.0/0.0.0.0 -d 0.0.0.0/0.0.0.0 -p 6 -j ACCEPT -A output -s 0.0.0.0/0.0.0.0 -d 0.0.0.0/0.0.0.0 -i lo -j ACCEPT 出て行くTCPは全て許可。 ループバックを許可。 -A output -s 0.0.0.0/0.0.0.0 -d 210.130.0.1/255.255.255.255 53:53 -p 17 -j ACCEPT -A output -s 0.0.0.0/0.0.0.0 -d 210.130.1.1/255.255.255.255 53:53 -p 17 -j ACCEPT 特定のDNS(210.130.0.1 及び 210.130.1.1)の53番へ出て行くUDPを許可。 -A output -s 0.0.0.0/0.0.0.0 -d 210.173.160.27/255.255.255.255 123:123 -p 17 -j ACCEPT -A output -s 0.0.0.0/0.0.0.0 -d 210.173.160.57/255.255.255.255 123:123 -p 17 -j ACCEPT -A output -s 0.0.0.0/0.0.0.0 -d 210.173.160.87/255.255.255.255 123:123 -p 17 -j ACCEPT 特定のNTPサーバ(210.173.160.27 210.173.160.57 210.173.160.87)の123番へ出て行くUDPを許可。
125 :
ノーパンツ ◆/OjWxByc :02/05/10 18:55 ID://XMYzGz
名スレの予感
だれか、FTPのipchainsルールについて記載してくだされ〜。 データポートの扱いには困ってるもんで。 上のルールだとアクティブで接続できないし。 パッシブで接続できるけど、出て行くTCPを全て許可とかいうルールだし。
>>126 1.FTPを諦める
2.iptablesを使う
さぁ、選べ
128 :
login:Penguin :02/05/23 08:33 ID:Cs0wAivh
>126 どういうポリシーでパケットフィルタリングをしたいのかがわからないという罠。 FTPのipchainとは、何を指しますか? 理想で良いから、「こういうルールをくみたい」と書いてほしい。
>>129 ftpのデータポートって大概20番だけど20番と確定されているわけじゃないよね。
そんな場合に、ftpへ接続して、その流れるデータから何番ポートが使われるか調べて自動で穴空けるとかそんな感じ。
20番に固定するしかないのでは。 昔、一時期、FTPでのデータ転送をSSHで暗号化したくて 調べたことがあるけど、厳密にはソースで利用するポートの部分を書き換えて コンパイルだったか。 ipchainsで許可するポート以外でのアクセスを禁じれば イヤでも20しか使わざるを得なくなるような。 もっとも、相手からのPASVには対応できなくなるけど、それは諦め。
こっちからFTP飛ばす際は20番に固定はできないよね
でていくポートを固定したいなら、Proxyサーバを使うという手は無しだろうか。
みんななんでそんなに詳しいんですか?! 何で勉強したんですか? Linux板で今までで一番ためになりました
136 :
login:Penguin :02/06/26 19:28 ID:BTBdmuk0
WinMX使いたいんだけど、いや、仕事でね、われざ〜じゃないよと。 OUTER_PORT=ppp0 $IPTABLES -t nat -A PREROUTING -p tcp --dport 6699 -i $OUTER_PORT -j DNAT --to 192.168.1.220:6699 $IPTABLES -t nat -A PREROUTING -p udp --dport 6257 -i $OUTER_PORT -j DNAT --to 192.168.1.220:6257 $IPTABLES -A FORWARD -d 192.168.1.220 -p tcp --dport 6699 -j ACCEPT $IPTABLES -A FORWARD -d 192.168.1.220 -p udp --dport 6257 -j ACCEPT LANの192.168.1.220のWinXPに飛ばしたいんだけど、うまくいかんのよ、 ダウンは出来るんだけど、アップロードが全滅 なんか、アドバイスして。
仕事でMX… JASRACやACCSの人ですか?
139 :
137 :02/06/26 21:07 ID:WpYuy0Qn
しまった敵に塩を送ってしまった(爆)
140 :
login:Penguin :02/06/27 00:48 ID:0g6oWS3F
>>138 ファイルの転送ツールとしては、最適だぞまじで、
ごくたまぁ〜〜〜に(違う目的に使うことも無いわけでも、なかったりするけどさ)
141 :
login:Penguin :02/06/27 01:04 ID:1HupoXrp
>>140 ファイル交換なら、普通に ftp 鯖とか、適当にでっちあげればよいのでは?
142 :
:02/06/29 22:04 ID:ieKsVOXB
>>140 ファイル交換、転送ならHotlineなんてどうだろう?と言ってみるテスト。ここのスレに関係ないからsage
FTP
143 :
login:Penguin :02/06/30 23:32 ID:ZNG3S04t
ircを使うにはどうしたらいいんですか? -A input -d 0/0 irc -p tcp -j ACCEPT -A input -d 0/0 6667 -p tcp -j ACCEPT じゃどちらも駄目だったんですけど。
>>143 irc はなかなか面倒なプロトコル。追加モジュールが必要。
2.4 カーネルの ipchains エミュレーションでは提供されてないので、
iptables に移行せよ。
一般ぴーぷるで外部からの接続を全て拒否するような iptables の設定教えて ください。
146 :
login:Penguin :02/07/13 18:08 ID:/NzL4l7n
[root@gp6 rc.d]# ipchains -F
[root@gp6 rc.d]# ipchains -A output -s 0.0.0.0/0.0.0.0 -d 0.0.0.0/0.0.0.0 -p 25 -j DENY
[root@gp6 rc.d]# ipchains -A input -s 0.0.0.0/0.0.0.0 -d 0.0.0.0/0.0.0.0 -p 25 -j DENY
[root@gp6 rc.d]# ipchains -L
Chain input (policy ACCEPT):
target prot opt source destination ports
DENY 25 ------ anywhere anywhere n/a
Chain forward (policy ACCEPT):
Chain output (policy ACCEPT):
target prot opt source destination ports
DENY 25 ------ anywhere anywhere n/a
[root@gp6 rc.d]# /etc/rc.d/init.d/postfix status
master (pid 429) is running...
[root@gp6 rc.d]# cat /proc/sys/net/ipv4/ip_forward
1
この設定だと、
http://scan.sygate.com/ からテストすると 25 が
open であると表示される、これは何故でしょう。
ためしたのは quick scan と stealth scan とトップページの所です。
-s ! 127.0.0.1/255.0.0.0 とか、他の設定でも全然だめです。
原因がつかめません…
>>146 他の人に root をやってもらうというソリューションも検討されてみては?
148 :
146 :02/07/14 18:01 ID:c9wn9vKB
┌─┐ |も| |う| │来│ │ね│ │え| │よ| バカ ゴルァ |!!| └─┤ プンプン ヽ(`Д´)ノ ヽ(`Д´)ノ (`Д´)ノ ( `Д) | ̄ ̄ ̄|─| ̄ ̄ ̄|─| ̄ ̄ ̄|─□( ヽ┐U 〜 〜  ̄◎ ̄ . ̄◎ ̄  ̄◎ ̄ ◎−>┘◎
↑を見たのでレス(笑) >146 ipchains -A output -s 0.0.0.0/0.0.0.0 -d 0.0.0.0/0.0.0.0 -p 25 -j DENY ipchains -A input -s 0.0.0.0/0.0.0.0 -d 0.0.0.0/0.0.0.0 -p 25 -j DENY -p ってプロトコルの指定では? それで、打ち込んで文句言われませんか? ipchains -A input -p tcp --dport 25 -j DENY ポートのフィルタはプロトコルを指定しないと出来ません。 今までのスレッドを読んで研究しましょう(そのレベルで自作のフィルタは危険です)
150 :
146 :02/07/15 17:15 ID:JQy8UeGb
# 出直してきた
http://scan.sygatetech.com/tcpscanf.html # の結果も大丈夫そうだ
# Scanning ports 1011 to 1020 . . .
# Scanning ports 1021 to 1024 . . .
# You have blocked all of our probes! We still recommend running this test both with
# and without Sygate Personal Firewall enabled... so turn it off and try the test again.
# If you are not already running our Enterprise Security Agent or our Personal Firewall,
# try our Award-Winning Personal Firewall now.
# 全部とじて、いる奴だけあける、というぽりしーじゃなく、
# 今空いていてよそから見られたくない奴だけとじるというぽりしー
# になってる、と、おもうんだけどどうだろう。
# icq とか gnuttela とかときどき使うし
# www.linux.or.jp/JM ちゃんと読めという事だったのでみなさんごめんなさい
# もうこねえと思いますハイ
#
IIPP=`perl /etc/rc.d/get_ipaddr.pl`
ifconfig eth1 10.0.0.1/8 up
ipchains -A forward -s 10.0.0.0/8 -d 0.0.0.0/0 -j MASQ
ipchains -A input -d ! 127.0.0.1/32 25 -p tcp -j DENY -l
ipchains -A input -d $IIPP/32 25 -p tcp -j ACCEPT -l
ipchains -A input -d 10.0.0.0/8 25 -p tcp -j ACCEPT -l
ipchains -A output -s ! 127.0.0.1/32 25 -p tcp -j DENY -l
ipchains -A output -s $IIPP/32 25 -p tcp -j ACCEPT -l
ipchains -A output -s 10.0.0.0/8 25 -p tcp -j ACCEPT -l
ipchains -A input -d ! 127.0.0.1/32 53 -p udp -j DENY -l
ipchains -A input -d $IIPP/32 53 -p udp -j ACCEPT -l
ipchains -A input -d 10.0.0.0/8 53 -p udp -j ACCEPT -l
ipchains -A output -s ! 127.0.0.1/32 53 -p udp -j DENY -l
ipchains -A output -s $IIPP/32 53 -p udp -j ACCEPT -l
ipchains -A output -s 10.0.0.0/8 53 -p udp -j ACCEPT -l
ipchains -A input -d ! 127.0.0.1/32 80 -p tcp -j DENY -l
ipchains -A input -d $IIPP/32 80 -p tcp -j ACCEPT -l
ipchains -A input -d 10.0.0.0/8 80 -p tcp -j ACCEPT -l
ipchains -A output -s ! 127.0.0.1/32 80 -p tcp -j DENY -l
ipchains -A output -s $IIPP/32 80 -p tcp -j ACCEPT -l
ipchains -A output -s 10.0.0.0/8 80 -p tcp -j ACCEPT -l
ipchains -A input -d ! 10.0.0.0/8 515 -p tcp -j DENY -l
ipchains -A output -s ! 10.0.0.0/8 515 -p tcp -j DENY -l
ipchains -A input -d ! 127.0.0.1/32 1024 -p tcp -j DENY -l
ipchains -A output -s ! 127.0.0.1/32 1024 -p tcp -j DENY -l
ipchains -A input -d ! 127.0.0.1/32 5680 -p tcp -j DENY -l
ipchains -A output -s ! 127.0.0.1/32 5680 -p tcp -j DENY -l
ipchains -A input -d ! 127.0.0.1/32 6000 -p tcp -j DENY -l
ipchains -A output -s ! 127.0.0.1/32 6000 -p tcp -j DENY -l
ipchains -A input -d ! 127.0.0.1/32 -p icmp -j DENY -l
ipchains -A input -d 10.0.0.0/8 -p icmp -j ACCEPT -l
ipchains -A output -s ! 127.0.0.1/32 -p icmp -j DENY -l
ipchains -A output -s 10.0.0.0/8 -p icmp -j ACCEPT -l
echo 1 >/proc/sys/net/ipv4/ip_forward
インターフェイスの指定をしたほうがいい。 送信元IPアドレス書き換えられる事があるらしいので... あと、デフォルトACCEPTの意味がいまいち分からない。遅いから?
152 :
login:Penguin :02/08/04 23:20 ID:cwiYto9e
ipchains -L ってすると反応が返ってこなくなることがあるんだけど、 これどういうこと?
153 :
login:Penguin :02/08/04 23:31 ID:M9NpqsD/
DNS の逆引き。-L -n ですぐに応答が返るだろう。
thx!
155 :
login:Penguin :02/08/05 21:34 ID:ZFimA7Bv
すみません。未だに-yの存在意義がわかりません。 SYNパケットだけ拒否したり受け入れたりして何の意味が あるのでしょうか? ACK返す時は違うポート番号に向かって返すわけだし。。 誰か細かく説明していただけないかしら。
156 :
155 :02/08/05 22:26 ID:ZFimA7Bv
ポートを指定しない時に便利なのはちょっとわかったよ。 でも他に何か利便性はあるのでしょうか?
157 :
login:Penguin :02/08/05 23:52 ID:wslG8Fwr
>>155 ローカルポートの範囲は外向けコネクションの発信元ポートになるから、
戻りパケットを受け付ける必要がある。ACK 付きパケットを許可する
方法もあるが、! -y 使って SYN パケット以外を許可する方が単純明解。
158 :
login:Penguin :02/08/06 14:23 ID:6owv6XmO
>>157 レスありがとう。
でもね、よく設定例で80番ポートなのに -y 使ったりしてる
やつがあったりするんだけど、じゃああーゆーのは意味なし
ってこと?
159 :
login:Penguin :02/08/06 15:22 ID:WGFWt9uB
# ipfw list 00050 divert 8668 ip from any to any via rl0 00100 allow ip from any to any via lo0 00200 deny ip from any to 127.0.0.0/8 00300 deny ip from 127.0.0.0/8 to any 00400 deny log logamount 100 udp from any to any 137-139,445 00500 deny log logamount 100 udp from any 137-139,445 to any 00600 deny log logamount 100 tcp from any to any 137-139,445 00700 deny log logamount 100 tcp from any 137-139,445 to any 00750 allow tcp from any to 192.168.0.10 80 00775 allow tcp from any to 192.168.0.10 443 00800 allow tcp from any to 192.168.0.10 21 65000 allow ip from any to any 65535 deny ip from any to any
160 :
login:Penguin :02/08/06 18:25 ID:m+XHpwR5
>>158 いや、個々のサービス毎に以下のようなルールを書いてもいい。
# accept outbound WWW traffic
/sbin/ipchains -A output -p tcp -s 自IP 32768:61000 --dport 80 -j ACCEPT
/sbin/ipchains -A input -p tcp --sport 80 -d 自IP 32768:61000 ! -y -j ACCEPT
こうするとルールは増えるが本当に必要最小限の所だけ開けられる。
rshのクライアントを利用したいののですが、どうもipchainsにはじかれてようで使えないのですが、何番を開ければいいのでしょう?
162 :
login:Penguin :02/08/14 12:14 ID:M7zO56SW
ipchains -A input -i eth0 -s 127.0.0.0/8 -j DENY --log ipchains -A input -i eth0 -s 10.0.0.0/8 -j DENY --log ipchains -A input -i eth0 -s 172.16.0.0/12 -j DENY --log ipchains -A input -i eth0 -s 192.168.0.0/16 -j DENY --log ipchains -A input -i eth0 -s 169.254.0.0/16 -j DENY --log ipchains -A input -i eth0 -s 61.*.*.* -j DENY --log ipchains -A input -i eth0 -s 210.*.*.*/29 -j ACCEPT ipchains -A input -i eth0 -p TCP --dport 80 -j ACCEPT ipchains -A input -i eth0 -p TCP --dport 20:21 -j ACCEPT ipchains -A input -i eth0 -p TCP --dport 25 -j ACCEPT ipchains -A input -i eth0 -p TCP --dport 53 -j ACCEPT ipchains -A input -i eth0 -p TCP --dport 110 -j ACCEPT ipchains -A input -i eth0 -p TCP --dport 113 -j ACCEPT ipchains -A input -i eth0 -p TCP -s 202.*.*.*/24 --dport 22 -j ACCEPT ipchains -A input -i eth0 -p TCP -y --dport 0:1023 -j DENY --log ipchains -A input -i eth0 -p TCP -s ! 202.*.*.*/24 -y --dport 8080 -j REJECT --log ipchains -A input -i eth0 -p UDP --dport 53 -j ACCEPT ipchains -A input -i eth0 -p UDP --sport 53 -j ACCEPT ipchains -A input -i eth0 -p UDP -s 202.*.*.*/24 --dport 123 -j ACCEPT ipchains -A input -i eth0 -p UDP --sport 123 -j ACCEPT ipchains -A input -i eth0 -p UDP -s 202.*.*.*/24 --dport 161:162 -j ACCEPT ipchains -A input -i eth0 -p UDP --dport 0:1023 -j DENY --log
163 :
login:Penguin :02/08/14 12:29 ID:xh4yp2uP
>>161 rsh, rlogin の宛先ポートは 513 で、
発信元ポートは 1024 未満のポートになるので、
ユーザの数が多くなければ 1001〜1023 くらいを開けておけばいい。
つまり、宛先:513で発信元1001〜1023の外向きパケットと、
宛先:1001〜1023で発信元:513の内向きの(SYN以外の)パケットを許可。
164 :
vmlinuz :02/08/21 21:13 ID:w8irDkAc
165 :
login:Penguin :02/08/24 05:21 ID:GWff5C2c
>>164 > データはエクセル形式なので
という時点でワラエル
166 :
login:Penguin :02/09/03 16:25 ID:24TaQYyP
デフォルトポリシー?は全部DENYが良いの?
167 :
login:Penguin :02/09/03 16:53 ID:Um/RQVpQ
>>166 そだよ。でも DENY だとタイムアウトを検出するまでに時間がかかる。
ident を REJECT にしとかないと FTP のログインが遅かったりする。
俺は output は REJECT で、input は DENY にしてる。
168 :
166 :02/09/03 17:03 ID:24TaQYyP
ふむふむ、レスTHXです。
>>167 >output は REJECT で、input は DENY にしてる。
inputは、外からなので、時間がかかっても良いからDENYで良いってことですな。
いや〜、既に死んでるスレかと思って、上げたのは悪かったかなぁと思いましたが、
上げて良かった。
169 :
login:Penguin :02/09/15 22:19 ID:NyZZtHnv
すいません。 ipschainsがさっぱり分からないのですが、知識ゼロからでも分かる本とかサイトありませんか? このスレに出てきたリンクは一通り見てみましたが、イマイチ理解できません。 サルでも分かるipchainsみたいな本ないですかね。C言語で言うK&Rみたいなのでも良いんですけど。
170 :
login:Penguin :02/09/15 22:39 ID:3rzrsCwj
>>169 まず TCP/IP の知識が必要。
そういう意味で C で言う K&R は「詳解 TCP/IP vol.1」だろう。
パケットフィルタの設定方法は
「ファイアウォール構築―インターネット・セキュリティ」が詳しい。
上のニ冊を熟読すれば、ipchains/iptables の man ページや HOWTO
を読むだけで設定出来るようになる。
171 :
UNIX板で誘導されました :02/09/16 02:14 ID:PhoSn22t
手書きのipchainsでfwを始めてみたんですが、そのログの取る場合、 IPアドレスのところをホスト名で表示させる方法ってあるのでしょうか? HOWTOとか読みましたが、よくわかりません。 ご存知の方いらっしゃいましたら、教えてください。
172 :
login:Penguin :02/09/16 02:26 ID:3tRdaeTK
>>171 そんな方法は無い。
後から逆引き、whois して変換するプログラムでも書かないといけない。
しかし、ipchains/iptables のログ解析ソフトは沢山ある。
http://freshmeat.net/ あたりで ipchains で検索しろ。
う〜ん結局、自分でスクリプト書きました。 久しぶりなもんで、色々忘れたりしてた。 本とか引っ張りだしたもんだから、結構疲れました。
175 :
login:Penguin :02/09/19 16:36 ID:M92yHwQJ
これってスパム対策になるの? ipchains -A forward -s ! 127.0.0.1/32 25 -p tcp -j DENY
176 :
login:Penguin :02/09/19 17:59 ID:QAiylG8W
>>175 それじゃメールのトラフィックを全部遮断してますけど...
177 :
login:Penguin :02/09/19 20:02 ID:WcAdzkGy
そうだな、送信元IPがローカル以外は転送しないということ にはかなり排他的だな
178 :
login:Penguin :02/09/20 12:25 ID:bFEVkczC
ipchainsって、どこで設定するんですか? どこかの設定ファイルにエディタで書き込んでいくものだと思っていたのですが なんか違うみたいでよく分からないです。
179 :
login:Penguin :02/09/20 15:11 ID:lsC54PDz
180 :
login:Penguin :02/09/20 15:43 ID:lnkjDtuk
>>178 基本的に ipchains は、コマンド /sbin/ipchains を使って
カーネル内のパケットフィルタフィルタのテーブルを操作する。
これは電源を切ったりリブートしたりすると消えるので、
システム起動時に毎回やる必要がある。
これを自動化するために ipchains-save, ipchains-restore の
コマンド (中味はシェルスクリプト) も用意されていて、
Red Hat 系では
>>179 の言う通り /etc/sysconfig/ipchains。
他のディストリでは別の場所にあるファイルに保存/復元する。
これは起動時に init スクリプト /etc/init.d/ipchains 中で実行される。
Red Hat では設定ツール lokkit が用意されているが、出来が良くない。
pppoe の接続時のみ有効になればいいので、 /etc/ppp/ip-up.local と /etc/ppp/ip-up.local-iptables に がんがん書いてるけどダメ? /etc/ppp/ip-up で以下のようにして呼び出してまふ。 RET=`uname -r|grep ^2.2` if [ x"$RET" != x"" ]; then # ipchains [ -x /etc/ppp/ip-up.local ] && /etc/ppp/ip-up.local "$@" else # iptables [ -x /etc/ppp/ip-up.local-iptables ] && /etc/ppp/ip-up.local-iptables "$@" fi
動けば良いじゃん。
184 :
login:Penguin :02/09/22 01:29 ID:ifp04h4J
固定IPじゃない場合に、グローバルアドレス設定する所って、どのようにすれば良いんですか? 直接アドレス書いちゃうと、IPアドレス変わったときに、また書き換えなきゃならないですし。
185 :
login:Penguin :02/09/22 01:37 ID:PL1INX/n
>>184 /etc/ppp/ifup 等に書いておいて、接続時に実行されるようにするか、
IP アドレス指定を使わずインタフェースだけを指定して書く。
>>74 はそういう書きかたをしてる。iptables の例だが。
186 :
login:Penguin :02/09/25 23:55 ID:yGV9vFYi
187 :
login:Penguin :02/09/26 00:28 ID:er0QZLuy
>>186 --state ESTABLISHED,RELATED で許可される事を期待してるんだろうな。
それでうまくいくのかどうか知らんが。
188 :
login:Penguin :02/10/09 23:08 ID:pK4UUXM1
外から内側のwwwサーバへのアクセスはiptableを使わなければ だめでしょうか?
IPマスカレードってコマンド使えば出来るよ。
190 :
login:Penguin :02/10/09 23:55 ID:/ICav2VA
>>189 そんなコマンドねぇよ。
2.2 カーネルなら ipmasqadm を使う。
ipmasqadm portfw -a -P tcp -R 192.168.1.1 80 -L 俺アドレス 80
てな感じ。
2.4 カーネルなら iptables を使わないといけない。
iproute2 の NAT 機能でも出来ると思うが確認してない。
191 :
login:Penguin :02/10/10 00:05 ID:vlc0BDpn
>>189 ipmasqadm portfw ですか?
192 :
login:Penguin :02/10/10 00:06 ID:vlc0BDpn
あいたたた、本気で間違えてた・・・
194 :
189 :02/10/10 01:09 ID:TOdCfvXM
あぁ、しかも質問した人に訂正
>>191 されてるし、いたたた・・・
むつかしいっす
:input DENY :forward DENY :output REJECT :tap-in - :po - :ptyP - :pusP - :pf - :test - :lo-in - -A input -s 0.0.0.0/0.0.0.0 -d 0.0.0.0/0.0.0.0 -i lo -j lo-in -A input -s ! 127.0.0.0/255.0.0.0 -d 0.0.0.0/0.0.0.0 -i eth+ -j ACCEPT -A input -s 0.0.0.0/0.0.0.0 -d 0.0.0.0/0.0.0.0 -i tun+ -j tap-in -A input -s 0.0.0.0/0.0.0.0 -d 0.0.0.0/0.0.0.0 -i tap+ -j tap-in -A input -s 0.0.0.0/0.0.0.0 -d 0.0.0.0/0.0.0.0 -i tap+ -j tap-in -A input -s 0.0.0.0/0.0.0.0 -d 0.0.0.0/0.0.0.0 -j DENY -l -A forward -s 0.0.0.0/0.0.0.0 -d 192.168.0.0/255.255.0.0 -j ACCEPT -A forward -s 192.168.0.0/255.255.0.0 -d 0.0.0.0/0.0.0.0 -j MASQ -A forward -s 0.0.0.0/0.0.0.0 -d 0.0.0.0/0.0.0.0 -j DENY -l -A output -s 0.0.0.0/0.0.0.0 -d 0.0.0.0/0.0.0.0 -i lo+ -j ACCEPT -A output -s 0.0.0.0/0.0.0.0 -d 0.0.0.0/0.0.0.0 -i eth+ -j ACCEPT -A output -s 0.0.0.0/0.0.0.0 -d 0.0.0.0/0.0.0.0 -i tun+ -j po -A output -s 0.0.0.0/0.0.0.0 -d 0.0.0.0/0.0.0.0 -i tap+ -j po -A output -s 0.0.0.0/0.0.0.0 -d 0.0.0.0/0.0.0.0 -i tap+ -j po -A output -s 0.0.0.0/0.0.0.0 -d 0.0.0.0/0.0.0.0 -j REJECT -l 以下省略
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\ Λ_Λ | 君さぁ こんなスレッド立てるから | ( ´∀`)< 厨房って言われちゃうんだよ | ( ΛΛ つ >―――――――――――――――――――‐< ( ゚Д゚) < おまえのことを必要としてる奴なんて | /つつ | いないんだからさっさと回線切って首吊れ | \____________________/ (-_-) ハヤクシンデネ… (-_-) ハヤクシンデネ… (-_-) ハヤクシンデネ… (∩∩) (∩∩) (∩∩) (-_-) ハヤクシンデネ… (-_-) ハヤクシンデネ… (-_-) ハヤクシンデネ… (∩∩) (∩∩) (∩∩) (-_-) ハヤクシンデネ… (-_-) ハヤクシンデネ… (-_-) ハヤクシンデネ… (∩∩) (∩∩) (∩∩)
IP記録実験
http://qb.2ch.net/test/read.cgi/accuse/1042013605/ 1 名前:ひろゆき ◆3SHRUNYAXA @どうやら管理人 ★ 投稿日:03/01/08 17:13 ID:???
そんなわけで、qbサーバでIPの記録実験をはじめましたー。
27 名前:心得をよく読みましょう 投稿日:03/01/08 17:20 ID:yL/kYdMc
SETTING.TXT管轄でないということは全鯖導入を視野に、か?
38 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:22 ID:rLfxQ17l
>>27 鋭いです。
73 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:27 ID:rLfxQ17l
>ところで、IPが抜かれて何か今までと変わることってあるのでしょうか?
・今までより、サーバが重くなる。
・裁判所や警察からの照会があった場合にはIPを提出することがある。
この際だから言わせてもらうか まずニュー速のスレストを殺してほしい 武道板にヲタが流れてきて困るから 格闘技実践者板を作ってほしい
(・∀・)
203 :
山崎渉 :03/01/15 11:39 ID:+BGYmUVc
(^^)
保護
205 :
login:Penguin :03/02/25 21:24 ID:+t2VXT3f
KDEに付いてるipchains設定ツールの使い方がよくわからん !マークはなにをいみしてるんだろ
206 :
山崎渉 :03/03/13 17:01 ID:sbQU2y5R
(^^)
207 :
login:Penguin :03/03/27 08:52 ID:7wFy5n7g
Linux-2.4.20 で /sbin/ipchains を使おうとすると Incompatible with this kernel っていわれてしまうんですけど もしかしてサポート終了した・・・?
今はiptablesがメインやろ
209 :
bloom :03/03/27 09:23 ID:c+YeDgAa
210 :
山崎渉 :03/04/17 12:11 ID:KRn99/cy
(^^)
211 :
山崎渉 :03/04/20 06:09 ID:xFRXxEWb
∧_∧ ( ^^ )< ぬるぽ(^^)
212 :
山崎渉 :03/05/22 02:18 ID:p4opmoqv
━―━―━―━―━―━―━―━―━[JR山崎駅(^^)]━―━―━―━―━―━―━―━―━―
213 :
山崎渉 :03/05/28 16:56 ID:3t6i6zxR
∧_∧ ピュ.ー ( ^^ ) <これからも僕を応援して下さいね(^^)。 =〔~∪ ̄ ̄〕 = ◎――◎ 山崎渉
214 :
login:Penguin :03/06/13 14:01 ID:SeuHSteu
ipchains で TCPセッションタイムアウトの設定をしたいんですが、
上手く確認できないので質問させてください。
下のサイトを参考にして、
http://sal-faq.sourceforge.net/html/ipchains-palomuuri.html ### MASQ timeouts
#
# 2 hrs timeout for TCP session timeouts
# 10 sec timeout for traffic after the TCP/IP "FIN" packet is received
# 160 sec timeout for UDP traffic (Important for MASQ'ed ICQ users)
#
ipchains -M -S 7200 10 160
2時間コネクションが継続していると、自動的に接続を切るように接続したいのです。
で、
コマンドライン上で
#ipchains -M -S 7200 10 160
と打った後に、
#ipchains -L
と打っても、タイムアウトの設定が反映されていないのです。
もしかして、ほかに設定すべきことがあるんでしょうか
215 :
login:Penguin :03/06/13 14:05 ID:bSH9WQO8
216 :
山崎 渉 :03/07/15 11:27 ID:doz396Fq
__∧_∧_ |( ^^ )| <寝るぽ(^^) |\⌒⌒⌒\ \ |⌒⌒⌒~| 山崎渉 ~ ̄ ̄ ̄ ̄
∧_∧ ∧_∧ ピュ.ー ( ・3・) ( ^^ ) <これからも僕たちを応援して下さいね(^^)。 =〔~∪ ̄ ̄ ̄∪ ̄ ̄〕 = ◎――――――◎ 山崎渉&ぼるじょあ
218 :
山崎 渉 :03/08/15 23:10 ID:ep0zwfOh
(⌒V⌒) │ ^ ^ │<これからも僕を応援して下さいね(^^)。 ⊂| |つ (_)(_) 山崎パン
219 :
login:Penguin :03/09/15 09:49 ID:qm4PUSFF
しつもーーん。今、LINUXサーバーをルーターにも使用してます。 ポートのtcp1503を接続しているWIN2台で使用するので、開けたいんですが、 ipchains -A forward -s192.168.0.0/1503 -p tcp -j ACCEPT では間違ってるみたいなんです。 -s -d の指定をよく理解してないみたいです。 じぇんじぇんわからん。教えて下さい。 検索してもこれまたサッパリ(w
220 :
login:Penguin :03/09/15 10:06 ID:qm4PUSFF
ちょい続きを、あれから少し考えて、 ipchains -A forward -s0/0 1503 -p tcp -j ACCEPT にしてみますた。 結果玉砕(w 俺の何が悪いっちゅーねん!!
-sの後ろにスペースを入れるのを忘れていないか?あて先がport1503なら ipchains -A forward -i eth0 -s 192.168.0.0/16 --dport 1503 -p tcp -j ACCEPT 送信元がport1503なら ipchains -A forward -i eth0 -s 192.168.0.0/16 --sport 1503 -p tcp -j ACCEPT 9月に入って、iptableが簡単に突破されてしまうようになったのでipchainに逆戻り。困ったもんだ。
portの指定は書かなくてもOKかな?これでもだめかい? ipchains -A forward -i eth0 -s 192.168.0.0/16 1503 -d 0/0 -p tcp -j ACCEPT 俺もよくわからないぞ〜
パケットフィルタひとつ設定出来ないのは貴方が発狂しているからよ。
>>221 > 9月に入って、iptableが簡単に突破されてしまうようになったのでipchainに逆戻り。困ったもんだ。
これ気になる。詳細きぼん。
脆弱の原因がはっきりとはわからないけど、9月7日版のFloppyFw2.9.5では新しいルールがいくつか追加されている。 # # SYN-Flooding protection # Looks good and nicked from a firewall script mentioned on floppyfw.something. # Didn't work that well.. # iptables -N syn-flood iptables -A INPUT -i ${OUTSIDE_DEVICE} -p tcp --syn -j syn-flood iptables -A syn-flood -m limit --limit 1/s --limit-burst 4 -j RETURN iptables -A syn-flood -j DROP Didn't work that well.. とコメントされており、これでも不完全?? こちらのログに残った侵入の日付は9月6日なので、対策の方が後手に回っていると思われる。
>>225 意味がわからん。それのどこが脆弱なの?
なんか適当だけど問題おきてないからいいや。。。(ぉぃ *filter :INPUT DROP [4:1008] :FORWARD DROP [0:0] :OUTPUT ACCEPT [81:6164] -A INPUT -i lo -j ACCEPT -A INPUT -i eth1 -j ACCEPT -A INPUT -i eth0 -p icmp -j ACCEPT -A INPUT -i eth0 -p tcp -m tcp --dport 22 -j ACCEPT -A INPUT -i eth0 -p tcp -m tcp --dport 25 -j ACCEPT -A INPUT -i eth0 -p tcp -m tcp --dport 53 -j ACCEPT -A INPUT -i eth0 -p udp -m udp --dport 53 -j ACCEPT -A INPUT -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT -A FORWARD -i eth1 -j ACCEPT -A FORWARD -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT COMMIT
228 :
227 :03/09/18 00:54 ID:9xShdcQu
ipchansのスレだったスマソ
229 :
219 :03/09/25 11:55 ID:dUE9Nw2v
>>221 さんきゅー。でもやっぱダメみたい。
正直に言うと、WINNYってソフトをWINDOWSで使いたいんだ。
ポートは1503を使ってるんだけど、forwardだけの設定でいいんだろうか?
ちなみに、rc.localには、
echo 1 > /proc/sys/net/ipv4/ip_forward
ipchains -P forward DENY
ipchains -A forward -i ppp0 -j MASQ -s 192.168.0.0/24 -d 0.0.0.0/0
を記述してまぷ。
ny 厨には何も教えるなよ。
>>229 >正直に言うと、WINNYってソフトをWINDOWSで使いたいんだ。
>ポートは1503を使ってるんだけど、forwardだけの設定でいいんだろうか?
だめ。
ipmasqadm
IPフォワーディングとポートフォワーディングの違いを勉強してから鯉。
234 :
login:Penguin :03/10/30 19:12 ID:7up42HDj
renice
235 :
login:Penguin :04/02/23 18:25 ID:Tr9RGm++
renice
236 :
login:Penguin :04/02/27 20:09 ID:Iu8YOVTS
うちのLinuxはサーバになっていて、ipchainsで設定しているのですが、 Linuxに接続しているローカルなWindowsマシンが何台かあります。 Linuxサーバにはポートをいろいろと制限したいのですが、 ローカルなマシンには制限をかけたくありません。 これってどう記述すればいいのでしょうか。 ヒントだけでもお願いします。
237 :
236 :04/02/28 16:14 ID:3DJRkPsa
よそで聞きなおします。
238 :
login:Penguin :04/12/12 22:45:27 ID:8fc/e6ar
つぎはipfwを見せて欲しい
はい、ちょっと待ってくださいね。
公開は半年後か?('A`)
公開まだぁ?チンチン
242 :
239 :2005/12/13(火) 20:54:02 ID:YwfzlY89
まだなのか
そろそろかな
もう待ちきれないですよ
仕方ないからノートン先生にしました
今年もだめだったか
250 :
login:Penguin :2009/03/01(日) 12:17:25 ID:qMTRjR4D
ぬるぽ
ぬるぽ
あ??
何が言いたいのかわからんな