嵌入式linux,遭到SYN攻击时出现下面现象

发布于 2022-10-02 20:01:38 字数 4860 浏览 23 评论 0

我的嵌入式linux系统具有route功能,在用iptables设置NAT后可以实现IP转发,但在遭到SYN攻击后系统坚持一两分钟就崩溃了。请各位高手提供一点参考意见。能让我大概知道什么地方的原因,先谢谢了!下面是出错现象:

# Unable to handle kernel paging request at virtual address 00000004, epc == 801
1feb8, ra == 801dae84
Oops in fault.c:do_page_fault, line 204:
$0 : 00000000 1000ff00 0000003f 00000000 80354640 00000000 1000ff00 00000000
$8 : 00040000 00040000 005e0000 8030c81e 8030c81e 00000001 810ade48 00000000
$16: 80211654 8046f7e8 00000020 00000610 0000000c 00000000 802119c0 b8001c00
$24: 00000000 2abf51f0                   810ac000 810adbb8 00007dd1 801dae84
Hi : 0000000c
Lo : 00000000
epc  : 8011feb8    Not tainted
Status: 1000ff00
Cause : 1000000c
Process ksoftirqd_CPU0 (pid: 3, stackpage=810ac000)
Stack: 810adc18 805d36c0 80483c20 8018af9c 80211654 803d13b0 0000003e 80211780
       801dae84 00000006 80211888 00000401 8018ac28 8018a988 00420320 00000000
       b8001c00 00670040 80211654 802119c0 0000000c 0000000d 802119c0 b8001c00
       801db160 01000000 00000030 00000000 3f57fdd6 c0a8792e 80211654 8046f7e8
       00000020 00000610 800b93ec 00000000 803f5090 00000000 80202c08 80202c08
       801838c4 ...
Call Trace: [<8018af9c>;] [<801dae84>;] [<8018ac28>;] [<8018a988>;] [<801db160>;] [<8
00b93ec>;]
[<801838c4>;] [<8018b1bc>;] [<801dae84>;] [<80021f54>;] [<80180f34>;] [<80178594>;]
[<801dae84>;] [<8011feb8>;] [<801806c8>;] [<80143778>;] [<801dae84>;] [<801daf8c>;]
[<8013f2b0>;] [<8013f214>;] [<801db160>;] [<8013f214>;] [<800b93ec>;] [<8013f120>;]
[<80126b9c>;] [<8013c910>;] [<80031d8c>;] [<8013d1e0>;] [<8002d7c4>;] [<80126b9c>;]
[<8002d5b4>;] [<8002cf6c>;] [<8002da84>;] [<8002da9c>;] [<801a8d34>;] [<8002d9cc>;]
[<80018e04>;] [<80018df4>;]

Code: 8c830000  2442ffff  ae220008 <ac710004>; ae230000  ac800000  ac800004  ac80
0008  00802821
Unable to handle kernel paging request at virtual address 00000004, epc == 8011f
eb8, ra == 801dae84
Oops in fault.c:do_page_fault, line 204:
$0 : 00000000 1000ff00 0000003d 00000000 80354640 00000000 1000ff00 00000001
$8 : 00020000 00020000 001e0000 802066f0 8045e569 fffffffe 810ad8bd ffffffff
$16: 80211420 8046f7e8 00000020 00000610 00000018 00000000 80211888 b8001800
$24: 00000010 00000005                   810ac000 810ad5e0 00007dd1 801dae84
Hi : 00000018
Lo : 00000000
epc  : 8011feb8    Not tainted
Status: 1000ff00
Cause : 1000000c
Process ksoftirqd_CPU0 (pid: 3, stackpage=810ac000)
Stack: 280be903 352d7808 c1d790c4 ac3fd688 80211420 810fcda0 0000005c 8021157c
       801dae84 c023f76f 6d72631c 471fd932 db3cb250 94a74b47 00600720 f76755de
       b8001800 00670040 80211420 80211888 0000000c 00000000 802119c0 b8001c00
       801db160 5799a6f2 6f47134a 3e22c347 611fd2cf 9722bb48 80211654 8046f7e8
       00000020 00000610 800b92b4 9a21915d f48feef9 83ed3df3 814d1a0a b76961bb
       9b8e3b32 ...
Call Trace: [<801dae84>;] [<c023f76f>;] [<801db160>;] [<800b92b4>;] [<801dae84>;] [<8
0021f54>;]
[<801dae84>;] [<8011feb8>;] [<801dae84>;] [<801da5b4>;] [<801db160>;] [<800b883c>;]
[<801da5b4>;] [<800b93ec>;] [<8018b770>;] [<801da1a8>;] [<801da06c>;] [<80026f40>;]
[<801da1a8>;] [<80026f40>;] [<80026fe0>;] [<801a7750>;] [<800b917c>;] [<80026fe0>;]
[<801a7750>;] [<8001bba0>;] [<8001bbb4>;] [<801a57d4>;] [<800210b8>;] [<801a76e8>;]
[<8011feb8>;] [<801dae84>;] [<80182fdc>;] [<801261d0>;] [<8011ff34>;] [<800b917c>;]
[<801261d0>;] [<8011ff34>;] [<8017a150>;] [<8017a140>;] [<801da5b4>;] ...

Code: 8c830000  2442ffff  ae220008 <ac710004>; ae230000  ac800000  ac800004  ac80
0008  00802821
..........................................

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(9

等风来 2022-10-09 20:01:38

不明白,帮你顶,嵌入式系统和INTERNET相连了吗,独立的怎么能受到攻击呢。

无尽的现实 2022-10-09 20:01:38

我不是做开发的,我看不出来问题...发到 Linux高级应用版吧:)
我觉得这句有问题:
Oops in fault.c:do_page_fault, line 204:

帮顶起来...

btw:不知道你们的kernel在编译时是否加入了syn_cookie支持,还有一些连接优化参数你们是否做过了...如果有syn_cookie的话可以多顶一会的...

情域 2022-10-09 20:01:38

谢谢!我的嵌入式设备与我另一台PC相连,本来以为已经快要完善的嵌入式设备了,:)。因为PC偶尔有了SYN攻击发送包。它不停的发送TCP/SYN包到我的宝贝上面 :(。只能挺着十几秒钟就挂了。。于是我设置了坚实的防火墙也只能坚持一台带SYN攻击的PC,如果有两台有SYN攻击的PC还是挂 :( 郁闷,我想加防火墙只能是治标的办法,真正的问题还是我的内核方面有问题,我的内核是2.4.17,具体我的内核设置哪里有问题,我也不知道。 :( 请高手能帮帮我。谢谢!!

握住你手 2022-10-09 20:01:38

1。 Oops in fault.c:do_page_fault, line 204:
只是内核出错警告信息,真正出错不在这儿,所以才不知道在哪儿。
2。syn_cookie的支持。
我已经加了这个支持。具体起不起作用还不知道。
3。还要做什么优化?
谢谢!大侠的帮助。

天涯沦落人 2022-10-09 20:01:38

说明白了...
没有什么系统能真正抵挡的住syn-flood的...所以挡不住没关系,只要不要出现你那种完全崩溃的情况,我们自己的产品低端的也只能挡20来分钟,也是嵌入式Linux,不过高端的我直连测试过...竟然没反应,原来这些包都是底层CPU微引擎直接处理了...所以速度很快...没有上到三层...没有问题...
因为不是做开发的,抱歉帮不了你:)

你调节一下tcp连接的参数吧...
/proc/sys/net/ipv4/这个目录下
以tcp开头的这些文件...是一些参数...

缺⑴份安定 2022-10-09 20:01:38

谢谢你的帮助。
我通过抓包工具大概了解崩溃的现象。
1。如果以攻击机器我客户端A。以我的嵌入式为服务器B。那么A不停的向B发SYN连接包。
2。因为B上设置了NAT转发功能。它在接到请求时就进行处理,发送SYN-ACK。等待回应。
3。因为A发送的是大批量的,所以B承受到一定的时候,就崩溃了。
4。所以郁闷的地方就是,希望在不能处理的时候可以停止工作,但不希望是崩溃的结果。
5。我现在不知道究竟哪里溢出,出现崩溃。

逐鹿 2022-10-09 20:01:38

见过有限定单个IP未建立连接数目的
不知道有没有用

黒涩兲箜 2022-10-09 20:01:38

#echo 1>;/proc/sys/net/ipv4/tcp_max_syn_backlog
试一下

小猫一只 2022-10-09 20:01:38

http://www-900.ibm.com/developerworks/cn/linux/l-syncookie/index.shtml

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文