|
2006-08-14 20:46
|
|
|
状态如下.ps -ef查看进程正常 netstat -na看到大量的ip在访问80端口, tcp 0 0 61.172.249.46:80 143.132.65.32:1334 SYN_RECV tcp 0 0 61.172.249.46:80 103.34.209.32:25992 SYN_RECV tcp 0 0 61.172.249.46:80 99.65.90.0:5428 SYN_RECV tcp 0 0 61.172.249.46:80 26.57.70.224:7874 SYN_RECV tcp 0 0 61.172.249.46:80 176.61.241.0:28757 SYN_RECV tcp 0 0 61.172.249.46:80 185.198.96.80:26481 SYN_RECV tcp 0 0 61.172.249.46:80 209.80.114.136:40639 SYN_RECV tcp 0 0 61.172.249.46:80 113.70.160.160:47573 SYN_RECV tcp 0 0 61.172.249.46:80 154.113.171.112:19495 SYN_RECV tcp 0 0 61.172.249.46:80 178.22.235.176:63834 SYN_RECV tcp 0 0 61.172.249.46:80 158.176.5.0:61336 SYN_RECV tcp 0 0 61.172.249.46:80 38.194.117.48:20402 SYN_RECV tcp 0 0 61.172.249.46:80 46.141.23.224:29051 SYN_RECV tcp 0 0 61.172.249.46:80 175.123.157.160:15245 SYN_RECV tcp 0 0 61.172.249.46:80 16.184.30.254:33429 SYN_RECV tcp 0 0 61.172.249.46:80 197.230.231.0:34860 SYN_RECV tcp 0 0 61.172.249.46:80 76.93.147.32:40031 SYN_RECV tcp 0 0 61.172.249.46:80 31.147.159.128:19903 SYN_RECV tcp 0 0 61.172.249.46:80 34.4.86.160:50807 SYN_RECV tcp 0 0 61.172.249.46:80 35.124.94.32:55191 SYN_RECV tcp 0 0 61.172.249.46:80 59.57.40.192:19652 SYN_RECV tcp 0 0 61.172.249.46:80 207.224.31.96:11032 SYN_RECV tcp 0 0 61.172.249.46:80 90.211.162.192:650 SYN_RECV tcp 0 0 61.172.249.46:80 162.184.111.96:7784 SYN_RECV tcp 0 0 61.172.249.46:80 111.233.90.32:46638 SYN_RECV tcp 0 0 61.172.249.46:80 200.173.57.0:21613 SYN_RECV tcp 0 0 61.172.249.46:80 93.14.106.160:34683 SYN_RECV tcp 0 0 61.172.249.46:80 181.244.191.32:34864 SYN_RECV tcp 0 0 61.172.249.46:80 66.166.233.0:51116 SYN_RECV tcp 0 0 61.172.249.46:80 191.230.67.32:27446 SYN_RECV tcp 0 0 61.172.249.46:80 174.177.149.212:28999 SYN_RECV tcp 0 0 61.172.249.46:80 20.76.28.144:58207 SYN_RECV tcp 0 0 61.172.249.46:80 143.206.23.0:49406 SYN_RECV tcp 0 0 61.172.249.46:80 77.209.246.239:47445 SYN_RECV .................... ..................... 根据连接状态看,我觉得像是用了ip地址欺骗,现在我的网站不能访问了,请大家帮帮我,如何用iptables把针对80口的碎片虑掉 ------------------------------- 没认知道吗???我很着急啊 -0------------------------------------------------ 折衷的办法有,比如缩短tcp连接时间,增加tcp连接队列长度,用设备或者dns作负载均衡,缓解压力。找一些抗IDS的设备. 不过如果对方带宽,机器足够,你就认命吧 --------------------------------------------------------- 你说的没用的,缩短连接时间根本不行,你不知道同时有多少个请求,将近1000个啊,而且我只有一台机器啊 现在不是带宽的问题,是对方发大量的请求阻塞了我的apche -------------------------------------------------------- 这似乎是syn flood攻击,linux kernel中有个syncookie选项,将它打开可以抵挡syn flood攻击。不过我原来有过一次经验是,如果对方用很快的速度发送大量的SYN包,打开syncookie之后机器会当掉,不打开反倒只是端口无法访问。如果对方是慢速SYN flood, syncookie应该可以起作用。无论如何,你可以先试一下。 现在似乎新版本的redhat linux缺省已经打开了syncookie选项,但是没有使用。你可以先执行下列命令: # cat /proc/sys/net/ipv4/tcp_syncookies 如果显示为零,说明当前内核支持syncookie,但还没有使用。 那么再执行下列命令即可使用syncookie: # echo 1 >/proc/sys/net/ipv4/tcp_syncookies 最好重启动一下apache,再看看效果。 这个设置重启动系统后会丢失,可以在/etc/rc.d/rc.local中将上面那条命令加上去。 如果第一条命令报没有文件,那么你需要重新编译内核: TCP/IP networking ... IP: TCP syncookie support (disabled per default) 然后在 /etc/rc.d/rc.local中增加下列命令: echo 1 >/proc/sys/net/ipv4/tcp_syncookies 用新内核启动. -------------------------------------------------------- 谢谢你,对方现在已经停止攻击了,我会试试的 ----------------------------------------------------------- 如果情况允许,最方便的办法是: 使用安全产品---“黑洞”!现在是要解决问题,也不用太拘束了吧!:) 至少它能比较干脆的解决DOS攻击 http://www.nsfocus.com/homepage/products/collapsar.htm ---------------------------------------------------------------- 根据我的经验,强烈反对打开syn cookie,这样在重负载的机器上甚至会影响自身的服务。 而且 syn cookie比较消耗 cpu,本来只是port 80,现在变成机器upload上升了. 一个比较典型的例子是,如果本机开了8080或者java server (比如resin port 6802) syn cookie就会坏大事 缩短msl 时间是个很好的办法,虽然linux可能需要rebuild kernel.在fbsd下面可以用sysctl控制msl,这样会好很多 黑洞也不是一劳永逸把 ,就算它称得住,交换机是否能撑得住 -------------------------------------------------------------------------------- > 黑洞也不是一劳永逸把 ,就算它称得住,交换机是否能撑得住 尽在那里瞎扯咸淡,这种DoS哪有什么一劳永逸的办法 --------------------------------------------------------------------------------------- > 黑洞也不是一劳永逸把 ,就算它称得住,交换机是否能撑得住 嘿嘿,要想找一劳永逸的解决方案,那就网线拔掉,什么Flood都不管用了。 黑洞只能保证它后面保护的主机和网络正常,如果交换机或路由器撑不住,那已经不是syn flood,而是带宽占用攻击了,如果人家带宽大,那你就只能干挨着了。 ------------------------------------------------------------------------------------ 我也遭受过,syn connection达到了4000多,超过我设置的4096的限制。 我觉得把syn_retries设置为0应该满管用的,省得没完没了地重复。 不过那次攻击最后我也不清楚是参数设置对了还是对方停止了攻击。 syn_cookie我也打开了,应该负载不是很高吧?我服务器目前平均每秒大概有100个新连接请求。现在 syn connection稳定在30-50之间。 还有一个辅助手段,用shell脚本写一个监控,用crontab加载,每分钟检测一下netstat,一旦发现某来源ip连接过多,立即用ipchains将其屏蔽,不过对于伪造来源的攻击,不能说一点用都没有,但是意义似乎也不是很大。 --- 我倒是觉得你应该在路由设备上做一点努力, 首先在你的路由器上作rate limit,限制syn,慢点可以,不要搞死你的系统。 然后在你的上级路由器做ip verify unicast reverse-path,这个应该会有些做用。 --- 这个畜生一到晚上就开始攻击,我的机器是在机房托管的,那里的网管说必须么付钱才给我我们作安全设置,简直是没有人性。大家说的办法我都试过了,没有用处。我装了一个snort,检查出来的ip全是127网段的,明显是ip地址欺骗,有没有办法找出这个畜生的真是IP啊。谢谢大家了 --------------------------- 啊?目前而言根据我的个人经验缺乏路由层面的支持你简直没有什么真正可以做的,投诉那个网管! 你看到的ip都是127网段的么?可是上面netstat的输出不是阿,如果都是一个网段的就很好办了呀 --- 我要更好的生活 ---------------------------------------- 有条件的话做负载均衡。。哈哈 他是主机托管,路由器让他摸么?KAO!~ 建议缩短msl验证时间。可能会造成正常访问也丢包的问题。不能一举两得呀。。 南阳岩冰 编辑于 2002-09-22 04:31 ------------------------------------------------------ 大侠们,我一点办法也没有了下面是我核心参数的调整 net.ipv4.tcp_syn_retries=0 net.ipv4.tcp_syncookies=1 net.ipv4.tcp_fin_timeout=20 net.ipv4.tcp_synack_retries=2 可以对方一攻击我的系统就完蛋了,求大家帮忙想想办法啊 --------------------------------------------- 我的教本 #!/bin/sh IPTABLES="/sbin/iptables" echo "Flushing rules..." $IPTABLES -F $IPTABLES -X #Set default policies to DROP $IPTABLES -F INPUT $IPTABLES -F OUTPUT $IPTABLES -F FORWARD $IPTABLES -P INPUT ACCEPT $IPTABLES -P OUTPUT ACCEPT LOOP_IF="lo" ########################################################################### #----Set network sysctl options-----# echo "--Setting sysctl options--" echo "Disabling IP Spoofing attacks" echo 2 > /proc/sys/net/ipv4/conf/all/rp_filter echo "Disabling respond to broadcast pings" echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts echo "Blocking source routing" echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route echo "Kill timestamps" echo 0 > /proc/sys/net/ipv4/tcp_timestamps echo "Enable SYN Cookies" echo 1 > /proc/sys/net/ipv4/tcp_syncookies echo "Kill redirects" echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects echo "Enabling bad error message protection" echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses echo "Logging martians (packets with impossible addresses)" echo 1 > /proc/sys/net/ipv4/conf/all/log_martians echo "Reducing DoS'ing ability by reducing timeouts" echo 60 > /proc/sys/net/ipv4/tcp_fin_timeout echo 2400 > /proc/sys/net/ipv4/tcp_keepalive_time echo 0 > /proc/sys/net/ipv4/tcp_window_scaling echo 0 > /proc/sys/net/ipv4/tcp_sack echo "Done..." ######################################################################### echo "--Setting up standard rules--" echo "Allow unlimited traffic on the loopback interface" $IPTABLES -A INPUT -i lo -j ACCEPT $IPTABLES -A OUTPUT -o lo -j ACCEPT echo "Enabling SYN-FLOODING PROTECTION" $IPTABLES -N syn-flood $IPTABLES -A INPUT -p tcp --syn -j syn-flood $IPTABLES -A syn-flood -m limit --limit 1/s --limit-burst 4 -j RETURN $IPTABLES -A syn-flood -j DROP echo "Making sure NEW tcp connections are SYN packets" $IPTABLES -A INPUT -p tcp ! --syn -m state --state NEW -j DROP echo "Logging fragments caught" $IPTABLES -N fragments $IPTABLES -A INPUT -f -j fragments $IPTABLES -A fragments -j LOG --log-prefix "IPTABLES FRAGMENTS:" $IPTABLES -A fragments -j DROP echo "Refusing spoofed packets pretending to be from your IP address" #$IPTABLES -A INPUT -s $NET_IPADDR -j DROP echo "Done..." 一点用处也没有 --------------------------------------------------------- 我认为,不在你以及你的上级路由器方面做工作的话 你只有干看着 --- 我要更好的生活 Yiming Gong yiming at security.zz.ha.cn http://security.zz.ha.cn http://staff.washington.edu/dittrich/misc/ddos/ 看看,也许有帮助 caozheng 编辑于 2002-09-23 15:28 --- 桑拿洗得领导暖, 麻将输到心胆寒。 更烦小姐肌胜雪, 三陪客户我买单。 我的感觉:你还是从内部检查做起。因为如果真的做DDOS的话,一定情况下,使用随机的源IP还不如使用真实的IP效果好。路由器有一个功能好象是用来过滤这个的 所以,也请yiminggong能讲清楚一点。大家也学习学习。 关于cisco的DDoS的一片东西 http://www.cisco.com/warp/public/707/newsflash.html --- 我要更好的生活 Yiming Gong yiming at security.zz.ha.cn http://security.zz.ha.cn | |
| 共:1条记录 |