2015年1月

有些管理员不希望每个IP被封锁都得到DA的通知

brute_force_notice_ip.sh 的触发只发生在DA发送XX IP尝试多少次登入失败通知的时候,现在DA已经添加了一个选项,以防止发送,但brute_force_notice_ip.sh 仍然工作。

该directadmin.conf选项将是:

hide_brute_force_notifications=0

这是默认(选项禁用,发送通知)

如果你想不发通知,但brute_force_notice_ip.sh仍然工作,设置directadmin.conf:
hide_brute_force_notifications=1

netstat 工具来检测SYN攻击

# netstat -n -p -t
tcp0 0 10.11.11.11:23124.173.152.8:25882 SYN_RECV-
tcp0 0 10.11.11.11:23236.15.133.204:2577 SYN_RECV-
tcp0 0 10.11.11.11:23127.160.6.129:51748 SYN_RECV-

LINUX系统中看到的,很多连接处于SYN_RECV状态(在WINDOWS系统中是SYN_RECEIVED状态), 源IP地址都是随机的,表明这是一种带有IP欺骗的SYN攻击。

# netstat -n -p -t | grep SYN_RECV | grep :80 | wc -l
324

查看在LINUX环境下某个端囗的未连接队列的条目数,显示TCP端囗22的未连接数有324个,虽然还远达不到系统极限,但应该引起管理员的注意。

[root@pub wxjsr]# netstat -na | grep SYN_RECV
tcp 0 0 58.193.192.20:80 221.0.108.162:32383 SYN_RECV
tcp 0 0 58.193.192.20:80 125.85.118.231:2601 SYN_RECV
tcp 0 0 58.193.192.20:80 222.242.171.215:2696 SYN_RECV
tcp 0 0 58.193.192.20:80 116.52.10.51:2629 SYN_RECV
tcp 0 0 58.193.192.20:80 218.171.175.157:1117
[root@pub wxjsr]# netstat -na | grep SYN_RECV |wc
11 66 979

查看系统SYN相关的配置

Linux内核提供了若干SYN相关的配置,用命令: sysctl -a | grep syn

[root@metc apache2]# /sbin/sysctl -a | grep syn
net.ipv6.conf.default.max_desync_factor = 600
net.ipv6.conf.all.max_desync_factor = 600
net.ipv6.conf.eth0.max_desync_factor = 600
net.ipv6.conf.lo.max_desync_factor = 600
net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_recv = 60
net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_sent = 120
net.ipv4.tcp_max_syn_backlog = 1280
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syn_retries = 5
fs.quota.syncs = 18

防范SYN攻击设置

#缩短SYN- Timeout时间:

iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT
iptables -A INPUT -i eth0 -m limit --limit 1/sec --limit-burst 5 -j ACCEPT

#每秒 最多3个 syn 封包 进入 表达为 :

iptables -N syn-flood
iptables -A INPUT -p tcp --syn -j syn-flood
iptables -A syn-flood -p tcp --syn -m limit --limit 1/s --limit-burst 3 -j RETURN
iptables -A syn-flood -j REJECT

#设置syncookies:

sysctl -w net.ipv4.tcp_syncookies=1
/sbin/sysctl -w net.ipv4.tcp_max_syn_backlog=3000
/sbin/sysctl -w net.ipv4.tcp_synack_retries=1
/sbin/sysctl -w net.ipv4.tcp_syn_retries=1
sysctl -w net.ipv4.conf.all.send_redirects=0
sysctl -w net.ipv4.conf.all.accept_redirects=0
sysctl -w net.ipv4.conf.all.forwarding=0
/sbin/sysctl -w net.ipv4.icmp_echo_ignore_broadcasts=1
/sbin/sysctl -w net.ipv4.conf.default.accept_source_route=0 # 禁用icmp源路由选项
/sbin/sysctl -w net.ipv4.icmp_echo_ignore_broadcasts=1 # 忽略icmp ping广播包,应开启
/sbin/sysctl -w net.ipv4.icmp_echo_ignore_all=1 # 忽略所有icmp ping数据,覆盖上一项

转载:http://www.tuicool.com/articles/m6nE3q

cat>>/home/cc.sh< #!/bin/sh
status=`netstat -na|awk '$5 ~ /[0-9]+:[0-9]+/ {print $5}' |awk -F ":" -- '{print $1}' |sort -n|uniq -c |sort -n|tail -n 1`
NUM=`echo $status|awk '{print $1}'`
IP=`echo $status|awk '{print $2}'`
result=`echo "$NUM > 150" | bc`
if [ $result = 1 ]
then
echo IP\:$IP is over $NUM, BAN IT!
echo $(date +"%y-%m-%d") `uptime`
/sbin/iptables -I INPUT -s $IP -j DROP
fi
EOF
ln -sf /usr/bin/apt-get /usr/bin/yum
yum install -y bc

执行/home/cc.sh即可! 也可以将执行脚本加入到Cron执行!

转载:http://www.jb4.net/archives/74.html

什么是HttpGuard

HttpGuard是基于openresty,以lua脚本语言开发的防cc攻击软件。而openresty是集成了高性能web服务器Nginx,以及一系列的Nginx模块,这其中最重要的,也是我们主要用到的nginx lua模块。HttpGuard基于nginx lua开发,继承了nginx高并发,高性能的特点,可以以非常小的性能损耗来防范大规模的cc攻击。
下面介绍HttpGuard防cc的一些特性。

  1. 限制访客在一定时间内的请求次数
  2. 向访客发送302转向响应头来识别恶意用户,并阻止其再次访问
  3. 向访客发送带有跳转功能的js代码来识别恶意用户,并阻止其再次访问
  4. 向访客发送cookie来识别恶意用户,并阻止其再次访问
  5. 支持向访客发送带有验证码的页面,来进一步识别,以免误伤
  6. 支持直接断开恶意访客的连接
  7. 支持结合iptables来阻止恶意访客再次连接
  8. 支持白名单功能
  9. 支持根据统计特定端口的连接数来自动开启或关闭防cc模式

github项目地址:https://github.com/centos-bz/HttpGuard
联系作者:admin#centos.bz
赞助作者持续开发:查看支付宝条码

开始部署HttpGuard

一、安装openresty或者nginx lua

假设我们把HttpGuard安装到/data/www/waf/,当然你可以选择安装在任意目录,nginx运行的用户为www。

cd /data/www
wget --no-check-certificate https://github.com/centos-bz/HttpGuard/archive/master.zip
unzip master.zip
mv HttpGuard-master waf
chown www waf/logs

三、生成验证码图片(可选)

为了支持验证码识别用户,我们需要先生成验证码图片。生成验证码图片需要系统安装有php,以及php-gd模块。

以命令行执行getImg.php文件

cd /data/www/waf/captcha/
/usr/local/php/bin/php getImg.php

大概要生成一万个图片,可能需要花几分钟的时间。

四、修改nginx.conf配置文件

向http区块输入如下代码:

lua_package_path "/data/www/waf/?.lua";
lua_shared_dict guard_dict 100m;
lua_shared_dict dict_captcha 70m;
init_by_lua_file '/data/www/waf/init.lua';
access_by_lua_file '/data/www/waf/runtime.lua';
lua_max_running_timers 1;

记得要修改相关的路径。

五、配置HttpGuard

HttpGuard全部的配置项都在config.lua文件中,请根据以下文章修改配置文件。

https://www.lxconfig.com/thread-121-1-1.html

进入谷歌那样的大公司工作是多少程序员的人生梦想!最近,Google Education代言啊不推荐了一系列计算机相关课程,为想要学习编程的大学生们指明方向,非大学生也可以来学习哟~

谷歌推荐的课程更像是一个“技能树”,课程主要来自美国名校和各种开源教程,你也可以按照这个顺序学习中文的同类课程。

前面的 academic 系列课程比较接近计算机专业的学习顺序。如果你不打算成为专业的工程师,只想掌握一点编程知识,在工作中使用的话,可以直接拉到帖子中部开始观看。

以下内容搬运自Google Education

要成为一名成功的软件工程师,你必须具备扎实的计算机科学基础。本自学指南适用于想要学习编程的大学生们,分为专业方向和非专业方向两个系列。你可以借助这个指南进行自学,但请首先修够你的专业学分,以保证顺利毕业。

本课程表中的课程不能代替大学课程,但它们能够帮助你进一步学习计算机科学,或者对这个领域建立初步理解。

关于如何使用本学习指南的4点建议:

  • 请考虑自己的实际情况进行学习。
  • 如果你还想学习《指南》之外的其他课程,尽管上吧!
  • 本指南仅供参考,即使学完这上面的所有课程,也不能保证你一定能进入谷歌工作。
  • 本指南不定期更新。你可以在Google +上关注 Google for Students +Page ,随时获取更多资讯。


【为进军学术界作准备的课程】

计算机科学导论课程

你可以选择提供在线编程工具的计算机导论课程。

课程推荐:

Udacity - intro to CS course

Coursera - Computer Science 101


学习至少一种面向对象编程语言,如C++,Java或Python

入门课程:

Coursera - Learn to Program: The Fundamentals,

MIT Intro to Programming in Java(注:这是他们的公开课视频)

Google's Python Class(注:Google Developers出品!)

Coursera - Introduction to Python

Python Open Source E-Book(注:Python教材免费在线看!)


中级课程:

Udacity's Design of Computer Programs

Coursera - Learn to Program: Crafting Quality Code,

Coursera - Programming Languages

Brown University - Introduction to Programming Languages (注:这是布朗大学公开课的课件)


学习其他的编程语言

To learn list:Java Script, CSS, HTML, Ruby, PHP, C, Perl, Shell. Lisp, Scheme.
相关在线学习资源:

w3school.com - HTML Tutorial

CodeAcademy.com


测试和提高自己的编程能力

例如:排查故障,创建测试,破解软件

相关课程:

Udacity - Software Testing Methods

Udacity - Software Debugging


学习逻辑推理和离散数学

相关课程:

MIT Mathematics for Computer Science(注:这是MIT公开课)

Coursera - Introduction to Logic(注:《逻辑学导论》有中文字幕哟!)

Coursera - Linear and Discrete Optimization

Coursera - Probabilistic Graphical Models

Coursera - Game Theory(注:斯坦福精品课程,还有续集《博弈论2》!)


深入理解算法和数据结构

学习基本的数据类型,如堆栈、队列和数据包;

了解排序演算法,如快速排序,二路归并排序和堆排序;

了解数据结构,如二叉搜索树,红黑树和哈希表。

相关课程:

MIT Introduction to Algorithms,

Coursera Introduction to Algorithms Part 1 & Part 2

List of Algorithms

(注:这是英文维基给出的所有算法的列表,看看你完成了多少?)

List of Data Structures(注:同上)

参考书籍: The Algorithm Design Manual

(注:这是美国亚马逊的购买链接,不清楚有没有中文版)


深入了解操作系统

相关课程: UC Berkeley Computer Science 162

(注:上面的链接是Youtube的播放列表,ppt等课件请看学校网站的资源


人工智能相关课程

Stanford University:

Introduction to Robotics,

Natural Language Processing

Machine Learning

(以上全是斯坦福的课程!人工智能哪家强!)


如何开发一个编译器

相关课程:Coursera - Compilers


密码学

Coursera - Cryptography

Udacity - Applied Cryptography


并行编程

相关课程:Coursera - Heterogeneous Parallel Programming


【如果你侧重应用方向】

项目开发相关课程

这方面的内容包括创建和维护一个网站,建立自己的服务器,或开发一个机器人。

相关课程:

Apache List of Projects(注:这是apache.org提供的教程)

Google Summer of Code

Google Developer Group


如果你想了解一个大型系统的一部分(如代码库),阅读和理解代码,或跟踪文档和排查故障,那么你可以到Github上围观和学习别人的代码,并尝试开发自己的项目。

相关资源:Github, Kiln


如果你想通过学习提高与程序员合作的能力,那么你可以先尝试和程序员们共同完成一个项目。


如果你想补充算法知识,练习编程技巧,可以参加CodeJam、ACM举办的国际编程大赛等活动。

相关资源:CodeJam, ACM ICPC


如果你通过教学加深自己对计算机的理解,获得软件工程等相关领域的实习经验,那么你可以申请担任相关课程的助教。注意要在实习期开始前提前申请哟!

在美国,学生通常在五月到九月参加实习,一般需要提前几个月进行申请。

相关资源-到谷歌的招聘页面看看吧: google.com/jobs



本文来自Google Education,未经许可,谢绝转载。


1

好好学习,谷歌欢迎你!(图片来自网络)


PS:如果你想学习中文课程,请戳链接直接观看@学堂在线 推荐的课程

SuperMicro的IPMI界面预览图

*一般ipmi都是服务商自己做的https加密方式

image4

一、如何连接到IPMI Viewer(Jave iKVM Viewer)

点击导航菜单的Remote Control – Console Redirection后,出现下图

image5

点击Launch Console按钮,连接IPMI Viewer

image6

* 连接Console时,本机必须安装好Java和IPMIVIEWER才可以。

image7

打开下载的文件

image9

如果按照以上三步,在Console Redirection中正常打开的话,则会打开如下图一样的IPMI Viewer Console窗口,标题中显
示Resolution状态就可以进行控制了。

*如果出错的话,需要联系服务商解决IPMI VIEWER的问题

image10

* IPMI Viewer Console窗口不可以多个同时使用

二、上传本地ISO文件到Java iKVM Viewew

点击导航菜单的Vitrul Media—>Virtul Storage,上传你要安装的操作系统的ISO到CDROM,建议使用netinstall ISO方式,这样上传起来快

注:有的IPMI KVM没有这个导航菜单,如DELL的,请留意这样的话一般会提供KVM和VM,其中VM是ISO上传的工具

image11

image12

选择ISO FILE,然后点OPEN IMAGE,选择你要上传的ISO文件,我选择的是centos5.8的ISO

image13

点击Plug In 按钮,上传ISO

image14

上传成功的话在Connect Status History区域则出现成功的文字

image15

然后,我们选择导航菜单的Macro->Ctrl+ Alt +Delete按钮重新启动计算机即可进行系统安装了

image16

三、系统安装

Ctrl+Alt+Delte重启后,启动时按F11选择IPMI VIRTUAL CDROM 3000(也就是光盘)进行安装。

image17

然后就是系统安装页面了。

1、登陆windows2003系统,首先要关闭防火墙。然后在右下角依次点击:开始-程序-管理工具-路由和远程访问。如下图:

1

2、如下图,对着红色框内(服务器各名称不同)的那一栏进行右击,选择点击“配置并启用路由和远程访问”

2

3、在弹出来的窗口,点击“下一步”

3

4、选择“自定义配置”,点击“下一步”

4

5、在“vpn访问”、“NAT和基本防火墙”、“LAN路由”前面打勾,点击“下一步”

5

6、在弹出来的窗口选择“是”,如下图:

6

7、如下图,在红色框内的一栏右击,选择“属性”

7

8、在弹出的窗口,选择“IP”-“静态地址池”,再点击“添加”

8

9、在弹出的窗口,‘起始IP地址’中输入任意数字,‘地址数’中的数字最少是1.最后,确定

9

10、点击“确定”

10

11、右击“IP路由选择”-“NAT/基本防火墙”,选择“新增接口”

11

12、选择“本地连接”,点击“确定”

12

13、选择“NAT/基本防火墙”-“公用接口连接到Internet”-“在此接口上启用NAT”。最后,点击“确定”

13

14、下面添加vpn连接用户,右击桌面上“我的电脑”图标,选择“管理”

14

15、展开“本地用户和组”-“用户”,右击“用户”,选择“新用户”

15

16、在弹出的窗口输入“用户名和密码”和相关勾选,如下图。点击“创建”下一步。

16

17、如下图,点击“关闭”

17

18、如下图,在窗口右边右击刚才创建的用户,选择“属性”

18

19、依次选择“拨入”-“允许访问”,点击“确定”。

19

在wdcp的后台里,是可以备份这个数据库的,但目前是没有恢复或自动恢复的,那要恢复时,怎么办?
备份目录在
/www/backup/mysql下
要恢复的话,直接解压就可以

tar zxvf dbname.tar.gz -C /www/wdlinux/mysql/var/

这样就可以了,什么都不用操作
dbname.tar.gz为你要恢复的数据库备份文件
当然,这个是默认情况下
有些时候,还需要修改下权限,修改这个解压的目录的权限为mysql

chown -R mysql.mysql /www/wdlinux/mysql/var/dbname

这样修改的原因,主要是有移动过目录或上传或下载等原因,改变了原文件的权限,所以需要修改,默认备份恢复,是可以不用修改这个

同样的情况,如果迁移服务器,也可以打包上传解压,也可以直接上传整个目录到/www/wdlinux/mysql/var下
这样操作的话,一定要改权限,否则会启动不了,又或是对数据库无法写操作

操作完上面后,别忘了重起一下数据库,否则可能也不会生效,如

service mysqld restart

备注
这个直接操作数据库目录文件的方法,仅限于在使用mysql版本相同或相近时可以,否则可能会有其它一些问题
此时,可以使用mysqldump,phpmyadmin导出,再导入的方法

原文连接:http://www.wdlinux.cn/bbs/thread-3795-1-1.html