linux的一些命令 -查看cc攻击-网口ip统计等

查看所有80端口的连接数

Java代码 
 

  1. netstat -nat|grep -i ‘80‘|wc -l
  2. 对连接的IP按连接数量进行排序
  3. netstat -ntu | awk ‘{print $5}‘ | cut -d: -f1 | sort | uniq -c | sort -n
  4. 查看TCP连接状态
  5. netstat -nat |awk ‘{print $6}‘|sort|uniq -c|sort -rn
  6. netstat -n | awk ‘/^tcp/ {++S[$NF]};END {for(a in S) print a, S[a]}‘
  7. netstat -n | awk ‘/^tcp/ {++state[$NF]}; END {for(key in state) print key,"\t",state[key]}‘
  8. netstat -n | awk ‘/^tcp/ {++arr[$NF]};END {for(k in arr) print k,"\t",arr[k]}‘
  9. netstat -n |awk ‘/^tcp/ {print $NF}‘|sort|uniq -c|sort -rn
  10. netstat -ant | awk ‘{print $NF}‘ | grep -v ‘[a-z]‘ | sort | uniq -c
  11. 查看80端口连接数最多的20个IP
  12. netstat -anlp|grep 80|grep tcp|awk ‘{print $5}‘|awk -F: ‘{print $1}‘|sort|uniq -c|sort -nr|head -n20
  13. netstat -ant |awk ‘/:80/{split($5,ip,":");++A[ip[1]]}END{for(i in A) print A,i}‘ |sort -rn|head -n20
  14. 用tcpdump嗅探80端口的访问看看谁最高
  15. tcpdump -i eth0 -tnn dst port 80 -c 1000 | awk -F"." ‘{print $1″."$2″."$3″."$4}‘ | sort | uniq -c | sort -nr |head -20
  16. 查找较多time_wait连接
  17. netstat -n|grep TIME_WAIT|awk ‘{print $5}‘|sort|uniq -c|sort -rn|head -n20
  18. 查找较多的SYN连接
  19. netstat -an | grep SYN | awk ‘{print $5}‘ | awk -F: ‘{print $1}‘ | sort | uniq -c | sort -nr | more

================================

防范DDOS攻击脚本

#防止SYN攻击 轻量级预防

iptables -N syn-flood

iptables -A INPUT -p tcp –syn -j syn-flood

iptables -I syn-flood -p tcp -m limit –limit 3/s –limit-burst 6 -j RETURN

iptables -A syn-flood -j REJECT

#防止DOS太多连接进来,可以允许外网网卡每个IP最多15个初始连接,超过的丢弃

iptables -A INPUT -i eth0 -p tcp –syn -m connlimit –connlimit-above 15 -j DROP

iptables -A INPUT -p tcp -m state –state ESTABLISHED,RELATED -j ACCEPT

#用Iptables抵御DDOS (参数与上相同)

iptables -A INPUT  -p tcp --syn -m limit --limit 12/s --limit-burst 24 -j ACCEPT

iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT

##########################################################

防范CC攻击

当apache站点受到严重的cc攻击,我们可以用iptables来防止web服务器被CC攻击,实现自动屏蔽IP的功能。

1.系统要求

(1)LINUX 内核版本:2.6.9-42ELsmp或2.6.9-55ELsmp(其它内核版本需要重新编译内核,比较麻烦,但是也是可以实现的)。

(2)iptables版本:1.3.7

2. 安装

安装iptables1.3.7和系统内核版本对应的内核模块kernel-smp-modules-connlimit

3. 配置相应的iptables规则

示例如下:

(1)控制单个IP的最大并发连接数

Java代码 
 

  1. iptables -I INPUT -p tcp --dport 80 -m connlimit  --connlimit-above 50 -j REJECT

#允许单个IP的最大连接数为 30

#默认iptables模块不包含connlimit,需要自己单独编译加载,请参考该地址

http://sookk8.blog.51cto.com/455855/280372 不编译内核加载connlimit模块

(2)控制单个IP在一定的时间(比如60秒)内允许新建立的连接数

Java代码 
 

  1. iptables -A INPUT -p tcp --dport 80 -m recent --name BAD_HTTP_ACCESS --update --seconds 60 --hitcount 30 -j REJECT iptables -A INPUT -p tcp --dport 80 -m recent --name BAD_HTTP_ACCESS --set -j ACCEPT

#单个IP在60秒内只允许最多新建30个连接

4. 验证

(1)工具:flood_connect.c(用来模拟攻击)

(2)查看效果:

使用

Java代码 
 

  1. watch ‘netstat -an | grep:21 | grep<模拟攻击客户机的IP>| wc -l‘

实时查看模拟攻击客户机建立起来的连接数,

使用

Java代码 
 

  1. watch ‘iptables -L -n -v | \grep<模拟攻击客户机的IP>‘

查看模拟攻击客户机被 DROP 的数据包数。

5.注意

为了增强iptables防止CC攻击的能力,最好调整一下ipt_recent的参数如下:

Java代码 
 

  1. #cat/etc/modprobe.conf options ipt_recent ip_list_tot=1000 ip_pkt_list_tot=60

#记录1000个IP地址,每个地址记录60个数据包 #modprobe ipt_recent

===========================

Nginx 版本信息:

nginx version: nginx/0.8.53

Nginx日志配置项:

Java代码 
 

  1. access_log      /data0/logs/access.log  combined;

Nginx日志格式:

Java代码 
 

  1. $remote_addr – $remote_user [$time_local]  $request $status $apache_bytes_sent $http_referer $http_user_agent
  2. 127.0.0.1 - - [24/Mar/2011:12:45:07 +0800] "GET /fcgi_bin/xxx.fcgi?id=xxx HTTP/1.0" 200 160 "-" "Mozilla/4.0"

通过日志查看当天访问页面排前10的url:

Java代码 
 

  1. #>cat access.log | grep "24/Mar/2011" | awk ‘{print $7}‘ | sort | uniq -c | sort -nr | head -n 10

通过日志查看当天ip连接数,统计ip地址的总连接数

Java代码 
 

  1. #>cat access.log | grep "24/Mar/2011" | awk ‘{print $1}‘ | sort | uniq -c | sort –nr
  2. 38 112.97.192.16
  3. 20 117.136.31.145
  4. 19 112.97.192.31
  5. 3 61.156.31.20
  6. 2 209.213.40.6
  7. 1 222.76.85.28

通过日志查看当天访问次数最多的10个IP ,只需要在上一个命令后加上head命令

Java代码 
 

  1. #>cat access.log | grep "24/Mar/2011" |awk ‘{print $3}‘|sort |uniq -c|sort -nr|head –n 10
  2. 38 112.97.192.16
  3. 20 117.136.31.145
  4. 19 112.97.192.31
  5. 3 61.156.31.20
  6. 2 209.213.40.6
  7. 1 222.76.85.28

通过日志查看当天访问次数最多的10个IP

Java代码 
 

  1. #>awk ‘{print $1}‘ access.log |sort |uniq -c|sort -nr|head
  2. 10680 10.0.21.17
  3. 1702 10.0.20.167
  4. 823 10.0.20.51
  5. 504 10.0.20.255
  6. 215 58.60.188.61
  7. 192 183.17.161.216
  8. 38 112.97.192.16
  9. 20 117.136.31.145
  10. 19 112.97.192.31
  11. 6 113.106.88.10

通过日志查看当天指定ip访问次数过的url和访问次数:

Java代码 
 

  1. #>cat access.log | grep "10.0.21.17" | awk ‘{print $7}‘ | sort | uniq -c
  2. cat access.log | grep "10.0.21.17" | awk ‘{print $7}‘ | uniq -c | sort -nr | head -n 20
  3. 224 /test/themes/default/img/logo_index.gif
  4. 224 /test/themes/default/img/bg_index_head.jpg
  5. 224 /test/themes/default/img/bg_index.gif
  6. 219 /test/vc.php
  7. 219 /
  8. 213 /misc/js/global.js
  9. 211 /misc/jsext/popup.ext.js
  10. 211 /misc/js/common.js
  11. 210 /sladmin/home
  12. 197 /misc/js/flib.js

通过日志查看当天访问次数最多的时间段

Java代码 
 

  1. #>awk ‘{print $4}‘ access.log | grep "24/Mar/2011" |cut -c 14-18|sort|uniq -c|sort -nr|head
  2. 24 16:49
  3. 19 16:17
  4. 16 16:51
  5. 11 16:48
  6. 4 16:50
  7. 3 16:52
  8. 1 20:09
  9. 1 20:05
  10. 1 20:03
  11. 1 19:55

rails日志查询ip访问的排行榜

Ruby代码 
 

  1. cat production.log | grep ‘2010-10-31‘ | awk ‘{print $4}‘| sort -u | wc

-----------------

持续的监视某块网卡的数据流量

其中 eht0 对应你想要监视的网卡 bytes 对应中文版系统的“字节”

1 代表 1秒钟刷新一次

Java代码 
 

  1. watch -n 1 "/sbin/ifconfig eth0 | grep bytes"

------------------

# sar -n DEV -u 1 10

看看当前网络流量

# iostat -t 1 10

看看当前硬盘读写速度

----------------------

查看文件大小

du -h --max-depth=1 /路径

时间: 2024-10-07 05:26:52

linux的一些命令 -查看cc攻击-网口ip统计等的相关文章

Linux系统采用netstat命令查看DDOS攻击的方法

Linux系统采用netstat命令查看DDOS攻击的方法 来源:互联网 作者:佚名 时间:07-05 15:10:21 [大 中 小] 这篇文章主要为大家介绍了Linux系统采用netstat命令查看DDOS攻击的方法,对于网络安全而言非常重要!需要的朋友可以参考下 Linux系统用netstat命令查看DDOS攻击具体命令用法如下: 复制代码 代码如下: netstat -na 显示所有连接到服务器的活跃的网络连接 复制代码 代码如下: netstat -an | grep :80 | so

Linux使用netstat命令查看并发连接数

本文和大家分享的主要是linux使用netstat命令查看并发连接数的相关内容,一起来看看吧,希望对大家学习linux有所帮助. netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' 解释: 返回结果示例: LAST_ACK 5 (正在等待处理的请求数) SYN_RECV 30 ESTABLISHED 1597 (正常数据传输状态) FIN_WAIT1 51 FIN_WAIT2 504 TIME_WAIT 105

Linux使用netstat命令查看并发连接数[转]

转自:http://www.cnblogs.com/wayne173/p/5652043.html Linux使用netstat命令查看并发连接数 我们的网站部署在linux的服务器上,特别是web服务器,我们可能有时候做为运维人员,肯定是要查看网站的并发连接数是不是达到瓶颈等,所以在linux下,我们如何查看服务器的并发连接数呢?使用以下命令即可分组查看各种连接状态哦: netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a,

查看CC攻击

查看所有80端口的连接数 netstat -nat|grep -i "80"|wc -l 对连接的IP按连接数量进行排序 netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n 查看TCP连接状态 netstat -nat |awk '{print $6}'|sort|uniq -c|sort -rn netstat -n | awk '/^tcp/ {++S[$NF]};END {for(a i

linux系统top命令查看系统状态

Linux系统可以通过top命令查看系统的CPU.内存.运行时间.交换分区.执行的线程等信息.通过top命令可以有效的发现系统的缺陷出在哪里.是内存不够.CPU处理能力不够.IO读写过高. 使用SSHClient客户端连接到远程Linux系统.使用top命令查看系统的当前运行的情况.如图对top命令执行的结果做了简单的图解,下面针对每一项做详细的解释.   top命令的第一行"top - 19:56:47 up 39 min,  3 users,  load average: 0.00, 0.0

Linux使用ss命令查看socket状态

ss命令用来显示处于活动状态的套接字信息.ss命令可以用来获取socket统计信息,它可以显示和netstat类似的内容.但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效. 当服务器的socket连接数量变得非常大时,无论是使用netstat命令还是直接cat /proc/net/tcp,执行速度都会很慢.可能你不会有切身的感受,但请相信我,当服务器维持的连接达到上万个的时候,使用netstat等于浪费 生命,而用ss才是节省时间. 所有的TCP

linux网络配置命令 ifconfig 、route 、ip 、ip route

ifconfig route ip ip route 一.ifconfig 命令(查看或配置Ip) 1.查看网络连接 # ifconfig  \\ 显示所有活动连接,不包令禁用的设备 或  # ifconfig -a  \\ 显示所有活动及非活动的连接 显示指定接口的连接 # ifconfig eth1 2.配置ip地址 # ifconfig eth1 192.168.0.1 netmask 255.255.255. 或 # ifconfig eth1 192.168.0.1/24 3.启用或禁

Linux 如何通过命令查看一个文件的某几行(中间几行或最后几行)

linux 如何显示一个文件的某几行(中间几行) [一]从第3000行开始,显示1000行.即显示3000~3999行 cat filename | tail -n +3000 | head -n 1000 [二]显示1000行到3000行 cat filename | head -n 3000 | tail -n +1000 *注意两种方法的顺序 分解: tail -n 1000:显示最后1000行 tail -n +1000:从1000行开始显示,显示1000行以后的 head -n 100

Linux 该文件命令查看内容

Linux系统,请使用以下命令来查看文件的内容: cat tac  从最后一行開始显示,能够看出 tac 是 cat 的倒著写! nl   显示的时候,顺道输出行号! more 一页一页的显示文件内容 less 与 more 类似,可是比 more 更好的是.他能够往前翻页! head 仅仅看头几行 tail 仅仅看尾巴几行 cat cat [-AbEnTv] 选项与參数: -A :相当於 -vET 的整合选项,可列出一些特殊字符而不是空白而已: -b :列出行号,仅针对非空白行做行号显示.空白