<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Bug'Blog</title>
	<atom:link href="http://blog.freebug.org/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://blog.freebug.org</link>
	<description>The forgotten loophole!</description>
	<lastBuildDate>Fri, 16 Jul 2010 03:34:47 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>php-fpm下使用eaccelerator产生的内存问题</title>
		<link>http://blog.freebug.org/?p=411</link>
		<comments>http://blog.freebug.org/?p=411#comments</comments>
		<pubDate>Fri, 16 Jul 2010 03:34:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Linux&Unix]]></category>

		<guid isPermaLink="false">http://blog.freebug.org/?p=411</guid>
		<description><![CDATA[使用EA或者类似的OP CODE加速器已经是搭建PHP环境的默认选项了
但是在使用nginx的环境内
会需要使用fastcgi方式来运行php
这种情况下.EA的内存占用可能会和你在APACHE下使用EA不同
由于APACHE调用PHP的方式是模块方式的
所有PHP是位于同一个进程下面的
所以所有PHP模块调用的EA是同一个的.
内存只会占用shm_size大小.
APACHE进程间共享这同一个EA
也就是如果你在ea的配置下面写了64M.则只会占用整个系统的64M
而如果用fastcgi模式
特别是php-fpm
每个php都是独立进程
导致每个PHP进程下面都会独立分配EA的内存
则总的内存占用量 = shm_size * php进程数
如果你还用64M的话.开启20个PHP进程就意味着你用掉了1280M内存.
虽然目前只是分配到虚拟内存
但是对于大型网站的话,
不久之后就会占用到了这么大量的内存.
目前具体如何解决还没有找到
但是大家需要注意这个情况.
不同进程间ea缓冲相同文件是否会导致两份数据目前还没有测试.
]]></description>
			<content:encoded><![CDATA[<p>使用EA或者类似的OP CODE加速器已经是搭建PHP环境的默认选项了<br />
但是在使用nginx的环境内<br />
会需要使用fastcgi方式来运行php<br />
这种情况下.EA的内存占用可能会和你在APACHE下使用EA不同<br />
由于APACHE调用PHP的方式是模块方式的<br />
所有PHP是位于同一个进程下面的<br />
所以所有PHP模块调用的EA是同一个的.<br />
内存只会占用shm_size大小.<br />
APACHE进程间共享这同一个EA<br />
也就是如果你在ea的配置下面写了64M.则只会占用整个系统的64M<br />
而如果用fastcgi模式<br />
特别是php-fpm<br />
每个php都是独立进程<br />
导致每个PHP进程下面都会独立分配EA的内存<br />
则总的内存占用量 = shm_size * php进程数<br />
如果你还用64M的话.开启20个PHP进程就意味着你用掉了1280M内存.<br />
虽然目前只是分配到虚拟内存<br />
但是对于大型网站的话,<br />
不久之后就会占用到了这么大量的内存.<br />
目前具体如何解决还没有找到<br />
但是大家需要注意这个情况.<br />
不同进程间ea缓冲相同文件是否会导致两份数据目前还没有测试.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.freebug.org/?feed=rss2&amp;p=411</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux自解压安装文件</title>
		<link>http://blog.freebug.org/?p=409</link>
		<comments>http://blog.freebug.org/?p=409#comments</comments>
		<pubDate>Thu, 10 Jun 2010 15:17:50 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Linux&Unix]]></category>

		<guid isPermaLink="false">http://blog.freebug.org/?p=409</guid>
		<description><![CDATA[Linux自解压安装文件
这篇博文讲的是一个自解压安装文件的制作过程，主要参考http://www.linuxjournal.com/node/1005818。 
1）需要的预安装软件
bash, cat, gzip, tar, tail。一般Linux系统都安装了这些极其常用的软件工具。 
2）发布文件的目录结构
例如，假设你的需要安装的文件全部位于release下，当然release下还可以有很多子目录，如下图所示。
projects/ ------ release/-------  bin/
                &#124;                   &#124;---- doc/
         [...]]]></description>
			<content:encoded><![CDATA[<p>Linux自解压安装文件<br />
这篇博文讲的是一个自解压安装文件的制作过程，主要参考http://www.linuxjournal.com/node/1005818。 </p>
<p>1）需要的预安装软件<br />
bash, cat, gzip, tar, tail。一般Linux系统都安装了这些极其常用的软件工具。 </p>
<p>2）发布文件的目录结构<br />
例如，假设你的需要安装的文件全部位于release下，当然release下还可以有很多子目录，如下图所示。<br />
projects/ ------ release/-------  bin/<br />
                |                   |---- doc/<br />
                |                   |---- lib/<br />
                |                   \---- ReadMe<br />
                |--- install                                                                            <<<1>>><br />
                |--- decompress                                                                    <<<2>>><br />
                |--- build<br />
                |--- release_tmp/release.tar    （中间产生的临时文件）                    <<<3>>><br />
                \--- distribute.bin （最终发布文件）                                             <<<1&#038;2&#038;3>>> </p>
<p>最终的发布文件为distribute.bin，它其实是由三个文件构成，即安装脚本install，发布文件档案release.tar，以及自解压脚本decompress。build脚本只是我们建立这个自解压安装文件的工具，如上图所示。 </p>
<p>3）制作自解压安装文件的bash脚本<br />
我们需要写三个bash脚本，build，decompress，install ，如上图所示 </p>
<p>3.1）build<br />
#!/bin/bash<br />
mkdir release_tmp<br />
cd release<br />
tar -cf ../release_tmp/release.tar ./*<br />
cd ../release_tmp<br />
cp ../install ./<br />
tar -czf ../release_install.tar.gz ./*<br />
cd ../<br />
rm -rf release_tmp<br />
if [ ! -f release_install.tar.gz ]; then<br />
   echo "distributed archieve does not exist"<br />
   exit 1<br />
fi<br />
if [ ! -f decompress ]; then<br />
   echo "decompress does not exist"<br />
   exit 1<br />
fi<br />
cat decompress release_install.tar.gz > distribute.bin<br />
rm release_install.tar.gz<br />
if [ -f distribute.bin ]; then<br />
   chmod +x distribute.bin<br />
   echo "distribute.bin created"<br />
else<br />
   echo "distribute binary does not exist"<br />
fi </p>
<p>这个脚本的功能相当简单，除了做一些简单的文件存在性测试外，它的主要功能就是1）archive所要发布的文件，即release目录下的文件，得到release.tar；2）将release.tar和install脚本压缩为一个压缩档案文件，即release_install.tar.gz；3）将这个压缩档案文件release_install.tar.gz附加在decompress脚本后面，成为一个新的文件distribute.bin </p>
<p>3.2）decompress<br />
#!/bin/bash<br />
INSTDIR=/default/install/path/<br />
if [ $# -gt 0 ];then<br />
    INSTDIR=$1<br />
    if [ "${INSTDIR:0:1}" != "/" ];then<br />
        echo "You must assign an absolute directory to install!"<br />
        exit 1<br />
    fi<br />
fi </p>
<p>export TMPDIR=`mktemp -d /tmp/myinstaller.XXXXXX`<br />
ARCHIVE=`awk '/^__ARCHIVE_BELOW__/ {print NR + 1; exit 0; }' $0`<br />
tail -n+$ARCHIVE $0 | tar xzv -C $TMPDIR<br />
CDIR=`pwd`<br />
cd $TMPDIR<br />
./install $INSTDIR<br />
cd $CDIR<br />
rm -rf $TMPDIR<br />
exit 0</p>
<p>__ARCHIVE_BELOW__ </p>
<p>这个脚本主要有两个功能，1）检查安装路径，是否为绝对路径，2）将distribute.bin后面的部分（其实就是release_install.tar.gz，它与decompress脚本内容由分隔符号__ARCHIVE_BELOW__分开）解压缩到一个临时文件夹中，并在此临时文件夹中运行install脚本。 </p>
<p>注意__ARCHIVE_BELOW__后面不要有空行。 </p>
<p>3.3）install<br />
#!/bin/bash<br />
[ -d $1] || mkdir -p $1<br />
tar -C $1 -xf release.tar<br />
#other stuff, like set env etc<br />
# </p>
<p>这个脚本的主要功能就是解开档案文件release.tar。当然，一般安装过程，可能还需要其他的操作，如环境变量的设置，一些系统配置的修改，都可以在这里进行。 </p>
<p>这里有个问题。如果创建安装目录失败（通常是权限不够），安装脚本并没有清理decompress脚本（也就是distribute.bin）产生的临时文件夹。 </p>
<p>4）运行build，产生distirbute.bin，发布之<br />
顾客只需要运行distribute.bin即可安装我们的软件。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.freebug.org/?feed=rss2&amp;p=409</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>LINUX安全防范 入侵检测</title>
		<link>http://blog.freebug.org/?p=405</link>
		<comments>http://blog.freebug.org/?p=405#comments</comments>
		<pubDate>Thu, 21 Jan 2010 17:06:30 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Linux&Unix]]></category>

		<guid isPermaLink="false">http://blog.freebug.org/?p=405</guid>
		<description><![CDATA[今日在系统/var/log/secure文件里发现大量的验证错误日志
Jan 22 01:04:27 tony sshd[6729]: Invalid user fdasfasd from 116.22.243.188
Jan 22 01:04:27 tony sshd[6730]: input_userauth_request: invalid user fdasfasd
Jan 22 01:04:28 tony sshd[6729]: pam_unix(sshd:auth): check pass; user unknown
Jan 22 01:04:28 tony sshd[6729]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=116.22.243.188
Jan 22 01:04:28 tony sshd[6729]: pam_succeed_if(sshd:auth): error retrieving information about user admin
经过检查发现是明显的密码攻击 admin为攻击者尝试的用户名 管理员应该尽可能的关闭root的直接登陆
在/etc/ssh/sshd_config 设置PermitRootLogin no
下面发一条有趣的命令 [...]]]></description>
			<content:encoded><![CDATA[<p>今日在系统/var/log/secure文件里发现大量的验证错误日志</p>
<p>Jan 22 01:04:27 tony sshd[6729]: Invalid user fdasfasd from 116.22.243.188<br />
Jan 22 01:04:27 tony sshd[6730]: input_userauth_request: invalid user fdasfasd<br />
Jan 22 01:04:28 tony sshd[6729]: pam_unix(sshd:auth): check pass; user unknown<br />
Jan 22 01:04:28 tony sshd[6729]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=116.22.243.188<br />
Jan 22 01:04:28 tony sshd[6729]: pam_succeed_if(sshd:auth): error retrieving information about user admin</p>
<p>经过检查发现是明显的密码攻击 admin为攻击者尝试的用户名 管理员应该尽可能的关闭root的直接登陆</p>
<p>在/etc/ssh/sshd_config 设置PermitRootLogin no</p>
<p>下面发一条有趣的命令 可以统计攻击者使用用户的频率</p>
<p>grep pam_succeed_if /var/log/secure* | awk '{print $12}' | sort | uniq -c</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.freebug.org/?feed=rss2&amp;p=405</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title></title>
		<link>http://blog.freebug.org/?p=404</link>
		<comments>http://blog.freebug.org/?p=404#comments</comments>
		<pubDate>Fri, 15 Jan 2010 16:46:04 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Linux&Unix]]></category>

		<guid isPermaLink="false">http://blog.freebug.org/archives/404</guid>
		<description><![CDATA[系统所有环境都是采用yum安装
安装系统时设置标准的主机名



mail.hamigua.com


复制代码
改变系统语言
vi /etc/sysconfig/i18n



LANG="en_US"
#LANG="zh_CN.UTF-8"
SUPPORTED="zh_CN.UTF-8:zh_CN:zh:zh_TW.UTF-8:zh_TW:zh:en_US.UTF-8:en_US:en"
SYSFONT="latarcyrheb-sun16"


复制代码
关闭selinux
vi /etc/selinux/config
去除IPV6
vi /etc/modprobe.conf



alias net-pf-10 off
alias ipv6 off


复制代码
修改网关
vi /etc/sysconfig/network
设IP
vi /etc/sysconfig/network-scripts/ifcfg-eth0
定义yum的非官方库
vi /etc/yum.repos.d/dag.repo



[dag]
name=Dag RPM Repository for Red Hat Enterprise Linux
baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag
gpgcheck=1
enabled=1
gpgkey=http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt


复制代码
关闭不需要的服务
chkconfig mcstrans off
chkconfig restorecond off
chkconfig ip6tables off
chkconfig iptables off
chkconfig netfs off
安装必需软件
yum -y install ntsysv ntp telnet wget rsync vixie-cron logwatch perl-Unix-Syslog perl-Net-Daemon perl-PlRPC perl-DBI perl-DBD-MySQL  freetype-demos freetype-devel libart_lgpl-devel libpng libpng-devel perl-Time-HiRes perl-Time-HiRes-Value perl-File-Tail  perl-libwww-perl perl-HTML-Parser perl-HTML-Tagset perl-IO-stringy perl-IO-Multiplex perl-MailTools perl-TimeDate [...]]]></description>
			<content:encoded><![CDATA[<p><span style="color: #00bfff;">系统所有<span class="t_tag" onclick="tagshow(event)">环境</span>都是采用yum安装<br />
</span>安装系统时<span class="t_tag" onclick="tagshow(event)">设置</span>标准的主机名</p>
<div class="blockcode">
<div id="code0">
<ol>
<li>mail.hamigua.com</li>
</ol>
</div>
<p><em onclick="copycode($('code0'));">复制代码</em></div>
<p>改变系统语言<br />
vi /etc/sysconfig/i18n</p>
<div class="blockcode">
<div id="code1">
<ol>
<li>LANG="en_US"</li>
<li>#LANG="zh_CN.UTF-8"</li>
<li>SUPPORTED="zh_CN.UTF-8:zh_CN:zh:zh_TW.UTF-8:zh_TW:zh:en_US.UTF-8:en_US:en"</li>
<li>SYSFONT="latarcyrheb-sun16"</li>
</ol>
</div>
<p><em onclick="copycode($('code1'));">复制代码</em></div>
<p>关闭selinux<br />
vi /etc/selinux/config<br />
去除IPV6</p>
<p>vi /etc/<span class="t_tag" onclick="tagshow(event)">mod</span>probe.conf</p>
<div class="blockcode">
<div id="code2">
<ol>
<li>alias net-pf-10 off</li>
<li>alias ipv6 off</li>
</ol>
</div>
<p><em onclick="copycode($('code2'));">复制代码</em></div>
<p>修改网关<br />
vi /etc/sysconfig/network</p>
<p>设IP<br />
vi /etc/sysconfig/network-scripts/ifcfg-eth0</p>
<p>定义yum的非官方库<br />
vi /etc/yum.repos.d/dag.repo</p>
<div class="blockcode">
<div id="code3">
<ol>
<li>[dag]</li>
<li>name=Dag RPM Repository for Red Hat Enterprise Linux</li>
<li>baseurl=http://apt.sw.be/<span class="t_tag" onclick="tagshow(event)">redhat</span>/el$releasever/en/$basearch/dag</li>
<li>gpgcheck=1</li>
<li>enabled=1</li>
<li>gpgkey=http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt</li>
</ol>
</div>
<p><em onclick="copycode($('code3'));">复制代码</em></div>
<p>关闭不需要的<span class="t_tag" onclick="tagshow(event)">服务</span><br />
chkconfig mcstrans off<br />
chkconfig restorecond off<br />
chkconfig ip6tables off<br />
chkconfig iptables off<br />
chkconfig netfs off</p>
<p>安装必需<span class="t_tag" onclick="tagshow(event)">软件</span><br />
yum -y install ntsysv ntp telnet wget rsync vixie-cron logwatch <span class="t_tag" onclick="tagshow(event)">perl</span>-Unix-Syslog perl-Net-Daemon perl-PlRPC perl-DBI perl-DBD-MySQL  freetype-demos freetype-devel libart_lgpl-devel libpng libpng-devel perl-Time-HiRes perl-Time-HiRes-Value perl-File-Tail  perl-libwww-perl perl-HTML-Parser perl-HTML-Tagset perl-IO-stringy perl-IO-Multiplex perl-MailTools perl-TimeDate perl-Convert-ASN1 perl-Convert-BinHex perl-MIME-tools perl-FCGI perl-GD rrdtool rrdtool-perl apr-devel apr-docs apr-util-devel apr-util-docs giflib libgdiplus mono-core dbus-sharp dbus-sharp-devel dbus-glib-devel dbh dbh-devel pcre pcre-devel httpd httpd-devel httpd-manual <span class="t_tag" onclick="tagshow(event)">mysql</span> mysql-devel mysql-server cyrus-sasl cyrus-sasl-plain <span class="t_tag" onclick="tagshow(event)">bind</span> bind-chroot amavisd-new clamd clamav clamav-db spamassassin bison bzip2-devel expect fam-devel flex freetype-devel gcc gcc-c++ gdbm-devel libc-client-devel libjpeg-devel libmcrypt libmcrypt-devel libpng-devel libxslt-devel make rpm-build mod_ssl <span class="t_tag" onclick="tagshow(event)">php</span> php-gd php-mysql php-mbstring php-mcrypt phpmyadmin perl-Mon perl-Authen-PAM perl-Filter perl-Net_SSLeay.pm perl-Convert-BER perl-URI   perl-XML-SAX perl-Crypt-Blowfish perl-Crypt-CBC perl-Date-Calc  ncurses-devel net-<span class="t_tag" onclick="tagshow(event)">snmp</span>-devel libtool openssl openssl-devel openssl-perl pam-devel pkgconfig postgresql-devel zlib-devel</p>
<p>启动mysql和apahce<br />
chkconfig httpd on<br />
chkconfig mysqld on</p>
<p>升级包<br />
yum -y update</p>
<p>重启系统<br />
reboot</p>
<p>重新生成rpm包安装postfix<br />
cd /usr/local/src<br />
wget <a href="http://mirror.centos.org/centos/5/os/SRPMS/postfix-2.3.3-2.src.rpm" target="_blank">http://mirror.<span class="t_tag" onclick="tagshow(event)">centos</span>.org/centos/ ... fix-2.3.3-2.src.rpm</a><br />
rpm -ivh postfix-2.3.3-2.src.rpm<br />
cd /usr/src/redhat/SPECS<br />
vi postfix.spec</p>
<div class="blockcode">
<div id="code4">
<ol>
<li>%define LDAP 2</li>
<li>%define mysql 1</li>
<li>%define pcre 1</li>
<li>%define sasl 2</li>
<li>%define tls 1</li>
<li>%define ipv6 0</li>
</ol>
</div>
<p><em onclick="copycode($('code4'));">复制代码</em></div>
<p>rpmbuild -bb postfix.spec<br />
rpm -Uvh /usr/src/redhat/RPMS/i386/postfix-2.3.*</p>
<p>新建邮件<span class="t_tag" onclick="tagshow(event)">用户</span>、组<br />
/usr/sbin/groupadd -g 1000 vgroup<br />
/usr/sbin/useradd -g 1000 -u 1000 -M -s /bin/false vuser</p>
<p>安装courier-authlib<br />
cd /usr/local/src<br />
wget <a href="http://downloads.sourceforge.net/courier/courier-authlib-0.61.0.tar.bz2" target="_blank">http://downloads.sourceforge.net ... hlib-0.61.0.tar.bz2</a><br />
tar jxvf courier-authlib-0.61.0.tar.bz2<br />
cd courier-authlib-0.61.0</p>
<div class="blockcode">
<div id="code5">
<ol>
<li>./configure \</li>
<li>--prefix=/usr/local/courier-authlib \</li>
<li>--without-stdheaderdir \</li>
<li>--without-authuserdb \</li>
<li>--without-authpam \</li>
<li>--without-authldap \</li>
<li>--without-authpwd \</li>
<li>--without-authshadow \</li>
<li>--without-authvchkpw \</li>
<li>--without-authpgsql \</li>
<li>--without-authcustom \</li>
<li>--with-authmysql \</li>
<li>--with-redhat</li>
<li>make</li>
<li>make install</li>
<li>make install-configure</li>
<li>echo "/usr/local/courier-authlib/lib/courier-authlib" &gt;&gt; /etc/ld.so.conf</li>
</ol>
</div>
<p><em onclick="copycode($('code5'));">复制代码</em></div>
<p>ldconfig<br />
ldconfig -v<br />
cp courier-authlib.sysvinit /etc/rc.d/init.d/courier-authlib<br />
chmod 755 /etc/rc.d/init.d/courier-authlib<br />
chkconfig --add courier-authlib<br />
chkconfig courier-authlib on<br />
chmod 755 /usr/local/courier-authlib/var/spool/authdaemon<br />
mv /usr/local/courier-authlib/etc/authlib/authmysqlrc /usr/local/courier-authlib/etc/authlib/authmysqlrc.bak</p>
<p>vi /usr/local/courier-authlib/etc/authlib/authmysqlrc</p>
<div class="blockcode">
<div id="code6">
<ol>
<li>MYSQL_SERVER            localhost</li>
<li>MYSQL_USERNAME          extmail</li>
<li>MYSQL_PASSWORD          ext00mail</li>
<li>MYSQL_SOCKET            /var/lib/mysql/mysql.sock</li>
<li>MYSQL_PORT              3306</li>
<li>MYSQL_OPT               0</li>
<li>MYSQL_DATABASE          extmail</li>
<li>MYSQL_USER_TABLE        mailbox</li>
<li>MYSQL_CRYPT_PWFIELD     password</li>
<li>MYSQL_UID_FIELD         uidnumber</li>
<li>MYSQL_GID_FIELD         gidnumber</li>
<li>MYSQL_LOGIN_FIELD       username</li>
<li>MYSQL_HOME_FIELD        homedir</li>
<li>MYSQL_NAME_FIELD        name</li>
<li>MYSQL_MAILDIR_FIELD     maildir</li>
<li>MYSQL_QUOTA_FIELD       quota</li>
<li>MYSQL_SELECT_CLAUSE     SELECT username,password,"",uidnumber,gidnumber,             \</li>
<li>                        CONCAT('/home/domains/',homedir),                            \</li>
<li>                        CONCAT('/home/domains/',maildir),                            \</li>
<li>            quota,                                                       \</li>
<li>            name,                                                        \</li>
<li>            CONCAT("disableimap=",disableimap,",disablepop3=",           \</li>
<li>            disablepop3,",disable<span class="t_tag" onclick="tagshow(event)">web</span>mail=",disablewebmail,               \</li>
<li>            ",disablesmtpd=",disablesmtpd,",disablesmtp=",               \</li>
<li>            disablesmtp,",disablenetdisk=",disablenetdisk,               \</li>
<li>            ",netdiskquota=",netdiskquota)                               \</li>
<li>            FROM mailbox                                                 \</li>
<li>            WHERE username = '$(local_part)@$(domain)'                   \</li>
<li>                        DEFAULT_DOMAIN        hamigua.com</li>
</ol>
</div>
<p><em onclick="copycode($('code6'));">复制代码</em></div>
<p>设置smtpd<br />
vi /usr/lib/sasl2/smtpd.conf</p>
<div class="blockcode">
<div id="code7">
<ol>
<li>pwcheck_method: authdaemond</li>
<li>log_level: 3</li>
<li>mech_list: PLAIN LOGIN</li>
<li>authdaemond_path:/usr/local/courier-authlib/var/spool/authdaemon/socket</li>
</ol>
</div>
<p><em onclick="copycode($('code7'));">复制代码</em></div>
<p>service courier-authlib start<br />
ln -s /usr/local/courier-authlib/bin/courierauthconfig /usr/bin/courierauthconfig</p>
<p>安装maildorp<br />
cd /usr/local/src<br />
wget <a href="http://downloads.sourceforge.net/courier/maildrop-2.0.4.tar.bz2" target="_blank">http://downloads.sourceforge.net/courier/maildrop-2.0.4.tar.bz2</a><br />
tar jvxf maildrop-2.0.4.tar.bz2<br />
cd maildrop-2.0.4</p>
<div class="blockcode">
<div id="code8">
<ol>
<li>./configure   \</li>
<li>--enable-sendmail=/usr/sbin/sendmail \</li>
<li>--enable-trusted-users='root vuser' \</li>
<li>--enable-syslog=1 \</li>
<li>--enable-maildirquota \</li>
<li>--enable-maildrop-uid=1000 \</li>
<li>--enable-maildrop-gid=1000 \</li>
<li>--with-trashquota \</li>
<li>--with-dirsync</li>
<li>make</li>
<li>make install</li>
</ol>
</div>
<p><em onclick="copycode($('code8'));">复制代码</em></div>
<p>maildrop -v</p>
<p>安装courier-imap<br />
cd /usr/local/src<br />
wget <a href="http://downloads.sourceforge.net/courier/courier-imap-4.4.1.tar.bz2" target="_blank">http://downloads.sourceforge.net ... -imap-4.4.1.tar.bz2</a><br />
tar jvxf courier-imap-4.4.1.tar.bz2<br />
cd courier-imap-4.4.1</p>
<div class="blockcode">
<div id="code9">
<ol>
<li>./configure \</li>
<li>--prefix=/usr/local/courier-imap \</li>
<li>--with-redhat \</li>
<li>--enable-unicode \</li>
<li>--disable-root-check \</li>
<li>--with-trashquota \</li>
<li>--without-ipv6 COURIERAUTHCONFIG='/usr/local/courier-authlib/bin/courierauthconfig'</li>
<li>make</li>
<li>make install</li>
</ol>
</div>
<p><em onclick="copycode($('code9'));">复制代码</em></div>
<p>cp /usr/local/courier-imap/etc/imapd.dist /usr/local/courier-imap/etc/imapd<br />
cp /usr/local/courier-imap/etc/imapd-ssl.dist /usr/local/courier-imap/etc/imapd-ssl<br />
cp /usr/local/courier-imap/etc/pop3d.dist /usr/local/courier-imap/etc/pop3d<br />
cp /usr/local/courier-imap/etc/pop3d-ssl.dist /usr/local/courier-imap/etc/pop3d-ssl<br />
cp courier-imap.sysvinit /etc/rc.d/init.d/courier-imapd<br />
chmod 755 /etc/rc.d/init.d/courier-imapd<br />
chkconfig --add courier-imapd</p>
<p>配置pop<br />
vi /usr/local/courier-imap/etc/pop3d</p>
<div class="blockcode">
<div id="code10">
<ol>
<li>POP3DSTART=YES</li>
<li>MAXDAEMONS=512</li>
<li>MAXPERIP=4000</li>
</ol>
</div>
<p><em onclick="copycode($('code10'));">复制代码</em></div>
<p>将extmail,extman,slock安装包上传</p>
<p>安装extmail<br />
cd /usr/local/src<br />
mkdir /var/www/extsuite<br />
tar -zxvf extmail-1.0.5.tar.gz<br />
cp -r extmail-1.0.5 /var/www/extsuite/extmail<br />
cd /var/www/extsuite/extmail<br />
cp webmail.cf.default webmail.cf<br />
chown -R vuser:vgroup /var/www/extsuite/extmail/cgi/</p>
<p>配置extmail</p>
<div class="blockcode">
<div id="code11">
<ol>
<li><span class="t_tag" onclick="tagshow(event)">sed</span> -i "s#SYS_MYSQL_USER = db_user#SYS_MYSQL_USER = extmail#g" /var/www/extsuite/extmail/webmail.cf</li>
<li>sed -i "s#SYS_MYSQL_PASS = db_pass#SYS_MYSQL_PASS = ext00mail#g" /var/www/extsuite/extmail/webmail.cf</li>
<li>sed -i "s#SYS_SHOW_SIGNUP = 1#SYS_SHOW_SIGNUP = 0#g" /var/www/extsuite/extmail/webmail.cf</li>
<li>sed -i "s#SYS_MESSAGE_SIZE_LIMIT = 5242880#SYS_MESSAGE_SIZE_LIMIT = 52428800#g" /var/www/extsuite/extmail/webmail.cf</li>
</ol>
</div>
<p><em onclick="copycode($('code11'));">复制代码</em></div>
<p>安装extman<br />
cd /usr/local/src<br />
tar -zxvf extman-0.2.5.tar.gz<br />
cp -r extman-0.2.5 /var/www/extsuite/extman/<br />
chown -R vuser:vgroup /var/www/extsuite/extman/cgi/<br />
mkdir /var/www/extsuite/extman/tmp<br />
chown -R vuser:vgroup /var/www/extsuite/extman/tmp</p>
<p>配置extman</p>
<div class="blockcode">
<div id="code12">
<ol>
<li>sed -i "s#SYS_SESS_DIR = /tmp/extman/#SYS_SESS_DIR = /var/www/extsuite/extman/tmp/#g" /var/www/extsuite/extman/webman.cf</li>
<li>sed -i "s#SYS_MYSQL_PASS = webman#SYS_MYSQL_PASS = web00man#g" /var/www/extsuite/extman/webman.cf</li>
</ol>
</div>
<p><em onclick="copycode($('code12'));">复制代码</em></div>
<p>vi /var/www/extsuite/extman/docs/init.sql<br />
<span style="color: #ff0000;">将extmail.org改为你的<span class="t_tag" onclick="tagshow(event)">域名</span>比如hamigua.com</span></p>
<p>导入<span class="t_tag" onclick="tagshow(event)">数据</span>库</p>
<div class="blockcode">
<div id="code13">
<ol>
<li>mysql -u root -p &lt; /var/www/extsuite/extman/docs/extmail.sql</li>
<li>mysql -u root -p &lt; /var/www/extsuite/extman/docs/init.sql</li>
</ol>
</div>
<p><em onclick="copycode($('code13'));">复制代码</em></div>
<p>生成extmail系统<span class="t_tag" onclick="tagshow(event)">管理</span>员的用户<span class="t_tag" onclick="tagshow(event)">目录</span><br />
cd /var/www/extsuite/extman/tools<br />
./maildirmake.pl /home/domains/hamigua.com/postmaster/Maildir<br />
chown -R vuser:vgroup /home/domains</p>
<p>cp -r /var/www/extsuite/extman/addon/mailgraph_ext/ /usr/local/mailgraph_ext/<br />
echo "/usr/local/mailgraph_ext/mailgraph-init start" &gt;&gt; /etc/rc.d/rc.local<br />
echo "/usr/local/mailgraph_ext/qmonitor-init start" &gt;&gt; /etc/rc.d/rc.local</p>
<p>cp /var/www/extsuite/extman/docs/mysql_virtual_* /etc/postfix/</p>
<div class="blockcode">
<div id="code14">
<ol>
<li>sed -i "s#password = extmail#password = ext00mail#g" /etc/postfix/mysql_virtual_alias_maps.cf</li>
<li>sed -i "s#password = extmail#password = ext00mail#g" /etc/postfix/mysql_virtual_domains_maps.cf</li>
<li>sed -i "s#password = extmail#password = ext00mail#g" /etc/postfix/mysql_virtual_limit_maps.cf</li>
<li>sed -i "s#password = extmail#password = ext00mail#g" /etc/postfix/mysql_virtual_mailbox_maps.cf</li>
<li>sed -i "s#password = extmail#password = ext00mail#g" /etc/postfix/mysql_virtual_sender_maps.cf</li>
</ol>
</div>
<p><em onclick="copycode($('code14'));">复制代码</em></div>
<p>安装slockd<br />
cd /usr/local/src<br />
tar -zxvf slockd-0.2.tar.gz<br />
cp -r slockd-0.2 /usr/local/slockd<br />
echo "/usr/local/slockd/slockd-init start" &gt;&gt; /etc/rc.d/rc.local</p>
<p>配置apache<br />
vi /etc/httpd/conf/httpd.conf</p>
<div class="blockcode">
<div id="code15">
<ol>
<li>#AddDefaultCharset UTF-8</li>
<li></li>
<li>NameVirtualHost *:80</li>
<li>Include conf/vhost_*.conf</li>
<li></li>
<li>vi /etc/httpd/conf/vhost_extmail.conf</li>
<li># VirtualHost for ExtMail Solution</li>
<li>&lt;VirtualHost *:80&gt;</li>
<li>ServerName mail.fsnws.com</li>
<li>DocumentRoot /var/www/extsuite/extmail/html/</li>
<li>LoadModule <span class="t_tag" onclick="tagshow(event)">fastcgi</span>_module modules/mod_fastcgi.so</li>
<li>&lt;Ifmodule mod_fastcgi.c&gt;</li>
<li>FastCgiExternalServer /usr/bin/dispatch.fcgi -host 127.0.0.1:8888</li>
<li>&lt;/Ifmodule&gt;</li>
<li>Alias /extmail/cgi/ /usr/bin/dispatch.fcgi/</li>
<li>&lt;Location "/extmail/cgi"&gt;</li>
<li>SetHandler fastcgi-script</li>
<li>&lt;/Location&gt;</li>
<li></li>
<li>#ScriptAlias /extmail/cgi/      /var/www/extsuite/extmail/cgi/</li>
<li>Alias /extmail                  /var/www/extsuite/extmail/html/</li>
<li>ScriptAlias /extman/cgi/        /var/www/extsuite/extman/cgi/</li>
<li>Alias /extman                   /var/www/extsuite/extman/html/</li>
<li>Alias /phpmyadmin               /var/www/extsuite/phpmyadmin/</li>
<li>Alias /phpldapadmin             /var/www/extsuite/phpldapadmin/htdocs/</li>
<li># Suexec config</li>
<li>SuexecUserGroup vuser vgroup</li>
<li>&lt;/VirtualHost&gt;</li>
</ol>
</div>
<p><em onclick="copycode($('code15'));">复制代码</em></div>
<p>安装fastcgi<span class="t_tag" onclick="tagshow(event)">模块</span><br />
cd /usr/local/src<br />
wget <a href="http://www.fastcgi.com/dist/mod_fastcgi-2.4.6.tar.gz" target="_blank">http://www.fastcgi.com/dist/mod_fastcgi-2.4.6.tar.gz</a><br />
tar xfz mod_fastcgi-2.4.6.tar.gz<br />
cd mod_fastcgi-2.4.6<br />
ln -s ../../usr/lib/httpd/build /etc/httpd/build<br />
cp Makefile.AP2 Makefile<br />
make top_dir=/etc/httpd install<br />
echo "/var/www/extsuite/extmail/dispatch-init start" &gt;&gt; /etc/rc.d/rc.local<br />
/var/www/extsuite/extmail/dispatch-init start</p>
<p>配置phpmyadmin<br />
ln -s /usr/share/phpmyadmin /var/www/extsuite/phpmyadmin<br />
vi /usr/share/phpmyadmin/config.inc.php</p>
<div class="blockcode">
<div id="code16">
<ol>
<li>$cfg['blowfish_secret'] = '3234ffet43';</li>
</ol>
</div>
<p><em onclick="copycode($('code16'));">复制代码</em></div>
<p>配置postfix<br />
vi /etc/postfix/main.cf<br />
vi /etc/postfix/master.cf<br />
vi /etc/amavisd.conf</p>
<div class="blockcode">
<div id="code17">
<ol>
<li>$max_servers = 20;</li>
<li>$mydomain = 'example.com'</li>
<li>['ClamAV-clamd',</li>
<li>   \&amp;ask_daemon, ["CONTSCAN {}\n", "/tmp/clamd.socket"],</li>
<li>   qr/\bOK$/, qr/\bFOUND$/,</li>
<li>   qr/^.*?: (?!Infected Archive)(.*) FOUND$/ ],</li>
<li></li>
<li>$final_virus_destiny      = D_DISCARD;</li>
<li>$final_banned_destiny     = D_BOUNCE;</li>
<li>$final_spam_destiny       = D_PASS;</li>
<li>$final_bad_header_destiny = D_PASS;</li>
</ol>
</div>
<p><em onclick="copycode($('code17'));">复制代码</em></div>
<p><span style="color: #ff0000;">注：初始安装账户extmail，extman密码可能有点问题登陆不进去，这个可以用phpmyadmin来设置密码，默认phpmyadmin root密码为空</span><br />
<span style="color: #ff0000;">$1$ITIH4eKD$s9C2wHpLQXOLkzY5U1jYL. = extmail</span><br />
<span style="color: #ff0000;">而后再从extman后台去修改密码就可以了。</span></p>
<p>usermod -G amavis clamav<br />
vi /etc/postfix/aliases</p>
<div class="blockcode">
<div id="code18">
<ol>
<li>virusalert:    root</li>
<li>spam.police:   root</li>
<li>postfix:       root@hamigua.com</li>
<li>newaliases</li>
</ol>
</div>
<p><em onclick="copycode($('code18'));">复制代码</em></div>
<p>touch /etc/postfix/recipient_bcc<br />
touch /etc/postfix/sender_bcc<br />
postmap /etc/postfix/transport<br />
postmap /etc/postfix/recipient_bcc<br />
postmap /etc/postfix/sender_bcc</p>
<p>以后升级<span class="t_tag" onclick="tagshow(event)">命令</span>:<br />
yum update --exclude postfix --exclude  postfix-pflogsumm<br />
参考：<br />
<a href="http://www.extmail.org/" target="_blank">www.extmail.org</a><span class="t_tag" onclick="tagshow(event)">论坛</span> wjkhubei写得centos5.3+extmail1.0.8+extman+spamassassin    <a href="http://www.extmail.org/forum/thread-10282-1-4.html" target="_blank">http://www.extmail.org/forum/thread-10282-1-4.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.freebug.org/?feed=rss2&amp;p=404</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>黑洞10号主机完工</title>
		<link>http://blog.freebug.org/?p=350</link>
		<comments>http://blog.freebug.org/?p=350#comments</comments>
		<pubDate>Wed, 21 Oct 2009 12:03:30 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[show]]></category>

		<guid isPermaLink="false">http://blog.freebug.org/?p=350</guid>
		<description><![CDATA[TAOBAO上购买的全铝DAC机箱 尺寸大概是184mm x 299mm x 60mm 以下是组图




联想ITX G31组图


内存位置特写


电源开关改造为自复位按钮

铜柱LED灯

电磨工具套 主要就是靠这套工具改造机箱 钻孔切割等

包线网

配件

万能PCB板 无用到 还有插针线

机箱底部风扇位的开孔改造过程

装好风扇后的效果图

主板铜柱安装

CPU特写 E5200 SLGTL R0步进 支持VT

希捷2.5寸 5400.6 250G单碟

换了原装专用散热器后的效果图



完工后的前面板

内部图 风扇改用7CM带蓝光的ABIT风扇 超薄静音

后风扇换成AVC 5CM风扇 接IDE 5V减速



内部细节图

完工后的桌面 比较糟糕

]]></description>
			<content:encoded><![CDATA[<p>TAOBAO上购买的全铝DAC机箱 尺寸大概是184mm x 299mm x 60mm 以下是组图<br />
<img class="alignnone size-full wp-image-366" title="1" src="http://blog.freebug.org/wp-content/uploads/2009/10/3.jpg" alt="1" width="640" height="480" /><br />
<img class="alignnone size-full wp-image-366" title="1" src="http://blog.freebug.org/wp-content/uploads/2009/10/4.jpg" alt="1" width="640" height="480" /><br />
<img class="alignnone size-full wp-image-366" title="1" src="http://blog.freebug.org/wp-content/uploads/2009/10/5.jpg" alt="1" width="640" height="480" /><br />
<img class="alignnone size-full wp-image-366" title="1" src="http://blog.freebug.org/wp-content/uploads/2009/10/6.jpg" alt="1" width="640" height="480" /><br />
联想ITX G31组图<br />
<img class="alignnone size-full wp-image-366" title="1" src="http://blog.freebug.org/wp-content/uploads/2009/10/7.jpg" alt="1" width="640" height="480" /><br />
<img class="alignnone size-full wp-image-366" title="1" src="http://blog.freebug.org/wp-content/uploads/2009/10/8.jpg" alt="1" width="640" height="480" /><br />
内存位置特写<br />
<img class="alignnone size-full wp-image-366" title="1" src="http://blog.freebug.org/wp-content/uploads/2009/10/9.jpg" alt="1" width="640" height="480" /><br />
<img class="alignnone size-full wp-image-366" title="1" src="http://blog.freebug.org/wp-content/uploads/2009/10/10.jpg" alt="1" width="640" height="480" /><br />
电源开关改造为自复位按钮<br />
<img class="alignnone size-full wp-image-366" title="1" src="http://blog.freebug.org/wp-content/uploads/2009/10/11.jpg" alt="1" width="640" height="480" /><br />
铜柱LED灯<br />
<img class="alignnone size-full wp-image-366" title="1" src="http://blog.freebug.org/wp-content/uploads/2009/10/12.jpg" alt="1" width="640" height="480" /><br />
电磨工具套 主要就是靠这套工具改造机箱 钻孔切割等<br />
<img class="alignnone size-full wp-image-366" title="1" src="http://blog.freebug.org/wp-content/uploads/2009/10/13.jpg" alt="1" width="640" height="480" /><br />
包线网<br />
<img class="alignnone size-full wp-image-366" title="1" src="http://blog.freebug.org/wp-content/uploads/2009/10/14.jpg" alt="1" width="640" height="480" /><br />
配件<br />
<img class="alignnone size-full wp-image-366" title="1" src="http://blog.freebug.org/wp-content/uploads/2009/10/15.jpg" alt="1" width="640" height="480" /><br />
万能PCB板 无用到 还有插针线<br />
<img class="alignnone size-full wp-image-366" title="1" src="http://blog.freebug.org/wp-content/uploads/2009/10/16.jpg" alt="1" width="640" height="480" /><br />
机箱底部风扇位的开孔改造过程<br />
<img class="alignnone size-full wp-image-366" title="1" src="http://blog.freebug.org/wp-content/uploads/2009/10/18.jpg" alt="1" width="640" height="480" /><br />
装好风扇后的效果图<br />
<img class="alignnone size-full wp-image-366" title="1" src="http://blog.freebug.org/wp-content/uploads/2009/10/19.jpg" alt="1" width="640" height="480" /><br />
主板铜柱安装<br />
<img class="alignnone size-full wp-image-366" title="1" src="http://blog.freebug.org/wp-content/uploads/2009/10/20.jpg" alt="1" width="640" height="480" /><br />
CPU特写 E5200 SLGTL R0步进 支持VT<br />
<img class="alignnone size-full wp-image-366" title="1" src="http://blog.freebug.org/wp-content/uploads/2009/10/21.jpg" alt="1" width="640" height="480" /><br />
希捷2.5寸 5400.6 250G单碟<br />
<img class="alignnone size-full wp-image-366" title="1" src="http://blog.freebug.org/wp-content/uploads/2009/10/22.jpg" alt="1" width="640" height="480" /><br />
换了原装专用散热器后的效果图<br />
<img class="alignnone size-full wp-image-366" title="1" src="http://blog.freebug.org/wp-content/uploads/2009/10/23.jpg" alt="1" width="640" height="480" /><br />
<img class="alignnone size-full wp-image-366" title="1" src="http://blog.freebug.org/wp-content/uploads/2009/10/24.jpg" alt="1" width="640" height="480" /><br />
<img class="alignnone size-full wp-image-366" title="1" src="http://blog.freebug.org/wp-content/uploads/2009/10/img_0325.jpg" alt="1" width="640" height="480" /><br />
完工后的前面板<br />
<img class="alignnone size-full wp-image-366" title="1" src="http://blog.freebug.org/wp-content/uploads/2009/10/img_0326.jpg" alt="1" width="640" height="480" /><br />
内部图 风扇改用7CM带蓝光的ABIT风扇 超薄静音<br />
<img class="alignnone size-full wp-image-366" title="1" src="http://blog.freebug.org/wp-content/uploads/2009/10/img_0327.jpg" alt="1" width="640" height="480" /><br />
后风扇换成AVC 5CM风扇 接IDE 5V减速<br />
<img class="alignnone size-full wp-image-366" title="1" src="http://blog.freebug.org/wp-content/uploads/2009/10/img_0328.jpg" alt="1" width="640" height="480" /><br />
<img class="alignnone size-full wp-image-366" title="1" src="http://blog.freebug.org/wp-content/uploads/2009/10/img_0417.jpg" alt="1" width="640" height="480" /><br />
<img class="alignnone size-full wp-image-366" title="1" src="http://blog.freebug.org/wp-content/uploads/2009/10/img_0422.jpg" alt="1" width="640" height="480" /><br />
内部细节图<br />
<img class="alignnone size-full wp-image-366" title="1" src="http://blog.freebug.org/wp-content/uploads/2009/10/img_0424.jpg" alt="1" width="640" height="480" /><br />
完工后的桌面 比较糟糕<br />
<img class="alignnone size-full wp-image-366" title="1" src="http://blog.freebug.org/wp-content/uploads/2009/10/img_0329.jpg" alt="1" width="640" height="480" /></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.freebug.org/?feed=rss2&amp;p=350</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>DB120-B1电信路由破解4台主机,PPPOE拨号</title>
		<link>http://blog.freebug.org/?p=341</link>
		<comments>http://blog.freebug.org/?p=341#comments</comments>
		<pubDate>Wed, 23 Sep 2009 16:53:49 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Tip]]></category>

		<guid isPermaLink="false">http://blog.freebug.org/?p=341</guid>
		<description><![CDATA[E8.V2.1.0 ,软件版本: V7.1.0
http://192.168.1.1
WEB超级帐户:telecomadmin
WEB超级密码:nE7jA%5m
&#60;psitree&#62;
&#60;WirelessCfg&#62;
&#60;vars state="enabled" ssIdIndex="0" country="CN" apMode="ap"  bridgeRestrict="disabled"  wdsMAC_0=""  wdsMAC_1=""  wdsMAC_2=""  wdsMAC_3=""  band="b" channel="0" rate="auto" multicastRate="auto" basicRate="default" fragThreshold="2346" RTSThreshold="2347" DTIM="1" beacon="100" XPress="off" gMode="auto" gProtection="auto" preamble="long" AfterBurner="off" TxPowerPercent="100" WME="off" WMENoAck="off" WMEApsd="on"  RegulatoryMode="off" PreNetRadarDectTime="60" InNetRadarDectTime="60" TpcMitigation="0" AutoChannelTimer="0" globalMaxAssoc="16" /&#62;
&#60;wlMssidVars tableSize="4"&#62;
&#60;wlMssidEntry enblSsId="1" ssId="ChinaNet-zhang" enblSubcrb="0" bcntpSubcrb="0" ssIdSubcrb="0" hide="0" apIsolation="off" fltMacMode="disabled" disableWme="off" MaxAssoc = "16"  wsc_mode="enabled"  wsc_config_state="1"  shownForTr069="1"  authMode="shared" radiusServerIP="0.0.0.0" [...]]]></description>
			<content:encoded><![CDATA[<p><span style="font-size: x-small;">E8.V2.1.0 ,软件版本: <span style="color: #c60a00;">V7.1.0</span></span></p>
<p><a href="http://192.168.1.1">http://192.168.1.1</a><br />
WEB超级帐户:telecomadmin<br />
WEB超级密码:nE7jA%5m</p>
<p>&lt;psitree&gt;<br />
&lt;WirelessCfg&gt;<br />
&lt;vars state="enabled" ssIdIndex="0" country="CN" apMode="ap"  bridgeRestrict="disabled"  wdsMAC_0=""  wdsMAC_1=""  wdsMAC_2=""  wdsMAC_3=""  band="b" channel="0" rate="auto" multicastRate="auto" basicRate="default" fragThreshold="2346" RTSThreshold="2347" DTIM="1" beacon="100" XPress="off" gMode="auto" gProtection="auto" preamble="long" AfterBurner="off" TxPowerPercent="100" WME="off" WMENoAck="off" WMEApsd="on"  RegulatoryMode="off" PreNetRadarDectTime="60" InNetRadarDectTime="60" TpcMitigation="0" AutoChannelTimer="0" globalMaxAssoc="16" /&gt;<br />
&lt;wlMssidVars tableSize="4"&gt;<br />
&lt;wlMssidEntry enblSsId="1" ssId="ChinaNet-zhang" enblSubcrb="0" bcntpSubcrb="0" ssIdSubcrb="0" hide="0" apIsolation="off" fltMacMode="disabled" disableWme="off" MaxAssoc = "16"  wsc_mode="enabled"  wsc_config_state="1"  shownForTr069="1"  authMode="shared" radiusServerIP="0.0.0.0" radiusServerPort="1812" radiusServerKey="" wep="enabled" auth="1" keyBit="64-bit" key64_1="ABCDE" key64_2="" key64_3="" key64_4="" key64Index="1" key128_1=""  key128_2=""  key128_3=""  key128_4=""  key128Index="1" wpaRekey="0" wpakey="pxf57avu"  Preauthentication="off" ReauthTimeout="36000" wpa="tkip" tr69cBeaconType="Basic" tr69cBasicEncryptionModes="None" tr69cBasicAuthenticationMode="None" tr69cWPAEncryptionModes="TKIPEncryption" tr69cWPAAuthenticationMode="PSKAuthentication" tr69cIEEE11iEncryptionModes="AESEncryption" tr69cIEEE11iAuthenticationMode="EAPAuthentication"/&gt;<br />
&lt;wlMssidEntry enblSsId="0" ssId="ChinaNet-SSID2" enblSubcrb="0" bcntpSubcrb="0" ssIdSubcrb="0" hide="0" apIsolation="off" fltMacMode="disabled" disableWme="off" MaxAssoc = "16"  wsc_mode="enabled"  wsc_config_state="1"  shownForTr069="0"  authMode="open" radiusServerIP="0.0.0.0" radiusServerPort="1812" radiusServerKey="" wep="disabled" auth="0" keyBit="128-bit" key64_1="" key64_2="" key64_3="" key64_4="" key64Index="1" key128_1=""  key128_2=""  key128_3=""  key128_4=""  key128Index="1" wpaRekey="0" wpakey="abcdefgh"  Preauthentication="off" ReauthTimeout="36000" wpa="tkip" tr69cBeaconType="Basic" tr69cBasicEncryptionModes="None" tr69cBasicAuthenticationMode="None" tr69cWPAEncryptionModes="TKIPEncryption" tr69cWPAAuthenticationMode="PSKAuthentication" tr69cIEEE11iEncryptionModes="AESEncryption" tr69cIEEE11iAuthenticationMode="EAPAuthentication"/&gt;<br />
&lt;wlMssidEntry enblSsId="0" ssId="ChinaNet-SSID3" enblSubcrb="0" bcntpSubcrb="0" ssIdSubcrb="0" hide="0" apIsolation="off" fltMacMode="disabled" disableWme="off" MaxAssoc = "16"  wsc_mode="enabled"  wsc_config_state="1"  shownForTr069="0"  authMode="open" radiusServerIP="0.0.0.0" radiusServerPort="1812" radiusServerKey="" wep="disabled" auth="0" keyBit="128-bit" key64_1="" key64_2="" key64_3="" key64_4="" key64Index="1" key128_1=""  key128_2=""  key128_3=""  key128_4=""  key128Index="1" wpaRekey="0" wpakey="abcdefgh"  Preauthentication="off" ReauthTimeout="36000" wpa="tkip" tr69cBeaconType="Basic" tr69cBasicEncryptionModes="None" tr69cBasicAuthenticationMode="None" tr69cWPAEncryptionModes="TKIPEncryption" tr69cWPAAuthenticationMode="PSKAuthentication" tr69cIEEE11iEncryptionModes="AESEncryption" tr69cIEEE11iAuthenticationMode="EAPAuthentication"/&gt;<br />
&lt;wlMssidEntry enblSsId="0" ssId="ChinaNet-SSID4" enblSubcrb="0" bcntpSubcrb="0" ssIdSubcrb="0" hide="0" apIsolation="off" fltMacMode="disabled" disableWme="off" MaxAssoc = "16"  wsc_mode="enabled"  wsc_config_state="1"  shownForTr069="0"  authMode="open" radiusServerIP="0.0.0.0" radiusServerPort="1812" radiusServerKey="" wep="disabled" auth="0" keyBit="128-bit" key64_1="" key64_2="" key64_3="" key64_4="" key64Index="1" key128_1=""  key128_2=""  key128_3=""  key128_4=""  key128Index="1" wpaRekey="0" wpakey="abcdefgh"  Preauthentication="off" ReauthTimeout="36000" wpa="tkip" tr69cBeaconType="Basic" tr69cBasicEncryptionModes="None" tr69cBasicAuthenticationMode="None" tr69cWPAEncryptionModes="TKIPEncryption" tr69cWPAAuthenticationMode="PSKAuthentication" tr69cIEEE11iEncryptionModes="AESEncryption" tr69cIEEE11iAuthenticationMode="EAPAuthentication"/&gt;<br />
&lt;/wlMssidVars&gt;<br />
&lt;/WirelessCfg&gt;<br />
&lt;SystemInfo&gt;<br />
&lt;algset H323="enable" Sip="enable" Rtsp="enable" L2tp="enable" Ipsec="enable" URL="disable" FTP="enable" FIREWALL="0" MACFLT="disable" MACFLTTYPE="enable" DDNS="disable" IPFILTER="enable" QOSMODE="0" FtpUserName="support" FtpPassword="admin" FtpPort="21" TelnetUserName="support" TelnetPassword="support" TelnetPort="23" USBRestore="enable" CTAlarm="disable" CTMonitor="disable"/&gt;<br />
&lt;protocol autoScan="enable" upnp="enable" alg="enable" igmpSnp ="disable" igmpMode ="disable" macFilterPolicy="forward" encodePassword="enable" siproxd="enable" enetwan="disable" numberOfConn1="0" numberOfConn2="0"/&gt;<br />
&lt;sysUserName value="admin"/&gt;<br />
&lt;tr69c state="disable" upgradesManaged="0" upgradeAvailable="0" informEnbl="0" informTime="0" informInterval="43200" noneConnReqAuth="0" acsURL="<a href="http://baidu:9090/ACS-server/ACS">http://baidu:9090/ACS-server/ACS</a>" acsUser="fdsafdsafads" acsPwd="hgw" parameterKey="12345" connReqURL="" connReqUser="itms" connReqPwd="itms" urlsubcriber="0" usrsubcriber="0" pwdsubcriber="0" cusrsubcriber="0" cpwdsubcriber="0" kickURL="" provisioningCode="12345" MWSURL="0.0.0.0:" ctMDW="disable" verifyid="" verifystatus="1" verifylimit="10" verifytimes="0"/&gt;<br />
&lt;ctCfg mwBandStatus="1" terminalNumber="0" iptvStatus="disable" stbNumber="0" restrictSTB= "disable" restrictComputer= "disable" computerNumber="0" restrictCamera="disable" cameraNumber="1" restrictPhone="disable" phoneNumber="1" pppreconnect="enable"/&gt;<br />
&lt;sysLog state="disable" displayLevel="ERR" logLevel="DEBUG" option="local" serverIP="0.0.0.0" serverPort="514"/&gt;<br />
&lt;sysPassword value="******"/&gt;<br />
&lt;ctUserName value="admin"/&gt;<br />
&lt;ctPassword value="******"/&gt;<br />
&lt;sptPassword value="******"/&gt;<br />
&lt;usrUserName value="user"/&gt;<br />
&lt;usrPassword value="******"/&gt;<br />
&lt;/SystemInfo&gt;<br />
&lt;PMapCfg&gt;<br />
&lt;pmap tableSize="3"&gt;<br />
&lt;pmapEntry id="1" groupName="Default" groupKey="1" groupStatus="1" ifList="eth1.3:6|eth1.2:5|eth1.4:7|eth0:2|wl0:8|wl0.1:9|wl0.2:10|wl0.3:11" vendorid0="" vendorid1="" vendorid2="" vendorid3="" vendorid4=""/&gt;<br />
&lt;pmapEntry id="2" groupName="STB" groupKey="2" groupStatus="1" ifList="" vendorid0="" vendorid1="" vendorid2="" vendorid3="" vendorid4=""/&gt;<br />
&lt;pmapEntry id="3" groupName="Garbage" groupKey="3" groupStatus="1" ifList="usb0:1" vendorid0="" vendorid1="" vendorid2="" vendorid3="" vendorid4=""/&gt;<br />
&lt;/pmap&gt;<br />
&lt;pmapFlt tableSize="10"&gt;<br />
&lt;pmapFltEntry id="1" instance="1" status="enable" bridgeRef="3" interfaceRef="usb0"/&gt;<br />
&lt;pmapFltEntry id="2" instance="2" status="enable" bridgeRef="1" interfaceRef="eth0"/&gt;<br />
&lt;pmapFltEntry id="3" instance="3" status="enable" bridgeRef="-1" interfaceRef="eth1"/&gt;<br />
&lt;pmapFltEntry id="4" instance="5" status="enable" bridgeRef="1" interfaceRef="eth1.2"/&gt;<br />
&lt;pmapFltEntry id="5" instance="6" status="enable" bridgeRef="1" interfaceRef="eth1.3"/&gt;<br />
&lt;pmapFltEntry id="6" instance="7" status="enable" bridgeRef="1" interfaceRef="eth1.4"/&gt;<br />
&lt;pmapFltEntry id="7" instance="8" status="enable" bridgeRef="1" interfaceRef="wl0"/&gt;<br />
&lt;pmapFltEntry id="8" instance="9" status="enable" bridgeRef="1" interfaceRef="wl0.1"/&gt;<br />
&lt;pmapFltEntry id="9" instance="10" status="enable" bridgeRef="1" interfaceRef="wl0.2"/&gt;<br />
&lt;pmapFltEntry id="10" instance="11" status="enable" bridgeRef="1" interfaceRef="wl0.3"/&gt;<br />
&lt;/pmapFlt&gt;<br />
&lt;pmapIfcCfg pmapIfName="eth1" pmapIfcStatus="enable"/&gt;<br />
&lt;/PMapCfg&gt;<br />
&lt;AtmCfg&gt;<br />
&lt;initCfg structureId="2" threadPriority="25" freeCellQSize="10" freePktQSize="200" freePktQBufSize="1600" freePktQBufOffset="32" rxCellQSize="10" rxPktQSize="200" txFifoPriority="64" aal5MaxSduLen="64" aal2MaxSduLen="0"/&gt;<br />
&lt;/AtmCfg&gt;<br />
&lt;AtmCfgTd&gt;<br />
&lt;td1 cat="UBR" PCR="0" SCR="0" MBS="0"/&gt;<br />
&lt;/AtmCfgTd&gt;<br />
&lt;AtmCfgVcc&gt;<br />
&lt;vccId9999 portId="0" vpi="0" vci="65534" tdId="0" aalType="AAL2" adminStatus="down" encap="unknown" qos="disable" instanceId="1509949449" xctVlan="85"/&gt;<br />
&lt;/AtmCfgVcc&gt;<br />
&lt;SecCfg&gt;<br />
&lt;qosMgmtCfg enableQos="enable" defaultDSCPMark="-1" defaultQueue="-1" enForceWeight="0" enDSCPMark="0" en802_1_P="0" Mode="OTHER" Plan="priority"/&gt;<br />
&lt;qosPrioQueue tableSize="4"&gt;<br />
&lt;qosPrioQueueEntry id="1" instanceId="1" status="enable" priority="1" weight="0"/&gt;<br />
&lt;qosPrioQueueEntry id="2" instanceId="2" status="enable" priority="2" weight="0"/&gt;<br />
&lt;qosPrioQueueEntry id="3" instanceId="3" status="enable" priority="3" weight="0"/&gt;<br />
&lt;qosPrioQueueEntry id="4" instanceId="4" status="enable" priority="4" weight="0"/&gt;<br />
&lt;/qosPrioQueue&gt;<br />
&lt;qosCls tableSize="4"&gt;<br />
&lt;qosClsEntry id="1" instanceId="1" clsName="Class_1" status="disable" wlpriority="0" clsOrder= "1" type="3" wanVlan8021p="-1" vlan8021p="-1" lanIfcName="" protocol="" ipoptionlist="0" srcAddr="" srcMask="" srcPort="" dstAddr="" dstMask="" dstPort="" srcMacAddr="" srcMacMask="" dstMacAddr="" dstMacMask="" dscpMark="-1" dscpCheck="-1" queueInstId="9" ctype="" max="" min="" weight="0" instanceOfClass="1", instanceOfType="1"/&gt;<br />
&lt;qosClsEntry id="2" instanceId="2" clsName="Class_2" status="disable" wlpriority="0" clsOrder= "2" type="3" wanVlan8021p="-1" vlan8021p="-1" lanIfcName="" protocol="" ipoptionlist="0" srcAddr="" srcMask="" srcPort="" dstAddr="" dstMask="" dstPort="" srcMacAddr="" srcMacMask="" dstMacAddr="" dstMacMask="" dscpMark="-1" dscpCheck="-1" queueInstId="9" ctype="" max="" min="" weight="0" instanceOfClass="2", instanceOfType="2"/&gt;<br />
&lt;qosClsEntry id="3" instanceId="3" clsName="Class_3" status="disable" wlpriority="0" clsOrder= "3" type="3" wanVlan8021p="-1" vlan8021p="-1" lanIfcName="" protocol="" ipoptionlist="0" srcAddr="" srcMask="" srcPort="" dstAddr="" dstMask="" dstPort="" srcMacAddr="" srcMacMask="" dstMacAddr="" dstMacMask="" dscpMark="-1" dscpCheck="-1" queueInstId="9" ctype="" max="" min="" weight="0" instanceOfClass="3", instanceOfType="3"/&gt;<br />
&lt;qosClsEntry id="4" instanceId="4" clsName="Class_4" status="disable" wlpriority="0" clsOrder= "4" type="3" wanVlan8021p="-1" vlan8021p="-1" lanIfcName="" protocol="" ipoptionlist="0" srcAddr="" srcMask="" srcPort="" dstAddr="" dstMask="" dstPort="" srcMacAddr="" srcMacMask="" dstMacAddr="" dstMacMask="" dscpMark="-1" dscpCheck="-1" queueInstId="9" ctype="" max="" min="" weight="0" instanceOfClass="4", instanceOfType="4"/&gt;<br />
&lt;/qosCls&gt;<br />
&lt;qosApp tableSize="2"&gt;<br />
&lt;qosAppEntry id="1" appName="1" classQueue="1"/&gt;<br />
&lt;qosAppEntry id="2" appName="2" classQueue="2"/&gt;<br />
&lt;/qosApp&gt;<br />
&lt;srvCtrlList ftp="disable" http="lan" icmp="lan" ssh="disable" telnet="enable" tftp="disable"/&gt;<br />
&lt;/SecCfg&gt;<br />
&lt;Lan&gt;<br />
&lt;entry9999 address="1.1.1.1" mask="255.255.255.0" dhcpServer="disable" portalenable="disable" confDhcpSrv="disable" leasedTime="0" startAddr="0.0.0.0" endAddr="0.0.0.0" subnetMask="0.0.0.0" dhcpwebredirect="" STBDhcpSrv="1" STBdhcpoptlist="1" STBopt="STB" STBstartAddr="0.0.0.0" STBendAddr="0.0.0.0" STBwebredirect="" BTPhoneDhcpSrv="0" BTPhonedhcpoptlist="1" BTPhoneopt="BPhone" BTPhonestartAddr="0.0.0.0" BTPhoneendAddr="0.0.0.0" BTPhonewebredirect="" SIPPhoneDhcpSrv="1" SIPPhonedhcpoptlist="1" SIPPhoneopt="Phone" SIPPhonestartAddr="0.0.0.0" SIPPhoneendAddr="0.0.0.0" SIPPhonewebredirect="" instanceId="1509949453"/&gt;<br />
&lt;entry1 address="192.168.1.1" mask="255.255.255.0" dhcpServer="enable" portalenable="disable" confDhcpSrv="enable" leasedTime="24" startAddr="192.168.1.2" endAddr="192.168.1.249" subnetMask="255.255.255.0" dhcpwebredirect="" STBDhcpSrv="1" STBdhcpoptlist="1" STBopt="STB" STBstartAddr="0.0.0.0" STBendAddr="0.0.0.0" STBwebredirect="" BTPhoneDhcpSrv="0" BTPhonedhcpoptlist="1" BTPhoneopt="BPhone" BTPhonestartAddr="0.0.0.0" BTPhoneendAddr="0.0.0.0" BTPhonewebredirect="" SIPPhoneDhcpSrv="1" SIPPhonedhcpoptlist="1" SIPPhoneopt="Phone" SIPPhonestartAddr="0.0.0.0" SIPPhoneendAddr="0.0.0.0" SIPPhonewebredirect="" instanceId="1509949442"/&gt;<br />
&lt;/Lan&gt;<br />
&lt;RouteCfg&gt;<br />
&lt;ripGlobal state="disable" ripIfcTableSize="1"/&gt;<br />
&lt;ripIfc tableSize="1"&gt;<br />
&lt;ripIfcEntry id="1" name="br0" state="disable" version="2" operation="active"/&gt;<br />
&lt;/ripIfc&gt;<br />
&lt;/RouteCfg&gt;<br />
&lt;/psitree&gt;</p>
<p> </p>
<p>其中</p>
<p>&lt;sysPassword value="******"/&gt;<br />
&lt;ctUserName value="admin"/&gt;<br />
&lt;ctPassword value="******"/&gt;<br />
&lt;sptPassword value="******"/&gt;<br />
&lt;usrUserName value="user"/&gt;<br />
&lt;usrPassword value="******"/&gt;</p>
<p>******为用户自定义密码,密码请编码后填入,建议采用相同的密码</p>
<p><a href="http://tool.114la.com/base64.html">http://tool.114la.com/base64.html</a></p>
<p>然后将整个配置文件再进行编码一次 拷到U盘以下位置(为了保证配置的读取请拷备4分副本于以下目录)</p>
<p>U:\ctce8.cfg<br />
U:\ctce8_DB120-B1.cfg<br />
U:\e8_Config_Backup\ctce8.cfg<br />
U:\e8_Config_Backup\ctce8.cfg</p>
<p>将U盘插入路由器的USB1口 重启路由后尝试登入</p>
<p>有TTL线的可以登陆终端后输入dumpcfg确认配置文件是否生效<br />
默认密码为admin admin</p>
<p>如果能以新的用户登陆则表示破解成功</p>
<p><img class="alignnone size-full wp-image-346" title="img_0270" src="http://blog.freebug.org/wp-content/uploads/2009/09/img_0270.jpg" alt="img_0270" width="730" height="548" /></p>
<p><span style="font-size: x-small;"><img class="alignnone size-full wp-image-348" title="img_0275" src="http://blog.freebug.org/wp-content/uploads/2009/09/img_0275.jpg" alt="img_0275" width="730" height="548" /></span></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.freebug.org/?feed=rss2&amp;p=341</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>BIND 9.4.3 + MYSQL5.1.38 + WEB 管理</title>
		<link>http://blog.freebug.org/?p=339</link>
		<comments>http://blog.freebug.org/?p=339#comments</comments>
		<pubDate>Fri, 18 Sep 2009 04:59:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Linux&Unix]]></category>

		<guid isPermaLink="false">http://blog.freebug.org/?p=339</guid>
		<description><![CDATA[需要的软件包如下：
mysql-4.1.9.tar.gz  http://www.mysql.com
bind-9.3.1.tar.gz   http://www.isc.org/products/BIND/
mysql-bind-0-1.tgz  http://sourceforge.net/projects/mysql-bind/
httpd-2.0.54.tar.gz
php-4.3.11.tar.gz
1. 安装mysql-4.1.9.tar.gz
cd /root
tar xfz mysql-4.1.9.tar.gz   \\解压缩
cd mysql-4.1.9
./configure --prefix=/usr/local/mysql --with-charset=gbk    \\配置安装到/usr/local/mysql支持中文gbk
make                                \\编译时间比较长看你机器的配置高低了，大概12分钟左右。
make install
groupadd [...]]]></description>
			<content:encoded><![CDATA[<p>需要的软件包如下：<br />
mysql-4.1.9.tar.gz  http://www.mysql.com<br />
bind-9.3.1.tar.gz   http://www.isc.org/products/BIND/<br />
mysql-bind-0-1.tgz  http://sourceforge.net/projects/mysql-bind/<br />
httpd-2.0.54.tar.gz<br />
php-4.3.11.tar.gz<br />
1. 安装mysql-4.1.9.tar.gz<br />
cd /root<br />
tar xfz mysql-4.1.9.tar.gz   \\解压缩<br />
cd mysql-4.1.9<br />
./configure --prefix=/usr/local/mysql --with-charset=gbk    \\配置安装到/usr/local/mysql支持中文gbk<br />
make                                \\编译时间比较长看你机器的配置高低了，大概12分钟左右。<br />
make install<br />
groupadd mysql                      \\建立mysql组<br />
useradd mysql -g mysql              \\建立mysql用户并且加入到mysql组中<br />
./scripts/mysql_install_db --user=mysql \\初始化表并且规定用mysql用户来访问初始化表以后就开始给mysql和root用户设定访问权<br />
cd /usr/local/mysql<br />
chown -R root .                \\设定root能访问/usr/local/mysql<br />
chown -R mysql var             \\设定mysql用户能访问/usr/local/mysql/var ,里面存的是mysql的数据库文件<br />
chown -R mysql var/.           \\设定mysql用户能访问/usr/local/mysql/var下的所有文件<br />
chown -R mysql var/mysql/.     \\设定mysql用户能访问/usr/local/mysql/var/mysql下的所有文件<br />
chgrp -R mysql .               \\设定mysql组能够访问/usr/local/mysql<br />
/usr/local/mysql/bin/mysqld_safe --user=mysql &#038;   \\运行mysql[1]<br />
12814<br />
以上提示表示mysql运行正常。<br />
/usr/local/mysql/bin/mysqladmin -uroot password *****     \\修改mysql密码默认为空密码</p>
<p>----------------------------------------------------------------------------------mysql安装全部完成<br />
2.安装apache </p>
<p>cd /root<br />
tar xfz httpd-2.0.54.tar.gz            \\解压缩<br />
cd httpd-2.0.54<br />
./configure --prefix=/usr/local/httpd --enable-module=most --enable-shared=max    \\配置apache<br />
make<br />
make install<br />
/usr/local/httpd/bin/httpd -l     \\察看编译进apache的模块<br />
Compiled in modules:<br />
core.c<br />
mod_access.c<br />
mod_auth.c<br />
mod_include.c<br />
mod_log_config.c<br />
mod_env.c<br />
mod_setenvif.c<br />
prefork.c<br />
http_core.c<br />
mod_mime.c<br />
mod_status.c<br />
mod_autoindex.c<br />
mod_asis.c<br />
mod_cgi.c<br />
mod_negotiation.c<br />
mod_dir.c<br />
mod_imap.c<br />
mod_actions.c<br />
mod_userdir.c<br />
mod_alias.c<br />
mod_so.c<br />
[root@linux httpd-2.0.54]#以上提示表示apache支持dso方式了。这样就可以用dso的方式把php的模块加进来。<br />
--------------------------------------------------------------------------------apache安装完成 </p>
<p>3. 安装php </p>
<p>cd /root<br />
tar xfz php-4.3.11.tar.gz<br />
cd php-4.3.11<br />
./configure --with-mysql=/usr/local/mysql --with-apxs2=/usr/local/httpd/bin/apxs   \\配置指定安装的apache和mysql的路径<br />
make<br />
make install<br />
cp php.ini-dist /usr/local/lib/php.ini   \\将php.ini-dist复制到/usr/local/lib/，并重命名为php.ini<br />
为了让Apache能够直接解析php,我们还要进行一些配置.<br />
vi /usr/local/httpd/conf/httpd.conf<br />
在httpd.conf文件中，添加 </p>
<p>AddType application/x-httpd-php .php<br />
AddType application/x-httpd-php-source .phps </p>
<p>应该将以上两句添加在其他AddType之后。 </p>
<p>确保文件中有以下一句话，没有就自己添加在所有LoadModule之后。 </p>
<p>LoadModule php4_module modules/libphp4.so </p>
<p>好了,在vi中使用":wq"保存httpd.conf文件，退出vi。启动apache server: </p>
<p>/usr/local/httpd/bin/apachectl start<br />
------------------------------------------------------------------------php安装配置完成 </p>
<p>4.安装bind</p>
<p>tar xfzv bind-9.3.1.tar.gz<br />
tar xfzv mysql-bind-0-1.tgz<br />
cp mysql-bind-0.1/mysqldb.c bind-9.3.1/bin/named<br />
cp mysql-bind-0.1/mysqldb.h bind-9.3.1/bin/named/include<br />
cd bind-9.3.1<br />
vi bin/named/Makefile.in<br />
将<br />
DBDRIVER_OBJS =<br />
DBDRIVER_SRCS =<br />
DBDRIVER_INCLUDES =<br />
DBDRIVER_LIBS =<br />
如下配置<br />
DBDRIVER_OBJS = mysqldb.@O@<br />
DBDRIVER_SRCS = mysqldb.c<br />
DBDRIVER_INCLUDES = -I'/usr/local/mysql/include/mysql'<br />
DBDRIVER_LIBS = -L'/usr/local/mysql/lib/mysql' -lmysqlclient -lz -lcrypt -lnsl -lm -lc -lnss_files -lnss_dns -lresolv -lc -lnss_files -lnss_dns -lresolv</p>
<p>修改main.c文件<br />
vi bin/named/main.c<br />
找到/*<br />
* Add calls to register sdb drivers here.<br />
*/<br />
/* xxdb_init(); */<br />
添加 mysqldb_init();<br />
找到<br />
/*<br />
* Add calls to unregister sdb drivers here.<br />
*/<br />
/* xxdb_clear(); */<br />
添加 mysqldb_clear(); </p>
<p>./configure --prefix=/usr/local/named --enable-threads #--enable-threads开启多线程处理能力<br />
make<br />
make install<br />
cd /usr/local/named<br />
mkdir etc 建立etc目录<br />
sbin/rndc-confgen >; etc/rndc.conf 生成rndc控制命令的key文件<br />
cd etc<br />
tail -10 rndc.conf | head -9 | sed s/#\ //g >; named.conf 从rndc.conf文件中提取named.conf用的key<br />
自动在/usr/local/named/etc 生成named,conf文件<br />
建立localhost.zone文件<br />
vi localhost.zone<br />
$TTL    86400<br />
$ORIGIN localhost.<br />
@                       1D IN SOA       @ root (<br />
                                       42              ; serial (d. adams)<br />
                                       3H              ; refresh<br />
                                       15M             ; retry<br />
                                       1W              ; expiry<br />
                                       1D )            ; minimum </p>
<p>                       1D IN NS        @<br />
                       1D IN A         127.0.0.1 </p>
<p>建立named.local文件<br />
vi named.local<br />
$TTL    86400<br />
@       IN      SOA     localhost. root.localhost.  (<br />
                                     1997022700 ; Serial<br />
                                     28800      ; Refresh<br />
                                     14400      ; Retry<br />
                                     3600000    ; Expire<br />
                                     86400 )    ; Minimum<br />
             IN      NS      localhost. </p>
<p>1       IN      PTR     localhost. </p>
<p>dig命令直接生成named.root文件<br />
dig >; named.root<br />
配置 named.conf<br />
增加如下内容：<br />
controls {<br />
        inet 127.0.0.1 port 953<br />
         * directive below.  Previous versions of BIND always asked<br />
         * questions using port 53, but BIND 9.31 uses an unprivileged<br />
         * port by default.<br />
         */<br />
        // query-source address * port 53;<br />
                                                              24,9         </p>
<p>};</p>
<p>//<br />
// a caching only nameserver config<br />
//<br />
zone "." IN {<br />
        type hint;<br />
        file "named.root";<br />
};      </p>
<p>zone "localhost" IN {<br />
        type master;<br />
        file "localhost.zone";<br />
        allow-update { none; };<br />
};</p>
<p>zone "0.0.127.in-addr.arpa" IN {<br />
        type master;<br />
        file "named.local";<br />
        allow-update { none; };<br />
};</p>
<p>zone "mydomain.com" {<br />
  type master;<br />
  database "mysqldb dnsdb mydomain localhost root passwd"; 配置你的数据库名，表名，MYSQL主机，MYSQL用户，MYSQL密码<br />
};</p>
<p>zone "19.202.220.in-addr.arpa" {<br />
  type master;<br />
  database "mysqldb dnsdb ptr localhost root passwd";  配置你的数据库名，表名，MYSQL主机，MYSQL用户，MYSQL密码<br />
};</p>
<p>--------------------------------------------------------------------------------BIND安装完成<br />
5. 我是用MYSQLADMIN来建立数据库的和倒数据的，APACHE下安装MYSQLADMIN我这里就不详细讲了。<br />
到我的站点http://www.sy165.cn/soft/myadmin.tar 下载解压缩到APACHE可访问的目录下就OK了</p>
<p>参照mysql-bind-0-1目录下的README建立数据库dnsdb<br />
正向解析数据库mydomain表结构<br />
CREATE TABLE mydomain (<br />
  name varchar(255) default NULL,<br />
  ttl int(11) default NULL,<br />
  rdtype varchar(255) default NULL,<br />
  rdata varchar(255) default NULL<br />
) TYPE=MyISAM;</p>
<p>以下是正向解析示范可以直接倒入<br />
INSERT INTO mydomain VALUES ('mydomain.com', 259200, 'SOA', 'mydomain.com. www.mydomain.com. 200309181 28800 7200 86400 28800');<br />
INSERT INTO mydomain VALUES ('mydomain.com', 259200, 'NS', 'ns0.mydomain.com.');<br />
INSERT INTO mydomain VALUES ('mydomain.com', 259200, 'NS', 'ns1.mydomain.com.');<br />
INSERT INTO mydomain VALUES ('mydomain.com', 259200, 'MX', '10 mail.mydomain.com.');<br />
INSERT INTO mydomain VALUES ('w0.mydomain.com', 259200, 'A', '192.168.1.1');<br />
INSERT INTO mydomain VALUES ('w1.mydomain.com', 259200, 'A', '192.168.1.2');<br />
INSERT INTO mydomain VALUES ('mydomain.com', 259200, 'Cname', 'w0.mydomain.com.');<br />
INSERT INTO mydomain VALUES ('mail.mydomain.com', 259200, 'Cname', 'w0.mydomain.com.');<br />
INSERT INTO mydomain VALUES ('ns0.mydomain.com', 259200, 'Cname', 'w0.mydomain.com.');<br />
INSERT INTO mydomain VALUES ('ns1.mydomain.com', 259200, 'Cname', 'w1.mydomain.com.');<br />
INSERT INTO mydomain VALUES ('www.mydomain.com', 259200, 'Cname', 'w0.mydomain.com.');<br />
INSERT INTO mydomain VALUES ('ftp.mydomain.com', 259200, 'Cname', 'w0.mydomain.com.');</p>
<p>反向解析数据库ptr表结构</p>
<p>CREATE TABLE ptr (<br />
  name varchar(255) default NULL,<br />
  ttl int(11) default NULL,<br />
  rdtype varchar(255) default NULL,<br />
  rdata varchar(255) default NULL<br />
) TYPE=MyISAM;</p>
<p>以下是反向解析示范可以直接倒入</p>
<p>INSERT INTO `ptr` VALUES ('19.202.220.in-addr.arpa', 17600, 'SOA', 'mydomain.com. www.mydomain.com. 200309181 28800 7200 86400 28800');<br />
INSERT INTO `ptr` VALUES ('19.202.220.in-addr.arpa', 17600, 'NS', 'ns0.mydomain.com.');<br />
INSERT INTO `ptr` VALUES ('19.202.220.in-addr.arpa', 17600, 'NS', 'ns1.mydomain.com.');<br />
INSERT INTO `ptr` VALUES ('82.19.202.220.in-addr.arpa', 17600, 'PTR', 'mail.mydomain.');</p>
<p>--------------------------------------------------------------------------------数据库建立完成</p>
<p>6. 启动你的BIND 测试BIND是否能正常工作</p>
<p>/usr/local/named/sbin/named -c /usr/local/named/etc/named.conf &#038; </p>
<p>然后在你WINDOWS机器上将这个配置了BIND的IP设置为DNS然后运行nslookup测试<br />
如果出现证明反向解析正常<br />
Default Server:  mail.mydomain<br />
Address:  220.202.19.2</p>
<p>>;<br />
如果PING w0.mydomain.com<br />
解析地址为192.168.1.1 证明正向工作正常</p>
<p>7.结束语</p>
<p>BIND + MYSQL 在增加A记录 MX记录 PTR记录都不需要从新启动BIND，每增加一个正向的解析域名都必须在named.conf正增加如下内容</p>
<p>zone "youname.com" {<br />
  type master;<br />
  database "mysqldb dnsdb mydomain localhost root passwd"; 配置你的数据库名，表名，MYSQL主机，MYSQL用户，MYSQL密码<br />
};</p>
<p>bind + mysql 配置就写到这里了，有错误之处请大家指正。余下的时间就是用PHP写WEB脚本。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.freebug.org/?feed=rss2&amp;p=339</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ldirectord.cf文件详解</title>
		<link>http://blog.freebug.org/?p=337</link>
		<comments>http://blog.freebug.org/?p=337#comments</comments>
		<pubDate>Sat, 12 Sep 2009 13:08:34 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Linux&Unix]]></category>

		<guid isPermaLink="false">http://blog.freebug.org/?p=337</guid>
		<description><![CDATA[ldirectord使用一个配置文件建立IPVS表，你可以给这个文件取任意合法的名字，但你必须将其放于/etc/ha.d/conf目录下，例如：在VIP 209.100.100.3上的IPVS配置文件可以是：
checktimeout=20checkinterval=5autoreload=yesquiescent=nologfile="info"virtual=209.100.100.3:80real=127.0.0.1:80 gate 1 ".healthcheck.html", "OKAY"real=209.100.100.100:80 gate 1 ".healthcheck.html", "OKAY"service=httpcheckport=80protocol=tcpscheduler=wrrchecktype=negotiatefallback=127.0.0.1
注意：在virtual行后面的行必须缩进4个空格或一个tab字符进行标记。
这个文件的前面4行是“全局”设置，它们应用到多个虚拟主机，但是当使用Heartbeat时，这个文件通常都包括一行virtual= 只指定一个VIP地址，这就是为什么你在haresources文件中设置VIP时要每一行放一个的原因的，为每个VIP运行一个ldirectord守护进程，每个ldirectord守护进程使用不同的配置文件，因此每个VIP及其IPVS表成为一个Heartbeat可以管理的资源。
下面来看看这个配置文件中的每一行：
checktimeout=20
这个值就是ldirectord等待健康检查执行完毕的等待时间，单位秒。如果因为某些原因检查失败或在设置的时间周期内没有完成检查，ldirectord将会从IPVS表中移除真实服务器[16]。
checkinterval=5
这个值指定ldirectord在两个检查之间的间隔时间。
autoreload=yes
如果启用这个选项，它使ldirectord按时计算这个配置文件的md5校验和值，看其是否有改动，当发现有改动时自动应用那些改动，这个方便的特性运行你容易地改变集群的配置，你对配置文件改动后几秒，ldirectord将察觉到有改动，调用ipvsadm命令实现改动，从有效服务器池中移除真实服务器或按需要将它们添加到池中[17]。
注意：你也可以通过向ldirectoed守护进程发送HUP信号（使用kill命令）强制它重新载入，或运行ldirectord reload。
quiescent=no
当一个节点在checktimeout设置的时间周期内没有响应是它是“静止的”（它的权重为0），当你设置了这个选项后，ldirectord将会从IPVS表中移除真实服务器而不是“停止”它，从IPVS表移除节点将中断现有的客户端连接，并使LVS丢掉所有的连接跟踪记录和持续连接模板，如果你不将这个选项设置为no，当某个节点崩溃时，对某些客户端计算机而言可能会显示为集群关闭了，因为在这个节点崩溃前这些客户端计算机被分配给它了，而连接跟踪记录和程序连接模板仍然保留在Director上。
使用这个选项时，你可能也想在系统启动时使用下面这个命令[18]：
echo 1 > /proc/sys/net/ipv4/vs/expire_nodest_conn
如果客户端使用一个先前的连接跟踪记录尝试与相同的服务器对话，但此时该服务器已经失效了，可以设置这个内核变量为1使连接跟踪记录立即失效[19]。
注意：所有sysctl变量。包括expire_nodest_conn 变量，在LVS网站上都有说明文档（http://www.linuxvirtualserver.org/docs/sysctl.html）。
logfile="info"
这一行内容告诉ldirectord使用syslog程序记录错误消息（查看/etc/syslog.conf找出“info”级别的消息是写到哪里的），你也可以输入记录错误消息的目录和文件名，如果没有指定值，日志消息将被写入/var/log/ldirectord.log。
virtual=209.100.100.3:80
这一行指定我们想要在Director上设置的VIP地址和端口号，这就是你要添加到DNS向客户端广播的ip地址，任何情况下，这就是客户端计算机用来连接到你配置的集群资源的ip地址。
你也可以在这一行指定Netfilter掩码（或fwmark）代替ip地址，例如，下面的条目仍然是有效的：
virtual=2
这一条表明你使用的是ipchains或iptables标记抵达Director的数据包[20]，所有含有这个标记的数据包都将按照这个配置文件后面的规则进行处理。
注意：数据包通常被标记创建端口仿射性（例如在端口443和端口80之间），参考第14章关于数据包标记和端口仿射性的讨论。
下面的第一个缩进行指出由哪个真实服务器向客户端计算机提供资源：
real=127.0.0.1:80 gate 1 ".healthcheck.html", "OKAY"
这一行指出Director本身（在回路ip地址127.0.0.1）充当LocalNode模式，将响应抵达VIP 200.100.100.3的客户端请求。
注意：在生产环境中不要使用LocalNode，除非你对集群负载均衡资源进行了充分的测试，如果你不使用LocalNode模式，通常可以改善集群的可靠性。
real=209.100.100.100:80 gate 1 ".healthcheck.html", "OKAY"
这一行使用RIP地址209.100.100.100添加了第一个LVS-DR真实服务器。这个配置文件中的每以real=行都使用下面的语法格式：
real=RIP:port gate&#124;masq&#124;ipip [weight] "Request URL", "Response Expected"
这个语法描述告诉我们该配置文件中每一real=行都必须给出gate、masq或ipip指出要使用的转发方法（回忆第11章中Director 使用不同的转发方法），这个配置文件使用稍微不同的术语（基于传递给ipvsadm命令的参数）来代表三种转发方法，具体请查看表15-1：
ldirectord配置选项
 ipvsadm使用的参数
 ipvsadm -L的输出
 LVS转发方法
gate
 -g
 Route
 LVS-DR
ipip
 -i
 Tunnel
 LVS-TUN
masq
 -m
 Masq
 LVS-NAT
跟随转发方法后面的是分配给真实服务器的权重值，只在带权重的调度方法中有用，最后两个参数指出ldirectord应该访问哪个web页面或 URL检查真实服务器的健康状况，以及ldirectord应从真实服务器那里接收到预期的响应。这两个参数都需要用引号引起来，并用逗号隔开。
service=http
这一行指出测试真实服务器的健康时ldirectord使用的服务，你必须要为你指定的服务载入正确的CPAN Perl 模块。
checkport=80
这一行指出健康检查使用的端口是80。
protocol=tcp
这一行指出该服务使用的协议。可以是tcp、udp或fwm，如果你使用fwm或fwmark标记的数据包，在virtual=那一行你必须使用Netfilter掩码（或fwmark）代替ip地址。
scheduler=wrr
这一行指出使用的是带权重的循环负载均衡技术进行调度（查看前面的real行为每个真实服务器分配的权重值），参考第11章中描述的LVS支持的调度方法，ldirectord不检查这一项的有效性，ldirectord只管传递你输入的内容给ipvsadm创建虚拟服务。
checktype=negotiate
这个选项指出ldirectord守护进程使用什么方法监视真实服务器，checktype有以下这样一些值：
negotiate ：
这个方法连接到真实服务器发送你指定的请求，如果在checktimeout周期内真实服务器都没有返回你指定的应答字符串，这个节点就被认为已经死掉了，你可以在每个节点上指定请求和应答字符串，或在ldirectord配置文件中添加两行内容，为所有节点设置同样的请求和应答字符串：
request=".healthcheck.html"receive="OKAY"connect ：
这个方法只是在checkport指定的端口上连接到真实服务器，并假设真实服务器一切都ok，值需要到真实服务器的TCO/IP连接是通畅的，这个方法没有negotiate可靠，当没有negotiate检查可用时，使用这个方法显得有点用处。
A number ：
如果在这里输入一个数字代替negotiate或connect ，ldirectord将会执行你指定的数字次数的连接测试，然后再执行一次negotiate 测试，这个方法减少了真实服务器应答健康检查的要求，同时也减少了集群网络通讯[21]。
off ：
禁用ldirectord监视真实服务器的健康。
fallback=127.0.0.1
fallback地址指出当IPVS表中没有真实服务器时，客户端计算机应该被重定向的ip地址，通常将其设为loopback地址 [...]]]></description>
			<content:encoded><![CDATA[<p>ldirectord使用一个配置文件建立IPVS表，你可以给这个文件取任意合法的名字，但你必须将其放于/etc/ha.d/conf目录下，例如：在VIP 209.100.100.3上的IPVS配置文件可以是：</p>
<p>checktimeout=20checkinterval=5autoreload=yesquiescent=nologfile="info"virtual=209.100.100.3:80real=127.0.0.1:80 gate 1 ".healthcheck.html", "OKAY"real=209.100.100.100:80 gate 1 ".healthcheck.html", "OKAY"service=httpcheckport=80protocol=tcpscheduler=wrrchecktype=negotiatefallback=127.0.0.1</p>
<p>注意：在virtual行后面的行必须缩进4个空格或一个tab字符进行标记。</p>
<p>这个文件的前面4行是“全局”设置，它们应用到多个虚拟主机，但是当使用Heartbeat时，这个文件通常都包括一行virtual= 只指定一个VIP地址，这就是为什么你在haresources文件中设置VIP时要每一行放一个的原因的，为每个VIP运行一个ldirectord守护进程，每个ldirectord守护进程使用不同的配置文件，因此每个VIP及其IPVS表成为一个Heartbeat可以管理的资源。</p>
<p>下面来看看这个配置文件中的每一行：</p>
<p>checktimeout=20</p>
<p>这个值就是ldirectord等待健康检查执行完毕的等待时间，单位秒。如果因为某些原因检查失败或在设置的时间周期内没有完成检查，ldirectord将会从IPVS表中移除真实服务器[16]。</p>
<p>checkinterval=5</p>
<p>这个值指定ldirectord在两个检查之间的间隔时间。</p>
<p>autoreload=yes</p>
<p>如果启用这个选项，它使ldirectord按时计算这个配置文件的md5校验和值，看其是否有改动，当发现有改动时自动应用那些改动，这个方便的特性运行你容易地改变集群的配置，你对配置文件改动后几秒，ldirectord将察觉到有改动，调用ipvsadm命令实现改动，从有效服务器池中移除真实服务器或按需要将它们添加到池中[17]。</p>
<p>注意：你也可以通过向ldirectoed守护进程发送HUP信号（使用kill命令）强制它重新载入，或运行ldirectord reload。</p>
<p>quiescent=no</p>
<p>当一个节点在checktimeout设置的时间周期内没有响应是它是“静止的”（它的权重为0），当你设置了这个选项后，ldirectord将会从IPVS表中移除真实服务器而不是“停止”它，从IPVS表移除节点将中断现有的客户端连接，并使LVS丢掉所有的连接跟踪记录和持续连接模板，如果你不将这个选项设置为no，当某个节点崩溃时，对某些客户端计算机而言可能会显示为集群关闭了，因为在这个节点崩溃前这些客户端计算机被分配给它了，而连接跟踪记录和程序连接模板仍然保留在Director上。</p>
<p>使用这个选项时，你可能也想在系统启动时使用下面这个命令[18]：</p>
<p>echo 1 > /proc/sys/net/ipv4/vs/expire_nodest_conn</p>
<p>如果客户端使用一个先前的连接跟踪记录尝试与相同的服务器对话，但此时该服务器已经失效了，可以设置这个内核变量为1使连接跟踪记录立即失效[19]。</p>
<p>注意：所有sysctl变量。包括expire_nodest_conn 变量，在LVS网站上都有说明文档（http://www.linuxvirtualserver.org/docs/sysctl.html）。</p>
<p>logfile="info"</p>
<p>这一行内容告诉ldirectord使用syslog程序记录错误消息（查看/etc/syslog.conf找出“info”级别的消息是写到哪里的），你也可以输入记录错误消息的目录和文件名，如果没有指定值，日志消息将被写入/var/log/ldirectord.log。</p>
<p>virtual=209.100.100.3:80</p>
<p>这一行指定我们想要在Director上设置的VIP地址和端口号，这就是你要添加到DNS向客户端广播的ip地址，任何情况下，这就是客户端计算机用来连接到你配置的集群资源的ip地址。</p>
<p>你也可以在这一行指定Netfilter掩码（或fwmark）代替ip地址，例如，下面的条目仍然是有效的：</p>
<p>virtual=2</p>
<p>这一条表明你使用的是ipchains或iptables标记抵达Director的数据包[20]，所有含有这个标记的数据包都将按照这个配置文件后面的规则进行处理。</p>
<p>注意：数据包通常被标记创建端口仿射性（例如在端口443和端口80之间），参考第14章关于数据包标记和端口仿射性的讨论。</p>
<p>下面的第一个缩进行指出由哪个真实服务器向客户端计算机提供资源：</p>
<p>real=127.0.0.1:80 gate 1 ".healthcheck.html", "OKAY"</p>
<p>这一行指出Director本身（在回路ip地址127.0.0.1）充当LocalNode模式，将响应抵达VIP 200.100.100.3的客户端请求。</p>
<p>注意：在生产环境中不要使用LocalNode，除非你对集群负载均衡资源进行了充分的测试，如果你不使用LocalNode模式，通常可以改善集群的可靠性。</p>
<p>real=209.100.100.100:80 gate 1 ".healthcheck.html", "OKAY"</p>
<p>这一行使用RIP地址209.100.100.100添加了第一个LVS-DR真实服务器。这个配置文件中的每以real=行都使用下面的语法格式：</p>
<p>real=RIP:port gate|masq|ipip [weight] "Request URL", "Response Expected"</p>
<p>这个语法描述告诉我们该配置文件中每一real=行都必须给出gate、masq或ipip指出要使用的转发方法（回忆第11章中Director 使用不同的转发方法），这个配置文件使用稍微不同的术语（基于传递给ipvsadm命令的参数）来代表三种转发方法，具体请查看表15-1：<br />
ldirectord配置选项<br />
 ipvsadm使用的参数<br />
 ipvsadm -L的输出<br />
 LVS转发方法</p>
<p>gate<br />
 -g<br />
 Route<br />
 LVS-DR</p>
<p>ipip<br />
 -i<br />
 Tunnel<br />
 LVS-TUN</p>
<p>masq<br />
 -m<br />
 Masq<br />
 LVS-NAT</p>
<p>跟随转发方法后面的是分配给真实服务器的权重值，只在带权重的调度方法中有用，最后两个参数指出ldirectord应该访问哪个web页面或 URL检查真实服务器的健康状况，以及ldirectord应从真实服务器那里接收到预期的响应。这两个参数都需要用引号引起来，并用逗号隔开。</p>
<p>service=http</p>
<p>这一行指出测试真实服务器的健康时ldirectord使用的服务，你必须要为你指定的服务载入正确的CPAN Perl 模块。</p>
<p>checkport=80</p>
<p>这一行指出健康检查使用的端口是80。</p>
<p>protocol=tcp</p>
<p>这一行指出该服务使用的协议。可以是tcp、udp或fwm，如果你使用fwm或fwmark标记的数据包，在virtual=那一行你必须使用Netfilter掩码（或fwmark）代替ip地址。</p>
<p>scheduler=wrr</p>
<p>这一行指出使用的是带权重的循环负载均衡技术进行调度（查看前面的real行为每个真实服务器分配的权重值），参考第11章中描述的LVS支持的调度方法，ldirectord不检查这一项的有效性，ldirectord只管传递你输入的内容给ipvsadm创建虚拟服务。</p>
<p>checktype=negotiate</p>
<p>这个选项指出ldirectord守护进程使用什么方法监视真实服务器，checktype有以下这样一些值：</p>
<p>negotiate ：</p>
<p>这个方法连接到真实服务器发送你指定的请求，如果在checktimeout周期内真实服务器都没有返回你指定的应答字符串，这个节点就被认为已经死掉了，你可以在每个节点上指定请求和应答字符串，或在ldirectord配置文件中添加两行内容，为所有节点设置同样的请求和应答字符串：</p>
<p>request=".healthcheck.html"receive="OKAY"connect ：</p>
<p>这个方法只是在checkport指定的端口上连接到真实服务器，并假设真实服务器一切都ok，值需要到真实服务器的TCO/IP连接是通畅的，这个方法没有negotiate可靠，当没有negotiate检查可用时，使用这个方法显得有点用处。</p>
<p>A number ：</p>
<p>如果在这里输入一个数字代替negotiate或connect ，ldirectord将会执行你指定的数字次数的连接测试，然后再执行一次negotiate 测试，这个方法减少了真实服务器应答健康检查的要求，同时也减少了集群网络通讯[21]。</p>
<p>off ：</p>
<p>禁用ldirectord监视真实服务器的健康。</p>
<p>fallback=127.0.0.1</p>
<p>fallback地址指出当IPVS表中没有真实服务器时，客户端计算机应该被重定向的ip地址，通常将其设为loopback地址 127.0.0.1，为了强制客户端计算机连接到本地的守护进程，至少要通知用户出现问题了，可能还要让他们知道要获取额外的帮助应该联系谁。</p>
<p>你也可以为fallback web页面设置一个端口号：</p>
<p>fallback=127.0.0.1:9999</p>
<p>注意：我们不会使用持续连接创建我们的虚拟服务表，在ldirectord.conf文件中使用 persistent=启用持续连接，请参考第14章关于持续连接的讨论。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.freebug.org/?feed=rss2&amp;p=337</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>常用命令:如何使用命令trap来捕捉信号</title>
		<link>http://blog.freebug.org/?p=334</link>
		<comments>http://blog.freebug.org/?p=334#comments</comments>
		<pubDate>Wed, 29 Jul 2009 02:22:31 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Linux&Unix]]></category>

		<guid isPermaLink="false">http://blog.freebug.org/?p=334</guid>
		<description><![CDATA[它有三种形式分别对应三种不同的信号回应方式.
第一种:
trap ""commands"" signal-list
当脚本收到signal-list清单内列出的信号时,trap命令执行双引号中的命令.
第二种:
trap signal-list
trap不指定任何命令,接受信号的默认操作.默认操作是结束进程的运行.
第三种:
trap "" "" signal-list
trap命令指定一个空命令串,允许忽视信号.
Linux信号简介
1) SIGHUP 本信号在用户终端连接(正常或非正常)结束时发出, 通常是在终端的控制进程结束时, 通知同一session内的各个作业, 这时它们与控制终端不再关联.
2) SIGINT 程序终止(interrupt)信号, 在用户键入INTR字符(通常是Ctrl-C)时发出
3) SIGQUIT 和SIGINT类似, 但由QUIT字符(通常是Ctrl-\)来控制. 进程在因收到SIGQUIT退出时会产生core文件, 在这个意义上类似于一个程序错误信号.
4) SIGILL 执行了非法指令. 通常是因为可执行文件本身出现错误, 或者试图执行数据段. 堆栈溢出时也有可能产生这个信号.
5) SIGTRAP 由断点指令或其它trap指令产生. 由debugger使用.
6) SIGABRT 程序自己发现错误并调用abort时产生.
7) SIGIOT 在PDP-11上由iot指令产生, 在其它机器上和SIGABRT一样.
8) SIGBUS 非法地址, 包括内存地址对齐(alignment)出错. eg: 访问一个四个字长的整数, 但其地址不是4的倍数.
9) SIGFPE 在发生致命的算术运算错误时发出. 不仅包括浮点运算错误, 还包括溢出及除数为0等其它所有的算术的错误.
10) SIGKILL 用来立即结束程序的运行. 本信号不能被阻塞, 处理和忽略.
11) SIGUSR1 留给用户使用
12) SIGSEGV 试图访问未分配给自己的内存, 或试图往没有写权限的内存地址写数据.
13) SIGUSR2 留给用户使用
14) SIGPIPE [...]]]></description>
			<content:encoded><![CDATA[<p>它有三种形式分别对应三种不同的信号回应方式.<br />
第一种:<br />
trap ""commands"" signal-list</p>
<p>当脚本收到signal-list清单内列出的信号时,trap命令执行双引号中的命令.<br />
第二种:<br />
trap signal-list<br />
trap不指定任何命令,接受信号的默认操作.默认操作是结束进程的运行.</p>
<p>第三种:<br />
trap "" "" signal-list<br />
trap命令指定一个空命令串,允许忽视信号.</p>
<p>Linux信号简介<br />
1) SIGHUP 本信号在用户终端连接(正常或非正常)结束时发出, 通常是在终端的控制进程结束时, 通知同一session内的各个作业, 这时它们与控制终端不再关联.<br />
2) SIGINT 程序终止(interrupt)信号, 在用户键入INTR字符(通常是Ctrl-C)时发出<br />
3) SIGQUIT 和SIGINT类似, 但由QUIT字符(通常是Ctrl-\)来控制. 进程在因收到SIGQUIT退出时会产生core文件, 在这个意义上类似于一个程序错误信号.<br />
4) SIGILL 执行了非法指令. 通常是因为可执行文件本身出现错误, 或者试图执行数据段. 堆栈溢出时也有可能产生这个信号.<br />
5) SIGTRAP 由断点指令或其它trap指令产生. 由debugger使用.<br />
6) SIGABRT 程序自己发现错误并调用abort时产生.<br />
7) SIGIOT 在PDP-11上由iot指令产生, 在其它机器上和SIGABRT一样.<br />
8) SIGBUS 非法地址, 包括内存地址对齐(alignment)出错. eg: 访问一个四个字长的整数, 但其地址不是4的倍数.<br />
9) SIGFPE 在发生致命的算术运算错误时发出. 不仅包括浮点运算错误, 还包括溢出及除数为0等其它所有的算术的错误.<br />
10) SIGKILL 用来立即结束程序的运行. 本信号不能被阻塞, 处理和忽略.<br />
11) SIGUSR1 留给用户使用<br />
12) SIGSEGV 试图访问未分配给自己的内存, 或试图往没有写权限的内存地址写数据.<br />
13) SIGUSR2 留给用户使用<br />
14) SIGPIPE Broken pipe<br />
15) SIGALRM 时钟定时信号, 计算的是实际的时间或时钟时间. alarm函数使用该信号.<br />
16) SIGTERM 程序结束(terminate)信号, 与SIGKILL不同的是该信号可以被阻塞和处理. 通常用来要求程序自己正常退出. shell命令kill缺省产生这个信号.<br />
17) SIGCHLD 子进程结束时, 父进程会收到这个信号.<br />
18) SIGCONT 让一个停止(stopped)的进程继续执行. 本信号不能被阻塞. 可以用一个handler来让程序在由stopped状态变为继续执行时完成特定的工作. 例如, 重新显示提示符<br />
19) SIGSTOP 停止(stopped)进程的执行. 注意它和terminate以及interrupt的区别: 该进程还未结束, 只是暂停执行. 本信号不能被阻塞, 处理或忽略.<br />
20) SIGTSTP 停止进程的运行, 但该信号可以被处理和忽略. 用户键入SUSP字符时(通常是Ctrl-Z)发出这个信号<br />
21) SIGTTIN 当后台作业要从用户终端读数据时, 该作业中的所有进程会收到SIGTTIN信号. 缺省时这些进程会停止执行.<br />
22) SIGTTOU 类似于SIGTTIN, 但在写终端(或修改终端模式)时收到.<br />
23) SIGURG 有紧急数据或out-of-band数据到达socket时产生.<br />
24) SIGXCPU 超过CPU时间资源限制. 这个限制可以由getrlimit/setrlimit来读取/改变<br />
25) SIGXFSZ 超过文件大小资源限制.<br />
26) SIGVTALRM 虚拟时钟信号. 类似于SIGALRM, 但是计算的是该进程占用的CPU时间.<br />
27) SIGPROF 类似于SIGALRM/SIGVTALRM, 但包括该进程用的CPU时间以及系统调用的时间.<br />
28) SIGWINCH 窗口大小改变时发出.<br />
29) SIGIO 文件描述符准备就绪, 可以开始进行输入/输出操作.<br />
30) SIGPWR Power failure来源:考试大-Linux认证 </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.freebug.org/?feed=rss2&amp;p=334</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>linux 下制作二进制 .bin 的文件</title>
		<link>http://blog.freebug.org/?p=329</link>
		<comments>http://blog.freebug.org/?p=329#comments</comments>
		<pubDate>Fri, 17 Jul 2009 12:27:40 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Linux&Unix]]></category>

		<guid isPermaLink="false">http://blog.freebug.org/?p=329</guid>
		<description><![CDATA[linux 下制作二进制 .bin  的文件
制做方法是使用cat 命令将执行脚本和打包文件同事放到一个.bin的文件里
这样安装的时候只要使用一个包，直接执行该包即可安装完毕，简单方便。
例：制作安装apache、mysql的安装脚本包
1.将源码包先打包
#tar zcvf packages.tar.gz httpd-2.0.63.tar.bz2 mysql-5.0.33.tar.gz
2.编写脚本如下：
# cat install.sh
#!/bin/bash
dir_tmp=/root/installapache
mkdir $dir_tmp
sed -n -e '1,/^exit 0$/!p' $0 > "${dir_tmp}/packages.tar.gz" 2>/dev/null
cd $dir_tmp
tar zxf packages.tar.gz
tar jxf httpd-2.0.63.tar.bz2
cd  httpd-2.0.63
./configure --prefix=/tmp/apache2
make
make install
cd $dir_tmp
tar zxf mysql-5.0.33.tar.gz
cd mysql-5.0.33
./configure --with-charset=gbk --with-extra-charsets=binary,latin1,gb2312 --localstatedir=/home/db --with-mysqld-ldflags=-all-static -enable-assembler --with-innodb --prefix=/tmp/mysql5
make
make install
exit 0
#cat install.sh packages.tar.gz >install.bin
这样就生成install.bin的安装文件，改文件是由shell脚本和二进制合成的。前半部分是脚本后半部分是二进制文件，用strings等二进制查看命令可以看到
最主要的是下面这句，是将二进制文件从.bin文件里分离出来
sed -n -e '1,/^exit 0$/!p' $0 > "${dir_tmp}/packages.tar.gz" 2>/dev/null
安装的时候直接执行
sh install.bin
安装这个方法可以将我们平时常使用的安装脚本化，然后打包。以后使用就方便了。
]]></description>
			<content:encoded><![CDATA[<p>linux 下制作二进制 .bin  的文件<br />
制做方法是使用cat 命令将执行脚本和打包文件同事放到一个.bin的文件里<br />
这样安装的时候只要使用一个包，直接执行该包即可安装完毕，简单方便。<br />
例：制作安装apache、mysql的安装脚本包<br />
1.将源码包先打包<br />
#tar zcvf packages.tar.gz httpd-2.0.63.tar.bz2 mysql-5.0.33.tar.gz</p>
<p>2.编写脚本如下：<br />
# cat install.sh<br />
#!/bin/bash<br />
dir_tmp=/root/installapache<br />
mkdir $dir_tmp<br />
sed -n -e '1,/^exit 0$/!p' $0 > "${dir_tmp}/packages.tar.gz" 2>/dev/null<br />
cd $dir_tmp<br />
tar zxf packages.tar.gz<br />
tar jxf httpd-2.0.63.tar.bz2<br />
cd  httpd-2.0.63<br />
./configure --prefix=/tmp/apache2<br />
make<br />
make install<br />
cd $dir_tmp<br />
tar zxf mysql-5.0.33.tar.gz<br />
cd mysql-5.0.33<br />
./configure --with-charset=gbk --with-extra-charsets=binary,latin1,gb2312 --localstatedir=/home/db --with-mysqld-ldflags=-all-static -enable-assembler --with-innodb --prefix=/tmp/mysql5<br />
make<br />
make install<br />
exit 0</p>
<p>#cat install.sh packages.tar.gz >install.bin</p>
<p>这样就生成install.bin的安装文件，改文件是由shell脚本和二进制合成的。前半部分是脚本后半部分是二进制文件，用strings等二进制查看命令可以看到<br />
最主要的是下面这句，是将二进制文件从.bin文件里分离出来<br />
sed -n -e '1,/^exit 0$/!p' $0 > "${dir_tmp}/packages.tar.gz" 2>/dev/null</p>
<p>安装的时候直接执行<br />
sh install.bin<br />
安装这个方法可以将我们平时常使用的安装脚本化，然后打包。以后使用就方便了。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.freebug.org/?feed=rss2&amp;p=329</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
