免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: king_819
打印 上一主题 下一主题

Linux/unix安全优化的讨论与案例分享(获奖名单已公布) [复制链接]

论坛徽章:
0
81 [报告]
发表于 2012-03-14 10:59 |只看该作者
分享一个日志分析的脚本,查找可疑的IP并拒绝掉
  1. #!/bin/sh  
  2. ### FileName: ddos_drop.sh
  3. ### Auth: Sunshine GU

  4. ###程序文件路径
  5. nginx_log_file=/home/wwwlogs/access.log
  6. apache_log_file=/var/log/httpd/access.log

  7. ###IP列表存储路径
  8. grep_list=drop_ip.dat
  9. ###IP列表排除
  10. else_list='192.168.14|127.0.0.1|0.0.0.0'

  11. ###监控端口
  12. grep_port='80|8080|443'

  13. ###执行间隔时间(s)
  14. exec_time=60

  15. ###清空旧的非法IP
  16. if [ -e $grep_list ];then
  17.    rm -f $grep_list
  18. fi

  19. ###服务器为nginx,则启动此过程
  20. nginx_moudle() {
  21. tail $nginx_log_file -n 1000|grep -E 'GET|POST'|awk {'print $1'}|sort|uniq -c|sort -nr|awk '{if ($2!="-" && $1>100) {print $2}}' > $grep_list
  22. for i in `cat $grep_list`
  23. do
  24.   if [ $i!=`iptables --list|grep $i|awk {'print $4'}` ];
  25.   then
  26.     /sbin/iptables -I INPUT -s $i -j DROP;
  27.   fi
  28. done
  29. }

  30. ###服务器为apache,则启动此过程
  31. apache_moudle() {
  32. tail $apache_log_file -n 1000|grep -E 'GET|POST'|awk {'print $1'}|sort|uniq -c|sort -nr|awk '{if ($2!="-" && $1>100) {print $2}}' > $grep_list
  33. for i in `cat $grep_list`
  34. do
  35.   if [ $i!=`iptables --list|grep $i|awk {'print $4'}` ];
  36.   then
  37.     /sbin/iptables -I INPUT -s $i -j DROP;
  38.   fi
  39. done
  40. }

  41. ###根据连接状态进行IP屏蔽
  42. netstat_moudle() {
  43. /bin/netstat -ant |grep -E $grep_port|awk '{print $5}'|awk -F : '{print $1}'|sort|uniq -c|sort -rn|grep -v -E $else_list|awk '{if ($2!=null && $1>50) {print $2}}' > $grep_list
  44. for i in `cat $grep_list`
  45. do
  46.   if [ $i!=`iptables --list|grep $i|awk {'print $4'}` ];
  47.   then
  48.     /sbin/iptables -I INPUT -s $i -j DROP;
  49.   fi
  50. done
  51. }

  52. ###启动命令控制
  53. case "$1" in
  54.   nginx)
  55.         while true
  56.         do
  57.         nginx_moudle
  58.         sleep $exec_time
  59.         done
  60.         ;;
  61.   apache)
  62.         while true
  63.         do
  64.         apache_moudle
  65.         sleep $exec_time
  66.         done
  67.         ;;
  68.   netstat)
  69.         while true
  70.         do
  71.         netstat_moudle
  72.         sleep $exec_time
  73.         done
  74.         ;;
  75.   *)
  76.         echo $"Usage: $prog {nginx|apache|netstat}"
  77.         exit 1
  78. esac
复制代码

论坛徽章:
0
82 [报告]
发表于 2012-03-14 11:01 |只看该作者
回复 80# king_819


很不错的分享,写的很详细,学习了



   

论坛徽章:
0
83 [报告]
发表于 2012-03-14 11:06 |只看该作者
安全守则

1. 废除系统所有默认的帐号和密码。  
2. 在用户合法性得到验证前不要显示公司题头、在线帮助以及其它信息。  
3. 废除“黑客”可以攻击系统的网络服务。  
4. 使用8位以上的组合式密码,ssh服务最好使用key认证。  
5. 限制用户尝试登录到系统的次数。  
6. 记录违反安全性的情况并对安全记录进行复查。  
7. 对于重要信息,上网传输前要先进行加密。  
8. 重视专家提出的建议,安装他们推荐的系统“补丁”。  
9. 限制不需密码即可访问的主机文件。  
10.修改网络配置文件,以便将来自外部的TCP连接限制到最少数量的端口。不允许诸如tftp,sunrpc,printer,rlogin或rexec之类的协议。  
11.用upas代替sendmail。sendmail有太多已知漏洞,很难修补完全。  
12.去掉对操作并非至关重要又极少使用的程序。  
13.使用chmod将所有系统目录变更为711模式。这样,攻击者们将无法看到它们当中有什么东西,而用户仍可执行。  
14.只要可能,就将磁盘安装为只读模式。其实,仅有少数目录需读写状态。  
15.将系统软件升级为最新版本。老版本可能已被研究并被成功攻击,最新版本一般包括了这些问题的补救。

论坛徽章:
0
84 [报告]
发表于 2012-03-14 12:00 |只看该作者
king_819 发表于 2012-03-13 14:18


这个总结的好。谢谢共享!

论坛徽章:
0
85 [报告]
发表于 2012-03-14 14:23 |只看该作者
回复 82# dahai01


   不错的脚本享,通过日志中的行为动作来进行判断

   

论坛徽章:
0
86 [报告]
发表于 2012-03-14 15:16 |只看该作者
回复 82# dahai01


    分享的不错啊,期待更多的脚本能分享下。

论坛徽章:
0
87 [报告]
发表于 2012-03-14 15:17 |只看该作者
回复 73# king_819


    king兄弟 干货很多的,强烈支持!

论坛徽章:
0
88 [报告]
发表于 2012-03-14 15:18 |只看该作者
回复 61# Shell_HAT


    感谢hat的分享,期待hat兄分享更多的干货啊!

论坛徽章:
0
89 [报告]
发表于 2012-03-14 15:18 |只看该作者
回复 60# Godbach


    GOD兄,你也拿出些脚本来分享嘛:wink:

论坛徽章:
0
90 [报告]
发表于 2012-03-14 15:31 |只看该作者
回复 88# 无风之谷


    大家一起分享才是真的分享,特别是生产环境下的
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP