这是被 DDOS 了?

2017-01-09 19:35:41 +08:00
 Hardrain
apache httpd 一运行起来不超过 5 分钟便这样, apache 的进程开了无数个;而刚 start apache3 分钟之内一切正常
未发现被入侵证据, SSH 使用公钥登录,且密码(键盘交互)登录已被停用.
root@B-512:~# ps -e
PID TTY TIME CMD
1 ? 00:00:00 systemd
2 ? 00:00:00 kthreadd/67003
3 ? 00:00:00 khelper/67003
65 ? 00:00:00 systemd-journal
67 ? 00:00:00 systemd-udevd
188 ? 00:00:00 rsyslogd
193 ? 00:00:00 cron
283 ? 00:00:00 php-fpm7.1
286 ? 00:00:00 sshd
295 ? 00:00:00 vsftpd
300 ? 00:00:00 saslauthd
303 ? 00:00:00 saslauthd
311 tty1 00:00:00 agetty
312 tty2 00:00:00 agetty
339 ? 00:00:00 xinetd
340 ? 00:00:00 php-fpm7.1
341 ? 00:00:00 php-fpm7.1
355 ? 00:00:00 mysqld_safe
364 ? 00:00:00 htcacheclean
504 ? 00:00:02 mysqld
505 ? 00:00:00 logger
1230 ? 00:00:00 master
1233 ? 00:00:00 pickup
1234 ? 00:00:00 qmgr
2184 ? 00:00:00 sshd
2193 pts/0 00:00:00 bash
2237 ? 00:00:00 tlsmgr
2876 ? 00:00:00 apache2
2877 ? 00:00:07 apache2
2879 ? 00:00:07 apache2
2882 ? 00:00:07 apache2
2883 ? 00:00:06 apache2
2886 ? 00:00:06 apache2
2896 ? 00:00:02 apache2
2898 ? 00:00:02 apache2
2899 ? 00:00:02 apache2
2902 ? 00:00:02 apache2
2903 ? 00:00:02 apache2
2904 ? 00:00:02 apache2
2905 ? 00:00:02 apache2
2910 ? 00:00:02 apache2
2911 ? 00:00:02 apache2
2912 ? 00:00:02 apache2
2913 ? 00:00:02 apache2
2914 ? 00:00:02 apache2
2915 ? 00:00:02 apache2
2916 ? 00:00:02 apache2
2917 ? 00:00:02 apache2
2926 ? 00:00:02 apache2
2927 ? 00:00:02 apache2
2928 ? 00:00:02 apache2
2929 ? 00:00:02 apache2
2930 ? 00:00:02 apache2
2931 ? 00:00:02 apache2
2932 ? 00:00:02 apache2
2933 ? 00:00:02 apache2
2934 ? 00:00:02 apache2
2943 ? 00:00:02 apache2
2944 ? 00:00:02 apache2
2945 ? 00:00:02 apache2
2949 ? 00:00:02 apache2
2952 ? 00:00:02 apache2
2953 ? 00:00:02 apache2
2955 ? 00:00:02 apache2
2959 ? 00:00:01 apache2
2960 ? 00:00:02 apache2
2961 ? 00:00:02 apache2
2962 ? 00:00:02 apache2
2963 ? 00:00:02 apache2
2964 ? 00:00:01 apache2
2965 ? 00:00:02 apache2
2966 ? 00:00:02 apache2
2967 ? 00:00:02 apache2
2974 ? 00:00:02 apache2
2976 ? 00:00:01 apache2
2978 ? 00:00:02 apache2
2980 ? 00:00:01 apache2
2982 ? 00:00:02 apache2
2985 ? 00:00:01 apache2
2986 ? 00:00:01 apache2
2988 ? 00:00:01 apache2
2990 ? 00:00:01 apache2
2992 ? 00:00:01 apache2
2995 ? 00:00:01 apache2
2997 ? 00:00:01 apache2
2998 ? 00:00:01 apache2
2999 ? 00:00:02 apache2
3002 ? 00:00:01 apache2
3004 ? 00:00:01 apache2
3007 ? 00:00:01 apache2
3008 ? 00:00:01 apache2
3010 ? 00:00:01 apache2
3013 ? 00:00:01 apache2
3015 ? 00:00:01 apache2
3016 ? 00:00:01 apache2
3018 ? 00:00:01 apache2
3023 ? 00:00:01 apache2
3024 ? 00:00:01 apache2
3025 ? 00:00:01 apache2
3026 ? 00:00:01 apache2
3029 ? 00:00:01 apache2
3031 ? 00:00:01 apache2
3033 ? 00:00:01 apache2
3035 ? 00:00:01 apache2
3037 ? 00:00:01 apache2
3039 ? 00:00:01 apache2
3041 ? 00:00:01 apache2
3042 ? 00:00:01 apache2
3044 ? 00:00:01 apache2
3046 ? 00:00:01 apache2
3049 ? 00:00:01 apache2
3051 ? 00:00:01 apache2
3053 ? 00:00:01 apache2
3054 ? 00:00:01 apache2
3057 ? 00:00:01 apache2
3058 ? 00:00:01 apache2
3061 ? 00:00:01 apache2
3062 ? 00:00:01 apache2
3065 ? 00:00:01 apache2
3067 ? 00:00:01 apache2
3069 ? 00:00:01 apache2
3070 ? 00:00:01 apache2
3073 ? 00:00:01 apache2
3075 ? 00:00:01 apache2
3077 ? 00:00:01 apache2
3079 ? 00:00:01 apache2
3080 ? 00:00:01 apache2
3083 ? 00:00:01 apache2
3088 ? 00:00:01 apache2
3089 ? 00:00:01 apache2
3090 ? 00:00:01 apache2
3091 ? 00:00:01 apache2
3092 ? 00:00:01 apache2
3093 ? 00:00:01 apache2
3094 ? 00:00:01 apache2
3095 ? 00:00:01 apache2
3096 ? 00:00:01 apache2
3097 ? 00:00:01 apache2
3098 ? 00:00:01 apache2
3099 ? 00:00:01 apache2
3100 ? 00:00:01 apache2
3112 ? 00:00:01 apache2
3114 ? 00:00:01 apache2
3116 ? 00:00:01 apache2
3119 ? 00:00:01 apache2
3121 ? 00:00:01 apache2
3122 ? 00:00:01 apache2
3123 ? 00:00:01 apache2
3126 ? 00:00:01 apache2
3129 ? 00:00:01 apache2
3130 ? 00:00:01 apache2
3132 ? 00:00:01 apache2
3134 ? 00:00:01 apache2
3136 ? 00:00:01 apache2
3138 ? 00:00:01 apache2
3140 ? 00:00:01 apache2
3142 ? 00:00:01 apache2
3143 ? 00:00:01 apache2
3146 ? 00:00:01 apache2
3148 ? 00:00:01 apache2
3152 ? 00:00:01 apache2
3153 ? 00:00:01 apache2
3154 ? 00:00:01 apache2
3155 ? 00:00:01 apache2
3156 ? 00:00:01 apache2
3157 ? 00:00:01 apache2
3158 ? 00:00:01 apache2
3159 ? 00:00:01 apache2
3160 ? 00:00:01 apache2
3167 ? 00:00:01 apache2
3170 ? 00:00:01 apache2
3171 ? 00:00:01 apache2
3174 ? 00:00:01 apache2
3176 ? 00:00:01 apache2
3178 ? 00:00:01 apache2
3179 ? 00:00:01 apache2
3182 ? 00:00:01 apache2
3183 ? 00:00:01 apache2
3204 pts/0 00:00:00 ps

