仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 820|回复: 8
打印 上一主题 下一主题

[CentOS(社区)] 来一发nginx 主动封 ip 太高毗连

[复制链接]
透明 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-14 20:27:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的小伙伴们!用下令检察web毗连太高的IP地点,可是必要野生智能往封,太贫苦了,间接写个剧本主动办理。web办事器是用nginx,python为2.6
  起首在nignx的config中创建空文件deny.ip,然后在nginx.conf的http标签中增加“includedeny.ip;”。在nginx下sbin的目次中放进主动剧本。剧本能够查到毗连最年夜的IP,并拔出屏障列表中,考证准确性后导进设置。全体完成大概堕落后发送邮件。被封ip再次会见会报403毛病,假如不但愿报错能够跳转到别的页面。源码以下:

check_deny_up.py启动i剧本
  1. #!/bin/python#-*-coding:utf-8-*-#Filename:main.py#Revision:1.0#Date:2012-06-20#Author:simonzhang#web:www.simonzhang.net#Email:simon-zzm@163.com###ENDINITINFOimportosfromstringimportstripfromemail.mime.textimportMIMETextimportsmtplib####check_comm="/bin/netstat-antp|grep:80|awk{print$5}|awk-F:{print$1}|sort-r|uniq-c|sort-n-k1-r"max_ip=100mail_host=‘’;mail_user=‘’;mail_pwd=‘’;mail_to=‘’;mail_cc=‘’;defreboot_nginx_sendmail(ip_list):####rebootnginx_get_check_confile=os.popen(./nginx-t).readlines()ifstr(_get_check_confile.find(ok))!=-1:os.system(./nginx-sreload)_mail_content=ip_listelse:_mail_content=Error####sendmailmsg=MIMEText(_mail_content)msg[From]=mail_usermsg[Subject]=forceip.msg[To]=mail_totry:s=smtplib.SMTP()s.connect(mail_host)s.login(mail_user,mail_pwd)s.sendmail(mail_user,[mail_to,mail_cc],msg.as_string())s.close()exceptException,e:printe####forceoutIPdefforce_out(_deny_ip):_write_status=0_read_force_file=open(../conf/deny.ip,rb).read()ifstr(_read_force_file.find(_deny_ip))==-1:try:_get_force_file=open(../conf/deny.ip,ab)_get_force_file.write(deny%s;
  2. %_deny_ip)_get_force_file.close()_write_status=1return_write_statusexcept:return_write_statusreboot_nginx_sendmail("Error!")return_write_statusdefmain():get_high_ip=os.popen(%s%check_comm).readlines()_count_force_ip=0_force_ip_list=foriinxrange(3):try:_get_count=strip(get_high_ip[i]).split()[0]_get_ip=strip(strip(get_high_ip[i]).split()[1])except:_get_count=0_get_ip=#MaximumconnectionIPisBeyondthelimitvalueif(int(_get_count)>max_ip)and(len(_get_ip)>0):force_ip=_get_ip_get_status=force_out(force_ip)#checkmaximumisaddedinthedeny.ipfileifstr(_get_status)==1:_count_force_ip+=1_force_ip_list+=%s%force_ip#if_count_force_ip>0:#reboot_nginx_sendmail(_force_ip_list)if__name__==__main__:main()
复制代码
check_deny_up.sh
  1. #!/bin/bash##makesimon-zzm@163.com#####ENDINITINFO#Sourcefunctionlibrary../etc/profilecd/Data/apps/nginx/sbin/#Seehowwewerecalled.case"$1"instart)/usr/local/bin/pythoncheck_ip_deny.py;;*)echo$"Usage:$0{start}"exit1esacexit
复制代码
将启动剧本放在crontab中运转。


如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的小伙伴们!
海妖 该用户已被删除
沙发
发表于 2015-1-16 18:05:18 | 只看该作者

来一发nginx 主动封 ip 太高毗连

期间我阅读了不少关于Linux的相关资料,其中也不乏一些有趣的小故事,这既丰富了我的课余生活,也让我加深了对一些术语的理解,比玩游戏强多了。?
山那边是海 该用户已被删除
板凳
发表于 2015-1-25 21:30:30 | 只看该作者
说实话小时候没想过搞IT,也计算机了解也只是一些皮毛,至于什么UNIX,Linux,听过没见过,就更别说用过了。?
简单生活 该用户已被删除
地板
发表于 2015-2-4 13:30:41 | 只看该作者
可以说自己收获很大,基本上完成了老师布置的任务,对于拔高的题目没有去做,因为我了解我的水平,没有时间和精力去做。?
小女巫 该用户已被删除
5#
发表于 2015-2-10 00:20:14 | 只看该作者
甚至目前许多应用软件都是基于它的。可是没有哪一个系统是十分完美的。
蒙在股里 该用户已被删除
6#
发表于 2015-2-28 15:23:49 | 只看该作者
我是学习嵌入式方向的,这学期就选修了这门专业任选课。
不帅 该用户已被删除
7#
发表于 2015-3-10 06:52:30 | 只看该作者
主流Linux发行版都自带非常详细的文档(包括手册页和FAQ),从系统安装到系统安全,针对不同层次的人的详尽文档,仔细阅读文档后40%问题都可在此解决。
金色的骷髅 该用户已被删除
8#
发表于 2015-3-17 06:10:13 | 只看该作者
选择一些适于初学者的Linux社区。
若天明 该用户已被删除
9#
发表于 2015-3-24 01:09:09 | 只看该作者
对于英语不是很好的读者红旗 Linux、中标Linux这些中文版本比较适合。现在一些Linux网站有一些Linux版本的免费下载,这里要说的是并不适合Linux初学者。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 13:55

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表