IPFilterと、PFやIPNAT関連のスレッドです。
関連URLは>>2あたりにあるかもよん
探検
IPFilter関連スレッド vol1
11
NGNGNGNG
はぁ。
configure出現以前フリーソフトはコンパイルエラーが出て当然だったんだが。
configure出現以前フリーソフトはコンパイルエラーが出て当然だったんだが。
7267
NGNG >>70
わたしもトーシロですが、
3.4.31/3.3.22共にSFWgcc
# pkginfo -l SFWgcc | grep VERSION
VERSION: 2.95.3,REV=2001.11.28.08.39
を使ってコンパイルしました。
SFWncurのncursesのヘッダがSolaris標準のcursesのヘッダとconflictしているようだったので
コンパイルするときだけ pkgrm SFWncur してみたところうまくいきました。
で、このあいだの続報ですが
NICを蟹+蟹純正ドライバ(rtls)に交換/調整したところ、ルールを設定してもハングアップしなくなりました。
どうやら原因はipfではなく、NIC(+非純正ドライバ)のほうだったようです。
Solarisが死ぬ直前に出していたメッセージ↓
[ID 503123 kern.warning] WARNING: rf0: transmit timeout,cr: d<RE,TE,BUFE>, isr: 0, msr: 8<SPEED_10>
[ID 252603 kern.notice] rf0: tx-list: head:-19 tail:-15
わたしもトーシロですが、
3.4.31/3.3.22共にSFWgcc
# pkginfo -l SFWgcc | grep VERSION
VERSION: 2.95.3,REV=2001.11.28.08.39
を使ってコンパイルしました。
SFWncurのncursesのヘッダがSolaris標準のcursesのヘッダとconflictしているようだったので
コンパイルするときだけ pkgrm SFWncur してみたところうまくいきました。
で、このあいだの続報ですが
NICを蟹+蟹純正ドライバ(rtls)に交換/調整したところ、ルールを設定してもハングアップしなくなりました。
どうやら原因はipfではなく、NIC(+非純正ドライバ)のほうだったようです。
Solarisが死ぬ直前に出していたメッセージ↓
[ID 503123 kern.warning] WARNING: rf0: transmit timeout,cr: d<RE,TE,BUFE>, isr: 0, msr: 8<SPEED_10>
[ID 252603 kern.notice] rf0: tx-list: head:-19 tail:-15
7367
NGNG 現在以下のようなルールで快調に動いています。
pass in quick on lo0 from any to any
pass in quick on rtls0 from any to any
block in log on rtls1 from any to any
block in log quick on rtls1 from 127.0.0.0/8 to any
block in log quick on rtls1 from 192.168.0.0/24 to any
block in log quick on rtls1 from any to any with opt lsrr
block in log quick on rtls1 from any to any with opt ssrr
block in log quick on rtls1 proto tcp from any to any with short
pass in quick on rtls1 proto tcp from any to any port = 20 flags S/SA keep state
pass in quick on rtls1 proto tcp from any to any port = 21 flags S/SA keep state
pass in quick on rtls1 proto tcp from any to any port = 22 flags S/SA keep state
pass in quick on rtls1 proto tcp from any to any port = 25 flags S/SA keep state
pass in quick on rtls1 proto tcp from any to any port = 80 flags S/SA keep state
pass in quick on rtls1 proto tcp from any to any port = 113 flags S/SA keep state
pass in quick on rtls1 proto tcp from any to any port 30010 >< 30081 flags S/SA keep state
pass in quick proto icmp from any to any icmp-type echorep
pass in quick proto icmp from any to any icmp-type unreach
pass in quick proto icmp from any to any icmp-type squench
pass in quick proto icmp from any to any icmp-type echo
pass in quick proto icmp from any to any icmp-type timex
またipnat.confのてっぺんに↓を追加するとLAN内部から普通のモードでftpできるようになりました。
map rtls1 192.168.0.0/24 -> 0/32 proxy port ftp ftp/tcp
コピペばっかでごめんなさいでした。退散。
pass in quick on lo0 from any to any
pass in quick on rtls0 from any to any
block in log on rtls1 from any to any
block in log quick on rtls1 from 127.0.0.0/8 to any
block in log quick on rtls1 from 192.168.0.0/24 to any
block in log quick on rtls1 from any to any with opt lsrr
block in log quick on rtls1 from any to any with opt ssrr
block in log quick on rtls1 proto tcp from any to any with short
pass in quick on rtls1 proto tcp from any to any port = 20 flags S/SA keep state
pass in quick on rtls1 proto tcp from any to any port = 21 flags S/SA keep state
pass in quick on rtls1 proto tcp from any to any port = 22 flags S/SA keep state
pass in quick on rtls1 proto tcp from any to any port = 25 flags S/SA keep state
pass in quick on rtls1 proto tcp from any to any port = 80 flags S/SA keep state
pass in quick on rtls1 proto tcp from any to any port = 113 flags S/SA keep state
pass in quick on rtls1 proto tcp from any to any port 30010 >< 30081 flags S/SA keep state
pass in quick proto icmp from any to any icmp-type echorep
pass in quick proto icmp from any to any icmp-type unreach
pass in quick proto icmp from any to any icmp-type squench
pass in quick proto icmp from any to any icmp-type echo
pass in quick proto icmp from any to any icmp-type timex
またipnat.confのてっぺんに↓を追加するとLAN内部から普通のモードでftpできるようになりました。
map rtls1 192.168.0.0/24 -> 0/32 proxy port ftp ftp/tcp
コピペばっかでごめんなさいでした。退散。
NGNG
keep state するんなら大抵 port 番号を見てると思うけど、
その場合は keep frags も足した方がいいと思うよ。
その場合は keep frags も足した方がいいと思うよ。
NGNG
>>74
ご指導ありがとうございます。
今回ipfの日本語ドキュメントをネットでいろいろ捜したのですが、
tarballにも含まれている"IPF.KANJI"以外には
断片的な設定例が発見できただけでした。
きっちり解説してあるものとなると、やはり
http://coombs.anu.edu.au/~avalon/examples.html
http://www.unixcircle.com/ipf/ipf-howto.html
あたりの英語を読まないといけないようですが、
そもそも"IPパケット"の構造がわかっていないと理解は難しいようで、
私にはよくわかりませんでした。
[flags] は RFC793とかに書いてある"tcpヘッダ"のURG ACK PSH RST SYN FIN などを頭文字で名指しで指定できる(らしい?)
[S] だけ指定すると S/AUPRFS を指定したことになる(らしい?)
[S/SA] とはいわゆる"established"を指す(らしい?)が"UPRFS"は見ない(らしい?)
[keep state] は入ってきたパケットの[最初の部分]が[怪しくない]ものと判定されれば、"state table"に登録して
以降はチェックしない(らしい?)
[keep frags] は断片化したパケットが入って来ると、残りの部分を予測して、その部分は通す(らしい?)
...ようするに"えらく難しい"ということは理解できた気がします。
ご指導ありがとうございます。
今回ipfの日本語ドキュメントをネットでいろいろ捜したのですが、
tarballにも含まれている"IPF.KANJI"以外には
断片的な設定例が発見できただけでした。
きっちり解説してあるものとなると、やはり
http://coombs.anu.edu.au/~avalon/examples.html
http://www.unixcircle.com/ipf/ipf-howto.html
あたりの英語を読まないといけないようですが、
そもそも"IPパケット"の構造がわかっていないと理解は難しいようで、
私にはよくわかりませんでした。
[flags] は RFC793とかに書いてある"tcpヘッダ"のURG ACK PSH RST SYN FIN などを頭文字で名指しで指定できる(らしい?)
[S] だけ指定すると S/AUPRFS を指定したことになる(らしい?)
[S/SA] とはいわゆる"established"を指す(らしい?)が"UPRFS"は見ない(らしい?)
[keep state] は入ってきたパケットの[最初の部分]が[怪しくない]ものと判定されれば、"state table"に登録して
以降はチェックしない(らしい?)
[keep frags] は断片化したパケットが入って来ると、残りの部分を予測して、その部分は通す(らしい?)
...ようするに"えらく難しい"ということは理解できた気がします。
7667
NGNG 以上を考慮してルールは以下のようになりました。
pass in quick on rtls0 from any to any
pass out quick on rtls0 from any to any
pass out quick on rtls1 proto icmp from any to any keep state
pass out quick on rtls1 proto udp from any to any keep state
pass out quick on rtls1 proto tcp from any to any flags S keep state keep frags
block in log on rtls1 from any to any
block in log quick on rtls1 from 127.0.0.0/8 to any
block in log quick on rtls1 from 192.168.0.0/24 to any
block in log quick on rtls1 from any to any with opt lsrr
block in log quick on rtls1 from any to any with opt ssrr
block in log quick on rtls1 proto tcp from any to any with short
pass in quick on rtls1 proto tcp from any to any port = 20 flags S keep state keep frags
pass in quick on rtls1 proto tcp from any to any port = 21 flags S keep state keep frags
pass in quick on rtls1 proto tcp from any to any port = 22 flags S keep state keep frags
pass in quick on rtls1 proto tcp from any to any port = 25 flags S keep state keep frags
pass in quick on rtls1 proto tcp from any to any port = 80 flags S keep state keep fragsいてます。
pass in quick on rtls1 proto tcp from any to any port = 113 flags S keep state keep frags
pass in quick on rtls1 proto tcp from any to any port 30010 >< 30081 flags S keep state keep frags
pass in quick proto icmp from any to any icmp-type echorep
pass in quick proto icmp from any to any icmp-type unreach
pass in quick proto icmp from any to any icmp-type squench
pass in quick proto icmp from any to any icmp-type echo
pass in quick proto icmp from any to any icmp-type timex
pass in quick on lo0 from any to any
pass out quick on lo0 from any to any
...一見快調に動いてるようですが、
あからさまに蛸な部分がありましたらまたご指導お願いします。ではこのへんで
退散。
pass in quick on rtls0 from any to any
pass out quick on rtls0 from any to any
pass out quick on rtls1 proto icmp from any to any keep state
pass out quick on rtls1 proto udp from any to any keep state
pass out quick on rtls1 proto tcp from any to any flags S keep state keep frags
block in log on rtls1 from any to any
block in log quick on rtls1 from 127.0.0.0/8 to any
block in log quick on rtls1 from 192.168.0.0/24 to any
block in log quick on rtls1 from any to any with opt lsrr
block in log quick on rtls1 from any to any with opt ssrr
block in log quick on rtls1 proto tcp from any to any with short
pass in quick on rtls1 proto tcp from any to any port = 20 flags S keep state keep frags
pass in quick on rtls1 proto tcp from any to any port = 21 flags S keep state keep frags
pass in quick on rtls1 proto tcp from any to any port = 22 flags S keep state keep frags
pass in quick on rtls1 proto tcp from any to any port = 25 flags S keep state keep frags
pass in quick on rtls1 proto tcp from any to any port = 80 flags S keep state keep fragsいてます。
pass in quick on rtls1 proto tcp from any to any port = 113 flags S keep state keep frags
pass in quick on rtls1 proto tcp from any to any port 30010 >< 30081 flags S keep state keep frags
pass in quick proto icmp from any to any icmp-type echorep
pass in quick proto icmp from any to any icmp-type unreach
pass in quick proto icmp from any to any icmp-type squench
pass in quick proto icmp from any to any icmp-type echo
pass in quick proto icmp from any to any icmp-type timex
pass in quick on lo0 from any to any
pass out quick on lo0 from any to any
...一見快調に動いてるようですが、
あからさまに蛸な部分がありましたらまたご指導お願いします。ではこのへんで
退散。
NGNG
最後にblockルールでログ取る。
7870
NGNG >>67
まだエラーが出ます。
・SFWgccのVERSION: 2.95.3,にあげました。(REV=2001.11.28.08.39ではない)
・pkgrm SFWncur をしました。
ソースに手を入れる必要ありますかね?
ちなみにSFWncurのソースだというのはどこを見れば分かるんでしょうか?
まだエラーが出ます。
・SFWgccのVERSION: 2.95.3,にあげました。(REV=2001.11.28.08.39ではない)
・pkgrm SFWncur をしました。
ソースに手を入れる必要ありますかね?
ちなみにSFWncurのソースだというのはどこを見れば分かるんでしょうか?
NGNG
>>76
head, group 使ってみ
block in log on rtls1 from any to any head 100
block in log quick from 127.0.0.0/8 to any group 100
....
block in log proto tcp from any to any head 110 group 100
pass in quick proto tcp from any to any port = 22 flags S keep state keep frags group 110
....
とかな
>>75 みたいにまとめてるのを見ると、成長がみられて微笑ましくて、(・∀・)イイ!!
head, group 使ってみ
block in log on rtls1 from any to any head 100
block in log quick from 127.0.0.0/8 to any group 100
....
block in log proto tcp from any to any head 110 group 100
pass in quick proto tcp from any to any port = 22 flags S keep state keep frags group 110
....
とかな
>>75 みたいにまとめてるのを見ると、成長がみられて微笑ましくて、(・∀・)イイ!!
NGNG
S/SAってS/ASと書いてはだめなのですか?
Syn->
<-AckSyn
Ack->
というように勉強していたのでSAと書くとどうも違和感が....
実際試して見たところ特に問題は無く動作しているようなのですが、もしかしたら
ルールにマッチしていると思ったつもりで実はマッチしていないのかもしれません。
Syn->
<-AckSyn
Ack->
というように勉強していたのでSAと書くとどうも違和感が....
実際試して見たところ特に問題は無く動作しているようなのですが、もしかしたら
ルールにマッチしていると思ったつもりで実はマッチしていないのかもしれません。
NGNG
NGNG
>>80
順番は全く問題ない。
=== common.c ===
char flagset[] = "FSRPAUEC";
u_char flags[] = { TH_FIN, TH_SYN, TH_RST, TH_PUSH, TH_ACK, TH_URG,
TH_ECN, TH_CWR };
〜〜
u_char tcp_flags(flgs, mask, linenum)
〜〜
if (!(t = index(flagset, *s))) {
fprintf(stderr, "%d: unknown flag (%c)\n", linenum, *s);
return 0;
}
*fp |= flags[t - flagset];
順番は全く問題ない。
=== common.c ===
char flagset[] = "FSRPAUEC";
u_char flags[] = { TH_FIN, TH_SYN, TH_RST, TH_PUSH, TH_ACK, TH_URG,
TH_ECN, TH_CWR };
〜〜
u_char tcp_flags(flgs, mask, linenum)
〜〜
if (!(t = index(flagset, *s))) {
fprintf(stderr, "%d: unknown flag (%c)\n", linenum, *s);
return 0;
}
*fp |= flags[t - flagset];
NGNG
最近の雑誌にはACK+SYNと書いてあった
NGNG
保守
85名無しさん@お腹いっぱい。
NGNG OpenBSDから見事に外されたIPFカワイソウ
NGNG
>>85
だってipfのライセンスてイヤーンなんだもん
だってipfのライセンスてイヤーンなんだもん
NGNG
OpenBSD の pf って ipf 互換?
NGNG
config fileの記法が似ているって聞いたけど、本当?
NGNG
似てる。pass in quick on tun0 proto tcp from any to any port ssh
こんなふうに、ipf のルールがそのまま pf でも書けることもある。
でも pf には ipf の head、group は無いし、動作も微妙に違うので上位互換というわけではない。
(groupキーワードはパケットを出したソケットのownerの条件として使われる)
こんなふうに、ipf のルールがそのまま pf でも書けることもある。
でも pf には ipf の head、group は無いし、動作も微妙に違うので上位互換というわけではない。
(groupキーワードはパケットを出したソケットのownerの条件として使われる)
9088
NGNG >89 サンクスコ
91名無しさん@お腹いっぱい。
NGNG IPにフィルタをかけるとそれはパケットになってしまうのです。
92名無しさん@お腹いっぱい。
NGNG >>87
OpenBSD使ってるんだったら、pfで良いじゃん。ipfなんて関係ないだろ。
OpenBSD使ってるんだったら、pfで良いじゃん。ipfなんて関係ないだろ。
NGNG
OpenBSD 用の ipf も、ipfilter.org の方で、まだ保守されてるん
じゃなかったっけ? いやまあ、普通に使うんなら pf 使う方が
楽だとは思うけどさ。
あと、pf の NAT って、今では ipf の NAT 機能全て備えているん
だっけ? なんか、できない機能がいろいろあったような覚えが
あるんだけど。
じゃなかったっけ? いやまあ、普通に使うんなら pf 使う方が
楽だとは思うけどさ。
あと、pf の NAT って、今では ipf の NAT 機能全て備えているん
だっけ? なんか、できない機能がいろいろあったような覚えが
あるんだけど。
NGNG
95名無しさん@お腹いっぱい。
NGNG >あと、pf の NAT って、今では ipf の NAT 機能全て備えているん
>だっけ? なんか、できない機能がいろいろあったような覚えが
>あるんだけど。
IPv6があるじゃないか。
>だっけ? なんか、できない機能がいろいろあったような覚えが
>あるんだけど。
IPv6があるじゃないか。
NGNG
pfはipfより見易くて綺麗と思う。
つかipfてソース見りゃわかるが結構ぐちゃぐちゃな気が。
つかipfてソース見りゃわかるが結構ぐちゃぐちゃな気が。
97名無しさん@お腹いっぱい。
NGNG >>65遅レスだけど...
詳しくないけどP2PのWinnyでは、正確にポートマッピング
してやらないと正常動作しないのではないかと思う。
だから、ipnatにrdrで転送ポートをローカルのIPアドレス側に
流してやる。
例えば、
rdr xxx.xxx.xxx.xxx/32 port yyyyy -> rdr 192.168.0.1 port zzzzz tcp
とか。
やってみたら?ってもうやってるか...
詳しくないけどP2PのWinnyでは、正確にポートマッピング
してやらないと正常動作しないのではないかと思う。
だから、ipnatにrdrで転送ポートをローカルのIPアドレス側に
流してやる。
例えば、
rdr xxx.xxx.xxx.xxx/32 port yyyyy -> rdr 192.168.0.1 port zzzzz tcp
とか。
やってみたら?ってもうやってるか...
98名無しさん@お腹いっぱい。
NGNG >>97
間違え
>rdr xxx.xxx.xxx.xxx/32 port yyyyy -> rdr 192.168.0.1 port zzzzz tcp
rdr xxx.xxx.xxx.xxx/32 port yyyyy -> 192.168.0.1 port zzzzz tcp
間違え
>rdr xxx.xxx.xxx.xxx/32 port yyyyy -> rdr 192.168.0.1 port zzzzz tcp
rdr xxx.xxx.xxx.xxx/32 port yyyyy -> 192.168.0.1 port zzzzz tcp
NGNG
rdr を書く位置って 特に気にする必要はあるんですか?
map の直後でいいんですよね…
map の直後でいいんですよね…
NGNG
NGNG
ポート接続を他ホストに丸投げってできませんか?
一つ一つ rdr 書かないと無理?
一つ一つ rdr 書かないと無理?
NGNG
>>101
言っている意味がわからないのだが...
言っている意味がわからないのだが...
103名無しさん@Emacs
NGNG104101
NGNG rdr fx0 0.0.0.0/0 port 1025 -> 192.168.0.2 port 1025 tcp
rdr fx0 0.0.0.0/0 port 1026 -> 192.168.0.2 port 1026 tcp
rdr fx0 0.0.0.0/0 port 1027 -> 192.168.0.2 port 1027 tcp
(中略)
rdr fx0 0.0.0.0/0 port 20000 -> 192.168.0.2 port 20000 tcp
をポート1つに1行ではなく、略して書けないのかということです。
rdr fx0 0.0.0.0/0 port 1026 -> 192.168.0.2 port 1026 tcp
rdr fx0 0.0.0.0/0 port 1027 -> 192.168.0.2 port 1027 tcp
(中略)
rdr fx0 0.0.0.0/0 port 20000 -> 192.168.0.2 port 20000 tcp
をポート1つに1行ではなく、略して書けないのかということです。
NGNG
俺は詳しくないですが、ipf-howto(ググってみれ)を見たけど、
そういう書き方は載ってませんでした。
丸投げはセキュリティ上よくないような。最小限にした方がいいと
思う。つーか、IPFilter入れている意味なくない?
そういう書き方は載ってませんでした。
丸投げはセキュリティ上よくないような。最小限にした方がいいと
思う。つーか、IPFilter入れている意味なくない?
NGNG
http://www.ietf.org/rfc/rfc3514.txt
にある Security Flag が立っているパケットを落とすにはどうしたらよいですか?
にある Security Flag が立っているパケットを落とすにはどうしたらよいですか?
NGNG
NGNG
>>101
オンラインゲームでホストを立てようとした時、どうしてもrdr記述する必要があったので同じように一行一行記述しますた。
ゲームのマニュアルには「2300-2400を空ける」とか書いてあってipnat.confに2300-2400まで、ポートづつ一行一行100行も追加記述....
見栄え悪いし簡略化出来ないっすかねぇ....
オンラインゲームでホスト役する人はipf+ipnat使うなって事かな....
オンラインゲームでホストを立てようとした時、どうしてもrdr記述する必要があったので同じように一行一行記述しますた。
ゲームのマニュアルには「2300-2400を空ける」とか書いてあってipnat.confに2300-2400まで、ポートづつ一行一行100行も追加記述....
見栄え悪いし簡略化出来ないっすかねぇ....
オンラインゲームでホスト役する人はipf+ipnat使うなって事かな....
NGNG
そーゆーのは手で直接書くのではなく、
スクリプトで自動生成してやるとよろしいかと。
ipfilter は使ったことないけど、こんな感じでいいのかな?
% cat hoge.m4
divert(-1)
define(`forloop',
`pushdef(`$1', `$2')_forloop(`$1', `$2', `$3', `$4')popdef(`$1')')
define(`_forloop',
`$4`'ifelse($1, `$3', ,
`define(`$1', incr($1))_forloop(`$1', `$2', `$3', `$4')')')
divert`'dnl
forloop(`i', 2300, 2400, `rdr fx0 0.0.0.0/0 port i -> 192.168.0.2 port i tcp
')dnl
% m4 hoge.m4
rdr fx0 0.0.0.0/0 port 2300 -> 192.168.0.2 port 2300 tcp
rdr fx0 0.0.0.0/0 port 2301 -> 192.168.0.2 port 2301 tcp
rdr fx0 0.0.0.0/0 port 2302 -> 192.168.0.2 port 2302 tcp
...
forloop マクロについては GNU m4 の info に載ってるです。
スクリプトで自動生成してやるとよろしいかと。
ipfilter は使ったことないけど、こんな感じでいいのかな?
% cat hoge.m4
divert(-1)
define(`forloop',
`pushdef(`$1', `$2')_forloop(`$1', `$2', `$3', `$4')popdef(`$1')')
define(`_forloop',
`$4`'ifelse($1, `$3', ,
`define(`$1', incr($1))_forloop(`$1', `$2', `$3', `$4')')')
divert`'dnl
forloop(`i', 2300, 2400, `rdr fx0 0.0.0.0/0 port i -> 192.168.0.2 port i tcp
')dnl
% m4 hoge.m4
rdr fx0 0.0.0.0/0 port 2300 -> 192.168.0.2 port 2300 tcp
rdr fx0 0.0.0.0/0 port 2301 -> 192.168.0.2 port 2301 tcp
rdr fx0 0.0.0.0/0 port 2302 -> 192.168.0.2 port 2302 tcp
...
forloop マクロについては GNU m4 の info に載ってるです。
110名無しさん@Emacs
NGNG そういうのは
rdr fx0 0.0.0.0/0 port 2300-2400 -> 192.168.0.2 port 2300 tcp
ってするんだってさ
rdr fx0 0.0.0.0/0 port 2300-2400 -> 192.168.0.2 port 2300 tcp
ってするんだってさ
NGNG
>>110
おかしくないか?
おかしくないか?
NGNG
>>110
100個分のポートが全てport:2300に...
100個分のポートが全てport:2300に...
113110
NGNG まぁ、これでも見てや。
FreeBSD 4.7-STABLE #0: Sat Feb 8 08:14:20 JST 2003
/usr/src/sys/contrib/ip_nat.c
int ip_natin(ip, fin)
ip_t *ip;
fr_info_t *fin;
{
...[[snip snip snip]].....
for (np = rdr_rules[hv]; np; np = np->in_rnext) {
...[[snip snip snip]].....
if ((!np->in_pmin || (np->in_flags & IPN_FILTER) ||
((ntohs(np->in_pmax) >= ntohs(dport)) &&
(ntohs(dport) >= ntohs(np->in_pmin)))))
if ((nat = nat_new(fin, ip, np, NULL, nflags,
NAT_INBOUND))) {
np->in_hits++;
break;
}
FreeBSD 4.7-STABLE #0: Sat Feb 8 08:14:20 JST 2003
/usr/src/sys/contrib/ip_nat.c
int ip_natin(ip, fin)
ip_t *ip;
fr_info_t *fin;
{
...[[snip snip snip]].....
for (np = rdr_rules[hv]; np; np = np->in_rnext) {
...[[snip snip snip]].....
if ((!np->in_pmin || (np->in_flags & IPN_FILTER) ||
((ntohs(np->in_pmax) >= ntohs(dport)) &&
(ntohs(dport) >= ntohs(np->in_pmin)))))
if ((nat = nat_new(fin, ip, np, NULL, nflags,
NAT_INBOUND))) {
np->in_hits++;
break;
}
114110
NGNG ファイル名typo /usr/src/sys/contrib/ipfilter/netinet/ip_nat.c
115山崎渉
NGNG (^^)
116あぼーん
NGNGあぼーん
117名無しさん@お腹いっぱい。
NGNG age
NGNG
低脳な俺はipfwでいいや。
NGNG
そんなこと言わずにがんばるだよもん
120名無しさん@お腹いっぱい。
NGNG がむばるなりよ
121名無しさん@お腹いっぱい。
NGNG お味噌汁のお揚げはお好きですか?
NGNG
block in quick from >>121 to 2ch.net
123名無しさん@お腹いっぱい。
NGNG >>121
はい、大好きです(ウフッ
はい、大好きです(ウフッ
NGNG
激しく勘違いしていることはあきらかなんですが、established が S/SA(or S/AS) と表現されるのが
どうもしっくりきません。
Syn->
<-AckSyn
Ack->
なので、established だったら AckSyn か Ack がついてるってことで、
AS/Aと表現する気がしてなりません。
だれか私の誤解を解いてください。
どうもしっくりきません。
Syn->
<-AckSyn
Ack->
なので、established だったら AckSyn か Ack がついてるってことで、
AS/Aと表現する気がしてなりません。
だれか私の誤解を解いてください。
NGNG
NGNG
>>125
いえ、SynだけかAckSynがついてるのがestablishedだというんなら80-83で納得いくんですが、
Synだけなのはestablished(確立済み)じゃないんじゃないのかな、と。
私は完全に勘違いしてるんでしょうか?
いえ、SynだけかAckSynがついてるのがestablishedだというんなら80-83で納得いくんですが、
Synだけなのはestablished(確立済み)じゃないんじゃないのかな、と。
私は完全に勘違いしてるんでしょうか?
NGNG
flags yyy/xxx で、xxx でマスクしたものを yyy と比べるんだから、
AS/A は絶対にマッチしないのでは。
外からのSynをblockすればいいだけの話なんだから、
block in quick proto tcp from any to any flags S/SA
pass in quick proto tcp from any to any
や
pass in quick proto tcp from any to any flags A/A
block in quick proto tcp from any to any
と書けるだけの話。
AS/A は絶対にマッチしないのでは。
外からのSynをblockすればいいだけの話なんだから、
block in quick proto tcp from any to any flags S/SA
pass in quick proto tcp from any to any
や
pass in quick proto tcp from any to any flags A/A
block in quick proto tcp from any to any
と書けるだけの話。
128126
NGNG >>127
解説ありがとうございます。やはり大きな勘違いをしていました。
以前検索したとき、ipf.confにかかれている S や A は Syn や Ack を表していて、
「複数書きたいときは / でつなぐ」って書かれてるページを読んで鵜呑みにしてしまっていました。
/ の後ろにかかれているのはマスクだったんですね。
とても分かりやすい説明、本当にありがとうございました。
解説ありがとうございます。やはり大きな勘違いをしていました。
以前検索したとき、ipf.confにかかれている S や A は Syn や Ack を表していて、
「複数書きたいときは / でつなぐ」って書かれてるページを読んで鵜呑みにしてしまっていました。
/ の後ろにかかれているのはマスクだったんですね。
とても分かりやすい説明、本当にありがとうございました。
129あぼーん
NGNGあぼーん
130名無しさん@お腹いっぱい。
NGNG131あぼーん
NGNGあぼーん
NGNG
>>10のリンク先の、「MailとWeb」をよく読んでごらんなさい。
133名無しさん@お腹いっぱい。
NGNG NATルータを仕上げたつもりなんですが、なんだかうまく動いていません。
webアクセスでしかチェックしていないのですが、
2chやその他一部のページは普通にアクセスできるのに、www.yahoo.co.jpなどにうまくアクセスできないのです。
logを見てみると
sppp0 @100:18 b img.yahoo.co.jp[211.14.14.240],80 -> 192.168.10.29,2315 PR tcp len 20 40 -R IN
と出力されており、ページにある他のサーバの画像などがうまく持ってこれていないようです。
ipf.confには
pass in quick proto tcp from any to any flags A/A group 100
とかいて、確立済みな通信は通しているつもりなのですが、これが効いてくれません。
ルータになっているPCではこの症状が少しマシなので、NAT周りが原因だと思うんですが、
ルータPCではまったく症状が出ないというわけでもないのです。
ipnat.confは
map sppp0 192.168.10.0/24 -> xxx.xxx.xxx.xxx/32 proxy port ftp ftp/tcp
map sppp0 192.168.10.0/24 -> xxx.xxx.xxx.xxx/32 portmap tcp/udp 10000:65000
map sppp0 192.168.10.0/24 -> xxx.xxx.xxx.xxx/32
としています。xxx.xxx.xxx.xxxはルータPCの外側のインタフェースのIPアドレスです。
とても基本的なことかもしれないんですが、教えていただけないでしょうか。
webアクセスでしかチェックしていないのですが、
2chやその他一部のページは普通にアクセスできるのに、www.yahoo.co.jpなどにうまくアクセスできないのです。
logを見てみると
sppp0 @100:18 b img.yahoo.co.jp[211.14.14.240],80 -> 192.168.10.29,2315 PR tcp len 20 40 -R IN
と出力されており、ページにある他のサーバの画像などがうまく持ってこれていないようです。
ipf.confには
pass in quick proto tcp from any to any flags A/A group 100
とかいて、確立済みな通信は通しているつもりなのですが、これが効いてくれません。
ルータになっているPCではこの症状が少しマシなので、NAT周りが原因だと思うんですが、
ルータPCではまったく症状が出ないというわけでもないのです。
ipnat.confは
map sppp0 192.168.10.0/24 -> xxx.xxx.xxx.xxx/32 proxy port ftp ftp/tcp
map sppp0 192.168.10.0/24 -> xxx.xxx.xxx.xxx/32 portmap tcp/udp 10000:65000
map sppp0 192.168.10.0/24 -> xxx.xxx.xxx.xxx/32
としています。xxx.xxx.xxx.xxxはルータPCの外側のインタフェースのIPアドレスです。
とても基本的なことかもしれないんですが、教えていただけないでしょうか。
134110
NGNG >>133
map sppp0 192.168.10.0/24 -> xxx.xxx.xxx.xxx/32 proxy port ftp ftp/tcp mssclamp 1414
map sppp0 192.168.10.0/24 -> xxx.xxx.xxx.xxx/32 portmap tcp/udp 10000:65000 mssclamp 1414
map sppp0 192.168.10.0/24 -> xxx.xxx.xxx.xxx/32 mssclamp 1414
でどうよ?
map sppp0 192.168.10.0/24 -> xxx.xxx.xxx.xxx/32 proxy port ftp ftp/tcp mssclamp 1414
map sppp0 192.168.10.0/24 -> xxx.xxx.xxx.xxx/32 portmap tcp/udp 10000:65000 mssclamp 1414
map sppp0 192.168.10.0/24 -> xxx.xxx.xxx.xxx/32 mssclamp 1414
でどうよ?
135133
NGNG136名無しさん@お腹いっぱい。
NGNG ipfw2ってどうよ?
137あぼーん
NGNGあぼーん
138あぼーん
NGNGあぼーん
139名無しさん@お腹いっぱい。
NGNG netfilter で nat の OUTPU と filter の OUTPU の差がよくわからないのですが,
誰か教えてくれませんでしょうか?
google で調べたところ,
nat-OUTPUT ローカル生成のネットワークパケットが 送信される前にそれを変更します
filter-OUTPUT ローカル生成のネットワークパケットに適用します
らしいのですがこの両者の差がよくわからないです.
iptables で状態を見ると nat-OUTPUT の方が通過量が多いため,両者は違うものだと考えられるのですが...
誰か教えてくれませんでしょうか?
google で調べたところ,
nat-OUTPUT ローカル生成のネットワークパケットが 送信される前にそれを変更します
filter-OUTPUT ローカル生成のネットワークパケットに適用します
らしいのですがこの両者の差がよくわからないです.
iptables で状態を見ると nat-OUTPUT の方が通過量が多いため,両者は違うものだと考えられるのですが...
NGNG
>>139
Netfilter(iptables)は板違い。ここは ip_fil3.4.32.tar.gz とかで配布されてる
IP Filterのスレのはず。
Linuxのiptablesは慣れてないので、IP FilterがLinuxにも対応して欲しいとは思うが・・
たしか、kernel 2.0.x までは対応してたが、そのあと放置されたと思う・・
Netfilter(iptables)は板違い。ここは ip_fil3.4.32.tar.gz とかで配布されてる
IP Filterのスレのはず。
Linuxのiptablesは慣れてないので、IP FilterがLinuxにも対応して欲しいとは思うが・・
たしか、kernel 2.0.x までは対応してたが、そのあと放置されたと思う・・
NGNG
iptablesの話題はLinux板の方が回答を貰いやすいと思われ
NGNG
>>140,141
これより前,Linux 板に netfilter に関係するスレが見当たらなかったので,
Linux 板のくだ質スレに同じことを書き込んだのですが誰も答えてくれる人はいなかったんです.
Linux 板をもう少し探索して適当なスレを探してみます.
これより前,Linux 板に netfilter に関係するスレが見当たらなかったので,
Linux 板のくだ質スレに同じことを書き込んだのですが誰も答えてくれる人はいなかったんです.
Linux 板をもう少し探索して適当なスレを探してみます.
NGNG
こんな明らかなスレがあるのに目に入らなかったのだろうか…
http://pc.2ch.net/test/read.cgi/linux/1000817457/
http://pc.2ch.net/test/read.cgi/linux/1000817457/
NGNG
>>143
ありがとうございます.
スレ一覧で Firebird にて検索(netfilter,iptablesで)したはずなのですが...
何で見つからなかったんだろう...鬱だ...いや注意力不足か...
ありがとうございます.
スレ一覧で Firebird にて検索(netfilter,iptablesで)したはずなのですが...
何で見つからなかったんだろう...鬱だ...いや注意力不足か...
NGNG
>>144
この板の住人の大半はnetfilterは使ってないだろう、多分。
だから質問してもスレ建てても答えが貰えない可能性が大。
スレタイで検索するなら i-mode 版を w3m と併用するといい。
この板の住人の大半はnetfilterは使ってないだろう、多分。
だから質問してもスレ建てても答えが貰えない可能性が大。
スレタイで検索するなら i-mode 版を w3m と併用するといい。
146あぼーん
NGNGあぼーん
NGNG
保守
NGNG
(・∀・)ノ
NGNG
ヽ(・∀・)人(・∀・)ノ
150名無しさん@お腹いっぱい。
NGNGNGNG
保守
152名無しさん@お腹いっぱい。
NGNG おしえてください
ipf で、アドレスのとこに0.0.0.0みたいな表記してるのって
どういう意味なんでしょうか?
0.0.0.0/0 と 0.0.0.0/32 で意味は変わりすか?
あと、単に 0 って書くと何を差すのでしょう??
ipf で、アドレスのとこに0.0.0.0みたいな表記してるのって
どういう意味なんでしょうか?
0.0.0.0/0 と 0.0.0.0/32 で意味は変わりすか?
あと、単に 0 って書くと何を差すのでしょう??
NGNG
>>152
0.0.0.0/0 は 0.0.0.0の0bit分を比較するので、どんなアドレスにもmatchする。
従って 0.0.0.0/0 も 1.2.3.4/0 も同じ意味。
0.0.0.0/32 は 0.0.0.0の32bit分を比較するので、0.0.0.0にしかmatchしない。
0はアドレスとしては0.0.0.0と同義。これはinet_aton()あたりの仕様だが、
ライブラリによってはparseできない(しない)ものも。SEE ALSO inet_aton(3)
あと、0.0.0.0 は書く場所によっては特殊な意味を持つ場合もある。
ipnat.confではinterfaceについてるアドレスに置換されたり。詳しくは各manを読め。
0.0.0.0/0 は 0.0.0.0の0bit分を比較するので、どんなアドレスにもmatchする。
従って 0.0.0.0/0 も 1.2.3.4/0 も同じ意味。
0.0.0.0/32 は 0.0.0.0の32bit分を比較するので、0.0.0.0にしかmatchしない。
0はアドレスとしては0.0.0.0と同義。これはinet_aton()あたりの仕様だが、
ライブラリによってはparseできない(しない)ものも。SEE ALSO inet_aton(3)
あと、0.0.0.0 は書く場所によっては特殊な意味を持つ場合もある。
ipnat.confではinterfaceについてるアドレスに置換されたり。詳しくは各manを読め。
154152
NGNG ありがとうございます。
とくに、「...bit分を比較するので」ってとこ、
もやもやがすっきりしました。
とくに、「...bit分を比較するので」ってとこ、
もやもやがすっきりしました。
NGNG
ipf+ipnatを使ってルータにしてる人に聞きたいんだけど、
ipfのルールってやっぱり全通ししてるの?
ipfのルールってやっぱり全通ししてるの?
NGNG
>>155
いいえ
いいえ
NGNG
>>156
d
d
NGNG
保守
NGNG
ng0に動的なグローバルIPアドレスが割り当てられてるんですがipfilterでこのIPアドレスを
指定するにはどのように記述したらいいんでしょうか?
ipnatのmapのように0/32みたいに書けますか?
指定するにはどのように記述したらいいんでしょうか?
ipnatのmapのように0/32みたいに書けますか?
NGNG
NGNG
保守
NGNG
Set 1 now inactive
の1という数字ってどういう意味?
の1という数字ってどういう意味?
NGNG
>>162
ルールセット1を無効にして、ルールセット0を有効にしたということ。
ipfにはルールセット0とルールセット1の2つがあって、どちらを有効にするかを
一瞬で切り変えられる。
たとえば一度ルールをご破算してaddしなおしたい時なんかに、
inactiveな方にルールを設定し、activeとinactiveをswapすれば、
ファイアウォール的には一瞬たりともフィルタ無しの状態は発生しない。
ルールセット1を無効にして、ルールセット0を有効にしたということ。
ipfにはルールセット0とルールセット1の2つがあって、どちらを有効にするかを
一瞬で切り変えられる。
たとえば一度ルールをご破算してaddしなおしたい時なんかに、
inactiveな方にルールを設定し、activeとinactiveをswapすれば、
ファイアウォール的には一瞬たりともフィルタ無しの状態は発生しない。
164教えてくんすみません
NGNG ログファイルを編集してアクセス権を変更せずに上書き保存をしたら、
ろぐを記述しなくなってしまいました… 環境はNetBSD1.6.1と最初から入っているipfです。
rc.confには
ipmon_flags="-D /kubota/kakurei/kanbai/filter.logfile"
のように記述して、ログファイル/kubota/kakurei/kanbai/filter.logfileのアクセス権は777にしてあります。
ipf.confにログが記録されるルールにマッチするような状況にして実験をしても
ログが記録されません。ついさっきまで正常にログに記録されていたのにいきなりのことでさぱーり
原因がわかりません。どうかお助けくださいませ。
ろぐを記述しなくなってしまいました… 環境はNetBSD1.6.1と最初から入っているipfです。
rc.confには
ipmon_flags="-D /kubota/kakurei/kanbai/filter.logfile"
のように記述して、ログファイル/kubota/kakurei/kanbai/filter.logfileのアクセス権は777にしてあります。
ipf.confにログが記録されるルールにマッチするような状況にして実験をしても
ログが記録されません。ついさっきまで正常にログに記録されていたのにいきなりのことでさぱーり
原因がわかりません。どうかお助けくださいませ。
NGNG
ipmon をリスタートすれば直る。
ipmon に限らず、UNIX のファイルオープンの仕組みを知ってれば
当然なんだが…
実際には、君がファイルを編集して保存することで削除された、
古いファイルの方にずっとログが記録され続けていた筈。
(UNIX の場合、削除されたファイルも名前が存在しないだけで、
オープンしているプロセスが存在する限り、ファイルの実体が
存在し続ける)
君の使っているエディタの場合、上書き保存というのは、実際には
上書きではなく、新しいファイルを保存して改名という手順で動い
ていたようだね。
そもそも、ログを編集するという発想が何か変だ。ログの意味が
なくなるから、そういうことはやめた方がいい。
ipmon に限らず、UNIX のファイルオープンの仕組みを知ってれば
当然なんだが…
実際には、君がファイルを編集して保存することで削除された、
古いファイルの方にずっとログが記録され続けていた筈。
(UNIX の場合、削除されたファイルも名前が存在しないだけで、
オープンしているプロセスが存在する限り、ファイルの実体が
存在し続ける)
君の使っているエディタの場合、上書き保存というのは、実際には
上書きではなく、新しいファイルを保存して改名という手順で動い
ていたようだね。
そもそも、ログを編集するという発想が何か変だ。ログの意味が
なくなるから、そういうことはやめた方がいい。
NGNG
>>165
サンクスです。リスタートをしたら解決しました。不勉強で申し訳ないです。
ログファイルを数ヶ月ほったらかしにしていたせいでログが巨大化し
ディスクスペースを圧迫していたので一度バックアップをとってから新しく
ログファイルを作ろうとしたら、バックアップさえ取れない程ログファイルが巨大化
していたので、バックアップは諦めてログファイルの中から重要そうなものだけ
抽出して後は削除、という感じで編集したのです。勿論恒常的にやっては
いないので今回だけは自分の怠慢が招いたことで特別でした。
以上助かりました。有難う御座います。
サンクスです。リスタートをしたら解決しました。不勉強で申し訳ないです。
ログファイルを数ヶ月ほったらかしにしていたせいでログが巨大化し
ディスクスペースを圧迫していたので一度バックアップをとってから新しく
ログファイルを作ろうとしたら、バックアップさえ取れない程ログファイルが巨大化
していたので、バックアップは諦めてログファイルの中から重要そうなものだけ
抽出して後は削除、という感じで編集したのです。勿論恒常的にやっては
いないので今回だけは自分の怠慢が招いたことで特別でした。
以上助かりました。有難う御座います。
NGNG
ログは普通自動で rotate しとくもんよ。
俺も NetBSD だが、ipf のログは syslog 経由で出して、
newsyslog を使って rotate してる。
こんな感じ。
/etc/rc.conf
ipmon=YES ipmon_flags="-s"
/etc/syslog.conf
local0.info /var/log/ipflog
/etc/newsyslog.conf
/var/log/ipflog 640 7 30 * Z
全てのログを残したいなら、定期的にバックアップ
をとるようにすること。
俺も NetBSD だが、ipf のログは syslog 経由で出して、
newsyslog を使って rotate してる。
こんな感じ。
/etc/rc.conf
ipmon=YES ipmon_flags="-s"
/etc/syslog.conf
local0.info /var/log/ipflog
/etc/newsyslog.conf
/var/log/ipflog 640 7 30 * Z
全てのログを残したいなら、定期的にバックアップ
をとるようにすること。
NGNG
漏れちょっと前にBSD始めたんだけど WEBには初心者に優しいIPFの説明してるページないぽ・・
実働sampleみたいなの置いてくれるとありがたいんだけど・・・
ここに実働sampleあったよ兄者!
実働sampleみたいなの置いてくれるとありがたいんだけど・・・
ここに実働sampleあったよ兄者!
NGNG
NATだとmmsを越えられないですか?
すれ違いかも。すまそ
すれ違いかも。すまそ
レスを投稿する
ニュース
- 🇺🇸🇨🇳米中関係は「極めて強固」とトランプ氏… ★5 [BFU★]
- 🇺🇸🇨🇳米中関係は「極めて強固」とトランプ氏… ★6 [BFU★]
- SuicaとPASMOのコード決済「teppay(テッペイ)」26年秋開始 🐧🤖 [少考さん★]
- 「ホストに貢ぎたい」と海外で売春する日本人女性 2カ月で2千万円稼ぐケースも [1ゲットロボ★]
- 【SNSでも政策の無駄募る】政府が新設 政策の財源探し 税制優遇など「見直し担当室」… [BFU★]
- 【速報】外務次官が中国大使と面会 [蚤の市★]
- 【高市速報】コンバースのスニーカーが再びブームに🔥🔥wwwwwwwwwwwwwwww ここに着て履いてるやつが爆増 [573041775]
- みろ、
- 山上母「統一教会に献金をしたことで兄も天国で幸せに暮らすことになった」 [268244553]
- 【♩悲報】NHK立花たかし、実刑へ。数年間ブタ箱。自殺した兵庫県議へ中傷で [732289945]
- 参政党・さや議員「日本ではデフォルトは起きません!なぜなら日本円はいくらでも刷れるからです!!!」 [931948549]
- 野ションで有名なあのトー横キッズ、今度はハメ撮りが拡散