且占据大量内存
root@B-512:~# free -mh
total used free shared buff/cache available
Mem: 512M 157M 49M 135M 305M 3.4M
Swap: 256M 73M 182M

用 top 看, CPU 95%+ 重启 apache 后 3 分钟内一切正常,过一会后又如此
查看同时连接的 ip
root@B-512:~# netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
1 Address
1 servers)
2 78.170.216.146
5 192.0.73.2
141 184.73.63.224
141 54.205.31.52
148 54.90.99.30
其中建立了上百个的那两个 54.开头的 IP 在 ipip.net 查询属于一个机房.
因此怀疑被 DDoS
2067 次点击
所在节点    问与答
6 条回复
jasontse
2017-01-09 19:41:27 +08:00
看下 access.log 应该是被 CC 了。上个 WAF 或者比较好的 CDN 会帮你防住。
duola
2017-01-09 19:42:47 +08:00
个人认为封 ip 会好一点。
Hardrain
2017-01-09 19:45:25 +08:00
@jasontse
刚把之前的 log FTP 回本地后清空了
自发生此情况后
root@B-512:/var/log/apache2# ls -Alsh
total 148K
0 -rw-r--r-- 1 root root 0 Jan 9 18:29 breed.hardrain980.com.access.log
0 -rw-r--r-- 1 root root 0 Jan 9 18:29 breed.hardrain980.com.error.log
8.0K -rw-r--r-- 1 root root 7.2K Jan 9 19:37 error.log
4.0K -rw-r--r-- 1 root root 473 Jan 9 19:40 generate204.com.access.log
0 -rw-r--r-- 1 root root 0 Jan 9 18:29 generate204.com.error.log
48K -rw-r--r-- 1 root root 41K Jan 9 19:39 gr.hr98.xyz.access.log
4.0K -rw-r--r-- 1 root root 1.1K Jan 9 18:54 gr.hr98.xyz.error.log
80K -rw-r--r-- 1 root root 75K Jan 9 19:43 hardrain980.com.access.log
4.0K -rw-r--r-- 1 root root 424 Jan 9 18:33 hardrain980.com.error.log
0 -rw-r--r-- 1 root root 0 Jan 9 18:29 old.hardrain980.com.access.log
0 -rw-r--r-- 1 root root 0 Jan 9 18:29 old.hardrain980.com.error.log
0 -rw-r--r-- 1 root root 0 Jan 9 18:29 other_vhosts_access.log

看起来 log 文件都并不大啊
另外 gr.hr98.xyz 是 gravatar 反向代理,可能会访问比较多.
Hardrain
2017-01-09 19:46:46 +08:00
@duola 似乎是的 把那几个来自 Amazon 机房的 54.开头的 IP 用 iptables drop 掉后 apache 运行了 5 分钟,之前的情形没有复现.
Hardrain
2017-01-09 19:47:37 +08:00
@duola 另:我是否应该使用防火墙(e.g. ufw)来对付
iptables 的配置我有导出到文件 方便再次添加.
duola
2017-01-09 20:05:54 +08:00
@Hardrain 推荐腾讯运维工程师写的一篇文章, https://zhangge.net/5066.html 个人感觉还不错,你可以参考一下。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/333407

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX