高手请指点:用iptables做SNAT,如何把NAT日志取下来?
时间:2009-06-03
来源:互联网
目前为止,我的NAT已经可以起来了,但是取日志总是达不到要求。
我写的配置很简单:
iptables -A FORWARD -j LOG --log-level debug
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j SNAT --to IP段
这两指令只能把SNAT之前的源目IP取下来,SNAT后的信息取不到了。
请教:
1,能不能用其它脚本,可以实现把SNAT的过程下来,例如:内网IP1----->公网IP1
2,或者用其它脚本把SNAT后的新地址信息取下来。
作者: raulkang 发布时间: 2009-06-03
既然你都固定用 -j SNAT --to IP 語法,那 private 出去一定轉成該 IP 對 internet 上。若是這樣的話,您需要所謂過程的需求意義是...?
若你只是要所謂這台機器所有外連的 LOG,請改用 POSTROUTING 內來 -j LOG 的方式,你認為如何呢
作者: kenduest 发布时间: 2009-06-03
朋友,如果按照你的想法“請改用 POSTROUTING 內來 -j LOG 的方式”
应该是这样做吧:
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j LOG --log-level debug
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j SNAT --to IP段
但是这样做的话,也只能取到SNAT前的源地址信息,SNAT后的新源地址取不下来了。
作者: raulkang 发布时间: 2009-06-03
- Jun 4 15:48:30 linux_nat kernel: IN=eth1 OUT=eth0 SRC=192.168.2.199 DST=61.219.13.131 LEN=48 TOS=0x00 PREC=0x00 TTL=127 ID=15126 DF PROTO=TCP SPT=1650 DPT=80 WINDOW=8192 RES=0x00 SYN URGP=0
LOG 就已經紀錄資訊了
包含來源 private ip 與連結 destination ip,也包含 port 資訊與你要的時間了
至於透過那個真實 ip 出去的
您的機器對外 ip 不就那個固定的嗎
所以為何還要紀錄呢?
iptables 不提供您所謂的 LOG 這樣轉換資訊
所以你需要請自行客自化~
作者: kenduest 发布时间: 2009-06-04
举例说,假如新浪网站,向我们公司举报某时间,某IP(SNAT后的IP)在新浪网站上发表了非法信息,然后要求我公司查找出是那一台电脑所为。那我们就查不到了。因为我们确定不了此IP属于哪一台电脑。
所以,我们公司要求日志尽量可以记录到 SNAT前 和 SNAT后 的源IP地址信息。
作者: raulkang 发布时间: 2009-06-04
舉例說,假如新浪網站,向我們公司舉報某時間,某IP(SNAT後的IP)在新浪網站上發表了非法信息,然後要求我公司查找出是那一台電腦所為。那我們就查不到了。因為我們確定不了此IP屬於哪一台電腦。
所以,我們公司要求日誌儘量可以記錄到 SNAT前 和 SNAT後 的源IP地址信息
那為何這個會是問題呢?
既然知道時間,也知道對方去看那個網站,那就知道時間與目的 ip 資訊。既然如此的話,那個 log 不就可以看出是誰連結的嗎?您的疑問另我費解。
再者 web 的部份,你是否應該盡量使用 proxy 的方式,比方 transparent proxy 架構,明確的 proxy 的 log 內都有完整 HTTP request url 的資訊。
作者: kenduest 发布时间: 2009-06-04
不过,法律责任这东西要讲求证据的。假设有两个不同的用户在同一时间访问新浪网,当新浪网提供的信息是“源IP、目的IP和时间”,然后叫我们从日志中查看此人是谁?你可以知道新浪提供的源IP是由哪个用户转换过来的吗?
所以,我们才想要把SNAT的转换过程都取下来,像路由器NAT的debug信息那样就最好了。
NAT: s=192.168.0.100->192.168.1.2, d=192.168.1.11[1]
NAT*: s=192.168.1.11, d=192.168.1.2->192.168.0.100[1]
NAT: s=192.168.0.100->192.168.1.2, d=192.168.1.11[1]
NAT*: s=192.168.1.11, d=192.168.1.2->192.168.0.100[1]
作者: raulkang 发布时间: 2009-06-04
那個轉換過程沒有意義的....... 那種轉換過程你幫助啥呢?令人好奇。你有兩個內部 private ip 都同時瀏覽該網站,您的 debug 資訊可以查到... 怎樣的資訊?
那您的 debug 資訊又可以幫上啥忙呢?一點忙都幫不上。你只能夠知道哪兩個 ip 連線而已,你的 debug 資訊又看不出來是誰。
所以這個過程資訊似乎沒有實質意義的... 要明確的 web 存取資訊,請多利用 transparent proxy 的 proxy 瀏覽 url 紀錄比較實在。
而要實質確認是那個人?抱歉這個根本做不到,因為瀏覽網頁沒有所謂身份稽核機制 (你的內部網路可以確認你身份,與瀏覽目的網站時候還傳遞這次瀏覽是那個身份帳號),現有 internet 都是如此。實際法律問題,基本上初期就是確認實質的來源而已,而你用 nat 的方式,內部也只是簡單確認 ip 來源位置是誰使用而已,簡單縮小確認範圍。
拉回來若你的所謂 router debug 資訊可以讓你 "知道實際是哪個人",那你就用該設備當 nat router 吧,這樣不是更是省事嗎?只是真的這樣就可以嗎... 這是令人懷疑的。
作者: kenduest 发布时间: 2009-06-04
其次,我们公司做互联网出口的,政府要求我们提供这类的日志信息,我们必须提供,否则没得捞。这点,你应该可以明白。
然后,当然,用路由器来做NAT服务器一下子就可以取到NAT的日志了。但是每个公司的具体情况不同,我们公司目前选择了用linux系统来做NAT服务器,所以只能向这个方向努力。当然,我也希望公司采购一台像cisco12416的路由器回来,我写个简单的配置就可以完成所有功能了,但成本可能要上百万了。这点,我想你也可以理解。
最后,我不能确定这个方向最终能不能实现,但是要尝试过才知道,才好跟公司反映。同时也很感谢朋友你一直以来对我的帮助。
作者: raulkang 发布时间: 2009-06-04
基本上不要把 cisco router 想成多高級
因為您實際需求不是這種單純 router 可以解決的議題
若實際上有這樣單純
那許多追查的事情就變得很簡單...
實際上並沒有,不是嗎?
還有我一直對於您在 nat 的認知打一個問號
不管任何設備只是提供於 nat 提供當 ip 偽裝而已
所以您的實際需求問題與 nat 怎樣紀錄沒有關係
當然也許我可能真的搞不清楚情況?
請其他朋友幫忙說說吧
作者: kenduest 发布时间: 2009-06-04
作者: ippen 发布时间: 2009-06-08
iptables -t nat -A PREROUTING -i eth0 -j LOG --log-level debug --log-prefix "back SNAT:"
//在返回的包中记录日志,勉强可以记录到一些SNAT后的信息。
Jun 5 11:35:59 localhost kernel: back SNAT:IN=eth0 OUT= MAC=00:15:17:4b:7f:48:00:09:7c:a3:8f:59:08:00 SRC=122.148.186.126 DST=119.45.X.X LEN=131 TOS=0x10 PREC=0x80 TTL=41 ID=64976 PROTO=UDP SPT=50000 DPT=1024 LEN=111
//DST=119.45.X.X ,为SNAT转换后的地址
作者: raulkang 发布时间: 2009-06-08
呵呵,我用了另外一种方法:
iptables -t nat -A PREROUTING -i eth0 -j LOG --log-level debug --log-prefix "back SNAT:"
//在返回的包中记录日志,勉强可以记录到一些SNAT后的信息。
Jun 5 11:3 ...
进出都要log,而且还要两边核对数据,挺繁琐的
作者: ippen 发布时间: 2009-06-08
朋友,你说的“要修改内核的代码”这个操作复杂吗?
内核方面的东西,我没搞过。请说一下大概的思路好吗?
作者: raulkang 发布时间: 2009-06-08
你说得很对,我也在考虑这个问题。一进一出,日志量增倍了。这个方法不是长久之计。
請用 -j ULOG,然後裝個 ulog daemon,可以指定把 log 儲存到 mysql db 這類環境。
作者: kenduest 发布时间: 2009-06-10
给大家看看我服务器上输出的log
协议 状态 开始时间 结束时间 源IP 源端口 目的IP 目的端口 NAT后IP NAT后端口
TCP CLOSE 1244728954 1244728954 220.xxx.xxx.153 57220 222.92.86.90 16818 xxx.91.xxx.38 57220
作者: ippen 发布时间: 2009-06-11
你的log格式是iptables输出的吗?需要修改内核吗?我也正想需要这样的东西
作者: gunjack 发布时间: 2009-07-13
作者: 一路狂笑 发布时间: 2009-07-13
我感覺與你溝通有代溝,您思考模式我不大能夠理解。
那個轉換過程沒有意義的....... 那種轉換過程你幫助啥呢?令人好奇。你有兩個內部 private ip 都同時瀏覽該網站,您的 debug 資訊可以查到... 怎樣的資訊 ...
kenduest
透明代理确实可以明确的知道用户访问的URL地址,但是我估计他的用户量肯定很大,用透明代理可能支撑不下来,另外如果用一个IP来做nat,确实LOG不需要知道转换后的IP,但是如果用10个IP来做nat的话,raulkang 兄说的就有道理了,因为如果有转换后的IP信息的话,查找的准确度可以提高10倍,同样的道理如果是128个地址呢?准确度可以大大的提高了。
作者: gunjack 发布时间: 2009-07-13
ippen
你的log格式是iptables输出的吗?需要修改内核吗?我也正想需要这样的东西
不是iptables 输出的,是修改了iptables模块,直接用printk输出的
作者: ippen 发布时间: 2009-07-15
作者: gunjack 发布时间: 2009-09-06
我感覺與你溝通有代溝,您思考模式我不大能夠理解。
那個轉換過程沒有意義的....... 那種轉換過程你幫助啥呢?令人好奇。你有兩個內部 private ip 都同時瀏覽該網站,您的 debug 資訊可以查到... 怎樣的資訊 ...
你不知道很多大陆公司的管理模式,很多公司不是每台电脑都能上网的,一般只是安排几个专门的机器上网,然后大家平时都挤在那几台机器上查资料或者上网,另外一些台湾和韩国的公司好像也实行这么变态的管理制度,只有一些欧美或者一些海归人士办的公司有一定的人情味,人人都能在自己的电脑上网和查找资料,他说的好像就是那种情况,还好我不是在那样的公司。
作者: phoenixson 发布时间: 2009-09-06
作者: nw207 发布时间: 2009-12-17
作者: wab830 发布时间: 2010-08-04
邮箱[email protected]
作者: wab830 发布时间: 2010-08-04
作者: ballack 发布时间: 2013-07-29
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28