亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
12下一頁
最近訪問板塊 發(fā)新帖
查看: 7940 | 回復: 19
打印 上一主題 下一主題

[網(wǎng)絡(luò)管理] iptables 中mark的問題 [復制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2008-06-30 16:38 |只看該作者 |倒序瀏覽
我用string match模塊過濾數(shù)據(jù)的內(nèi)容,把找到的數(shù)據(jù)包--set-mark
比如:
iptables -t mangle -A PREROUTING -p tcp -m string --string "qq.com" --algo bm -j MARK --set-mark 1

怎么樣才能把整個連接的所有packet mark 都設(shè)成1

論壇徽章:
5
IT運維版塊每日發(fā)帖之星
日期:2015-08-06 06:20:00IT運維版塊每日發(fā)帖之星
日期:2015-08-10 06:20:00IT運維版塊每日發(fā)帖之星
日期:2015-08-23 06:20:00IT運維版塊每日發(fā)帖之星
日期:2015-08-24 06:20:00IT運維版塊每日發(fā)帖之星
日期:2015-11-12 06:20:00
2 [報告]
發(fā)表于 2008-07-01 16:51 |只看該作者
不能,因為你的匹配規(guī)則不能匹配流的所有包。
但是用五元組的匹配的可以。

論壇徽章:
0
3 [報告]
發(fā)表于 2008-07-01 22:27 |只看該作者
這樣不行阿?
我想實現(xiàn)的是用string match判斷connection中的字符串,然后通過nat表redirect或者dnat到另外的地址上。但是nat表又只檢查一個連接的第一個packet。
請教一下有沒有別的解決方法阿?

論壇徽章:
0
4 [報告]
發(fā)表于 2008-07-02 07:10 |只看該作者
用 CONNMARK 去把連接做個標記
然后利用 CONNMARK 里面的 restore 參數(shù)將連接的標記還原到該連接的每個數(shù)據(jù)包中
具體查看 CONNMARK 的文檔,也可以參考 ipp2p 的官方網(wǎng)站的文檔,ipp2p 就利用了這個原理

論壇徽章:
0
5 [報告]
發(fā)表于 2008-07-02 18:37 |只看該作者
我按照這個樓上的去寫了,結(jié)果nat表還是收不到阿,看看我的對不對

# Generated by iptables-save v1.3.8 on Wed Jul  2 18:28:33 2008
*raw
REROUTING ACCEPT [1444642:1095421177]
:OUTPUT ACCEPT [122363:62963106]
COMMIT
# Completed on Wed Jul  2 18:28:33 2008
# Generated by iptables-save v1.3.8 on Wed Jul  2 18:28:33 2008
*nat
REROUTING ACCEPT [91066:7446470]
OSTROUTING ACCEPT [93652:7634382]
:OUTPUT ACCEPT [3907:276342]
-A PREROUTING -p tcp -m mark --mark 0x5 -j REDIRECT --to-ports 3128
COMMIT
# Completed on Wed Jul  2 18:28:33 2008
# Generated by iptables-save v1.3.8 on Wed Jul  2 18:28:33 2008
*mangle
REROUTING ACCEPT [1444226:1095245188]
:INPUT ACCEPT [155701:60650041]
:FORWARD ACCEPT [1326023:1039108651]
:OUTPUT ACCEPT [122367:62964002]
OSTROUTING ACCEPT [1448390:1102072653]
-A PREROUTING -p tcp -m string --string "qq.com" --algo bm --to 65535 -j CONNMARK --set-mark 0x5
-A PREROUTING -p tcp -j CONNMARK --restore-mark
COMMIT
# Completed on Wed Jul  2 18:28:33 2008
# Generated by iptables-save v1.3.8 on Wed Jul  2 18:28:33 2008
*filter
:INPUT ACCEPT [155482:60580943]
:FORWARD ACCEPT [1326023:1039108651]
:OUTPUT ACCEPT [122368:62964598]
COMMIT
# Completed on Wed Jul  2 18:28:33 2008

論壇徽章:
0
6 [報告]
發(fā)表于 2008-07-03 15:49 |只看該作者
貼 iptables-save -c
我需要知道數(shù)據(jù)包的匹配數(shù)量
另外,即使你這么做了也會出問題,這是后話,稍后再講

論壇徽章:
0
7 [報告]
發(fā)表于 2008-07-03 17:23 |只看該作者
# Generated by iptables-save v1.3.8 on Thu Jul  3 17:15:07 2008
*raw
REROUTING ACCEPT [2032031:1257459643]
:OUTPUT ACCEPT [325754:159521872]
COMMIT
# Completed on Thu Jul  3 17:15:07 2008
# Generated by iptables-save v1.3.8 on Thu Jul  3 17:15:07 2008
*nat
REROUTING ACCEPT [239238:19082230]
OSTROUTING ACCEPT [246183:19624829]
:OUTPUT ACCEPT [11644:821773]
[0:0] -A PREROUTING -p tcp -m mark --mark 0x5 -j REDIRECT --to-ports 3128
COMMIT
# Completed on Thu Jul  3 17:15:07 2008
# Generated by iptables-save v1.3.8 on Thu Jul  3 17:15:07 2008
*mangle
REROUTING ACCEPT [2031625:1257284174]
:INPUT ACCEPT [388392:150778056]
:FORWARD ACCEPT [1729874:1116104300]
:OUTPUT ACCEPT [325768:159523688]
OSTROUTING ACCEPT [2055642:1275627988]
[240:182268] -A PREROUTING -p tcp -m string --string "qq.com" --algo bm --to 65535 -j CONNMARK --set-mark 0x5
[2615:641996] -A PREROUTING -p tcp -j CONNMARK --restore-mark
COMMIT
# Completed on Thu Jul  3 17:15:07 2008
# Generated by iptables-save v1.3.8 on Thu Jul  3 17:15:07 2008
*filter
:INPUT ACCEPT [388183:150709478]
:FORWARD ACCEPT [1729875:1116104352]
:OUTPUT ACCEPT [325779:159525220]
COMMIT
# Completed on Thu Jul  3 17:15:07 2008

我上過qq.com這個網(wǎng)站。

這個東西不能很好的實現(xiàn)嗎?

論壇徽章:
0
8 [報告]
發(fā)表于 2008-07-03 17:37 |只看該作者
你應(yīng)該用 -j CONNMARK --set-mark 0x5 來設(shè)置
匹配的時候用 -m connmark --mark 0x5 來重定向
但是,匹配的內(nèi)容并非連接的全部,同理,重定向的內(nèi)容也不是連接的全部
因此,即使重定向了,這個重定向過去的數(shù)據(jù)也會被對端認為是非法的

論壇徽章:
0
9 [報告]
發(fā)表于 2008-07-03 18:44 |只看該作者
還是匹配不到阿。

我就是想要把整個連接所有的包都mark上,因為nat表只檢查連接的第一個包,同連接后面的包都做相同的處理了,我想也是用connmark匹配不到的原因把。
不知道還有沒有其他的辦法,我都試過好幾種匹配了。
我現(xiàn)在還是沒有理解到--save-mark和--restore-mark 的意義,是把整個連接所有包的mark拷貝,還是只拷貝匹配到的那個包。

論壇徽章:
0
10 [報告]
發(fā)表于 2008-07-03 22:38 |只看該作者

  1. 50         ct = nf_ct_get(*pskb, &ctinfo);
  2. 51         if (ct) {
  3. 52                 switch(markinfo->mode) {
  4. 53                 case XT_CONNMARK_SET:
  5. 54                         newmark = (ct->mark & ~markinfo->mask) | markinfo->mark;
  6. 55                         if (newmark != ct->mark) {
  7. 56                                 ct->mark = newmark;
  8. 57                                 nf_conntrack_event_cache(IPCT_MARK, *pskb);
  9. 58                         }
  10. 59                         break;
  11. 60                 case XT_CONNMARK_SAVE:
  12. 61                         newmark = (ct->mark & ~markinfo->mask) |
  13. 62                                   ((*pskb)->mark & markinfo->mask);
  14. 63                         if (ct->mark != newmark) {
  15. 64                                 ct->mark = newmark;
  16. 65                                 nf_conntrack_event_cache(IPCT_MARK, *pskb);
  17. 66                         }
  18. 67                         break;
  19. 68                 case XT_CONNMARK_RESTORE:
  20. 69                         mark = (*pskb)->mark;
  21. 70                         diff = (ct->mark ^ mark) & markinfo->mask;
  22. 71                         (*pskb)->mark = mark ^ diff;
  23. 72                         break;
  24. 73                 }
  25. 74         }
  26. 75
  27. 76         return XT_CONTINUE;
復制代碼

從代碼看,restore 是把連接的標記寫到包的標記里面,save 則正相反
另外你沒看懂我上面講的,即使你匹配到了,轉(zhuǎn)向了,但你轉(zhuǎn)向過去的東西也不能被認可
nat 表只處理連接最開始的包,而你匹配到的絕對不是連接最開始,所以你永遠匹配不到,這是其一
其二,前面說過了,TCP 連接是有三次握手的,即使 nat 是處理所有包,但你只把從匹配到開始以后的包轉(zhuǎn)換過去,連接也不會被認可,因為 TCP 沒有建立

[ 本帖最后由 platinum 于 2008-7-3 22:49 編輯 ]
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP