免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: atkisc

[网络子系统] 关于2.6.35静态内核和netfilter的问题 [复制链接]

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
发表于 2013-11-28 11:35 |显示全部楼层
回复 9# atkisc

-A SYNCHK -p tcp -m tcp --dport 30222 -j LOG --log-prefix 'SYNCHK' --log-level 7
-A SYNCHK -p tcp -m tcp --dport 30222 -j ACCEPT



你上面给的日志中有 dport 为 30022 的,这里规则确实 30222,检查一下又没有写错。
   

论坛徽章:
0
发表于 2013-11-28 11:42 |显示全部楼层
Godbach 发表于 2013-11-28 11:35
回复 9# atkisc



规则没问题,我把规则的SYNCHK链改成INPUT链就可以

论坛徽章:
0
发表于 2013-11-28 11:43 |显示全部楼层
Godbach 发表于 2013-11-28 11:35
回复 9# atkisc


刚才发的LOG里面DPT是30022,后来我改了

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
发表于 2013-11-28 12:10 |显示全部楼层
回复 13# atkisc

我刚才建议的, SYNCHK 里最上面加一条 LOG 所有 TCP(或者只 LOG 特定端口) 的规则,看看有没有应该命中后面规则的包

   

论坛徽章:
0
发表于 2013-11-28 12:17 |显示全部楼层
Godbach 发表于 2013-11-28 12:10
回复 13# atkisc

我刚才建议的, SYNCHK 里最上面加一条 LOG 所有 TCP(或者只 LOG 特定端口) 的规则, ...


我把IPTABLES规则改成了如下

  1. *filter
  2. :INPUT ACCEPT [0:0]
  3. :FORWARD ACCEPT [0:0]
  4. :OUTPUT ACCEPT [0:0]
  5. :SYNCHK - [0:0]
  6. -A INPUT -i eth0 -p tcp -m tcp -j LOG --log-prefix 'Input->SYNCHK-TCP' --log-level 7
  7. -A INPUT -i eth0 -p tcp -m tcp -j SYNCHK
  8. -A SYNCHK -p tcp -m tcp --dport 30022 -j LOG --log-prefix 'SYNCHK-TCP-30022' --log-level 7
  9. -A SYNCHK -p tcp -m tcp --dport 30022 -j ACCEPT
  10. -A SYNCHK -p tcp -m tcp -j LOG --log-prefix 'SYNCHK-TCP' --log-level 7
  11. -A SYNCHK -p tcp -m tcp -j ACCEPT
  12. -A SYNCHK -p tcp -m tcp --dport 22 -j ACCEPT
  13. -A SYNCHK -p tcp -j DROP
  14. COMMIT
复制代码
这种情况下我当前SSH链接就断了,我通过终端上去

  1. Active Internet connections (only servers)
  2. Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name           
  3. tcp        0      0 0.0.0.0:30022               0.0.0.0:*                   LISTEN      4440/sshd  
复制代码
只截取了一条

最下面几条日志

  1. 'Input->SYNCHK-TCP'IN=eth0 OUT= MAC=fa:16:3e:3a:39:16:90:b1:1c:54:0d:0a:08:00 SRC=192.168.20.3 DST=192.168.20.100 LEN=100 TOS=0x10 PREC=0x00 TTL=64 ID=8627 DF PROTO=TCP SPT=47959 DPT=30022 WINDOW=501 RES=0x00 ACK PSH URGP=0
  2. 'Input->SYNCHK-TCP'IN=eth0 OUT= MAC=fa:16:3e:3a:39:16:90:b1:1c:54:0d:0a:08:00 SRC=192.168.20.3 DST=192.168.20.100 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=10862 DF PROTO=TCP SPT=47960 DPT=30022 WINDOW=14600 RES=0x00 SYN URGP=0
  3. 'Input->SYNCHK-TCP'IN=eth0 OUT= MAC=fa:16:3e:3a:39:16:90:b1:1c:54:0d:0a:08:00 SRC=192.168.20.3 DST=192.168.20.100 LEN=64 TOS=0x10 PREC=0x00 TTL=64 ID=8628 DF PROTO=TCP SPT=47959 DPT=30022 WINDOW=501 RES=0x00 ACK URGP=0
  4. 'Input->SYNCHK-TCP'IN=eth0 OUT= MAC=fa:16:3e:3a:39:16:90:b1:1c:54:0d:0a:08:00 SRC=192.168.20.3 DST=192.168.20.100 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=10863 DF PROTO=TCP SPT=47960 DPT=30022 WINDOW=14600 RES=0x00 SYN URGP=0
  5. 'Input->SYNCHK-TCP'IN=eth0 OUT= MAC=fa:16:3e:3a:39:16:90:b1:1c:54:0d:0a:08:00 SRC=192.168.20.3 DST=192.168.20.100 LEN=100 TOS=0x10 PREC=0x00 TTL=64 ID=8629 DF PROTO=TCP SPT=47959 DPT=30022 WINDOW=501 RES=0x00 ACK PSH URGP=0
  6. 'Input->SYNCHK-TCP'IN=eth0 OUT= MAC=fa:16:3e:3a:39:16:90:b1:1c:54:0d:0a:08:00 SRC=192.168.20.3 DST=192.168.20.100 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=10864 DF PROTO=TCP SPT=47960 DPT=30022 WINDOW=14600 RES=0x00 SYN URGP=0
  7. 'Input->SYNCHK-TCP'IN=eth0 OUT= MAC=fa:16:3e:3a:39:16:90:b1:1c:54:0d:0a:08:00 SRC=192.168.20.3 DST=192.168.20.100 LEN=64 TOS=0x10 PREC=0x00 TTL=64 ID=8630 DF PROTO=TCP SPT=47959 DPT=30022 WINDOW=501 RES=0x00 ACK URGP=0
  8. 'Input->SYNCHK-TCP'IN=eth0 OUT= MAC=fa:16:3e:3a:39:16:90:b1:1c:54:0d:0a:08:00 SRC=192.168.20.3 DST=192.168.20.100 LEN=100 TOS=0x10 PREC=0x00 TTL=64 ID=8631 DF PROTO=TCP SPT=47959 DPT=30022 WINDOW=501 RES=0x00 ACK PSH URGP=0
  9. 'Input->SYNCHK-TCP'IN=eth0 OUT= MAC=fa:16:3e:3a:39:16:90:b1:1c:54:0d:0a:08:00 SRC=192.168.20.3 DST=192.168.20.100 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=10865 DF PROTO=TCP SPT=47960 DPT=30022 WINDOW=14600 RES=0x00 SYN URGP=0
复制代码
也没有

论坛徽章:
0
发表于 2013-11-28 12:21 |显示全部楼层
Godbach 发表于 2013-11-28 12:10
回复 13# atkisc

我刚才建议的, SYNCHK 里最上面加一条 LOG 所有 TCP(或者只 LOG 特定端口) 的规则, ...


如果我在4.8上直接编译2.6.35的内核是没问题的,不过不是静态的

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
发表于 2013-11-28 12:24 |显示全部楼层
回复 15# atkisc

INPUT 处的这条规则移到 SYNCHK 第一条
-A INPUT -i eth0 -p tcp -m tcp -j LOG --log-prefix 'Input->SYNCHK-TCP' --log-level 7


然后记得再贴一下 iptables -vnL INPUT 的结果


   

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
发表于 2013-11-28 12:26 |显示全部楼层
回复 3# atkisc

此外,测试一下直接手工加一条规则到 SYNCHK 试试是否正常。

你编译 kernel 做了 netfilter 哪些方面的修改吗?


   

论坛徽章:
0
发表于 2013-11-28 13:08 |显示全部楼层
Godbach 发表于 2013-11-28 12:24
回复 15# atkisc

INPUT 处的这条规则移到 SYNCHK 第一条



移动后的iptables配置文件如下

  1. *filter
  2. :INPUT ACCEPT [0:0]
  3. :FORWARD ACCEPT [0:0]
  4. :OUTPUT ACCEPT [0:0]
  5. :SYNCHK - [0:0]
  6. -A INPUT -i eth0 -p tcp -m tcp -j SYNCHK
  7. -A INPUT -i eth0 -p tcp -m tcp -j LOG --log-prefix 'Input->SYNCHK-TCP' --log-level 7
  8. -A SYNCHK -p tcp -m tcp --dport 30022 -j LOG --log-prefix 'SYNCHK-TCP-30022' --log-level 7
  9. -A SYNCHK -p tcp -m tcp --dport 30022 -j ACCEPT
  10. -A SYNCHK -p tcp -m tcp -j LOG --log-prefix 'SYNCHK-TCP' --log-level 7
  11. -A SYNCHK -p tcp -m tcp -j ACCEPT
  12. -A SYNCHK -p tcp -m tcp --dport 22 -j ACCEPT
  13. -A SYNCHK -p tcp -j DROP
  14. COMMIT
复制代码
我尝试ssh登陆后的iptables -nvL结果如下

  1. Chain INPUT (policy ACCEPT 1 packets, 328 bytes)
  2. pkts bytes target     prot opt in     out     source               destination         
  3.     4   240 SYNCHK     tcp  --  eth0   *       0.0.0.0/0            0.0.0.0/0           tcp
  4.     0     0 LOG        tcp  --  eth0   *       0.0.0.0/0            0.0.0.0/0           tcp LOG flags 0 level 7 prefix `'Input->SYNCHK-TCP''

  5. Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
  6. pkts bytes target     prot opt in     out     source               destination         

  7. Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
  8. pkts bytes target     prot opt in     out     source               destination         

  9. Chain SYNCHK (1 references)
  10. pkts bytes target     prot opt in     out     source               destination         
  11.     0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:30022 LOG flags 0 level 7 prefix `'SYNCHK-TCP-30022''
  12.     0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:30022
  13.     0     0 LOG        tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp LOG flags 0 level 7 prefix `'SYNCHK-TCP''
  14.     0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp
  15.     0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:22
  16.     0     0 DROP       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           
复制代码
iptables LOG没有任何记录

论坛徽章:
0
发表于 2013-11-28 13:14 |显示全部楼层
Godbach 发表于 2013-11-28 12:26
回复 3# atkisc

此外,测试一下直接手工加一条规则到 SYNCHK 试试是否正常。


kernel的netfilter我选择了如下

  1. --- Network packet filtering framework (Netfilter)
  2.    [*]   Network packet filtering debugging  
  3.    [*]   Advanced netfilter configuration     
  4.    Core Netfilter Configuration  --->
  5.       [*] Netfilter NFQUEUE over NFNETLINK interface                                                                  
  6.       -*- Netfilter LOG over NFNETLINK interface                                                                        
  7.       [*] Netfilter connection tracking support                                                                        
  8.       [*]   Connection tracking flow accounting                                                                          
  9.       -*-   Connection mark tracking support                                                                           
  10.       [*]   Connection tracking events      
  11.       [*]   Connection tracking netlink interface
  12.       -*- Netfilter Xtables support (required for ip_tables)
  13.       -*-   nfmark target and match support
  14.       -*-   ctmark target and match support
  15.       [*]   "CONNMARK" target support
  16.       [*]   "MARK" target support
  17.       [*]   "NFLOG" target support
  18.       [*]   "NFQUEUE" target Support
  19.       [*]   "connmark" connection mark match support
  20.       [*]   "conntrack" connection tracking match support
  21.       [*]   "mark" match support  
  22.       [*]   "multiport" Multiple port match support
  23.       [*]   "state" match support
  24.    IP: Netfilter Configuration  --->
  25.       [*] IPv4 connection tracking support (required for NAT)
  26.       [*]   proc/sysctl compatibility with old connection tracking
  27.       [*] IP Userspace queueing via NETLINK (OBSOLETE)  
  28.       [*] IP tables support (required for filtering/masq/NAT)
  29.       [*]   Packet filtering
  30.       [*]     REJECT target support
  31.       [*]   LOG target support  
  32.       [*]   ULOG target support
  33.       [*]   Full NAT
  34.       [*]     MASQUERADE target support
  35.       [*]     REDIRECT target support
  36.       [*]   Packet mangling
复制代码
我只列出了选择项,我也尝试过全选,但问题依旧   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP