一般保护错误由__d_drop在SMTP攻击之后

正在运行我的3.16.5盒子的SMTP端口(Postfix)正在受到攻击。 日志一遍又一遍地重复:

Nov 14 09:16:25 [postfix/smtpd] lost connection after UNKNOWN from unknown[177.43.41.74] Nov 14 09:16:25 [postfix/smtpd] disconnect from unknown[177.43.41.74] Nov 14 09:16:25 [postfix/smtpd] warning: hostname fluair74.static.host.gvt.net.br does not resolve to address 177.43.41.74 Nov 14 09:16:25 [postfix/smtpd] connect from unknown[177.43.41.74] 

昨天晚上不久,核心发生恐慌,但是上面的日志一直持续到4点21分,当盒子坏了。 (重新启动工作正常,系统没有入侵者,现在很安静,因为我已经closures了Postfix)

所以“__d_drop”中的“一般保护错误”已经导致了系统崩溃,并且从呼叫追踪的声音中看,这个模块属于防火墙,不是吗? (不幸的是,我不是一个C程序员。)

 Nov 14 00:00:27 [kernel] [303820.568072] general protection fault: 0000 [#1] SMP Nov 14 00:00:27 [kernel] [303820.568183] Modules linked in: ip6t_rpfilter xt_CLASSIFY xt_TCPMSS xt_NFQUEUE xt_LOG xt_nat ipt_MASQUERADE xt_REDIRECT ipt_rpfilter xt_helper xt_mac xt_mark xt_length xt_state nfnetlink_queue nf_conntrack_netlink ip6table_mangle ip6table_raw iptable_nat nf_nat_ipv4 nf_nat iptable_mangle ipt_REJECT nf_conntrack_ipv4 nf_defrag_ipv4 xt_NFLOG nfnetlink_log nfnetlink xt_limit xt_connmark xt_conntrack iptable_filter iptable_raw ip_tables uhci_hcd ehci_pci ehci_hcd usbcore usb_common Nov 14 00:00:27 [kernel] [303820.569599] CPU: 0 PID: 27 Comm: kswapd0 Not tainted 3.16.5-gentoo #2 Nov 14 00:00:27 [kernel] [303820.569644] Hardware name: {{MASKED}} Nov 14 00:00:27 [kernel] [303820.569693] task: ffff880623e6c140 ti: ffff880623b18000 task.ti: ffff880623b18000 Nov 14 00:00:27 [kernel] [303820.569740] RIP: 0010:[<ffffffff810dc132>] [<ffffffff810dc132>] __d_drop+0x3d/0x69 Nov 14 00:00:27 [kernel] [303820.569824] RSP: 0000:ffff880623b1bc18 EFLAGS: 00010a12 Nov 14 00:00:27 [kernel] [303820.569867] RAX: 0000000000000000 RBX: ffff8802adfa23c0 RCX: ffdf8802bae3c308 Nov 14 00:00:27 [kernel] [303820.569914] RDX: 0000000000000c0c RSI: 000000000029d3b3 RDI: ffffc900014e9d98 Nov 14 00:00:27 [kernel] [303820.569961] RBP: ffffc900014e9d98 R08: ffff8802adfa8680 R09: 000000000049ef36 Nov 14 00:00:27 [kernel] [303820.570299] R10: 0000000000000064 R11: ffff88063ffe8100 R12: ffff8802adfa2418 Nov 14 00:00:27 [kernel] [303820.570637] R13: ffff880623b1bc88 R14: 0000000000064243 R15: 0000000000000000 Nov 14 00:00:27 [kernel] [303820.570975] FS: 0000000000000000(0000) GS:ffff88063fc00000(0000) knlGS:0000000000000000 Nov 14 00:00:27 [kernel] [303820.571315] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b Nov 14 00:00:27 [kernel] [303820.571505] CR2: 00007f9efcb93fe8 CR3: 000000017068a000 CR4: 00000000000007f0 Nov 14 00:00:27 [kernel] [303820.571842] Stack: Nov 14 00:00:27 [kernel] [303820.572024] ffff8802adfa23c0 ffff8802adffea80 ffffffff810dc1f1 ffff8802adffea80 Nov 14 00:00:27 [kernel] [303820.572492] ffff8802adffea80 ffff8802adfa2418 ffffffff810dc881 ffff880623b1bc88 Nov 14 00:00:27 [kernel] [303820.572959] ffff880623b1bd98 ffff8806235ab800 ffff8806235abb68 ffffffff810dd319 Nov 14 00:00:27 [kernel] [303820.573427] Call Trace: Nov 14 00:00:27 [kernel] [303820.573612] [<ffffffff810dc1f1>] ? __dentry_kill+0x57/0x182 Nov 14 00:00:27 [kernel] [303820.573802] [<ffffffff810dc881>] ? shrink_dentry_list+0x178/0x181 Nov 14 00:00:27 [kernel] [303820.573994] [<ffffffff810dd319>] ? prune_dcache_sb+0x42/0x4c Nov 14 00:00:27 [kernel] [303820.574185] [<ffffffff810cf53c>] ? super_cache_scan+0xc7/0x136 Nov 14 00:00:27 [kernel] [303820.574378] [<ffffffff8109f83a>] ? shrink_slab_node+0xf1/0x144 Nov 14 00:00:27 [kernel] [303820.574569] [<ffffffff810a00d1>] ? shrink_slab+0x7b/0x119 Nov 14 00:00:27 [kernel] [303820.574759] [<ffffffff810a2419>] ? balance_pgdat+0x2d3/0x3fa Nov 14 00:00:27 [kernel] [303820.574950] [<ffffffff810a27ef>] ? kswapd+0x2af/0x2e2 Nov 14 00:00:27 [kernel] [303820.575140] [<ffffffff810650c9>] ? finish_wait+0x60/0x60 Nov 14 00:00:27 [kernel] [303820.575330] [<ffffffff810a2540>] ? balance_pgdat+0x3fa/0x3fa Nov 14 00:00:27 [kernel] [303820.575522] [<ffffffff810538a1>] ? kthread+0x95/0x9d Nov 14 00:00:27 [kernel] [303820.575712] [<ffffffff81050000>] ? workqueue_cpu_up_callback+0x146/0x2c3 Nov 14 00:00:27 [kernel] [303820.575905] [<ffffffff8105380c>] ? __kthread_parkme+0x55/0x55 Nov 14 00:00:27 [kernel] [303820.576096] [<ffffffff81438aac>] ? ret_from_fork+0x7c/0xb0 Nov 14 00:00:27 [kernel] [303820.576287] [<ffffffff8105380c>] ? __kthread_parkme+0x55/0x55 Nov 14 00:00:27 [kernel] [303820.576476] Code: fb 75 0d 48 8b 43 68 48 8d a8 b8 00 00 00 eb 0b 8b 73 20 e8 ae f4 ff ff 48 89 c5 48 89 ef e8 55 fc ff ff 48 8b 4b 10 48 8b 43 08 <48> 8b 11 83 e2 01 48 09 c2 48 85 c0 48 89 11 74 04 48 89 48 08 Nov 14 00:00:27 [kernel] [303820.579082] RIP [<ffffffff810dc132>] __d_drop+0x3d/0x69 Nov 14 00:00:27 [kernel] [303820.579304] RSP <ffff880623b1bc18> Nov 14 00:00:27 [kernel] [303820.579507] ---[ end trace d39a95020f60fb9b ]--- 

感谢您的提示!

免责声明 :这不是回答为什么你的内核崩溃,而是对邮件bot的另一种措施。

为了防止行为不端的机器人,postfix 2.8引入了一个名为postscreen的function。 您可以查看 Postfix作者关于此function的演示文稿 。 总之,它会为你的smtp服务器增加一层新的防御。 保持内核和后缀接收机器人的连接。

关于后期基本构思的一些片段

屏幕背后的基本理念(8)

大多数电子邮件是垃圾邮件,大多数垃圾邮件是由僵尸发送(恶意软件在最终用户的计算机上)。 Wietse预计僵尸问题会在情况好转之前变得更糟。 没有像屏幕保护程序(8)那样的工具,Postfix将花费大部分资源不接收电子邮件。

对于后屏幕(8)来说,主要的挑战是基于单一测量来做出一个“它是一个僵尸”的决定。 这是必要的,因为许多僵尸试图在雷达下飞行,并避免垃圾邮件反复在同一个网站。 一旦postscreen(8)决定客户端不是僵尸,它暂时将客户列入白名单,以避免合法邮件的进一步延迟。

僵尸也有挑战:在IP地址被列入黑名单之前,他们只有有限的时间发送垃圾邮件。 为了加速垃圾邮件的交付,僵尸在他们的SMTP协议实施中做出妥协。 例如,他们轮到他们说话,或者他们忽略来自SMTP服务器的响应,并且即使在服务器告诉他们离开时也继续发送邮件。

屏幕(8)使用各种测量来识别僵尸。 首先,postscreen(8)确定远程SMTP客户端IP地址是否被列入黑名单。 其次,邮政屏幕(8)寻找协议妥协,以加快交付。 这些都是基于单一测量结果作出的非僵尸决定的好指标。

邮政屏幕(8)不检查邮件内容。 邮件内容可能因递送而异,特别是(也)发送合法邮件的客户。 内容并不是一个很好的指标,它是基于单一测量的僵尸决定,这是后期(8)关注的问题。