免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 16294 | 回复: 14
打印 上一主题 下一主题

[FreeBSD] 如何限制单IP的并发连接数,网站目前被攻击?? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-10-09 10:40 |只看该作者 |倒序浏览
这几天一直被攻击,很多IP确定的连接都是上百个,想限制IP的并发连接数,暂时不用IPFW,服务器不能停,
现在使用MOD_LIMITIP限制IP连接数没能成功
# wget http://dominia.org/djao/limit/mod_limitipconn-0.22.tar.gz
# tar –zxvf mod_limitipconn-0.22.tar.gz
# cd mod_limitipconn-0.22
# vi Makefile
修改相关路径适应你的系统   这里我什么都没改,我改什么都make install 不下去了
# make install

# vi /usr/local/etc/apache22/httpd.conf
=========+===========+===========+============
<IfModule mod_limitipconn.c>
<Location /usr/local/www/apache22/data/jmxy>                        //设置要控制的目录
MaxConnPerIP 10                       //限制单IP最大进程数
</Location>
然后发现攻击者IP连接数量还是那么多,晕了!攻击信息
tcp4       0      0  218.199.48.20.80       119.36.170.158.54093   ESTABLISHED
tcp4       0      0  218.199.48.20.80       119.36.170.158.53781   ESTABLISHED
tcp4       0      0  218.199.48.20.80       119.36.170.158.54152   ESTABLISHED
tcp4       0      0  218.199.48.20.80       119.36.170.158.54146   ESTABLISHED
tcp4       0      0  218.199.48.20.80       119.36.170.158.54117   ESTABLISHED
tcp4       0      0  218.199.48.20.80       119.36.170.158.54110   ESTABLISHED
tcp4       0      0  218.199.48.20.80       119.36.170.158.54077   ESTABLISHED
tcp4       0      0  218.199.48.20.80       119.36.170.158.54057   ESTABLISHED
tcp4       0      0  218.199.48.20.80       119.36.170.158.54048   ESTABLISHED
tcp4       0      0  218.199.48.20.80       119.36.170.158.54028   ESTABLISHED
tcp4       0      0  218.199.48.20.80       119.36.170.158.54019   ESTABLISHED
tcp4       0      0  218.199.48.20.80       119.36.170.158.54018   ESTABLISHED
tcp4       0      0  218.199.48.20.80       119.36.170.158.53987   ESTABLISHED
tcp4       0      0  218.199.48.20.80       119.36.170.158.53940   ESTABLISHED
tcp4       0      0  218.199.48.20.80       119.36.170.158.53930   ESTABLISHED
tcp4       0      0  218.199.48.20.80       119.36.170.158.53919   ESTABLISHED
tcp4       0      0  218.199.48.20.80       119.36.170.158.53897   ESTABLISHED
tcp4       0      0  218.199.48.20.80       119.36.170.158.53879   ESTABLISHED
tcp4       0      0  218.199.48.20.80       119.36.170.158.53836   ESTABLISHED
tcp4       0      0  218.199.48.20.80       119.36.170.158.53829   ESTABLISHED
tcp4       0      0  218.199.48.20.80       119.36.170.158.53808   ESTABLISHED
tcp4       0      0  218.199.48.20.80       119.36.170.158.53751   ESTABLISHED
tcp4       0      0  218.199.48.20.80       119.36.170.158.53731   ESTABLISHED
tcp4       0      0  218.199.48.20.80       119.36.170.158.53684   ESTABLISHED
tcp4       0      0  218.199.48.20.80       58.19.202.18.13769     ESTABLISHED
tcp4       0      0  218.199.48.20.80       119.36.153.133.44881   ESTABLISHED
tcp4       0      0  218.199.48.20.80       119.36.153.133.44879   ESTABLISHED
tcp4       0      0  218.199.48.20.80       119.36.153.133.44883   ESTABLISHED
tcp4       0      0  218.199.48.20.80       119.36.153.133.44882   ESTABLISHED
tcp4       0      0  218.199.48.20.80       119.36.153.133.44880   ESTABLISHED
tcp4       0      0  218.199.48.20.80       119.36.153.133.44878   ESTABLISHED
tcp4       0      0  218.199.48.20.80       119.36.153.133.44834   ESTABLISHED
tcp4       0      0  218.199.48.20.80       119.36.153.133.44833   ESTABLISHED
tcp4       0      0  218.199.48.20.80       119.36.153.133.44832   ESTABLISHED
tcp4       0      0  218.199.48.20.80       119.36.153.133.44831   ESTABLISHED
tcp4       0      0  218.199.48.20.80       119.36.153.133.44830   ESTABLISHED
tcp4       0      0  218.199.48.20.80       119.36.153.133.44829   ESTABLISHED
tcp4       0      0  218.199.48.20.80       119.36.153.133.44742   ESTABLISHED
tcp4       0      0  218.199.48.20.80       119.36.153.133.44683   ESTABLISHED
tcp4       0      0  218.199.48.20.80       119.36.153.133.44792   ESTABLISHED
tcp4       0      0  218.199.48.20.80       119.36.153.133.44820   ESTABLISHED
tcp4       0      0  218.199.48.20.80       119.36.153.133.44810   ESTABLISHED
tcp4       0      0  218.199.48.20.80       119.36.153.133.44808   ESTABLISHED
tcp4       0      0  218.199.48.20.80       119.36.153.133.44789   ESTABLISHED
tcp4       0      0  218.199.48.20.80       119.36.153.133.44771   ESTABLISHED
tcp4       0      0  218.199.48.20.80       119.36.153.133.44782   ESTABLISHED
tcp4       0      0  218.199.48.20.80       119.36.153.133.44779   ESTABLISHED
tcp4       0      0  218.199.48.20.80       119.36.153.133.44772   ESTABLISHED
tcp4       0      0  218.199.48.20.80       222.58.8.100.2284      SYN_RCVD
tcp4       0      0  218.199.48.20.80       222.58.8.100.2282      SYN_RCVD
tcp4       0      0  218.199.48.20.80       222.58.8.100.2280      SYN_RCVD
tcp4       0      0  218.199.48.20.80       222.58.8.100.2278      SYN_RCVD
tcp4       0      0  218.199.48.20.80       222.58.8.100.2276      SYN_RCVD
tcp4       0      0  218.199.48.20.80       222.58.8.100.2274      SYN_RCVD
tcp4       0      0  218.199.48.20.80       222.58.8.100.2272      SYN_RCVD
tcp4       0      0  218.199.48.20.80       222.58.8.100.2270      SYN_RCVD
tcp4       0      0  218.199.48.20.80       222.58.8.100.2268      SYN_RCVD
tcp4       0      0  218.199.48.20.80       222.58.8.100.2266      SYN_RCVD
tcp4       0      0  218.199.48.20.80       222.58.8.100.2264      SYN_RCVD
tcp4       0      0  218.199.48.20.80       222.58.8.100.2262      SYN_RCVD
tcp4       0      0  218.199.48.20.80       222.58.8.100.2260      SYN_RCVD
tcp4       0      0  218.199.48.20.80       222.58.8.100.2258      SYN_RCVD
tcp4       0      0  218.199.48.20.80       222.58.8.100.2256      SYN_RCVD
tcp4       0      0  218.199.48.20.80       222.58.8.100.2254      SYN_RCVD
tcp4       0      0  218.199.48.20.80       222.58.8.100.2252      SYN_RCVD
tcp4       0      0  218.199.48.20.80       222.58.8.100.2250      SYN_RCVD
tcp4       0      0  218.199.48.20.80       222.58.8.100.2248      SYN_RCVD
tcp4       0      0  218.199.48.20.80       222.58.8.100.2246      SYN_RCVD
tcp4       0      0  218.199.48.20.80       222.58.8.100.2244      SYN_RCVD
tcp4       0      0  218.199.48.20.80       222.58.8.100.2242      SYN_RCVD
tcp4       0      0  218.199.48.20.80       222.58.8.100.2283      SYN_RCVD
tcp4       0      0  218.199.48.20.80       222.58.8.100.2281      SYN_RCVD
tcp4       0      0  218.199.48.20.80       222.58.8.100.2279      SYN_RCVD
tcp4       0      0  218.199.48.20.80       222.58.8.100.2277      SYN_RCVD
tcp4       0      0  218.199.48.20.80       222.58.8.100.2275      SYN_RCVD
tcp4       0      0  218.199.48.20.80       222.58.8.100.2273      SYN_RCVD
tcp4       0      0  218.199.48.20.80       222.58.8.100.2271      SYN_RCVD
tcp4       0      0  218.199.48.20.80       222.58.8.100.2269      SYN_RCVD
tcp4       0      0  218.199.48.20.80       222.58.8.100.2267      SYN_RCVD
tcp4       0      0  218.199.48.20.80       222.58.8.100.2265      SYN_RCVD
tcp4       0      0  218.199.48.20.80       222.58.8.100.2263      SYN_RCVD
tcp4       0      0  218.199.48.20.80       222.58.8.100.2261      SYN_RCVD
tcp4       0      0  218.199.48.20.80       222.58.8.100.2259      SYN_RCVD
tcp4       0      0  218.199.48.20.80       222.58.8.100.2257      SYN_RCVD
tcp4       0      0  218.199.48.20.80       222.58.8.100.2255      SYN_RCVD
tcp4       0      0  218.199.48.20.80       222.58.8.100.2253      SYN_RCVD
tcp4       0      0  218.199.48.20.80       222.58.8.100.2251      SYN_RCVD
tcp4       0      0  218.199.48.20.80       222.58.8.100.2249      SYN_RCVD
tcp4       0      0  218.199.48.20.80       222.58.8.100.2247      SYN_RCVD
tcp4       0      0  218.199.48.20.80       222.58.8.100.2245      SYN_RCVD
tcp4       0      0  218.199.48.20.80       222.58.8.100.2243      SYN_RCVD
tcp4       0      0  218.199.48.20.80       222.58.8.100.2241      SYN_RCVD
在线等!!
LoadModule limitipconn_module libexec/apache22/mod_limitipconn.so 模块已经加载了,为什么不生效了!
apache重启也出现错误信息,以前没有的,难道是攻击导致的!
Performing sanity check on apache22 configuration:
Syntax OK
apache22 not running? (check /var/run/httpd.pid).
Performing sanity check on apache22 configuration:
Syntax OK
Starting apache22.
(4Address already in use: make_sock: could not bind to address 218.199.48.20:80
no listening sockets available, shutting down
Unable to open logs
大家给点建议啊!

[ 本帖最后由 smilecat 于 2008-10-9 10:49 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2008-10-09 15:47 |只看该作者
mod_limitipconn并不能增强WEB服务器的负载能力反而会使其变坏。目前效率比较高的方案是在防火墙上限制单个IP到80的连接数量,现在给出一个PF防火墙实例:

###block this IP if threads from the IP more than allowd###
table <abusive_hosts> persist
block in quick on $ext_if inet proto tcp from <abusive_hosts> to $web port 80
pass in quick on $ext_if proto tcp from any to $web port 80 flags S/SA keep \
state (max-src-conn 100, max-src-conn-rate 3/1, max-src-states 5 overload \
<abusive_hosts> flush)

###limit threads from one IP and block the more threads###
pass in on $ext_if proto tcp to $web_server port www flags S/SA keep state \
(max 2000, source-track rule, max-src-nodes 1000, max-src-states 3)


第一种规则比较严格,如IP连接数超出限制直接封掉这个IP一段时间;
第二种规则只是限制了过多的连接数。

论坛徽章:
0
3 [报告]
发表于 2008-10-09 15:56 |只看该作者
我现在肯定不能编译内核吧,以动态模块的形式加载可以么,直接在rc.conf里面加入pf_enable="YES"就可以了么,然后按照大哥提供的规则修改=/etc/pf.conf么

论坛徽章:
0
4 [报告]
发表于 2008-10-09 16:20 |只看该作者
ext_if 我知道定义网卡,WEB怎么定义啊

www# pfctl -f /etc/pf.conf
No ALTQ support in kernel
ALTQ related functions disabled
/etc/pf.conf:39: macro 'web' not defined
/etc/pf.conf:39: syntax error
/etc/pf.conf:40: macro 'web' not defined
pfctl: Syntax error in config file: pf rules not loaded

论坛徽章:
0
5 [报告]
发表于 2008-10-09 16:56 |只看该作者
我直接定义了web=IP然后就启动了规则,不过好像没效果啊,我用netstat -na 查看还是很多连接,一个人都上百条!是我哪里做错了么!!

论坛徽章:
0
6 [报告]
发表于 2008-10-10 16:48 |只看该作者
服务器上面打开了pf防火墙,不过是挂的模块,没有重新编译内核,现在我也不知道防火墙是不是正常,大家帮我看看
ext_if="bge0"
web="{127.0.0.1}"
ports="{80}"

###block this IP if threads from the IP more than allowd###
table <abusive_hosts> persist
block in quick on $ext_if inet proto tcp from <abusive_hosts> to $web port 80
pass in quick on $ext_if proto tcp from any to $web port 80 flags S/SA keep \
state (max-src-conn 100, max-src-conn-rate 3/1, max-src-states 5 overload \
<abusive_hosts> flush)
就只用了这一点点配置,感觉好像连接还是挺多的,
www# pfctl -si
No ALTQ support in kernel
ALTQ related functions disabled
Status: Enabled for 0 days 00:19:27           Debug: Urgent

State Table                          Total             Rate
  current entries                        0
  searches                          128597          110.2/s
  inserts                                0            0.0/s
  removals                              15            0.0/s
Counters
  match                             128597          110.2/s
  bad-offset                             0            0.0/s
  fragment                               0            0.0/s
  short                                  0            0.0/s
  normalize                              0            0.0/s
  memory                                 0            0.0/s
  bad-timestamp                          0            0.0/s
  congestion                             0            0.0/s
  ip-option                              0            0.0/s
  proto-cksum                            1            0.0/s
  state-mismatch                         0            0.0/s
  state-insert                           0            0.0/s
  state-limit                            0            0.0/s
  src-limit                              0            0.0/s
  synproxy                               0            0.0/s
后面的的rate越来越大啊,感觉很恐怖啊!

论坛徽章:
0
7 [报告]
发表于 2008-10-10 19:34 |只看该作者
这里居然还有比我更菜的人..............

我顺便问一下

“封一段时间”是封多久?

论坛徽章:
0
8 [报告]
发表于 2008-10-10 23:27 |只看该作者
楼上的我对你无语了!!!!!你不回帖没人认为你不存在!

论坛徽章:
0
9 [报告]
发表于 2008-10-11 00:06 |只看该作者
这个,说实话。。
楼主配置web的ip地址为127.0.0.1确实有些搞笑。
不过这和freebsd没关系,这是属于网络基础方面的东西。

web要么配置为你的外网的真实ip。要吗干脆使用$ext_if ,pf会自动识别配置在$ext_if网卡上的ip地址。
即修改

web="{127.0.0.1}"

web="真实ip"

论坛徽章:
0
10 [报告]
发表于 2008-10-11 02:00 |只看该作者
原帖由 feillex 于 2008-10-11 00:06 发表
这个,说实话。。
楼主配置web的ip地址为127.0.0.1确实有些搞笑。
不过这和freebsd没关系,这是属于网络基础方面的东西。

web要么配置为你的外网的真实ip。要吗干脆使用$ext_if ,pf会自动识别配置在$ext_i ...


127.0.0.1是我参考论坛里面《freebsd服务器托管一般性设置》写的,开始我写的是我的公网IP,结果我用域名无法访问主页,IP确可以,所以我就换成了127.0.0.1,发现IP域名都能访问,我相信我的网络基础不比你差!交换路由我也搞了几年,最近才管理服务器,我确实没用过PF,所以那些宏定义不清楚,你说配置公网IP,直接用$ext_if我都用过了,都不行的,我不知道哪里搞笑!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP