The Mirages

樱桃沟夹事

这个是apache2.2以后增加的新的特性。

首先我们这边有2个域名。一个是www.timo.com还有一个是mail.timo.com这两个域名。同时www.zauc.com内网有2台机器 (192.168.0.10和192.168.0.11),当然也可以是外网.mail.zauc.com这个域名的内网IP为 (192.168.0.20)

要使用proxy和blance一定要在编译的时候加入proxy和blance.


 ./configure --prefix=/usr/local/apache2 --enable-mods-shared=all --enable-modules=all --enable-proxy --enable-proxy-connect --enable-proxy-ftp --enable-proxy-http --enable-proxy-ajp --enable-proxy-balancer --enable-vhost-alias make make install

安装完成后在extra/httpd-vhosts.conf中进行如下配置。


 ServerAdmin [email protected] ServerName www.timo.com ProxyPass / balancer://www.timo.com/ ErrorLog "logs/www.timo.com-error_log" CustomLog "logs/www.timo.com-access_log" common
阅读全文 »

首先是下载awstats,这个现在是有中文网站了
解压后后放到/usr/local下
然后运行tools/awstats_configure.pl
按照提示进行配置,主要是网站的名字配置

然后是是nginx进行配置,如果是APACHE或者是IIS就不用这样麻烦了。
首先是配置nginx的日志格式

1
2
3
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" $http_x_forwarded_for';

这个要注意其中的标点和空格。

在nginx上跑awstats需要支持fastcgi和perl才可以
fastcgi这个安装方法很多,一般是编译php5的时候直接放进去就可以了。当然我们现在为了方便就直接使用nginx-fcgi脚本http://www.nginx.eu/nginx-fcgi.html

使用脚本前需要安装下列perl模块

阅读全文 »

cacti本身自带了很多监控插件,如cpu,系统负载,磁盘等等。但是对于一些服务我们就必须另外找插件了。
现在我这边有用到的有nginx, apache, mysql, memcached, iis这几种

先说nginx插件。
http://forums.cacti.net/about26458.html
首先要在被监控服务器的nginx.conf文件中加上如下内容

location /nginx_status { 
  stub_status on;
  # disable access_log if requared 
  access_log off; 
  #allow XX.YY.AA.ZZ;
  #allow YY.ZZ.JJ.CC;
  #deny all;
  }

最后再重启下nginx就可以了。上面内容可以根据自己需求进行更改的。

在监控服务器上

 cp get_nginx_clients_status.pl /scripts/
 cp get_nginx_socket_status.pl /scripts/
 chmod 0755 /scripts/get_nginx_socket_status.pl
 chmod 0755 /scripts/get_nginx_clients_status.pl
阅读全文 »

vsftpd虚拟用户安装手册 目的:所有帐户存在一个文件内,而不是系统内。每个虚拟帐户都可以拥有自己独立的目录 安装过程不说了。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
#cat vsftpd.conf

# Example config file /etc/vsftpd.conf
#
# The default compiled in settings are fairly paranoid. This sample file
# loosens things up a bit, to make the ftp daemon more usable.
# Please see vsftpd.conf.5 for all compiled in defaults.
#
# READ THIS: This example file is NOT an exhaustive list of vsftpd options.
# Please read the vsftpd.conf.5 manual page to get a full idea of vsftpd's
# capabilities.
#
listen=YES
# Allow anonymous FTP? (Beware - allowed by default if you comment this out).
anonymous_enable=NO
#
# Uncomment this to allow local users to log in.
local_enable=YES
use_localtime=YES
#
# Uncomment this to enable any form of FTP write command.
write_enable=YES
#
# Default umask for local users is 077. You may wish to change this to 022,
# if your users expect that (022 is used by most other ftpd's)
local_umask=022
#
# Uncomment this to allow the anonymous FTP user to upload files. This only
# has an effect if the above global write enable is activated. Also, you will
# obviously need to create a directory writable by the FTP user.
anon_upload_enable=YES
#
# Uncomment this if you want the anonymous FTP user to be able to create
# new directories.
anon_mkdir_write_enable=YES
#
# Activate directory messages - messages given to remote users when they
# go into a certain directory.
dirmessage_enable=YES
#
# Activate logging of uploads/downloads.
xferlog_enable=YES
#
# Make sure PORT transfer connections originate from port 20 (ftp-data).
connect_from_port_20=YES
#
# If you want, you can arrange for uploaded anonymous files to be owned by
# a different user. Note! Using "root" for uploaded files is not
# recommended!
#chown_uploads=YES
#chown_username=www
#
# You may override where the log file goes if you like. The default is shown
# below.
xferlog_file=/var/log/vsftpd.log
#
# If you want, you can have your log file in standard ftpd xferlog format
#xferlog_std_format=YES
#
# You may change the default value for timing out an idle session.
idle_session_timeout=600
#
# You may change the default value for timing out a data connection.
data_connection_timeout=120
#
# It is recommended that you define on your system a unique user which the
# ftp server can use as a totally isolated and unprivileged user.
#nopriv_user=ftpsecure
#
# Enable this and the server will recognise asynchronous ABOR requests. Not
# recommended for security (the code is non-trivial). Not enabling it,
# however, may confuse older FTP clients.
#async_abor_enable=YES
#
# By default the server will pretend to allow ASCII mode but in fact ignore
# the request. Turn on the below options to have the server actually do ASCII
# mangling on files when in ASCII mode.
# Beware that on some FTP servers, ASCII support allows a denial of service
# attack (DoS) via the command "SIZE /big/file" in ASCII mode. vsftpd
# predicted this attack and has always been safe, reporting the size of the
# raw file.
# ASCII mangling is a horrible feature of the protocol.
#ascii_upload_enable=YES
#ascii_download_enable=YES
#
# You may fully customise the login banner string:
#ftpd_banner=Welcome to blah FTP service.
#
# You may specify a file of disallowed anonymous e-mail addresses. Apparently
# useful for combatting certain DoS attacks.
#deny_email_enable=YES
# (default follows)
#banned_email_file=/etc/vsftpd.banned_emails
#
# You may specify an explicit list of local users to chroot() to their home
# directory. If chroot_local_user is YES, then this list becomes a list of
# users to NOT chroot().
#chroot_list_enable=YES
# (default follows)
#chroot_list_file=/etc/vsftpd.chroot_list
#
# You may activate the "-R" option to the builtin ls. This is disabled by
# default to avoid remote users being able to cause excessive I/O on large
# sites. However, some broken FTP clients such as "ncftp" and "mirror" assume
# the presence of the "-R" option, so there is a strong case for enabling it.
#ls_recurse_enable=YES
chroot_local_user=YES
#secure_chroot_dir=/home/pplive/res
guest_enable=YES
guest_username=virtual_user
user_config_dir=/etc/vsftpd_user_conf
user_sub_token=$USER

还需要安装的软件是db4-util,根据各自系统不同来进行安装

首先是建立一个ftp总的帐户

useradd virtual_user -d /home/ftp/ -s /sbin/nologin

vi /etc/vsftpd/vsftpd_login
tom       //用户名
123       //密码

#建立用户数据库
db_load -T -t hash -f vsftpd_login /etc/vsftpd/vsftpd_login.db

#改变文件属性
chmod 600 /etc/vsftp/vsftpd_login.db

建立PAM文件,告诉系统你要使用自己的数据库了)
看看另一个文件vsftpd.pam,它有两行内容:

阅读全文 »

http://www.hiadmin.com/cacti%E8%BF%9B%E9%98%B6%E5%BA%94%E7%94%A8%E4%B8%80%EF%BC%9A%E6%B1%87%E6%80%BB%E6%B5%81%E9%87%8F%E5%9B%BE-%E5%B0%86%E6%95%B0%E6%8D%AE%E5%90%88%E5%B9%B6%E5%90%8E%E4%BD%9C%E5%9B%BE/ 上面是我参考的原文。 但是我需要的是数据的合并,并不是像原文中那种独立展示的。 在add items中原文如下: data source:数据来源就是你要汇总的流量之一; color:选择颜色这里可以任意选择; Graph Item Type:图形(我选择的是AREA区域类型,要累加的流量图请选择stack) CDEF Function:这里一定要选择“Turn bytes into Bits” 在第二项中Graph Item Type中,原文中说如果要累加的话要使用stack,但是在实践过程中我发现,在第一个item必须使用AREA,而不是stack,第二个开始启用stack类型。

mysql的master和slave是一般系统上经常使用到的一个。 但是这个模式有个很大的问题,slave机器一直都是通过单线程模式来运行,这个其实就已经算是瓶颈了。 第二,涉及到网络环境,如果交换机网络广播较多,或者跨交换机,那同步的速度也还是非常慢的。 第三,slave机器CPU和内存起码得跟master一样才行。 第四:sql语句优化,以及数据库的优化。经常查看下slow log会是很有帮助的。其实这个是最重要的对于数据库层面的同步。如果在master 经常通过show full processlist会出现语句,那只能说明SQL写的太烂了。 第五:数据库引擎的选择,这个要根据业务类型来选择。 第六:是选择state replication还是row replication还是混合也是根据自己的业务类型来选择,可以通过监控线程中是select还是update以及insert多来考虑。 http://forums.mysql.com/read.php?26,225394,225394 这里介绍了一种新的replication方式。但是国内还甚少看到有人用这个,所以出了问题一般也就在mail list中找答案了。 同时mysql已经准备发布replication的第二版本,已经能够支持多线程了。试目以待

关于闹运会 4年一届的闹运会终于快要开了,终于轮到北京了。 和很多人一样当年申办成功的时候是非常的兴奋,但是随着时间的临近这种感觉是越来越没有了。 这个闹运会给全国人民和北京人民闹的不可开交。 蒙特利尔奥运会是个很好的教材 ,这个城市76年举办的奥运会,终于在2006年12月把因为举办奥运会的贷款还清。 当然我们国家根本不需要考虑这个,我们的政府是十分有钱的,反正怎么花都不需要还的,到需要换的时候直接跟老毛一样再次打劫就行。 但 是其它的呢? 北京因为举办奥运会而变的天更蓝了吗?水更清了吗?交通不拥挤了吗?看看每年的沙尘暴如期而至,永定河依然是那么的绿,果然是绿色奥运啊。交通呢?有多少 线路的空调公交车去支援奥运了,老百姓只好在大热天里坐没有空调的了。有多少奥迪公车去支援奥运了,于是我们的官老爷只好换车了,当然成本还是让他人承 担。 当然好处还是很多的,比如让好多志愿者可以到处显摆了,你坐公交地铁拿出你的证可以免费,那其它地方难道也有好处,这下北京公交系统可完了,这下少赚了好多了,当然最后有国家给你补贴呢。 好了不说表面的了,也不抨击什么了。 从以上各个方面我们可以看到社会主义的好处。那就是可以集中全国的力量去干一件事情,而且大多可以完成的不错。比如我们的两弹一星什么。当然这个也是专制社会的特征,国家让你干啥你就干啥,这种社会如日本通过军事等手段推行维新,快速现代化等等。 但是问题也是明显存在的,这种完成任务的方法和手段并不能让人内心去真正接受。日本虽然很现代,但是他们根本没有学到西方的民主风气,他们的思想是依然的 如此传统。我们虽然有原子弹,虽然进太空,虽然奥运金牌可以超过俄罗斯,德国,英国,法国,但是我们国民的体质并不会因为这个而提高。我们GDP虽然也很 高,但是国民还是很穷,我们虽然每年GDP增长的很快,但是国民工资只有倒退。大学毕业生的工资一年一年下降,还好意思说普及大学教育。

是06年不知道哪里看到的,我本人是不会写出这样的文字的。 刚刚走上社会的年轻人,充满了蓄势待发的豪情、青春的朝气、前卫的思想,梦想着丰富的待遇和轰轰烈烈的事业。可是,社会毕竟是一所包罗万象、喧嚣复杂的大学校,这里没有寒暑假,拒绝虚假和肤浅,更拒绝空想和庸碌,难以预告何时开课何时放学。 如何在涉世之初少走弯路,有一个好的开端,开始一番成功的事业?以下是一些先行者积累的10条有益的涉世忠告。好好地遵循、把握这些忠告和建议吧,比起所学的课堂课程来,它毫不逊色! 1. 买个闹钟,以便按时叫醒你。贪睡和不守时,都将成为你工作和事业上的绊脚石,任何时候都一样。不仅要学会准时,更要学会提前。就如你坐车去某地,沿途的风 景很美,你忍不住下车看一看,后来虽然你还是赶到了某地,却不是准时到达。”闹钟”只是一种简单的标志和提示,真正灵活、实用的时间,掌握在每个人的心 中。 2. 如果你不喜欢现在的工作,要么辞职不干,要么就闭嘴不言。初出茅庐,往往眼高手低,心高气傲,大事做不了,小事不愿做。不要养成挑三拣四的习惯。不要雨天烦打伞,不带伞又怕淋雨,处处表现出不满的情绪。记住,不做则已,要做就要做好。 3. 每个人都有孤独的时候。要学会忍受孤独,这样才会成熟起来。年轻人嘻嘻哈哈、打打闹闹惯了,到了一个陌生的环境,面对形形色色的人和事,一下子不知所措起 来,有时连一个可以倾心说话的地方也没有。这时,千万别浮躁,学会静心,学会忍受孤独。在孤独中思考,在思考中成熟,在成熟中升华。不要因为寂寞而乱了方 寸,而去做无聊无益的事情,白白浪费了宝贵的时间。 4. 走运时要做好倒霉的准备。有一天,一只狐狸走到一个葡萄园外,看见里面水灵灵的葡萄垂涎欲滴。可是外面有栅栏挡着,无法进去。于是它一狠心绝食三日,减肥 之后,终于钻进葡萄园内饱餐一顿。当它心满意足地想离开葡萄园时,发觉自己吃得太饱,怎么也钻不出栅栏了。相信任何人都不愿做这样的狐狸。退路同样重要。 饱带干粮,晴带雨伞,点滴积累,水到渠成。有的东西今天似乎一文不值,但有朝一日也许就会身价百倍。 5. 不要像玻璃那样脆弱。有的人眼睛总盯着自己,所以长不高看不远;总是喜欢怨天尤人,也使别人无比厌烦。没有苦中苦,哪来甜中甜?不要像玻璃那样脆弱,而应像水晶一样透明,太阳一样辉煌,腊梅一样坚强。既然睁开眼睛享受风的清凉,就不要埋怨风中细小的沙粒。 6. 管住自己的嘴巴。不要谈论自己,更不要议论别人。谈论自己往往会自大虚伪,在名不副实中失去自己。议论别人往往陷入鸡毛蒜皮的是非口舌中纠缠不清。每天下 班后和你的那些同事朋友喝酒聊天可不是件好事,因为,这中间往往会把议论同事、朋友当做话题。背后议论人总是不好的,尤其是议论别人的短处,这些会降低你 的人格。 7. 机会从不会”失掉”,你失掉了,自有别人会得到。不要凡事在天,守株待兔,更不要寄希望于”机会”。机会只不过是相对于充分准备而又善于创造机会的人而言 的。也许,你正为失去一个机会而懊悔、埋怨的时候,机会正被你对面那个同样的”倒霉鬼”给抓住了。没有机会,就要创造机会,有了机会,就要巧妙地抓住。 8. 若电话老是不响,你该打出去。很多时候,电话会给你带来意想不到的收获,它不是花瓶,仅仅成为一种摆设。交了新朋友,别忘了老朋友,朋友多了路好走。交际的一大诀窍就是主动。好的人缘好的口碑,往往助你的事业更上一个台阶。 9. 千万不要因为自己已经到了结婚年龄而草率结婚。想结婚,就要找一个能和你心心相印、相辅相携的伴侣。不要因为放纵和游戏而恋爱,不要因为恋爱而影响工作和事业,更不要因一桩草率而失败的婚姻而使人生受阻。感情用事往往会因小失大。 10. 写出你一生要做的事情,把单子放在皮夹里,经常拿出来看。人生要有目标,要有计划,要有提醒,要有紧迫感。一个又一个小目标串起来,就成了你一生的大目标。生活富足了,环境改善了,不要忘了皮夹里那张看似薄薄的单子。

出处:Linux系统管理手册

笔记:Zauc

syslog是xnix最为重要和最有特点的一个工具。它几乎可以把你想记录的日志都记录下来。系统默认的记录位置一般为/var/log/下。

但是每个发行版本默认所记录的内容各不相同,但是大体以下几个日志是肯定有的

文件

程序

阅读全文 »

DOS ATTACKS USING SQL WILDCARDS(SQL通配符拒绝服务攻击) 原作者:Ferruh Mavituna 1 什么样的应用容易被SQL通配符攻击 (1)拥有SQL后台 (2)数据库拥有300条以上的数据,同时每行数据超过500个字节 (3)有一个应用程序级别的搜索功能 2 搜索查询 SQL服务器支持下列通配符在LIKE查询中”%”,”[]“,”^”和”“ 如果你在搜索框里输入”foo”, SQL查询的结果应该是 SELECT * FROM Aricle WHERE Content LIKE ‘%foo%’ 上面这个查询通常在拥有100000条数据的数据库中查询时间将少于1秒。 下面这个查询在只有2600条记录的情况下花费了6秒 SELECT TOP 10 * FROM Article WHERE Content LIKE ‘%[^!%/%a?F%D)(F%)%([)({}%){()}£$&N%)$*£()$*R”)][%](%[x])%a][$*“£$-9]%’ 如果攻击者在这6秒中内又执行一个如下查询 SELECT TOP 10 * FROM Article WHERE Content LIKE ‘%[^!%/%a?F%D)(F%)%([)({}%){()}£$&N%)$*£()$*R”)][%](%[x])%a][$*“£$-9]%’ OR Content LIKE ‘%[X%/%a?F%D)(F%)%([)({}%){()}£$&N%)$*£()$*R”)][%](%[x])%a][$*“£$-9]%’ OR Content LIKE ‘%[()%/%a?F%D)(F%)%([)({}%){()}£$&N%)$*£()$*R”)][%](%[x])%a][$*“£$-9]_%’ 那CPU在100%的负载的情况下将要执行36秒。 3 SQL通配符拒绝服务攻击测试 测试过程相当简单,就是创建包含很多通配符的查询让系统不能返回一个正常值。 4 连接池 攻击查询的时间依赖于应用程序连接池的设定。 ASP.NET的默认设置是,最大连接数量是100,30秒超时。如果我们进行100多个都超过30秒的查询,那其他人就根本无法正常使用这个系统了。 连接池耗尽攻击将会消耗一部分的CPU资源,在数据库服务器上进行常时间的运行对他们来说是足够的了。另外一个理由是长时间查询时可能包括了有问题系统调用代码,相当的NDS查询和HTTP请求。 5 构建搜索关键字 构建搜索关键字需要注意以下几点: (1)首先要确定数据库是否能搜索所有数据 (2)每个OR语句需要有所不同,否则数据库会自动优化这些语句。至少每个语句之间要修改一个字符 (3)对于Microsoft SQL Server,我的经验是在每个字符后加入“[”将导致更长的执行时间。 LIKE ‘%[a[! -z]@$!%                                                                             - 1050 ms. LIKE ‘%[aaaaaaaaa[! -z]@$!%’                                                                - 1600 ms. LIKE ‘%[aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa[! -z]@$!%’         - 3700 ms. (4)更长的查询将导致更长的执行时间。所以我们要构建应用程序允许范围内足够长的查询。 (5)开始和结尾加上“%”也会导致更长时间的查询 (6)每次查询需要有所不同,不然有些应用是有查询缓存存在的。 (7)对于不同大的目标系统和数据需要组合不同的查询。 6 真实影响 对于含有搜索功能的系统的后台数据库都有影响。 这里我们将使用2个论坛系统作为范例。一个是基于ASP.NET+SQL Sever,另外一个是ASP+SQL Sever (1)在2000条记录的情况下就导致了数据库连接超时,查询时间超过30秒 (2)范例系统在带宽1.5M的情况下在2分钟内停止运行 这里我并不是说只有论坛系统有问题,其他任何WEB应用系统都有这样的问题。 7 其他DBMSs 这个文章里并没有说到其它数据库,但是其实其他数据库对于这种攻击同样是非常脆弱的,只是SQL Sever是LIKE通配符查询攻击的主要数据库 以下的搜索操作对于这个问题同样是脆弱的: (1) PostgreSQL 正则表达式匹配 (~) (2)SQL Sever全文查询(CONTAINS) (3)MS Access LIKE查询 (LIKE) (4)MySQL 增则表达式 (REGEXP) 8 增加攻击的效果 如果应用程序允许你选择字段查询: (1) 通过OR来搜索它们,然后选择所有字段 (2)如果它是使用AND操作来搜索的,那就选择最大的字段,而不要选择一个varchar类型,也不要使用使用空格来避免许多AND条件。 尽可能的选择OR条件来进行查询。 让应用程序尽可能的使用连接表,组合多个表进行查询 通过OR来联合多个表达式,使用空格在多个关键字中间。例如: [r/a)%fm (r/b) (r-d) 9 DDOS(分布式拒绝服务攻击)攻击 如果一个应用程序接受通过GET请求的搜索查询,那攻击者就可以使用“WEB SPAMMING TOOL”来自动注册论坛,发送带有攻击代码相关信息和BLOG回复或者发送带有搜索URL的图片。通过这些方式攻击者就可以用其他网站访问者对目标应用进行攻击。 攻击者可以执行XSS攻击通过一些公共的web网站,然后发送”ifram”或者”image”标记来攻击应用。 10 应用程序级别的DOS 我们前面的攻击只是对于数据库服务器产生影响,而对于应用程序本身是没有影响的。 我们需要让应用程序返回尽可能多的记录。这可以让应用程序依赖应用程序的算法和SQL查询进行处理。假设应用程序要返回10W条数据由于有问题的SQL查询分页,这将导致CPU消耗大量的资源在应用程序和数据库层上。 在现实中,我们经常可以发送“-1”等不存在的请求分页。 如:http://www.codeplex.com/subsonic/WorkItem/View.aspx?WorkItemId=16112 分页问题不光在搜索页面存在,同样也存在于当查询条件不存在的时候分页。 11 SQL注入和DOS攻击 如果一个应用对于SQL注入没有防范的话SQL注入是相当平常的,我们在没有SQL注入的情况下也可以进行DOS攻击。不同的DBMS支持不同的复杂应用上无限循环。 一些DBMS同样支持一些特别的功能如MySQL的BENCHMARK就允许重复的执行一个功能。 根据攻击者的权限,攻击者可以很轻易的DROP掉数据库中所有表。甚至还可以关闭系统和数据库服务器。 12 防范 对于需要过滤的通配符在程序上需要返回。程序上要限制一些通配符的使用 限制搜索:最好不要有高级搜索功能,没有高级搜索功能就过滤所有的通配符。 使用验证码 限制每个用户的CPU使用时间 白名单:只有哪些字符能够使用 验证码安全 限制SQL查询执行的时间 防止应用程序级别的DOS:在查询时使用LIMIT或者TOP类似的关键字能够保护应用程序不被DOS攻击。

0%