linux服务器被攻击处理

2016年5月12日14点左右接到客服通知说,“网站炸了“。

打开xshell,远程登录服务器,top一看负载,平均负载到了100多,要知道平时也就是2-3左右。

查看是httpd服务跑满了,慢慢的...慢慢的...服务器就宕机了,估计是被人cc攻击或者是ddos攻击。

好吧老实去查看日志:

假设Apache日志文件在这里: /var/log/httpd/access.log 【生成环境已经改动了】

查找请求数请20个IP(常用于查找攻来源):

[[email protected] ~]# netstat -anlp|grep 80|grep tcp|awk ‘{print $5}‘|awk -F: ‘{print $1}‘|sort|uniq -c|sort -nr|head -n20
   302700 127.0.0.1
   xxxxxxxxxxxxxx

本地的回环地址。

查看timewait

[[email protected] ~]# netstat -n|grep TIME_WAIT|awk ‘{print $5}‘|sort|uniq -c|sort -rn|head -n20
  11080 192.168.xx.xx:******
  xxxxxxxxxxxxxxxxxxxxx

是数据库的链接地址。

某台服务器最多ip访问数:

[[email protected] log]# cat /var/log/httpd/access.log|awk ‘{print $1}‘|sort|uniq -c|sort -nr|head -10
 232111 218.xxx.xxx.xxx
 144089 xxx.xxx.xxx.xxx
 111629 xxx.xxx.xxx.xxx
  79444 59.xxx.xxx.xxx
  76718 119.xxx.xxx.xxx
  68785 xxx.xxx.208.30
  62282 xxx.xxx.236.103
  *********************

好吧查到“攻击的IP”了。
一台服务器的同一个ip就20多万次,N台服务器负载就是N*20多万次,这个IP肯定不正常。  绑定次IP,发现可以访问网站,认定是CDN的ip。
查看日志某一个访问地址(动态地址)被刷。

查到的还不是218.xxx.xxx.xxx真正的攻击IP,所以没法做限制。最后只能跟CDN服务商联系,让其在cdn端做限制访问,每个ip每秒只能访问多少次。生效之后服务器负载恢复正常。

小小的总结:

1.网站流量正常,刚开始并没有认定为攻击,给解决问题造成一定延误,流量统计无异常,CNZZ统计14:00之后比平时高,但是如果有新进大的推广渠道也能可以被认定为正常。

2.在nginx上做了限制,但其实是Apache的问题,头痛你去医脚?

## 用户的 IP 地址 $binary_remote_addr 作为 Key,每个 IP 地址最多有 50 个并发连接
## 你想开 几千个连接 刷死我? 超过 50 个连接,直接返回 503 错误给你,根本不处理你的请求了
limit_conn_zone $binary_remote_addr zone=TotalConnLimitZone:10m ;
limit_conn  TotalConnLimitZone  50;
limit_conn_log_level notice;

## 用户的 IP 地址 $binary_remote_addr 作为 Key,每个 IP 地址每秒处理 10 个请求
## 你想用程序每秒几百次的刷我,没戏,再快了就不处理了,直接返回 503 错误给你
limit_req_zone $binary_remote_addr zone=ConnLimitZone:10m  rate=10r/s;
limit_req_log_level notice;
server {
        listen       80;
        server_name  www.xxxxxx.com xxxxxx.com;
        root /wwwroot/web/xxxxxx.com/;
        access_log off;
        error_log /data/wwwroot/log/www.xxxxxx.com-error.log;

        if ($host = ‘xxxxxx.com‘) {
                rewrite ^/(.*)$ http://www.xxxxxx.com/$1 permanent;
        }

        location / {
                ## 最多 5 个排队, 由于每秒处理 10 个请求 + 5个排队,你一秒最多发送 15 个请求过来,再多就直接返回 503 错误给你了
                limit_req zone=ConnLimitZone burst=10 nodelay;

                proxy_pass      http://127.0.0.1:xxxxxx;
                expires      1d;
                proxy_redirect off;
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                }
        location ~ .*\.(jpg|jpeg|gif|png|ico|asf|avi|fla|flv|mp3|mp4|rm|rmi|rmvb|wav|wma|wmv|7z|aiff|bmp|csv|doc|docx|gz|gzip|mid|xml|zip|mov|mpc|mepg|mpg|ods|odt|pdf|ppt|pptx|pxd|qt|ram|rar|rtf|sdc|sitd|swf|sxc|sxw|tar|tgz|tif|tiff|txt|vsd|xls|xlsx)$ {
                expires      30d;
                access_log off;
        }

        location ~ .*\.(js|css)$ {
            expires      30d;
            access_log off;
        }

        deny 218.xxx.xxx.xxx;
}

