linux系统怎么防止DDOS攻击

题目如上

用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
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2019-01-16
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攻击。本回答被网友采纳
第2个回答  2019-11-25
这问题很深,主要是在骨干节点配置防火墙,加大主机数量,定期扫面、安装补丁等等。
第3个回答  2013-09-13
DOOS还没有很好的预防方法,最好的方法就是硬件防火墙
其他方法都不适用
第4个回答  2013-09-13
用防火墙过滤
相似回答