PFの設定の仕方について質問です。80番ポートを空けてなおかつOSの種類をわからなくする設定というのは、PFだけでできるものなのでしょうか?


[サーバ]
OS:OpenBSD3.8
ネットワークインタフェース:bge0(190.x.x.3)の1枚
[クライアント]
OS:WinXP(190.x.x.2)
[ルータ]
190.x.x.1
ルータにOpenBSDとXPをLANで接続

##PFの設定##
scrub in all
block in all
block out all
pass quick on lo0 all
antispoof for bge0 inet

block drop in quick inet proto udp from any to any port 514
block drop in quick inet proto udp from any to any port 4500

pass in quick on bge0 proto tcp from any to 190.x.x.3 port 80 keep state
#########
この状態で、
XPからnmapでnmap 190.x.x.3とすると
PORT STATE SERVICE
80/tcp open http
となります。

次にnmap -O 190.x.x.3とすると、
PORT STATE SERVICE
80/tcp open http
Running: OpenBSD 3.X
OS details: OpenBSD 3.5 or 3.6, OpenBSD 3.6, OpenBSD 3.7と表示されてしまいます

http://hacks.oreilly.com/pub/h/1347
などを見て同じように書いてみたんですが、
nmap -O してみると、上の状態と同じ表示がでます。
パケットのウインドウサイズがOpenBSDは他のOSとことなっている?ので~とかかいていたような。
80番ポートを空けている時点でOSの種類をわからなくすることって無理なのでしょうか?

回答の条件
  • 1人20回まで
  • 登録:2006/05/04 11:21:47
  • 終了:2006/05/09 12:51:46

ベストアンサー

id:ttamo No.2

たも回答回数175ベストアンサー獲得回数292006/05/08 09:31:19

ポイント100pt

あれー、そうですか。間違ったことを言ってごめんなさい。

nmap には nmap-os-fingerprints というファイルがあって、

冒頭には

# TEST DESCRIPTION:
# Tseq is the TCP sequenceability test
# T1 is a SYN packet with a bunch of TCP options to open port
# T2 is a NULL packet w/options to open port
# T3 is a SYN|FIN|URG|PSH packet w/options to open port
# T4 is an ACK to open port w/options
# T5 is a SYN to closed port w/options
# T6 is an ACK to closed port w/options
# T7 is a FIN|PSH|URG to a closed port w/options
# PU is a UDP packet to a closed port

と書いてありますから、おもにフラグで調べているようです。でも TCP シーケンスの働きとかまで見るので、新しい nmap ではフラグだけじゃダメなのかもしれませんね。

で、

Fingerprint OpenBSD 3.5 - 3.7
Class OpenBSD | OpenBSD | 3.X | general purpose
TSeq(Class=TR%gcd=<6%IPID=RD%TS=2HZ)
T1(DF=Y%W=4000%ACK=S++%Flags=AS%Ops=MNWNNT)
T2(Resp=Y%DF=Y%W=0%ACK=S%Flags=AR%Ops=)
T3(Resp=Y%DF=Y%W=4000%ACK=S++%Flags=AS%Ops=MNWNNT)
T4(DF=Y%W=0%ACK=O%Flags=R%Ops=)
T5(DF=Y%W=0%ACK=S++%Flags=AR%Ops=)
T6(DF=Y%W=0%ACK=O%Flags=R%Ops=)
T7(DF=Y%W=0%ACK=S%Flags=AR%Ops=)
PU(DF=N%TOS=0%IPLEN=38%RIPTL=148%RID=E%RIPCK=E%UCK=E%ULEN=134%DAT=E)

という部分が該当しますので、ここらへんを見ながら PF で何とかすることもできそうですが、面倒になるので正直おすすめしません。こういうセキュリティの基幹部分において「面倒」というのは非常に危険ですから。

御存じと思いますが、OS タイプを隠すというのは、(security from obscurity って言うんですか)、「windows はソースが非公開だからセキュアだ」と言っているようなもので、真のセキュリティではないわけです。PF であまり細かく OS を隠そうとしている人は多くないと思います。それよりは pf.conf をシンプルに堅牢にしておくことを優先したほうが良さそうですから。

http://archives.neohapsis.com/archives/openbsd/2005-04/1335.html

でも簡単に

block in from any os NMAP to any

みたいなこともできるので、この程度のことは結構みんなやっているかもしれません。

お役に立てなくて、申しわけありませんでした。

id:bsdusr

いろいろご指摘していただいてありがとうございます。

せっかくいろいろ教えていただきましたが、ちんぷんかんぷんです。

で、

>OS タイプを隠すというのは、(security from obscurity って言うんですか)、「windows はソースが非公開だからセキュアだ」と言っているようなもので、真のセキュリティではないわけです。PF であまり細かく OS を隠そうとしている人は多くないと思います。それよりは pf.conf をシンプルに堅牢にしておくことを優先したほうが良さそうですから。

という助言どうりにしたほうが、よさそうということで、システムやサービス、アプリのパッチをきっちり当てたりするほうが重要であると再認識いたしました。

パッチの当て方すらあやふやで、しっかり更新できたのか検証する手段さえわからないレベルです。このへんは、また、再質問させていただくとして、いろいろ参考になりました。ありがとうございました。

>お役に立てなくて、申しわけありませんでした。

本当に役に立っていないのは、質問者である私の頭であることはしっかり理解できました!

2006/05/08 17:30:20

その他の回答(1件)

id:ttamo No.1

たも回答回数175ベストアンサー獲得回数292006/05/07 22:46:14

ポイント100pt

quick を使ってあるので、

pass in quick on bge0 proto tcp from any to 190.x.x.3 port 80 keep state

前にそのオライリーのサイト情報みたいな

block return in quick proto tcp flags FUP/WEUAPRSF
block return in quick proto tcp flags WEUAPRSF/WEUAPRSF
block return in quick proto tcp flags SRAFU/WEUAPRSF
block return in quick proto tcp flags /WEUAPRSF
block return in quick proto tcp flags SR/SR
block return in quick proto tcp flags SF/SF

を書けば nmap の目を逃れることができそうです。

id:bsdusr

ご指摘のとおりに、

pass in quick on bge0 proto tcp from any ~

の前に、

block return in quick proto tcp~

を入れてみました。

ですが、

pfctl -f /etc/pf.conf

pfctl -d

pfctl -e

して、

nmap -Oすると

やはり、

Running:OpenBSD3.X

OS details: OpenBSD 3.5 or 3.6 or 3.7

というような表示がでます。

はたして、制御フラグだけで防ぎきれるものなのでしょうか?

ブロックができていれば、(しっかりブロックできている自信がありませんが)あまり気にする必要はないというか、してもしかたないのでしょうか??実際サーバを運営されてるみなさんは、どうされているんでしょう??

ちなみにこちらのNmapのバージョンは

Windows 用のNmap4.01です。

バージョンによっても結果が当然変わってくるんでしょうか?

2006/05/08 03:56:59
id:ttamo No.2

たも回答回数175ベストアンサー獲得回数292006/05/08 09:31:19ここでベストアンサー

ポイント100pt

あれー、そうですか。間違ったことを言ってごめんなさい。

nmap には nmap-os-fingerprints というファイルがあって、

冒頭には

# TEST DESCRIPTION:
# Tseq is the TCP sequenceability test
# T1 is a SYN packet with a bunch of TCP options to open port
# T2 is a NULL packet w/options to open port
# T3 is a SYN|FIN|URG|PSH packet w/options to open port
# T4 is an ACK to open port w/options
# T5 is a SYN to closed port w/options
# T6 is an ACK to closed port w/options
# T7 is a FIN|PSH|URG to a closed port w/options
# PU is a UDP packet to a closed port

と書いてありますから、おもにフラグで調べているようです。でも TCP シーケンスの働きとかまで見るので、新しい nmap ではフラグだけじゃダメなのかもしれませんね。

で、

Fingerprint OpenBSD 3.5 - 3.7
Class OpenBSD | OpenBSD | 3.X | general purpose
TSeq(Class=TR%gcd=<6%IPID=RD%TS=2HZ)
T1(DF=Y%W=4000%ACK=S++%Flags=AS%Ops=MNWNNT)
T2(Resp=Y%DF=Y%W=0%ACK=S%Flags=AR%Ops=)
T3(Resp=Y%DF=Y%W=4000%ACK=S++%Flags=AS%Ops=MNWNNT)
T4(DF=Y%W=0%ACK=O%Flags=R%Ops=)
T5(DF=Y%W=0%ACK=S++%Flags=AR%Ops=)
T6(DF=Y%W=0%ACK=O%Flags=R%Ops=)
T7(DF=Y%W=0%ACK=S%Flags=AR%Ops=)
PU(DF=N%TOS=0%IPLEN=38%RIPTL=148%RID=E%RIPCK=E%UCK=E%ULEN=134%DAT=E)

という部分が該当しますので、ここらへんを見ながら PF で何とかすることもできそうですが、面倒になるので正直おすすめしません。こういうセキュリティの基幹部分において「面倒」というのは非常に危険ですから。

御存じと思いますが、OS タイプを隠すというのは、(security from obscurity って言うんですか)、「windows はソースが非公開だからセキュアだ」と言っているようなもので、真のセキュリティではないわけです。PF であまり細かく OS を隠そうとしている人は多くないと思います。それよりは pf.conf をシンプルに堅牢にしておくことを優先したほうが良さそうですから。

http://archives.neohapsis.com/archives/openbsd/2005-04/1335.html

でも簡単に

block in from any os NMAP to any

みたいなこともできるので、この程度のことは結構みんなやっているかもしれません。

お役に立てなくて、申しわけありませんでした。

id:bsdusr

いろいろご指摘していただいてありがとうございます。

せっかくいろいろ教えていただきましたが、ちんぷんかんぷんです。

で、

>OS タイプを隠すというのは、(security from obscurity って言うんですか)、「windows はソースが非公開だからセキュアだ」と言っているようなもので、真のセキュリティではないわけです。PF であまり細かく OS を隠そうとしている人は多くないと思います。それよりは pf.conf をシンプルに堅牢にしておくことを優先したほうが良さそうですから。

という助言どうりにしたほうが、よさそうということで、システムやサービス、アプリのパッチをきっちり当てたりするほうが重要であると再認識いたしました。

パッチの当て方すらあやふやで、しっかり更新できたのか検証する手段さえわからないレベルです。このへんは、また、再質問させていただくとして、いろいろ参考になりました。ありがとうございました。

>お役に立てなくて、申しわけありませんでした。

本当に役に立っていないのは、質問者である私の頭であることはしっかり理解できました!

2006/05/08 17:30:20

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません