发布网友
共5个回答
热心网友
用squid是利用端口映射的功能,可以将80端口转换一下,其实一般的DDOS攻击可以修改/proc/sys/net/ipv4/tcp_max_syn_backlog里的参数就行了,默认参数一般都很小,设为8000以上,一般的DDOS攻击就可以解决了。如果上升到timeout阶段,可以将/proc/sys/net/ipv4/tcp_fin_timeout设小点。
大家都在讨论DDOS,个人认为目前没有真正解决的方法,只是在缓冲和防御能力上的扩充,跟黑客玩一个心理战术,看谁坚持到最后,网上也有很多做法,例如syncookies等,就是复杂点。
sysctl -w net.ipv4.icmp_echo_ignore_all=1
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
sysctl -w net.ipv4.tcp_max_syn_backlog="2048"
sysctl -w net.ipv4.tcp_synack_retries="3"
iptables -A INPUT -i eth0 -p tcp --syn -j syn-flood
# Limit 12 connections per second (burst to 24)
iptables -A syn-flood -m limit --limit 12/s --limit-burst 24 -j RETURN
这个地方可以试着该该:
iptbales -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT
虚拟主机服务商在运营过程中可能会受到黑客攻击,常见的攻击方式有SYN,DDOS等。
通过更换IP,查找被攻击的站点可能避开攻击,但是中断服务的时间比较长。比较彻底
的解决方法是添置硬件防火墙。不过,硬件防火墙价格比较昂贵。可以考虑利用Linux
系统本身提供的防火墙功能来防御。
1. 抵御SYN
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
为了系统重启动时保持上述配置,可将上述命令加入到/etc/rc.d/rc.local文件中。
2. 抵御DDOS
DDOS,分布式拒绝访问攻击,是指黑客组织来自不同来源的许多主机,向常见的端口,如80,
25等发送大量连接,但这些客户端只建立连接,不是正常访问。由于一般Apache配置的接受连接
数有限(通常为256),这些“假” 访问会把Apache占满,正常访问无法进行。
使用ipchains抵御DDOS,就是首先通过netstat命令发现攻击来源地址,然后用ipchains命令阻断
攻击。发现一个阻断一个。
首先查看ipchains服务是否设为自动启动:
chkconfig --list ipchains
热心网友
Linux 防止DDOS方法
方法一:先说这个简单效果不大的方法,Linux一般是apache做web服务软件,一般来说按照访问习惯全是设置的80端口。你可以改变一下服务端口,编辑httpd.conf文件,Linux下不清楚路径可以
find / -name httpd.conf
然后
vi $path$/httpd.conf
找到里面的
listen:80
更改为
listen:8080
重新启动apache,这样你的站点就运行在8080端口下了。
方法二:,方法一中攻击者如果对你足够关注的话还是会再攻击你的8080端口,所以还是会死得很惨,那么如何更有效的阻止攻击呢。这就要用到iptables了,安装一下iptables然后再配置一下。
iptables下载:
http://www.netfilter.org/downloads.html
下载文件的名字一般是iptables-1.*.*.tar.bz2
下载完后解压缩
tar -xvjf ./iptables-1.*.*.tar.bz2 -C /usr/src
我是解压到了/usr/src里
然后
cd /usr/src/iptables-1.*.*
安装:
/bin/sh -c make
/bin/sh -c make install
可以用iptables -V来检查安装是否正确。
如果有问题用这个命令修复一下
cp ./iptables /sbin
iptables的使用:
安装了iptables后先关闭ICMP服务
iptables -A OUTPUT -p icmp -d 0/0 -j DROP
这个是做什么的呢,最简单直观的说就是你服务器上的ip不能被ping到了,这个能防止一部分攻击。
比如你跟你的ISP联系了知道了ddos的来源ip 200.200.200.1可以用下面这个命令来阻止来自这个ip的数据流
iptables -A INPUT -s 200.200.200.1 -j DROP
说明:这个命令里200.200.200.1/24 200.200.200.* 格式都是有效的。
执行完后你输入命令
iptables -L
会看到下面的结果
Chain INPUT (policy ACCEPT)
target prot opt source destination
DROP all -- 200.200.200.1 anywhere
你每输入一个iptables命令都会有个对应的num号,比如上面你执行的这个是第一次执行的那么这个对应的input id就是1,删除这个*只要
iptables -D INPUT 1就可以了。
因为在DDOS这个过程里很多ip是伪造的,如果你能找到他们的来源的mac地址(你太厉害了,太有关系了)那么你还可以用这个命令来禁止来自这个mac地址的数据流:
iptables -A INPUT --mac-source 00:0B:AB:45:56:42 -j DROP
以上是几个简单应用,关于一些别的应用我下面给出的英文文献里还有,大家可以根据自己的情况来利用iptables防止DDOS攻击。
热心网友
这问题很深,主要是在骨干节点配置防火墙,加大主机数量,定期扫面、安装补丁等等。
热心网友
DOOS还没有很好的预防方法,最好的方法就是硬件防火墙
其他方法都不适用
热心网友
用防火墙过滤