当发现系统异常,连接数异常,流量异常,那就要看下系统是否被人恶意攻击了。
作为一个管理员,最常用了解是否攻击的方法就是,完善好监控,例如平时机器流量为100Mbps,突然间升到300Mbps甚至更高,你就需要注意了,所以防范攻击,基础就是要监控到。
需要了解的日志文件和查看命令:
1./var/log/secure
2./var/log/message
3.iptables log
4.netstat -an 查看连接数是否异常
常见的几种攻击:
(1)CC类攻击
A.网站出现service unavailable提示
B.CPU占用率很高
C.网络连接状态:netstat –na,若观察到大量的ESTABLISHED的连接状态 单个IP高达几十条甚至上百条
D.外部无法打开网站,软重启后短期内恢复正常,几分钟后又无法访问。
针对命令:
netstat –an |grep ESTABLISHED |wc -l
(2)SYN类攻击
A.CPU占用很高
B.网络连接状态:netstat –na,若观察到大量的SYN_RECEIVED的连接状态
针对命令:netstat –na |grep SYN |awk '{print $5}'
SYN攻击是利用TCP/IP协议3次握手的原理,发送大量的建立连接的网络包,但不实际
建立连接,最终导致被攻击服务器的网络队列被占满,无法被正常用户访问。
Linux内核提供了若干SYN相关的配置,执行命令:
sysctl -a | grep syn
net.ipv4.tcp_max_syn_backlog = 1024
net.ipv4.tcp_syncookies = 0
net.ipv4.tcp_synack_retries = 5
net.ipv4.tcp_syn_retries = 5
tcp_max_syn_backlog是SYN队列的长度,tcp_syncookies是一个开关,是否打开SYN Cookie
功能,该功能可以防止部分SYN攻击。tcp_synack_retries和tcp_syn_retries定义SYN
的重试次数。
加大SYN队列长度可以容纳更多等待连接的网络连接数,打开SYN Cookie功能可以阻止部分
SYN攻击,降低重试次数也有一定效果。
调整上述设置的方法是:
增加SYN队列长度到2048:
sysctl -w net.ipv4.tcp_max_syn_backlog=2048
打开SYN COOKIE功能:
sysctl -w net.ipv4.tcp_syncookies=1
降低重试次数:
sysctl -w net.ipv4.tcp_synack_retries=3
sysctl -w net.ipv4.tcp_syn_retries=3
(3)UDP类攻击
A.观察网卡状况 每秒接受大量的数据包
B.网络状态:netstat –na TCP信息正常
C.网卡是否出现丢包
针对命令:netstat -an TCP
(4)TCP洪水攻击
A.CPU占用很高
B.netstat –na,若观察到大量的ESTABLISHED的连接状态 单个IP高达几十条甚至上百条
针对命令:netstat -nat |awk '{print $6}'|sort|uniq -c|sort -rn 查看TCP连接状态
另外常用的命令:
查看端口连接数最多的20个IP:
netstat -anlp|grep 端口号 |grep tcp|awk '{print $5}' |awk -F: ‘{print $1}’|sort|uniq -c|sort -nr|head -n20
查看具体端口的连接数数量:
netstat -nat|grep -i 端口号 |wc -l
对连接的IP按连接数量进行排序(由多到少):
netstat -ntu | awk ‘{print $5}’ | cut -d: -f1 | sort | uniq -c | sort -rn
查找较多time_wait连接:
netstat -n|grep TIME_WAIT|awk ‘{print $5}’|sort|uniq -c|sort -rn|head -n20
查找较多的SYN连接:
netstat -an | grep SYN | awk ‘{print $5}’ | awk -F: ‘{print $1}’ | sort | uniq -c | sort -nr | more
对于DDOS攻击,只能利用netstat -an发现源连接IP,在使用iptables阻止,但是现在一般的攻击都是使用拟IP攻击,所以这种方法只治标不治本。攻击的主动和被动,往往取决于哪一方的带宽更大。
阅读(647) | 评论(0) | 转发(0) |