樂思蜀的博客,包括但不限于SEO&SEM研究、应用中的心得体会,互联网、搜索引擎观察与思考。

RedHat Linux 产品系列

2008年08月04日 by 樂思蜀

Redhat有两大Linux产品系列,其一是免费的Fedora Core系列主要用于桌面版本,提供了较多新特性的支持。另外一个产品系列是收费的Enterprise系列,这个系列分成:AS/ES/WS等分支,他们都是redhat企业级Linux,简称为 RHEL。

RedHat AS 是超级服务器版(Advanced Server),他在标准Linux内核的基础上,做了性能上的增强,并提高了可靠性,集成了众多常见服务器的驱动程序。可轻松识别IBM/DELL/HP等常见机架式服务器的磁盘阵列卡等设备。

RedHat AS 典型的应用为:

  • 数据库和数据库应用软件
  • WEB和中间件
  • CRM, ERP,SCM

RedHat ES 是企业服务器(Enterprise Server),AS的精简版本。他与常见的AS系列的区别是,AS支持到4路以上CPU,而ES只能支持两路CPU。AS和ES在大多数程序包上并无区别,只在内核等少数软件包上有差异。AS和ES的售价差别比较大,通常ES用在随服务器一同购买的OEM版本(如购买DELL服务器)中,搭配的Linux 会是ES系列。如果要搭配AS系列,则需要多花数千元。

RedHat ES 典型的应用为:

  • 公司WEB架构
  • 网络边缘应用 (DHCP, DNS, 防火墙等)
  • 邮件和文件/打印服务
  • 中小规模数据库和部门应用软件

