IPFilterと、PFやIPNAT関連のスレッドです。
関連URLは>>2あたりにあるかもよん
IPFilter関連スレッド vol1
11
NGNG21
NGNGNGNG
何だよ「かもよん」って
NGNG
無意味な巨大AAよりかはいくらかマシか…
NGNG
まぁ Windows specified な話しか無い セキュリティ板 にこんなスレ立てても無駄だよねぇ
NGNG
しかし、立てた当初くらいはネタ振って盛り上げたらどうだ。>>1
NGNG
specific?
10名無しさん@お腹いっぱい。
NGNG ちょっと貼っとくか。
http://www.wakhok.ac.jp/~kanayama/summer/02/site/node110.html
http://www.wakhok.ac.jp/~kanayama/summer/02/site/node110.html
11名無しさん@お腹いっぱい。
NGNG 有名?
ttp://www.tac.tsukuba.ac.jp/~hiromi/ipf4.html
ttp://www.tac.tsukuba.ac.jp/~hiromi/ipf4.html
NGNG
エラーの発生原因がわからず一日中ルールの書換えとテストを繰り返していた事がありました。
13名無しさん@お腹いっぱい。
NGNG FreeBSDのipfwと比べるとどっちが通ですか?
NGNG
natやるならipfilterの方が性能良い。
但し、俺んちではipfilterはストリーミング切れる。
但し、俺んちではipfilterはストリーミング切れる。
15名無しさん@お腹いっぱい。
NGNG やっぱ、Linuxのnetfilterの方が良いよね。
でもFreeBSDでipfilterだと、Cから直接叩けるのは魅力だよね。
でもFreeBSDでipfilterだと、Cから直接叩けるのは魅力だよね。
NGNG
>>15
どこがどう良いとか解説してくれないか?
どこがどう良いとか解説してくれないか?
NGNG
keep frags
NGNG
NGNG
>>14
pppoe(フレッツ)に繋ぐNATBoxにIPF+IPNAT(NetBSD1.6)を使っているんだけれど、うちもストリーミングが切れる時がある。
でもYBBだった時はこういう事は起こらなかったしIPNATでmmsclampを書いても駄目だったので、別に原因があるのかも???
pppoe(フレッツ)に繋ぐNATBoxにIPF+IPNAT(NetBSD1.6)を使っているんだけれど、うちもストリーミングが切れる時がある。
でもYBBだった時はこういう事は起こらなかったしIPNATでmmsclampを書いても駄目だったので、別に原因があるのかも???
20これなかなかいいっすね
NGNG return-icmp-as-dest(port-unr)
NGNG
>>20
これってHost Unreachableを帰すって事?
これってHost Unreachableを帰すって事?
NGNG
>>13
通はアンナンバードだからnat不要、そして帯域制限しるからipfw。
通はアンナンバードだからnat不要、そして帯域制限しるからipfw。
23名無しさん@お腹いっぱい。
NGNG >>16
Linux/Netfilterだと簡単に出来ることの例
(1)月曜から金曜の8時から18時に到着したパケットだけを許可
# iptables -A INPUT -m time --timestart 8:00 \
--timestop 18:00 \
--days Mon,Tue,Wed,Thu,Fri -j ACCEPT
(2)あるIPアドレスからの同時並行で確立するHTTPコネクション数を
4つに限定
# iptables -A INPUT -p tcp --syn --dport http \
-m iplimit --iplimit-above 4 -j REJECT
(3)様々な条件(ほんの少しの例)
--uid-owner userid
パケットを生成したプロセスの実行ユーザ id (数値)にマッチ
--uid-owner groupid
パケットを生成したプロセスの実行グループ id (数値) にマッチ
--pid-owner processid
パケットを生成したプロセスのプロセス id にマッチ
--sid-owner sessionid
パケットを生成したプロセスのセッショングループにマッチ
--limit n
単位時間あたりに許される平均マッチ回数の最大値を指定。
--limit-burst n
limit が作動し始める手前の最大バースト値(許容できる突発
的な増大係数で、平均レートの倍数)を指定
Linux/Netfilterだと簡単に出来ることの例
(1)月曜から金曜の8時から18時に到着したパケットだけを許可
# iptables -A INPUT -m time --timestart 8:00 \
--timestop 18:00 \
--days Mon,Tue,Wed,Thu,Fri -j ACCEPT
(2)あるIPアドレスからの同時並行で確立するHTTPコネクション数を
4つに限定
# iptables -A INPUT -p tcp --syn --dport http \
-m iplimit --iplimit-above 4 -j REJECT
(3)様々な条件(ほんの少しの例)
--uid-owner userid
パケットを生成したプロセスの実行ユーザ id (数値)にマッチ
--uid-owner groupid
パケットを生成したプロセスの実行グループ id (数値) にマッチ
--pid-owner processid
パケットを生成したプロセスのプロセス id にマッチ
--sid-owner sessionid
パケットを生成したプロセスのセッショングループにマッチ
--limit n
単位時間あたりに許される平均マッチ回数の最大値を指定。
--limit-burst n
limit が作動し始める手前の最大バースト値(許容できる突発
的な増大係数で、平均レートの倍数)を指定
24名無しさん@お腹いっぱい。
NGNGNGNG
NGNG
>>24
1 は cron でやったほうがいいと思うけど,その他はちょっと難しげ.
netnice ではやれそうな気がする.使ったことないけれど.
http://www.asahikawa.wide.ad.jp/netnice/
1 は cron でやったほうがいいと思うけど,その他はちょっと難しげ.
netnice ではやれそうな気がする.使ったことないけれど.
http://www.asahikawa.wide.ad.jp/netnice/
NGNG
uid/gidによる制御はipfwでもできる。ipfilterはできなかったと思うけど。
28名無しさん@お腹いっぱい。
NGNG PPPoEでNATにしてる人たちはMMSブラックホール問題はどう対処しているの?
やっぱり全マシンのMTU調整?
やっぱり全マシンのMTU調整?
29名無しさん@お腹いっぱい。
NGNG pfで十分
NGNG
>>28
ipnat.confにmmsclampを書く。それでも完璧じゃないけど…
最後の手段で経路上にあるルータの管理者にRFC2923読んで下さい。
とか言ってルータのicmpの設定を変えてもらうしか方法はないんじゃないかと…
ipnat.confにmmsclampを書く。それでも完璧じゃないけど…
最後の手段で経路上にあるルータの管理者にRFC2923読んで下さい。
とか言ってルータのicmpの設定を変えてもらうしか方法はないんじゃないかと…
3130
NGNG まちがいますた
mmsclamp > mssclamp
mmsclamp > mssclamp
NGNG
ipfstat -t もえ
NGNG
353-5分おき
NGNG blockは余計だったなや
36名無しさん@お腹いっぱい。
NGNG Cから直接叩こうと思っています。
FreeBSD 4.7-RELEASEにて、「man 4 ipf」をすると、
#include <netinet/ip_compat.h>
#include <netinet/ip_fil.h>
などと出て来るのに、これらヘッダファイルがシステム
に入っていません。
別途インストールの必要ありだと思うのですが、
どのパッケージになるのでしょう。
FreeBSD 4.7-RELEASEにて、「man 4 ipf」をすると、
#include <netinet/ip_compat.h>
#include <netinet/ip_fil.h>
などと出て来るのに、これらヘッダファイルがシステム
に入っていません。
別途インストールの必要ありだと思うのですが、
どのパッケージになるのでしょう。
37名無しさん@お腹いっぱい。
NGNG38名無しさん@お腹いっぱい。
NGNGNGNG
>>23(1)って、カーネル内で曜日を計算してやってるの?それはやりすぎな気がするよ。(2), (3) はおもろいね。でも ipfilter って ifdef 多すぎていじる気になれない :-(
40名無しさん@お腹いっぱい。
NGNG 昼からずっとcvsupつながらないのですが、
私のマシンがNATの裏にあるのがいけない??
cvsup2 でも同じでした。
Connecting to cvsup4.jp.freebsd.org
Connected to cvsup4.jp.freebsd.org
Server software version: SNAP_16_1f
Negotiating file attribute support
Exchanging collection information
Establishing passive-mode data connection
Cannot connect to data port: Connection refused
Will retry at 18:16:05
私のマシンがNATの裏にあるのがいけない??
cvsup2 でも同じでした。
Connecting to cvsup4.jp.freebsd.org
Connected to cvsup4.jp.freebsd.org
Server software version: SNAP_16_1f
Negotiating file attribute support
Exchanging collection information
Establishing passive-mode data connection
Cannot connect to data port: Connection refused
Will retry at 18:16:05
41名無しさん@お腹いっぱい。
NGNG >>39
Linux/Netfilterには、パケット内のデータマッチ
なんてものもあります。でもIDSの代わりには使えません。
パケット毎にチェックするから、フラグメントして
たらすり抜けちゃう。
好き勝手に開発するのがLinuxのスタイルだから、
何でも出て来ちゃうんだけどね。
Linux/Netfilterには、パケット内のデータマッチ
なんてものもあります。でもIDSの代わりには使えません。
パケット毎にチェックするから、フラグメントして
たらすり抜けちゃう。
好き勝手に開発するのがLinuxのスタイルだから、
何でも出て来ちゃうんだけどね。
NGNG
NAT 2段かましてるけど、ついさっき、cvsup2 で更新できたよん。
port 5999 (だっけ?)は空いてる?
port 5999 (だっけ?)は空いてる?
43名無しさん@お腹いっぱい。
NGNG >>42
中から外のポートは全部空けていますが、
外から中は、帰りのパケットだけです(ステートフルFW)。
もしかしてFTPみたいにややこしい話になるのですか?
とりあえずtcpdumpしてみてみます。
中から外のポートは全部空けていますが、
外から中は、帰りのパケットだけです(ステートフルFW)。
もしかしてFTPみたいにややこしい話になるのですか?
とりあえずtcpdumpしてみてみます。
4443
NGNG45名無しさん@お腹いっぱい。
NGNG ずっと疑問に思ってるんだが、
ipfilterのルールって、なんでlast matchなの??(quickルールがあるけど)
アルゴリズム的にも、パケット毎に全部のルールを
検査しなくちゃいけなくて遅いとおもうんだけど。
# 分かりやすい分かりにくいはともかくとして。
ipfilterのルールって、なんでlast matchなの??(quickルールがあるけど)
アルゴリズム的にも、パケット毎に全部のルールを
検査しなくちゃいけなくて遅いとおもうんだけど。
# 分かりやすい分かりにくいはともかくとして。
4614
NGNG http://home.earthlink.net/~jaymzh666/ipf/IPFfreebsd.html#17みて
net.inet.tcp.recvspace: 57344 -> 32768
にしてみた。ガンダム(試行回数一回)切れなかった。
net.inet.tcp.recvspace: 57344 -> 32768
にしてみた。ガンダム(試行回数一回)切れなかった。
NGNG
48名無しさん@お腹いっぱい。
NGNG 最近とてもうざく感じるようになってきた韓国や中国から届く大量のパケットを遮断したいんですが、こんな感じでOKですか?
xx0 <= wan側nic
block in quick on xx0 proto tcp from aaa.aaa.aaa.aaa/aa to any flags S/S
block in quick on xx0 proto tcp from bbb.bbb.bbb.bbb/bb to any flags S/S
<略>
block in on xx0 proto udp from any to any
pass in on xx0 proto udp from any to any port=*** #(udpポートは必要なとこだけ記述)
xx0 <= wan側nic
block in quick on xx0 proto tcp from aaa.aaa.aaa.aaa/aa to any flags S/S
block in quick on xx0 proto tcp from bbb.bbb.bbb.bbb/bb to any flags S/S
<略>
block in on xx0 proto udp from any to any
pass in on xx0 proto udp from any to any port=*** #(udpポートは必要なとこだけ記述)
4914
NGNG スマソ、再度試したらやっぱ切れた。
NGNG
>>48
ログがウザイなら log level local1.debug とかすれば
いいんじゃないかな。ログなしはそれはそれで恐いような。
incoming HTTP 等を蹴りたいんなら flags S/S は要らない
のではないかしら。
ログがウザイなら log level local1.debug とかすれば
いいんじゃないかな。ログなしはそれはそれで恐いような。
incoming HTTP 等を蹴りたいんなら flags S/S は要らない
のではないかしら。
NGNG
>>50
特定のポートはログも取るようなルールにしているのですが、それが特に目的そのものに関係する事では無いのでサンプルには書きませんでした。
又そもそもうざいと感じるのはログに対してではなくて、変なワームが発するパケットの送信元が9割型この2つからなので、それが原因で感じる心理的な疲労感不安感です。
>incoming HTTP 等を蹴りたいんなら flags S/S は要らない
>のではないかしら。
でもflagつけないとACKまで拒否してしまうので向こうのホームページが見れなかったりするんです。
ただflag S/Sじゃなくてflag Sでもいいかもしれませんが。
特定のポートはログも取るようなルールにしているのですが、それが特に目的そのものに関係する事では無いのでサンプルには書きませんでした。
又そもそもうざいと感じるのはログに対してではなくて、変なワームが発するパケットの送信元が9割型この2つからなので、それが原因で感じる心理的な疲労感不安感です。
>incoming HTTP 等を蹴りたいんなら flags S/S は要らない
>のではないかしら。
でもflagつけないとACKまで拒否してしまうので向こうのホームページが見れなかったりするんです。
ただflag S/Sじゃなくてflag Sでもいいかもしれませんが。
NGNG
>>51
もしかしてステートフルインスペクション機能を使ってないとか?
pass out quick proto tcp from any to any flags S/SA keep state keep frags
もしかしてステートフルインスペクション機能を使ってないとか?
pass out quick proto tcp from any to any flags S/SA keep state keep frags
53山崎渉
NGNG (^^)
NGNG
>>52
そういう手があったか。
60秒ルールというのがちょっと不安な感じもします(変更可能?)が試してみます…
試してみたところ、どうも既存のルールにつけたしでやる分には不都合が
あるみたいで新しくルールを作り直さなくてはいけなさそうです。
そういう手があったか。
60秒ルールというのがちょっと不安な感じもします(変更可能?)が試してみます…
試してみたところ、どうも既存のルールにつけたしでやる分には不都合が
あるみたいで新しくルールを作り直さなくてはいけなさそうです。
NGNG
FreeBSD 4-STABLEで、
ipnatとports/net/linuxigdでUPnPしようとしているのですが、
upnpdが落ちてしまったり、WinXPが落ちてしまったりで、
不要なリダイレクトのルールが残ってしまうことがあります。
お手軽でうまい方法があればいいのですが、
何か対策をされている方はいらっしゃいませんか?
ipnatとports/net/linuxigdでUPnPしようとしているのですが、
upnpdが落ちてしまったり、WinXPが落ちてしまったりで、
不要なリダイレクトのルールが残ってしまうことがあります。
お手軽でうまい方法があればいいのですが、
何か対策をされている方はいらっしゃいませんか?
56名無しさん@お腹いっぱい。
NGNG S/SAってS/ASって書いちゃ駄目なんですか?
57age
NGNG age
58名無しさん@お腹いっぱい。
NGNG 1 #! /sbin/ipf -Fa -Z -f
1 #pass in quick all
1 #pass out quick all
1 block in log quick from any to any with ipopts
1 block in log quick from any to any with short
1 #
1 # rules on lo0
1 #
1 pass in quick on lo0 all
1 pass out quick on lo0 all
1 #
1 # rules for icmp packets
1 #
1 block in on fxp0 proto icmp all
1 block out on fxp0 proto icmp all
1 pass in on fxp0 proto icmp all
1 pass out on fxp0 proto icmp all
1 #
1 # rules for tcp packets
1 #
1 block in log on fxp0 proto tcp all
1 block out log on fxp0 proto tcp all
1 pass in quick on fxp0 proto tcp all flags A/A
1 #lpr
1 pass in quick on fxp0 proto tcp from any to any port = 515 flags S/SA
1 #pass in quick all
1 #pass out quick all
1 block in log quick from any to any with ipopts
1 block in log quick from any to any with short
1 #
1 # rules on lo0
1 #
1 pass in quick on lo0 all
1 pass out quick on lo0 all
1 #
1 # rules for icmp packets
1 #
1 block in on fxp0 proto icmp all
1 block out on fxp0 proto icmp all
1 pass in on fxp0 proto icmp all
1 pass out on fxp0 proto icmp all
1 #
1 # rules for tcp packets
1 #
1 block in log on fxp0 proto tcp all
1 block out log on fxp0 proto tcp all
1 pass in quick on fxp0 proto tcp all flags A/A
1 #lpr
1 pass in quick on fxp0 proto tcp from any to any port = 515 flags S/SA
59名無しさん@お腹いっぱい。
NGNG 1 #afpd
1 pass in quick on fxp0 proto tcp from any to any port = 548 flags S/SA
1 #windows network
1 pass in quick on fxp0 proto tcp from any to any port 136 >< 140 flags S/SA
1 pass in quick on fxp0 proto tcp from any port 136 >< 140 to any flags S/SA
1 #
1 # rules for udp packets
1 #
1 block in log on fxp0 proto udp all
1 block out log on fxp0 proto udp all
1 #DNS
1 pass in quick on fxp0 proto udp from any port = 53 to any
1 pass out quick on fxp0 proto udp from any to any port = 53
1 #ntp
1 pass in quick on fxp0 proto udp from any port = 123 to any
1 pass out quick on fxp0 proto udp from any to any port = 123
1 #windows network
1 pass in quick on fxp0 proto udp from any to any port 136 >< 140
1 pass in quick on fxp0 proto udp from any port 136 >< 140 to any
1 pass out quick on fxp0 proto udp from any to any port 136 >< 140
1 pass out quick on fxp0 proto udp from any port 136 >< 140 to any
1 pass in quick on fxp0 proto tcp from any to any port = 548 flags S/SA
1 #windows network
1 pass in quick on fxp0 proto tcp from any to any port 136 >< 140 flags S/SA
1 pass in quick on fxp0 proto tcp from any port 136 >< 140 to any flags S/SA
1 #
1 # rules for udp packets
1 #
1 block in log on fxp0 proto udp all
1 block out log on fxp0 proto udp all
1 #DNS
1 pass in quick on fxp0 proto udp from any port = 53 to any
1 pass out quick on fxp0 proto udp from any to any port = 53
1 #ntp
1 pass in quick on fxp0 proto udp from any port = 123 to any
1 pass out quick on fxp0 proto udp from any to any port = 123
1 #windows network
1 pass in quick on fxp0 proto udp from any to any port 136 >< 140
1 pass in quick on fxp0 proto udp from any port 136 >< 140 to any
1 pass out quick on fxp0 proto udp from any to any port 136 >< 140
1 pass out quick on fxp0 proto udp from any port 136 >< 140 to any
60名無しさん@お腹いっぱい。
NGNG たたき台
ざっと書いてみた
誰か間違いを修正してくれるとこのスレ的にネタ提供もできるし
漏れのpcも硬くなって一石二丁
とりあえず自分突っ込みで137-139を開いているのは根本的な誤り
ざっと書いてみた
誰か間違いを修正してくれるとこのスレ的にネタ提供もできるし
漏れのpcも硬くなって一石二丁
とりあえず自分突っ込みで137-139を開いているのは根本的な誤り
61あぼーん
NGNGあぼーん
6260
NGNG >1 block in on fxp0 proto icmp all
>1 block out on fxp0 proto icmp all
>1 pass in on fxp0 proto icmp all
>1 pass out on fxp0 proto icmp all
>
?
行頭の1は無視
>1 block out on fxp0 proto icmp all
>1 pass in on fxp0 proto icmp all
>1 pass out on fxp0 proto icmp all
>
?
行頭の1は無視
63あぼーん
NGNGあぼーん
NGNG
> block in on fxp0 proto icmp all
> block out on fxp0 proto icmp all
> pass in on fxp0 proto icmp all
> pass out on fxp0 proto icmp all
blockが無意味
> block out on fxp0 proto icmp all
> pass in on fxp0 proto icmp all
> pass out on fxp0 proto icmp all
blockが無意味
NGNG
FreeBSD をルータ(ipnat)にして LAN で Winny やろうとしてるんですが
うまくいきません。ご指南お願いします…
ネット側(fxp0)は PPPoE(フレッツ) 、LAN側(fxp1 192.168.0.1)に
Win マシン(192.168.0.2)をつないでます。
ipf.rules は
pass in quick proto tcp from any to 192.168.0.2 port = 7743
pass in quick proto tcp from any to 192.168.0.2 port = 7744
pass in quick all
pass out quick all
ipnat は
map pppoe0 192.168.0.1/24 -> 0/32 proxy port ftp ftp/tcp
map pppoe0 192.168.0.1/24 -> 0/32 portmap tcp/udp 40000:60000
map pppoe0 192.168.0.1/24 -> 0/32
ですが、これでもポート警告が出ちゃう……(;´Д`)
うまくいきません。ご指南お願いします…
ネット側(fxp0)は PPPoE(フレッツ) 、LAN側(fxp1 192.168.0.1)に
Win マシン(192.168.0.2)をつないでます。
ipf.rules は
pass in quick proto tcp from any to 192.168.0.2 port = 7743
pass in quick proto tcp from any to 192.168.0.2 port = 7744
pass in quick all
pass out quick all
ipnat は
map pppoe0 192.168.0.1/24 -> 0/32 proxy port ftp ftp/tcp
map pppoe0 192.168.0.1/24 -> 0/32 portmap tcp/udp 40000:60000
map pppoe0 192.168.0.1/24 -> 0/32
ですが、これでもポート警告が出ちゃう……(;´Д`)
NGNG
nyユーザはフィルターなんぞするな。インターネット直結フルオープンで逝け。
NGNG
なにを思ったか自家LANのgatewayをSolaris8(x86)にしてみた。
とうぜんNATにしたわけだが、NATができるソフトウェアが"SunScreen"と"ipf"しかない。
一見手軽そうにみえたipfを入れてみたがかなりてこずった。
LAN ->外 にftpがとおらない。
ftp-proxyとかいろいろ試してみたが、
主力であるDebianクライアントからapt-getで外につなぐと
なんとSolarisNAT箱がハングアップする。
ipfのバージョンを安定してそうな古いのに落として、
ipf.confは"なにもしなくていいですよ"というのにした。
その上でwwwとftpのみLAN内の鯖マシンにforwardする、という設定を
ipnat.confに書いてようやく安定した。
外へのftpはpassiveでしかできないけど、
どうしても必要な場合は
sshでルータまでトンネルを掘るということで妥協した。
とうぜんNATにしたわけだが、NATができるソフトウェアが"SunScreen"と"ipf"しかない。
一見手軽そうにみえたipfを入れてみたがかなりてこずった。
LAN ->外 にftpがとおらない。
ftp-proxyとかいろいろ試してみたが、
主力であるDebianクライアントからapt-getで外につなぐと
なんとSolarisNAT箱がハングアップする。
ipfのバージョンを安定してそうな古いのに落として、
ipf.confは"なにもしなくていいですよ"というのにした。
その上でwwwとftpのみLAN内の鯖マシンにforwardする、という設定を
ipnat.confに書いてようやく安定した。
外へのftpはpassiveでしかできないけど、
どうしても必要な場合は
sshでルータまでトンネルを掘るということで妥協した。
6867
NGNG # Solaris(x86)ルータの設定
# ipfstat -i
pass in quick on rf0 from any to any
pass in quick on ni0 from any to any
pass in quick on lo0 from any to any
# ipnat -l
map ni0 192.168.0.0/24 -> 0.0.0.0/32 portmap tcp/udp 40000:60000
map ni0 192.168.0.0/24 -> 0.0.0.0/32
rdr ni0 0.0.0.0/0 port 80 -> 192.168.0.253 port 80 tcp //LAN内web鯖用
rdr ni0 0.0.0.0/0 port 20 -> 192.168.0.253 port 20 tcp //以下LAN内ftp鯖用
rdr ni0 0.0.0.0/0 port 21 -> 192.168.0.253 port 21 tcp
rdr ni0 0.0.0.0/0 port 30011 -> 192.168.0.253 port 30011 tcp
rdr ni0 0.0.0.0/0 port 30012 -> 192.168.0.253 port 30012 tcp
rdr ni0 0.0.0.0/0 port 30013 -> 192.168.0.253 port 30013 tcp //LAN内ftp鯖用passive ports (30011-30080)
...
rdr ni0 0.0.0.0/0 port 30080 -> 192.168.0.253 port 30080 tcp
# ndd /dev/tcp tcp_smallest_anon_port tcp_largest_anon_port
32768
65535
# Debianの設定
$ cat /etc/apt/apt.conf
ftp
{
Passive "true";
};
# ipfstat -i
pass in quick on rf0 from any to any
pass in quick on ni0 from any to any
pass in quick on lo0 from any to any
# ipnat -l
map ni0 192.168.0.0/24 -> 0.0.0.0/32 portmap tcp/udp 40000:60000
map ni0 192.168.0.0/24 -> 0.0.0.0/32
rdr ni0 0.0.0.0/0 port 80 -> 192.168.0.253 port 80 tcp //LAN内web鯖用
rdr ni0 0.0.0.0/0 port 20 -> 192.168.0.253 port 20 tcp //以下LAN内ftp鯖用
rdr ni0 0.0.0.0/0 port 21 -> 192.168.0.253 port 21 tcp
rdr ni0 0.0.0.0/0 port 30011 -> 192.168.0.253 port 30011 tcp
rdr ni0 0.0.0.0/0 port 30012 -> 192.168.0.253 port 30012 tcp
rdr ni0 0.0.0.0/0 port 30013 -> 192.168.0.253 port 30013 tcp //LAN内ftp鯖用passive ports (30011-30080)
...
rdr ni0 0.0.0.0/0 port 30080 -> 192.168.0.253 port 30080 tcp
# ndd /dev/tcp tcp_smallest_anon_port tcp_largest_anon_port
32768
65535
# Debianの設定
$ cat /etc/apt/apt.conf
ftp
{
Passive "true";
};
6967
NGNG # ipfのバージョン
$ pkginfo -l ipf
PKGINST: ipf
NAME: IP Filter
CATEGORY: system
ARCH: i386(32-bit)
VERSION: 3.3.22
VENDOR: Darren Reed
DESC: This package contains tools for building a firewall
INSTDATE: Jan 29 2003 13:07
EMAIL: darrenr@pobox.com
STATUS: completely installed
FILES: 75 installed pathnames
11 shared pathnames
1 linked files
21 directories
10 executables
1214 blocks used (approx)
外からLAN内ftp鯖にちゃんとつながるのか、ちょっと不安。
どなたかよかったらテストよろしこ
ftp://lev.ii2.cc/
$ pkginfo -l ipf
PKGINST: ipf
NAME: IP Filter
CATEGORY: system
ARCH: i386(32-bit)
VERSION: 3.3.22
VENDOR: Darren Reed
DESC: This package contains tools for building a firewall
INSTDATE: Jan 29 2003 13:07
EMAIL: darrenr@pobox.com
STATUS: completely installed
FILES: 75 installed pathnames
11 shared pathnames
1 linked files
21 directories
10 executables
1214 blocks used (approx)
外からLAN内ftp鯖にちゃんとつながるのか、ちょっと不安。
どなたかよかったらテストよろしこ
ftp://lev.ii2.cc/
70名無しさん@お腹いっぱい。
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 互換?
レスを投稿する
ニュース
- 【フジ】中居正広氏の代理人弁護士が第三者委員会報告に反論「性暴力の実態は確認できず」★9 [Ailuropoda melanoleuca★]
- 石破首相が「無策」批判に激怒 消費税減税めぐり指摘した野党議員に「あなた」呼ばわりで反論 [首都圏の虎★]
- 【田中圭との不倫報道】《憔悴の近影》永野芽郁、頬がこけ、目元を腫らして…移動時には“厳戒態勢”「事務所車までダッシュ」★3 [Ailuropoda melanoleuca★]
- 【芸能】スマイリーキクチ 永野芽郁への批判に警鐘 「清純派だと勝手に訳のわからない派閥に入れて」「イメージと違うと憤慨」 [冬月記者★]
- 中居正広氏 守秘義務解除を提案していた! 約6時間のヒアリングにも誠実に対応 ★2 [ひかり★]
- 政党支持率 自民26.4% 立民7.6% 国民7.2% 支持なし38.2% NHK世論調査 [少考さん★]
- ▶天音かなたとちゅーしたいよな
- 【悲報】27歳の妊婦をぶん殴った普通の日本人男性(42)を逮捕 [834922174]
- ミックスナッツに、1つ要らないの入ってるやろ?🥜 [629030525]
- 日産、日本から撤退へ [709039863]
- 【悲報】公務員の名札、本名とは別に「ビジネスネーム」OK カスハラ対策 [966044473]
- 長谷川亮太 ちばけんま 唐澤貴洋 無能弁護士