linux攻击和防范

当发现系统异常,连接数异常,流量异常,那就要看下系统是否被人恶意攻击了。

作为一个管理员,最常用了解是否攻击的方法就是,完善好监控,例如平时机器流量为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攻击,所以这种方法只治标不治本。攻击的主动和被动,往往取决于哪一方的带宽更大。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>