RedHat WS 是工作站服务版(Workstation Server),ES的进一步简化版,主要针对企业内部的桌面办公市场,国内较少采用WS是桌面应用的最佳环境。它包含各种常用的桌面应用软件 (Office工具,邮件,即时信息,浏览器等),可以运行各种客户-服务器配置工具,软件开发工具和各种应用软件(例如EDA和Oil/Gas应用软件, 但它不提供网络服务功能(如DNS和DHCP),它只适合作客户端应用。

AS、ES功能上没有什么区别,无论x86,还是Itanium版,RHEL的后三张盘完全一样,也就是说,软件包完全一样。第一张盘实际上没有什么软件包的,只是启用安装程序,确定安装文件包而已,只是在服务级别,支持的CPU数量和内存数量上有区别。

vsFTPd 配置中文文档

2008年04月13日 by 樂思蜀

vsFTPd是一款小巧易用FTP服务器程序,是一款在Linux发行版中最受推崇的FTP服务器程序,特点是小巧轻快,安全易用。

虽然Proftpd的proftp+mysql+quota很强大,但个人觉得,还是简单、易用的好,如果Mysql故障,又禁止了root使用FTP,FTP连接服务器都成问题了,SSH毕竟不是那么方便。

vsFTPd的安装、设置可以点这里查看

今天需要对vsFTPd修改几项设置,顺便参考网上的资料,把vsFTPd的配置文件 vsftpd.conf 选项进行分类,并逐一加上了中文说明,需要的朋友可以下载:

vsFTPd 配置中文文档

选项全部按分类进行了整理,归为几个大类:

  • 核心设置
  • 匿名登录设置
  • 用户限制设置
  • 日志设置
  • 安全设置
  • 被动模式设置
  • 其他设置

可以在修改vsFTPd配置时参考,希望对朋友们有所帮助。

Linux下cronolog安装配置

2008年04月06日 by 樂思蜀

Linux下运行的Web服务器Apache,默认日志文件是不分割的,一个整文件既不易于管理,也不易于分析统计。安装cronolog后,可以将日志文件按时间分割,易于管理和分析。

cronolog安装配置非常简单,下载后只需要输入几个命令即可完成。

1、下载(最新版本

#  wget http://cronolog.org/download/cronolog-1.6.2.tar.gz

2、解压缩

# tar zxvf cronolog-1.6.2.tar.gz

3、进入cronolog安装文件所在目录

# cd cronolog-1.6.2

4、运行安装

# ./configure
# make
# make install

5、查看cronolog安装后所在目录(验证安装是否成功)

# which cronolog

一般情况下显示为:/usr/local/sbin/cronolog

整个安装过程结束,下面需要把日志的格式配置一下:

1、虚拟主机配置文件 httpd-vhosts.conf

将Web日志设置 CustomLog 修改为以下格式

CustomLog "|/usr/local/sbin/cronolog /www/logs/example_%Y%m%d.log" combined

当然,错误日志设置 ErrorLog 也可以利用 cronolog 分割,设置为

ErrorLog "|/usr/local/sbin/cronolog /www/logs/error_%Y%m%d.log"

2、如果服务器上只有一个站点(当然这种情况比较少),直接按上面所说格式修改 httpd.conf 文件日志设置部分。

说明:

  • 绿色部分 为 cronolog 安装后所在位置,系统版本不同可能位置不完全一样,以 which 命令查看到的位置为准;
  • 蓝色部分 为设置的日志文件所在位置,根据需要修改;
  • 红色部分 为设置的日志文件标识性字符,根据需要修改;
  • %Y%m%d 为日志文件分割方式,例子中为“年月日”,也可以修改成自己需要的。

增加Linux分类

2008年02月19日 by 樂思蜀

今天增加了一个Linux分类,将常用的一些技巧记录在这里,以备查阅,也可以为需要的朋友提供一些方便。

一直都知道Linux是一个安全、高效的操作系统,但看到那么多命令头大,没敢用。去年屡受攻击,加上星箭给了我不少信心,开始尝试。使用这一段时间来,感觉确实不错,也学到了不少知识。

只是这家伙不太好收拾,经常耍脾气,必须不断的充实,才能玩得转。

Linux自动备份MYSQL方法

2008年02月19日 by 樂思蜀

MYSQL定期备份是一项重要的工作,但人工操作太繁琐,也难避免有所疏漏,使用下面的方法即可让系统定期备份数据。

1、创建备份文件夹

#cd /www
#makedir backup

2、编写运行脚本

#vi autobackup

写入以下内容:

filename=`date +%Y%m%d`
mysql_bin_dir/mysqldump –opt dataname -u user -ppassword | gzip > /www/mysqlbackup/name$filename.gz

保存退出 

说明:

(1)mysql_bin_dir:mysql的bin路径;

(2)dataname:数据库名;

(3)user:数据库用户名;

(4)password:用户密码;

(5)name:自定义备份文件前缀标识。

如上例,将自动备份mysql数据库,并以gzip压缩方式存储,文件名为name20080101.gz的形式。

3、为脚本添加执行权限

#chmod +x autobackup

4、让crontab来完成定期执行的任务

这一步中,Redhat的方法会不一样,后面专门给出。

编辑crontab:

#vi /etc/crontab

在最后一行中加入:

01 5 * * * root /www/autobackup

每天5点运行脚本,也可以修改5为其他指定时间。

Redhat方法

Redhat的crontab采用按时间调用4个目录(/etc/cron.hourly:每小时;/etc/cron.daily:每天;/etc/cron.weekly:每周;/etc/cron.monthly:每月)中脚本出来运行的方式。

Redhat中只需要将刚才编辑的脚本复制到相应的目录即可。

5、重启crontab

#/etc/rc.d/init.d/crond restart

完成

其实原理很简单,自己制作一个脚本,让Linux系统自动运行。我们还可以再扩展一下,编辑一个自动备份网站文件的脚本,让Linux来完成,每天自动备份整个网站,等等……

Apache 服务器防DDOS模块mod_evasive使用说明

2008年02月19日 by 樂思蜀

1、mod_evasive 介绍

mod_evasive 是Apache(httpd)服务器的防DDOS的一个模块。对于WEB服务器来说,是目前比较好的一个防护DDOS攻击的扩展模块。虽然并不能完全防御DDOS攻击,但在一定条件下,还是起到缓服Apache(httpd)服务器的压力。如果配合iptables、硬件防火墙等防火墙设备配合使用,可能有更好的效果。可惜LinuxSir.Org 并没有硬件防火墙,所以是否这种组合效果有更好的效果,我没办法验证。

mod_evasive 的官方地址: http://www.zdziarski.com/projects/mod_evasive

2、mod_evasive 的安装和配置

2.1 mod_evasive 下载

mod_evasive_1.10.1.tar.gz

2.2 mod_evasive 安装

安装 mod_evasive 之前,你要用安装Apache(httpd)服务器软件包,还要安装httpd-devel或 apache-dev。在Slackware 12.0中,安装httpd软件即可;

对于Apache 1.x 请用下面的编译方法:

#/usr/sbin/apxs -iac mod_evasive.c

对于Apache 2.x 可以用下面的办法:

#tar zxvf mod_evasive_1.10.1.tar.gz
#cd mod_evasive
#/usr/sbin/apxs -i -a -c mod_evasive20.c

注:apxs 用于编译模块工具;如果是用系统自带的软件包,一般位于/usr/sbin目录。如果您是自己编译安装Apache(httpd)的,你应该自己来指定路径;

我们然后修改/etc/ld.so.conf 文件,把编译出来的动态模块的所在位置指定在 ld.so.conf中;比如我用的是Aapche 2.x ,编译完成后,模块mod_evasive20.so 安装到了 /usr/lib/httpd/modules 目录中;那我们就要把 这个目录写入到ld.so.conf中。

#echo “/usr/lib/httpd/modules” >> /etc/ld.so.conf
#ldconfig

2.3 mod_evasive 的配置

在编译安装完成后,会自动插入一行到Apache 配置文件中,对于Apache 2.x 版本中,应该在其配置文件中有类似下面的一行;

LoadModule evasive20_module   lib/httpd/modules/mod_evasive20.so

对于Apache 1.x来说,也应该差不多,大体只是路径不同罢了;

然后我们再修改 Apache 的配置文件,配置文件名为httpd.conf;

在Apache v1.x 版本中,要加入:

<IfModule mod_evasive.c>
    DOSHashTableSize    3097
    DOSPageCount        2
    DOSSiteCount        50
    DOSPageInterval     1
    DOSSiteInterval     1
    DOSBlockingPeriod   10
</IfModule>

在Apache v2.x加入:

<IfModule mod_evasive20.c>
    DOSHashTableSize    3097
    DOSPageCount        2
    DOSSiteCount        50
    DOSPageInterval     1
    DOSSiteInterval     1
    DOSBlockingPeriod   10
</IfModule>

如果您不知道把这些插入到哪,用下面的办法做也是可以的;

在/etc目录中创建一个文件,比如mod_evasive.conf:

#touch /etc/mod_evasive.conf

然后把根据自己的Apache版本来加入相应的内容;

接着我们再修改 httpd.conf ,在最后一行加入

Include /etc/mod_evasive.conf

修改完成后,我们要重启Apache服务器;

比如在Slackware 12.0中,Apache 2.x的重启,我们要用到

#/etc/rc.d/rc.httpd restart

在Redhat、Fededora、Debian、Ubuntu、CentOS中的Apache,可以用:

#/etc/init.d/httpd restart

#/etc/init.d/apache restart

2.4 对mod_evasive测试验证

防DDOS的模块做好后,我们可以要验证,可以用Apache 自带的ab工具,系统默认安装在/usr/sbin目录中;比如:

#/usr/sbin/ab -n 1000 -c 50 http://www.google.com:80/

注:上面的例子的意思是,如果您的服务器是google的WEB服务器,我们要发送数据请求包,总共1000个,每次并发50个;

另外一个测试工具就是mod_evasive的解压包的目录中,有个test.pl ,你可以修改IP地址,然后用

#perl test.pl

是不是有效果,请根据 ab工具或 测试脚本出来的结果来查看;

因为我们编译mod_evasive时,用的是默认配置,所以日志被存放在/tmp目录中。如果有DDOS攻击,会在/tmp产生日志。日志的文件是以 dos-开头的;

3、mod_evasive 的高级配置

如果想更改一些适合自己的参数,有些必要的参数,并不是通过配置文件修改就一下起作用的,我们要修改源码包中的 mod_evasive.c(Apache 1.x用之) 或 mod_evasive20.c (Apache 2.x用之);

#define DEFAULT_HASH_TBL_SIZE   3097ul  // Default hash table size
#define DEFAULT_PAGE_COUNT      2       // Default maximum page hit count per interval
#define DEFAULT_SITE_COUNT      50      // Default maximum site hit count per interval
#define DEFAULT_PAGE_INTERVAL   1       // Default 1 Second page interval
#define DEFAULT_SITE_INTERVAL   1       // Default 1 Second site interval
#define DEFAULT_BLOCKING_PERIOD 10      // Default for Detected IPs; blocked for 10 seconds
#define DEFAULT_LOG_DIR         “/tmp”  // Default temp directory

比如我们改改其中的数字,根据英文很容易理解。比如修改日志存放目录,就把/tmp改成别的目录。如果您不知道放在哪好,还是用默认的吧;

如果您在这里更改了参数,不要忘记修改Apache 配置文件中关于mod_evasive 的参数;

如果您想加入一些其它的参数,请查阅源码包中的README,里面有详细说明,大多来说没太大的必要……

这个文件相当重要,如果您想更改某些设置,就要修改这个文件…… 

参考文档

参考 mod_evasive 源码包中的README

Redhat Enterprise Linux 5.0 企业版下载

2008年02月19日 by 樂思蜀

中文名称:REDHAT 企业版 LINUX 5.0
英文名称:REDHAT ENTERPRISE LINUX 5.0
别名:REDHAT
类型:ISO
版本:企业版5.0
发行时间:2007年03月14日
制作发行:REDHAT for X86 版本

下载地址(如无法直接下载,请尝试使用迅雷):
CD1: http://rhel.bw999.com/rhel-5-server-i386-disc1.iso
CD2: http://rhel.bw999.com/rhel-5-server-i386-disc2.iso
CD3: http://rhel.bw999.com/rhel-5-server-i386-disc3.iso
CD4: http://rhel.bw999.com/rhel-5-server-i386-disc4.iso
CD5: http://rhel.bw999.com/rhel-5-server-i386-disc5.iso

Apache 日志设置不记录指定文件类型的方法

2008年02月19日 by 樂思蜀

Apache日志精准的记录了Web访问的记录,但对于访问量很大的站来说,日志文件过大对于分析和保存很不方便。可以在http.conf(或虚拟主机设置文件httpd-vhosts.conf)中进行设置,限制日志不记录指定文件类型,减少日志文件空间占用。

FilesMatch “\.(ico|gif|jpg|swf)”
SetEnv IMAG 1
/FilesMatch
CustomLog logs/access_log combined env=!IMAG

第一行中:蓝色部分为指定文件类型,设置后将不记录这些文件的访问;

第四行中:绿色部分为日志路径,根据实际情况设置;蓝色部分为apache日志4种记录方式(common、combined、referer、agent)之一,根据实际需要选择;env=!IMAG一定要加在最后,指令不记录上面设定的文件类型。

注:红色的括号为全角,使用时转换成半角。