3.在程序中做判断,如果恶意点击出现验证码或者其他提示。

4.后续的工作:在服务器上做限制。

http://www.jb51.net/article/58060.htm 【未测试】

仔细想想,如果在本地测试肯定可以通过,但是在服务器有cdn过来,ip都记录的是cdn的ip,如果限制对正常访问者也会限制。

在CDN层做访问次数限制,并且在服务器中添加cdn的IP白名单,对直接攻击服务器ip的做限制。

5.其他命令:

输出404url地址到/root/404page.txt

awk ‘($9 ~/404/)‘ /var/log/httpd/access.log | awk ‘{print $9,$7}‘ | sort > /root/404page.txt

访问次数最多的时间段

awk ‘{print  $4}‘ /var/log/httpd/access.log |cut -c 14-18|sort|uniq -c|sort -nr|head

查看当天访问排行前10的url:

cat /var/log/httpd/access.log | awk ‘{print $7}‘ | sort | uniq -c | sort -nr | head -n 10

查看某天访问排行前10的url:

cat /var/log/httpd/access.log | grep "10/Dec/2010" | awk ‘{print $7}‘ | sort | uniq -c | sort -nr | head -n 10
时间: 2024-08-05 09:20:32

linux服务器被攻击处理的相关文章

linux服务器被攻击处理过程

开始排查 首先检查日志,以前做过安全运维,所以写过类似于检查命令和工具,开始一一排查. #查看是否为管理员增加或者修改 find / -type f -perm 4000 #显示文件中查看是否存在系统以外的文件 rpm -Vf /bin/ls rpm -Vf /usr/sbin/sshd rpm -Vf /sbin/ifconfig rpm -Vf /usr/sbin/lsof #检查系统是否有elf文件被替换 #在web目录下运行 grep -r "getRuntime" ./ #查

linux服务器中了一个liun2.3的木马

昨天公司一台服务器突然之间不能ping,ssh无法登陆,从IDC反馈说服务器往外发包,数量巨大,CPU状态显示200%.通过ps aux查看以下进程文件是异常文件: ./liun2.3 /tmp/liun2.3 /tmp/liun2.3h zzta.pl 刚开始以为kill掉这些进程和删掉执行文件就可以了,可是过了几分钟,这个程序又继续执行. 那好吧,就去crontab -l 看有没有定时任务,没有. more /etc/crontab 查看有没在这里定义定时任务.也没有 想了下,既然要执行文件

20个Linux服务器性能调优技巧

Linux是一种开源操作系统,它支持各种硬件平台,Linux服务器全球知名,它和Windows之间最主要的差异在于,Linux服务器默认情况下一般不提供GUI(图形用户界面),而是命令行界面,它的主要目的是高效处理非交互式进程,响应时间并不是那么重要,相反,能够长时间处理高负载才是最关键的. Linux高可用服务器集群解决方案让IT系统管理员可以从容应对许多常见的硬件和软件故障,允许多台计算机一起工作,为关键服务正常运行提供保障,系统管理员可以不中断服务执行维护和升级.Linux服务器有各种用途

一次基于ssh的sftp服务器被攻击实记

