作者 主題: [ 安全 ] iptables如何擋住port scan的呢  (閱讀 16549 次)

0 會員 與 1 訪客 正在閱讀本文。

...

  • 酷學園旁聽生
  • 俺是博士!
  • *****
  • 文章數: 5607
    • 檢視個人資料
請教各方高手,
日前在網路上看到某文章說明如何用iptables擋住port scan,
指令都類似如下:

1.iptables -A INPUT -i ppp0 -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP
2.iptables -A INPUT -i ppp0 -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP

等等,
請問那1.TCP-flag為什麼前後分成兩部份,然後中間空一格(如1中的ALL FIN,URG,PSH)呢?
2.為什麼上述第一個例子前面是ALL 後面是 FIN,URG,PSH
而第二個例子前面和後面卻一樣都是SYN,FIN呢

Anonymous

  • 訪客
[ 安全 ] iptables如何擋住port scan的呢
« 回覆 #1 於: 2001-12-21 16:19 »

請參考﹕ http://www.study-area.org/tips/packet-filter-howto/packet-filtering-HOWTO-chn-7.html#ss7.3

裡面有一段這麼說的﹕

TCP 延伸
如果指定了 `-p tcp' ﹐TCP 之延伸會自動載入的。它提供如下選項(並不符合 fragments)。
--tcp-flags
後接一個 `!' 選項﹐則有兩個旗標的字串讓您能夠對指定的 TCP 旗標進行過濾。 第一個字串是遮罩(mask)﹕一個您欲檢查的旗標列表。第二個字串是要說哪些東西要設定。例如﹕


# iptables -A INPUT --protocol tcp --tcp-flags ALL SYN,ACK -j DENY

這表示所有旗標都要檢查 (`ALL' 就是泛指 `SYN,ACK,FIN,RST,URG,PSH')﹐但只有 SNY 和 ACK 被設定而已。另外有一個參數 `NONE' 則是沒旗標的意思。

...

  • 酷學園旁聽生
  • 俺是博士!
  • *****
  • 文章數: 5607
    • 檢視個人資料
[ 安全 ] iptables如何擋住port scan的呢
« 回覆 #2 於: 2001-12-21 19:39 »
我比較不懂的是這些地方
1."後接一個 `!' 選項﹐則有兩個旗標的字串讓您能夠對指定的 TCP 旗標進行過濾".......以這句話來講上述幾個例子,好像沒有一個例子有"後接一個  !   選項"的啊(包括您舉的那個例子)

2.請問
  iptables -A INPUT -i ppp0 -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP



iptables -A INPUT -i ppp0 -p tcp --tcp-flags ALL SYN,FIN -j DROP

的意義差別在那呢?
 
本人資質駑鈍,雖己讀遍了中文的那篇nat how to文章還是搞不太懂

...

  • 酷學園旁聽生
  • 俺是博士!
  • *****
  • 文章數: 5607
    • 檢視個人資料
[ 安全 ] iptables如何擋住port scan的呢
« 回覆 #3 於: 2001-12-21 20:20 »
netman大哥
不知我想法有沒有錯誤



ALL SYN,FIN
意思是
SYN必得=1且
FIN也必得=1
其它剩下的,如ACK,RST,PSH,URG也都必得是0
才符合我們要求的條件

SYN,FIN SYN,FIN
意思是
SYN必得=1且
FIN也必得=1
但剩下的ACK,RST,PSH,URG就不管它們是0或1 了,
就可以符合我們要求的條件

Anonymous

  • 訪客
[ 安全 ] iptables如何擋住port scan的呢
« 回覆 #4 於: 2001-12-22 13:11 »
理解正確。

但要知道﹕我只是文章的翻譯者﹐原文怎麼說﹐我就怎麼翻譯。我覺得﹐您最好是看原文的 HOWTO﹐因為我不保證我是否能正確的翻譯出作者的意思。而且﹐如果原文有新的版本出現﹐那將有更多資訊可以參考。

您問的那句﹐原文是﹕
--tcp-flags
Followed by an optional `!', then two strings of flags, allows you to filter on specific TCP flags. The first string of flags is the mask: a list of flags you want to examine. The second string of flags tells which one(s) should be set.

...

  • 酷學園旁聽生
  • 俺是博士!
  • *****
  • 文章數: 5607
    • 檢視個人資料
[ 安全 ] iptables如何擋住port scan的呢
« 回覆 #5 於: 2001-12-22 18:33 »
netman大哥您好

我看了一下how to那篇原文,內容的確是這樣:

--tcp-flags
Followed by an optional `!', then two strings of flags, allows you to filter on specific TCP flags. The first string of flags is the mask: a list of flags you want to examine. The second string of flags tells which one(s) should be set. For example,


# iptables -A INPUT --protocol tcp --tcp-flags ALL SYN,ACK -j DROP

This indicates that all flags should be examined (`ALL' is synonymous with `SYN,ACK,FIN,RST,URG,PSH'), but only SYN and ACK should be set. There is also an argument `NONE' meaning no flags.


--syn
Optionally preceded by a `!', this is shorthand for `--tcp-flags SYN,RST,ACK SYN'.


後來我去翻了一下字典,optional的意思是"可有可無的"或"隨意的"意思,所以我覺得,第一句的意思,是否應該是這樣:

--tcp-flags
     "--tcp-flags"之後先接著一個可有可無的 "!"(此驚嘆號代表"not",我覺得optional是說可接著也可不接著一個"!"),然後(我覺得"then"在這裡應該是這個意思)再接著兩個旗標字串(這裡在 two strings of flags前面沒有optional這個字,意思是強制性的非有這兩個旗標字串不可).    這個--tcp-flags的延伸
能讓你過濾特定的TCP旗標.

      我覺得這一句,若以分詞構句來講,allow的主詞應該是
 "--tcp-flags",而不是"two strings of flags"
     請netman大哥看一下這個例子

  Followed by some coffee,then some soft drinks,I ate a lot of food.

       不知道小弟看法是否有錯誤,還望各位大大能指正一二

Anonymous

  • 訪客
[ 安全 ] iptables如何擋住port scan的呢
« 回覆 #6 於: 2001-12-22 20:28 »
嗯﹐正確~~ 看來我最好修改一下了~~ 謝謝﹗

所以說嘛﹐有機會的話﹐儘量看原文。
文章雖然是我自己翻譯的﹐但說實在﹐我自己卻不怎麼看﹐我還是比較喜歡看原文的~~

spen

  • 懷疑的國中生
  • **
  • 文章數: 44
    • 檢視個人資料
[ 安全 ] iptables如何擋住port scan的呢
« 回覆 #7 於: 2002-05-10 07:53 »
感謝兩位的討論 到此 我們已經知道
1.iptables -A INPUT -i ppp0 -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP
2.iptables -A INPUT -i ppp0 -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
 的意義

可以請版主 或哪位高手解釋一下
為何上面的設定 是用來檔 port scan 而不會檔到一般正常的連線 ?
可以的話 可以說明一下 port scan 他的連線方式嗎 ?