一次基于ssh的sftp服务器被攻击实记 前段时间12月分左右,公司需要搭建了台sftp服务器,当时想只是传下文件,何况我这还是基于SSH的SSL加密的sftp,也没有太再次安全问题,结果这个月每天晚上有人在暴力攻击,安装设置我以前的博文中有写到,这里记录下被攻击,以及防攻击的实录.(centos6.X) 查看ssh登录日志 分析日志 防攻击措施 自己写了个脚本 查看日志 ssh 登录日志一般在 /var/log/secure,有些linux版本可能再/var/log/messages,我们只要

服务器被攻击怎么办?常见处理方法

对于企业用户来,最害怕的莫过于服务器遭受攻击了,虽然运维人员在此之前做好了全面的防范工作,但攻击再所难免,如何在服务器遭受攻击后能够迅速有效的处理攻击行为?如何才能降低服务器被攻击的可能性?如何最大限度的降低攻击对服务器造成的影响? 一.服务器被攻击怎么办?处理步骤 1.切断网络 所有的攻击都来自于网络,因此,在得知系统正遭受黑客的攻击后,首先要做的就是断开服务器的网络连接,这样除了能切断攻击源之外,也能保护服务器所在网络的其他主机. 2.查找攻击源 可以通过分析系统日志或登录日志文件,查看可疑

Linux服务器沦陷为肉鸡的全过程实录

Linux服务器沦陷为肉鸡的全过程实录 Linux服务器沦陷为肉鸡的全过程实录 从防火墙瘫痪说起 查找黑客行踪的方法 沦陷过程分析 1 oracle用户密码被破解 2 黑客动作推演 3 攻击工具一览 深刻教训 1 从防火墙瘫痪说起 2015年3月10日,还没到公司就被电话告知办公室无法正常连接互联网了,网速非常慢,无法正常浏览网页.急急忙忙感到公司,开始查找问题. 首先排除了交换机故障,因为内部局域网正常.当ping防火墙设备时,丢包严重.很明显,防火墙出了问题,撑不住了,其Web管理界面根本无

Linux服务器运维安全策略经验分享

http://jxtm.jzu.cn/?p=3692 大家好,我是南非蚂蚁,今天跟大家分享的主题是:线上Linux服务器运维安全策略经验.安全是IT行业一个老生常谈的话题了,从之前的“棱镜门”事件中折射出了很多安全问题,处理好信息安全问题已变得刻不容缓.因此做为运维人员,就必须了解一些安全运维准则,同时,要保护自己所负责的业务,首先要站在攻击者的角度思考问题,修补任何潜在的威胁和漏洞.今天,我为大家讲的,主要分五部分展开:账户和登录安全账户安全是系统安全的第一道屏障,也是系统安全的核心,保障登录

[转]20个你不得不知的Linux服务器性能调优技巧

Linux是一种开源操作系统,它支持各种硬件平台,Linux服务器全球知名,它和Windows之间最主要的差异在于,Linux服务器默认情况下一般不提供GUI(图形用户界面),而是命令行界面,它的主要目的是高效处理非交互式进程,响应时间并不是那么重要,相反,能够长时间处理高负载才是最关键的.Linux高可用服务器集群解决方案让IT系统管理员可以从容应对许多常见的硬件和软件故障,允许多台计算机一起工作,为关键服务正常运行提供保障,系统管理员可以不中断服务执行维护和升级. Linux服务器有各种用途

为Linux服务器伪装上Windows系统假象

网络上的计算机很容易被黑客利用工具或其它手段进行扫描,以寻找系统中的漏洞,然后再针对漏洞进行攻击. 通过伪装Linux系统,给黑客设置系统假象,可以加大黑客对系统的分析难度,引诱他们步入歧途,从而进一步提高计算机系统的安全性.下面以Red Hat Linux为例,针对几种黑客常用的途径介绍一些常用的Linux系统伪装的方法. 针对HTTP服务 通过分析Web服务器的类型,大致可以推测出操作系统的类型,比如,Windows使用IIS来提供HTTP服务,而Linux中最常见的是Apache. 默认的