<?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>Feng&#039;s Blog &#187; Linux</title>
	<atom:link href="http://www.mzfeng.com/html/ycategory/linux/feed" rel="self" type="application/rss+xml" />
	<link>http://www.mzfeng.com</link>
	<description>关注internet web windows linux 系统管理 服务器架构</description>
	<lastBuildDate>Mon, 06 Feb 2012 14:39:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>history优化及删除</title>
		<link>http://www.mzfeng.com/html/y2012/363.html</link>
		<comments>http://www.mzfeng.com/html/y2012/363.html#comments</comments>
		<pubDate>Mon, 06 Feb 2012 14:38:38 +0000</pubDate>
		<dc:creator>Mzfeng</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[history]]></category>

		<guid isPermaLink="false">http://www.mzfeng.com/?p=363</guid>
		<description><![CDATA[在linux中自己经常会使用到history来查看以往输入过的命令,这样既方便又快捷.默认~/.bash_history 文件保存了命令执行的历史记录，#history命令可以查看到记录内容。但是并不能看到最近的历史记录，这是因为最近的历史记录保存在缓存中，还没有保存到文件中去，可以执行#history -w先更新.bash_history文件，然后再查看其内容。 有时间bash_history文件可能会记录一些敏感的信息，如密码等，所认在输命令的时候应注意避免把密码等信息写在命令当中。如果记录了，我们也可以删除，确认~/.bash_history文件最新，然后直接 vi ~/.bash_history 删除对应的行即可，如果不需要历史记录可以 #history -c 清除历史记录。 修改history记录命令执行时间： Vi /etc/bashrc 在文件最后添加如下命令: HISTFILESIZE=3000 #能记录的最多命令数 HISTSIZE=3000 #你希望历史命令保存多少条 export HISTTIMEFORMAT=”%F %T:” # 历史命令显示时间格式,可以自定义时间格式.]]></description>
			<content:encoded><![CDATA[<p>在linux中自己经常会使用到<span class='wp_keywordlink_affiliate'><a href="http://www.mzfeng.com/html/ytag/history" title="查看 history 中的全部文章" target="_blank">history</a></span>来查看以往输入过的命令,这样既方便又快捷.默认~/.bash_<span class='wp_keywordlink_affiliate'><a href="http://www.mzfeng.com/html/ytag/history" title="查看 history 中的全部文章" target="_blank">history</a></span> 文件保存了命令执行的历史记录，#history命令可以查看到记录内容。但是并不能看到最近的历史记录，这是因为最近的历史记录保存在缓存中，还没有保存到文件中去，可以执行#history -w先更新.bash_history文件，然后再查看其内容。<br />
有时间bash_history文件可能会记录一些敏感的信息，如密码等，所认在输命令的时候应注意避免把密码等信息写在命令当中。如果记录了，我们也可以删除，确认~/.bash_history文件最新，然后直接 vi ~/.bash_history 删除对应的行即可，如果不需要历史记录可以 #history -c 清除历史记录。<br />
修改history记录命令执行时间：</p>
<p>Vi /etc/bashrc<span id="more-363"></span><br />
在文件最后添加如下命令:<br />
HISTFILESIZE=3000          #能记录的最多命令数<br />
HISTSIZE=3000                  #你希望历史命令保存多少条<br />
export HISTTIMEFORMAT=”%F %T:”    # 历史命令显示时间格式,可以自定义时间格式.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mzfeng.com/html/y2012/363.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>linux密码忘记或丢失后修改密码的方法</title>
		<link>http://www.mzfeng.com/html/y2012/362.html</link>
		<comments>http://www.mzfeng.com/html/y2012/362.html#comments</comments>
		<pubDate>Sun, 05 Feb 2012 13:12:13 +0000</pubDate>
		<dc:creator>Mzfeng</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[修改]]></category>
		<category><![CDATA[密码]]></category>

		<guid isPermaLink="false">http://www.mzfeng.com/?p=362</guid>
		<description><![CDATA[现在我们日常工作生活中使用的密码太多了,多到有时候连我们自己都会不清楚设置的密码是什么了.像一个LINUX服务器系统都有可能使用多个不同的密码,如果最主要的ROOT的密码都不知道了,我们可以通过下面的方法来重新设置一个密码,当然只能够到机房电脑前面来设置了,远程是无法重置密码的.下面是重置密码的方法: 重启系统，进入下图界面按上或下键 进入下图界面 进入该界面后按“e”键，进入 选择第二项（kernel项），然后在按“e”，如图 进入该界面后输入“single”，然后回车，进入下图界面 进入该界面后按“b”键，后会自动重启，然后直接进入单用户维护模式，不用输入密码直接取得root权限，最后运行“passwd root”命令进行修改密码，最后重启，完成]]></description>
			<content:encoded><![CDATA[<p>现在我们日常工作生活中使用的<span class='wp_keywordlink_affiliate'><a href="http://www.mzfeng.com/html/ytag/%e5%af%86%e7%a0%81" title="查看 密码 中的全部文章" target="_blank">密码</a></span>太多了,多到有时候连我们自己都会不清楚设置的<span class='wp_keywordlink_affiliate'><a href="http://www.mzfeng.com/html/ytag/%e5%af%86%e7%a0%81" title="查看 密码 中的全部文章" target="_blank">密码</a></span>是什么了.像一个LINUX服务器系统都有可能使用多个不同的<span class='wp_keywordlink_affiliate'><a href="http://www.mzfeng.com/html/ytag/%e5%af%86%e7%a0%81" title="查看 密码 中的全部文章" target="_blank">密码</a></span>,如果最主要的ROOT的密码都不知道了,我们可以通过下面的方法来重新设置一个密码,当然只能够到机房电脑前面来设置了,远程是无法重置密码的.下面是重置密码的方法:</p>
<p>重启系统，进入下图界面按上或下键<span id="more-362"></span></p>
<p><a href="http://www.mzfeng.com/uploads/2012/02/174842640.png" class="highslide-image" onclick="return hs.expand(this);" target="_blank"><img src="http://www.mzfeng.com/uploads/2012/02/174842640.png" alt="" border="0" /></a></p>
<p>进入下图界面</p>
<p><a href="http://www.mzfeng.com/uploads/2012/02/174929596.png" class="highslide-image" onclick="return hs.expand(this);" target="_blank"><img src="http://www.mzfeng.com/uploads/2012/02/174929596.png" alt="" border="0" /></a></p>
<p>进入该界面后按“e”键，进入</p>
<p><a href="http://www.mzfeng.com/uploads/2012/02/175017296.png" class="highslide-image" onclick="return hs.expand(this);" target="_blank"><img src="http://www.mzfeng.com/uploads/2012/02/175017296.png" alt="" border="0" /></a></p>
<p>选择第二项（kernel项），然后在按“e”，如图</p>
<p><a href="http://www.mzfeng.com/uploads/2012/02/175155433.png" class="highslide-image" onclick="return hs.expand(this);" target="_blank"><img src="http://www.mzfeng.com/uploads/2012/02/175155433.png" alt="" border="0" /></a></p>
<p>进入该界面后输入“single”，然后回车，进入下图界面</p>
<p><a href="http://www.mzfeng.com/uploads/2012/02/175426810.png" class="highslide-image" onclick="return hs.expand(this);" target="_blank"><img src="http://www.mzfeng.com/uploads/2012/02/175426810.png" alt="" border="0" /></a></p>
<p>进入该界面后按“b”键，后会自动重启，然后直接进入单用户维护模式，不用输入密码直接取得root权限，最后运行“passwd root”命令进行<span class='wp_keywordlink_affiliate'><a href="http://www.mzfeng.com/html/ytag/%e4%bf%ae%e6%94%b9" title="查看 修改 中的全部文章" target="_blank">修改</a></span>密码，最后重启，完成</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mzfeng.com/html/y2012/362.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>linux下修改系统时间方法</title>
		<link>http://www.mzfeng.com/html/y2012/361.html</link>
		<comments>http://www.mzfeng.com/html/y2012/361.html#comments</comments>
		<pubDate>Sun, 05 Feb 2012 12:51:57 +0000</pubDate>
		<dc:creator>Mzfeng</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[修改]]></category>
		<category><![CDATA[时间]]></category>

		<guid isPermaLink="false">http://www.mzfeng.com/?p=361</guid>
		<description><![CDATA[修改linux的时间可以使用date指令 修改日期： 时间设定成2009年5月10日的命令如下： #date -s 05/10/2009 修改时间： 将系统时间设定成上午10点18分0秒的命令如下。 #date -s 10:18:00 修改时区： 找到相应的时区文件 /usr/share/zoneinfo/Asia/Shanghai替换当前的/etc/localtime。 修改/etc/sysconfig/clock文件的内容为： ZONE=”Asia/Shanghai” UTC=false ARC=false 同步bios时间： 同步BIOS时钟，强制把系统时间写入CMOS，命令如下： #clock -w date命令的功能是显示和设置系统日期和时间。 输入date 查看目前系统时间。 修改时间需要 date -功能字符 修改内容 命令中各选项的含义分别为： -d datestr, &#8211;date datestr 显示由datestr描述的日期 -s datestr, &#8211;set datestr 设置datestr 描述的日期 -u, &#8211;universal 显示或设置通用时间 时间域 %H 小时（00..23） %I 小时（01..12） %k 小时（0..23） %l 小时（1..12） %M 分（00..59） [...]]]></description>
			<content:encoded><![CDATA[<p><span class='wp_keywordlink_affiliate'><a href="http://www.mzfeng.com/html/ytag/%e4%bf%ae%e6%94%b9" title="查看 修改 中的全部文章" target="_blank">修改</a></span>linux的<span class='wp_keywordlink_affiliate'><a href="http://www.mzfeng.com/html/ytag/%e6%97%b6%e9%97%b4" title="查看 时间 中的全部文章" target="_blank">时间</a></span>可以使用date指令<br />
<span class='wp_keywordlink_affiliate'><a href="http://www.mzfeng.com/html/ytag/%e4%bf%ae%e6%94%b9" title="查看 修改 中的全部文章" target="_blank">修改</a></span>日期：<br />
<span class='wp_keywordlink_affiliate'><a href="http://www.mzfeng.com/html/ytag/%e6%97%b6%e9%97%b4" title="查看 时间 中的全部文章" target="_blank">时间</a></span>设定成2009年5月10日的命令如下：<br />
#date -s 05/10/2009<br />
<span class='wp_keywordlink_affiliate'><a href="http://www.mzfeng.com/html/ytag/%e4%bf%ae%e6%94%b9" title="查看 修改 中的全部文章" target="_blank">修改</a></span>时间：<br />
将系统时间设定成上午10点18分0秒的命令如下。<br />
#date -s 10:18:00<br />
修改时区：<br />
找到相应的时区文件 /usr/share/zoneinfo/Asia/Shanghai替换当前的/etc/localtime。<br />
修改/etc/sysconfig/clock文件的内容为：<br />
ZONE=”Asia/Shanghai”<br />
UTC=false<br />
ARC=false<br />
同步bios时间： <span id="more-361"></span><br />
同步BIOS时钟，强制把系统时间写入CMOS，命令如下：<br />
#clock -w<br />
date命令的功能是显示和设置系统日期和时间。<br />
输入date 查看目前系统时间。<br />
修改时间需要 date -功能字符 修改内容<br />
命令中各选项的含义分别为：<br />
-d datestr, &#8211;date datestr 显示由datestr描述的日期<br />
-s datestr, &#8211;set datestr 设置datestr 描述的日期<br />
-u, &#8211;universal 显示或设置通用时间<br />
时间域<br />
%H 小时（00..23）<br />
%I 小时（01..12）<br />
%k 小时（0..23）<br />
%l 小时（1..12）<br />
%M 分（00..59）<br />
%p 显示出AM或PM<br />
%r 时间（hh：mm：ss AM或PM），12小时<br />
%s 从1970年1月1日00：00：00到目前经历的秒数<br />
%S 秒（00..59）<br />
%T 时间（24小时制）（hh:mm:ss）<br />
%X 显示时间的格式（％H:％M:％S）<br />
%Z 时区 日期域<br />
%a 星期几的简称（ Sun..Sat）<br />
%A 星期几的全称（ Sunday..Saturday）<br />
%b 月的简称（Jan..Dec）<br />
%B 月的全称（January..December）<br />
%c 日期和时间（ Mon Nov 8 14：12：46 CST 1999）<br />
%d 一个月的第几天（01..31）<br />
%D 日期（mm／dd／yy）<br />
%h 和%b选项相同<br />
%j 一年的第几天（001..366）<br />
%m 月（01..12）<br />
%w 一个星期的第几天（0代表星期天）<br />
%W 一年的第几个星期（00..53，星期一为第一天）<br />
%x 显示日期的格式（mm/dd/yy）<br />
%y 年的最后两个数字（ 1999则是99）<br />
%Y 年（例如：1970，1996等）<br />
需要特别说明的是，只有超级用户才能用date命令设置时间，一般用户只能用date命令显示时间。<br />
例1：用指定的格式显示时间。<br />
$ date &#8216;+This date now is =>%x ,time is now =>%X ,thank you !&#8217;<br />
This date now is =>11/12/99 ,time is now =>17:53:01,thank you !<br />
例2：用预定的格式显示当前的时间。<br />
# date<br />
Fri Nov 26 15:20:18 CST 1999<br />
例3：设置时间为下午14点36分。<br />
# date -s 14:36:00<br />
Fri Nov 26 14:15:00 CST 1999<br />
例4：设置时间为1999年11月28号。<br />
# date -s 991128<br />
Sun Nov 28 00:00:00 CST 1999<br />
实例：设置时间伟2008年8月8号12:00<br />
# date -s “2008-08-08 12:00:00&#8243;<br />
修改完后,记得输入:clock -w<br />
把系统时间写入CMOS</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mzfeng.com/html/y2012/361.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>linux下修改SSH端口</title>
		<link>http://www.mzfeng.com/html/y2012/360.html</link>
		<comments>http://www.mzfeng.com/html/y2012/360.html#comments</comments>
		<pubDate>Sat, 04 Feb 2012 01:07:51 +0000</pubDate>
		<dc:creator>Mzfeng</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[SSH端口]]></category>

		<guid isPermaLink="false">http://www.mzfeng.com/?p=360</guid>
		<description><![CDATA[在生产环境下,安装好LINUX系统最好是更改下远程连接的默认的SSH端口.现今网上无时无刻都有人在扫描端口及弱口令;所有我们最好是安装配置好系统后把SSH端口更改一下.SSH默认开放端口是22,我们可以把它改成比较少用或者是自己容易记的端口.下面我们来看看怎么修改SSH端口设置: 编辑/etc/ssh目录下的sshd_config文件 #vi /etc/ssh/sshd_config 找到 #Port 22 把#号去了,22是默认的端口,可22修改成其它端口;比如: #Port 6811 然后保存退出 在iptables添加一条规则: #iptables -A INPUT -p tcp --dport 6811 -j ACCEPT 重启一下系统或者直接重启SSH服务 #service sshd restart 使用Putty连接IP后面的端口要修改自己设置端口的比如:6811 如果可以连接上去说明修改成功]]></description>
			<content:encoded><![CDATA[<p>在生产环境下,安装好LINUX系统最好是更改下远程连接的默认的<span class='wp_keywordlink_affiliate'><a href="http://www.mzfeng.com/html/ytag/ssh%e7%ab%af%e5%8f%a3" title="查看 SSH端口 中的全部文章" target="_blank">SSH端口</a></span>.现今网上无时无刻都有人在扫描端口及弱口令;所有我们最好是安装配置好系统后把<span class='wp_keywordlink_affiliate'><a href="http://www.mzfeng.com/html/ytag/ssh%e7%ab%af%e5%8f%a3" title="查看 SSH端口 中的全部文章" target="_blank">SSH端口</a></span>更改一下.SSH默认开放端口是22,我们可以把它改成比较少用或者是自己容易记的端口.下面我们来看看怎么修改<span class='wp_keywordlink_affiliate'><a href="http://www.mzfeng.com/html/ytag/ssh%e7%ab%af%e5%8f%a3" title="查看 SSH端口 中的全部文章" target="_blank">SSH端口</a></span>设置:<br />
编辑/etc/ssh目录下的sshd_config文件<br />
<code>#vi /etc/ssh/sshd_config</code><br />
找到<br />
<code>#Port 22</code><br />
把#号去了,22是默认的端口,可22修改成其它端口;比如:<br />
<code>#Port 6811</code><br />
然后保存退出<br />
在iptables添加一条规则:<br />
<code>#iptables -A INPUT -p tcp --dport 6811 -j ACCEPT</code><span id="more-360"></span><br />
重启一下系统或者直接重启SSH服务<br />
#service sshd restart<br />
使用Putty连接IP后面的端口要修改自己设置端口的比如:6811<br />
如果可以连接上去说明修改成功</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mzfeng.com/html/y2012/360.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>centos6.2完整安装配置教程</title>
		<link>http://www.mzfeng.com/html/y2012/344.html</link>
		<comments>http://www.mzfeng.com/html/y2012/344.html#comments</comments>
		<pubDate>Fri, 03 Feb 2012 01:21:12 +0000</pubDate>
		<dc:creator>Mzfeng</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Centos]]></category>

		<guid isPermaLink="false">http://www.mzfeng.com/?p=344</guid>
		<description><![CDATA[首先把下载好的ISO刻录好光盘,放入电脑设置光盘引导.光盘引导后出来以下界面; &#160; 选择第一个选项:”Install or upgrade an existing system”;按”ENTER” 如果你需要在字符界面安装,就按”ESC”键,输入:”linux text” 我们这里省过字符界面安装,接着下一步 选”skip”跳过,下一步 到这里我们所熟悉的CENTOS画面终于出现了,选”NEXT” 或直接用快捷键:alt+n;下一步 如果这里我们是安装测试语言就选中文好了,我这里选英文,下一步 键盘布局选 U.S.Englinsh 下一步 这里我们选系统安装到本机基本储存”Basic Storage Devices”,下一步 这里我们需要配置网卡IP及其它网络设置,点”Configure Network”, 只设置本机网卡IP.选”System eth0&#8243;&#8212;”Edit” 这里我们在IPv4选项里的 “Method:”选择”Manual” 然后在下面输入IP地址,掩码,网关,如果是IPv6请参照IPv4设置,如果没有就不用去管它.输入好地址后记得要勾上”Connect automatically”这个选项.这样系统启动才能自动启用网卡,然后”Apply” 再”Close”网络配置窗口 点下一步 选好时区,下一步 设置root密码,下一步 选”Use All Space” 下一步 选”Write changes to disk”;然后下一步 这里我们选”Minimal”最小化安装;然后下一步 到此安装配置过程已经完成,等系统程序安装完成重启. 重启完成安装.]]></description>
			<content:encoded><![CDATA[<p>首先把下载好的ISO刻录好光盘,放入电脑设置光盘引导.光盘引导后出来以下界面;</p>
<p><a href="http://www.mzfeng.com/uploads/2012/02/1.png" class="highslide-image" onclick="return hs.expand(this);"><img class="alignnone size-medium wp-image-345" title="1" src="http://www.mzfeng.com/uploads/2012/02/1-300x225.png" alt="" width="300" height="225" /></a></p>
<p>&nbsp;</p>
<p>选择第一个选项:”Install or upgrade an existing system”;按”ENTER”<br />
如果你需要在字符界面安装,就按”ESC”键,输入:”linux text” 我们这里省过字符界面安装,接着下一步<span id="more-344"></span></p>
<p><a href="http://www.mzfeng.com/uploads/2012/02/2.png" class="highslide-image" onclick="return hs.expand(this);"><img class="alignnone size-medium wp-image-346" title="2" src="http://www.mzfeng.com/uploads/2012/02/2-300x166.png" alt="" width="300" height="166" /></a></p>
<p>选”skip”跳过,下一步</p>
<p><a href="http://www.mzfeng.com/uploads/2012/02/3.png" class="highslide-image" onclick="return hs.expand(this);"><img class="alignnone size-medium wp-image-347" title="3" src="http://www.mzfeng.com/uploads/2012/02/3-300x225.png" alt="" width="300" height="225" /></a></p>
<p>到这里我们所熟悉的CENTOS画面终于出现了,选”NEXT” 或直接用快捷键:alt+n;下一步</p>
<p><a href="http://www.mzfeng.com/uploads/2012/02/4.png" class="highslide-image" onclick="return hs.expand(this);"><img class="alignnone size-medium wp-image-348" title="4" src="http://www.mzfeng.com/uploads/2012/02/4-300x225.png" alt="" width="300" height="225" /></a><br />
如果这里我们是安装测试语言就选中文好了,我这里选英文,下一步</p>
<p><a href="http://www.mzfeng.com/uploads/2012/02/5.png" class="highslide-image" onclick="return hs.expand(this);"><img class="alignnone size-medium wp-image-349" title="5" src="http://www.mzfeng.com/uploads/2012/02/5-300x225.png" alt="" width="300" height="225" /></a></p>
<p>键盘布局选 U.S.Englinsh 下一步</p>
<p><a href="http://www.mzfeng.com/uploads/2012/02/6.png" class="highslide-image" onclick="return hs.expand(this);"><img class="alignnone size-medium wp-image-350" title="6" src="http://www.mzfeng.com/uploads/2012/02/6-300x225.png" alt="" width="300" height="225" /></a></p>
<p>这里我们选系统安装到本机基本储存”Basic Storage Devices”,下一步</p>
<p><a href="http://www.mzfeng.com/uploads/2012/02/7.png" class="highslide-image" onclick="return hs.expand(this);"><img class="alignnone size-medium wp-image-351" title="7" src="http://www.mzfeng.com/uploads/2012/02/7-300x225.png" alt="" width="300" height="225" /></a></p>
<p>这里我们需要配置网卡IP及其它网络设置,点”Configure Network”,</p>
<p><a href="http://www.mzfeng.com/uploads/2012/02/8.png" class="highslide-image" onclick="return hs.expand(this);"><img class="alignnone size-medium wp-image-352" title="8" src="http://www.mzfeng.com/uploads/2012/02/8-300x225.png" alt="" width="300" height="225" /></a></p>
<p>只设置本机网卡IP.选”System eth0&#8243;&#8212;”Edit”</p>
<p>这里我们在IPv4选项里的 “Method:”选择”Manual” 然后在下面输入IP地址,掩码,网关,如果是IPv6请参照IPv4设置,如果没有就不用去管它.输入好地址后记得要勾上”Connect automatically”这个选项.这样系统启动才能自动启用网卡,然后”Apply” 再”Close”网络配置窗口 点下一步<br />
选好时区,下一步</p>
<p><a href="http://www.mzfeng.com/uploads/2012/02/9.png" class="highslide-image" onclick="return hs.expand(this);"><img class="alignnone size-medium wp-image-353" title="9" src="http://www.mzfeng.com/uploads/2012/02/9-300x225.png" alt="" width="300" height="225" /></a></p>
<p>设置root密码,下一步</p>
<p><a href="http://www.mzfeng.com/uploads/2012/02/10.png" class="highslide-image" onclick="return hs.expand(this);"><img class="alignnone size-medium wp-image-354" title="10" src="http://www.mzfeng.com/uploads/2012/02/10-300x225.png" alt="" width="300" height="225" /></a></p>
<p>选”Use All Space” 下一步</p>
<p><a href="http://www.mzfeng.com/uploads/2012/02/11.png" class="highslide-image" onclick="return hs.expand(this);"><img class="alignnone size-medium wp-image-355" title="11" src="http://www.mzfeng.com/uploads/2012/02/11-300x225.png" alt="" width="300" height="225" /></a></p>
<p>选”Write changes to disk”;然后下一步</p>
<p><a href="http://www.mzfeng.com/uploads/2012/02/12.png" class="highslide-image" onclick="return hs.expand(this);"><img class="alignnone size-medium wp-image-356" title="12" src="http://www.mzfeng.com/uploads/2012/02/12-300x225.png" alt="" width="300" height="225" /></a></p>
<p>这里我们选”Minimal”最小化安装;然后下一步</p>
<p><a href="http://www.mzfeng.com/uploads/2012/02/13.png" class="highslide-image" onclick="return hs.expand(this);"><img class="alignnone size-medium wp-image-357" title="13" src="http://www.mzfeng.com/uploads/2012/02/13-300x225.png" alt="" width="300" height="225" /></a></p>
<p>到此安装配置过程已经完成,等系统程序安装完成重启.</p>
<p><a href="http://www.mzfeng.com/uploads/2012/02/14.png" class="highslide-image" onclick="return hs.expand(this);"><img class="alignnone size-medium wp-image-358" title="14" src="http://www.mzfeng.com/uploads/2012/02/14-300x225.png" alt="" width="300" height="225" /></a></p>
<p>重启完成安装.</p>
<p><a href="http://www.mzfeng.com/uploads/2012/02/15.png" class="highslide-image" onclick="return hs.expand(this);"><img class="alignnone size-medium wp-image-359" title="15" src="http://www.mzfeng.com/uploads/2012/02/15-300x225.png" alt="" width="300" height="225" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mzfeng.com/html/y2012/344.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>20步打造最安全的Nginx Web服务器</title>
		<link>http://www.mzfeng.com/html/y2012/341.html</link>
		<comments>http://www.mzfeng.com/html/y2012/341.html#comments</comments>
		<pubDate>Thu, 02 Feb 2012 00:36:43 +0000</pubDate>
		<dc:creator>mzfeng</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[安全]]></category>
		<category><![CDATA[服务器]]></category>

		<guid isPermaLink="false">http://www.mzfeng.com/?p=341</guid>
		<description><![CDATA[Nginx是一个轻量级的，高性能的Web服务器以及反向代理和邮箱(IMAP/POP3)代理服务器。它运行在UNIX,GNU /linux,BSD 各种版本，Mac OS X,Solaris和Windows。根据调查统计，6%的网站使用Nginx Web服务器。Nginx是少数能处理C10K问题的服务器之一。跟传统的服务器不同，Nginx不依赖线程来处理请求。相反，它使用了更多的可扩展的事 件驱动（异步）架构。Nginx为一些高流量的网站提供动力，比如WordPress,人人网，腾讯，网易等。这篇文章主要是介绍如何提高运行在 Linux或UNIX系统的Nginx Web服务器的安全性。 默认配置文件和Nginx端口 /usr/local/nginx/conf/ – Nginx配置文件目录，/usr/local/nginx/conf/nginx.conf是主配置文件 /usr/local/nginx/html/ – 默认网站文件位置 /usr/local/nginx/logs/ – 默认日志文件位置 Nginx HTTP默认端口 : TCP 80 Nginx HTTPS默认端口: TCP 443 你可以使用以下命令来测试Nginx配置文件准确性。 /usr/local/nginx/sbin/nginx -t 将会输出。 the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok configuration file /usr/local/nginx/conf/nginx.conf test is successful 执行以下命令来重新加载配置文件。 /usr/local/nginx/sbin/nginx -s reload 执行以下命令来停止服务器。 /usr/local/nginx/sbin/nginx -s stop 一、配置SELinux 安全增强型Linux（SELinux）的是一个Linux内核的功能，它提供支持访问控制的安全政策保护机制。它可以大部分的攻击。下面我们来看如何启动基于centos/RHEL系统的SELinux。 [...]]]></description>
			<content:encoded><![CDATA[<div id="appShareTitle">Nginx是一个轻量级的，高性能的Web<span class='wp_keywordlink_affiliate'><a href="http://www.mzfeng.com/html/ytag/%e6%9c%8d%e5%8a%a1%e5%99%a8" title="查看 服务器 中的全部文章" target="_blank">服务器</a></span>以及反向代理和邮箱(IMAP/POP3)代理<span class='wp_keywordlink_affiliate'><a href="http://www.mzfeng.com/html/ytag/%e6%9c%8d%e5%8a%a1%e5%99%a8" title="查看 服务器 中的全部文章" target="_blank">服务器</a></span>。它运行在UNIX,GNU /linux,BSD 各种版本，Mac OS X,Solaris和Windows。根据调查统计，6%的网站使用Nginx Web服务器。Nginx是少数能处理C10K问题的服务器之一。跟传统的服务器不同，Nginx不依赖线程来处理请求。相反，它使用了更多的可扩展的事 件驱动（异步）架构。Nginx为一些高流量的网站提供动力，比如WordPress,人人网，腾讯，网易等。这篇文章主要是介绍如何提高运行在 Linux或UNIX系统的Nginx Web服务器的<span class='wp_keywordlink_affiliate'><a href="http://www.mzfeng.com/html/ytag/%e5%ae%89%e5%85%a8" title="查看 安全 中的全部文章" target="_blank">安全</a></span>性。</div>
<div id="app-share-content">
<p><strong>默认配置文件和Nginx端口</strong></p>
<ul>
<li>/usr/local/<a title="标签 Nginx 下的日志" rel="tag">nginx</a>/conf/ – Nginx配置文件目录，/usr/local/<a title="标签 Nginx 下的日志" rel="tag">nginx</a>/conf/<a title="标签 Nginx 下的日志" rel="tag">nginx</a>.conf是主配置文件</li>
<p><span id="more-341"></span></p>
<li>/usr/local/<span class='wp_keywordlink_affiliate'><a href="http://www.mzfeng.com/html/ytag/nginx" title="查看 nginx 中的全部文章" target="_blank">nginx</a></span>/html/ – 默认网站文件位置</li>
<li>/usr/local/<span class='wp_keywordlink_affiliate'><a href="http://www.mzfeng.com/html/ytag/nginx" title="查看 nginx 中的全部文章" target="_blank">nginx</a></span>/logs/ – 默认日志文件位置</li>
<li>Nginx HTTP默认端口 : TCP 80</li>
<li>Nginx HTTPS默认端口: TCP 443</li>
</ul>
<p>你可以使用以下命令来测试Nginx配置文件准确性。</p>
<div>
<blockquote>
<ol title="Double click to hide line number.">
<li>/usr/local/nginx/sbin/nginx -t</li>
</ol>
</blockquote>
</div>
<p>将会输出。<br />
the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok<br />
configuration file /usr/local/nginx/conf/nginx.conf test is successful<br />
执行以下命令来重新加载配置文件。</p>
<div>
<blockquote>
<ol title="Double click to hide line number.">
<li>/usr/local/nginx/sbin/nginx -s reload</li>
</ol>
</blockquote>
</div>
<p>执行以下命令来停止服务器。</p>
<div>
<blockquote>
<ol title="Double click to hide line number.">
<li>/usr/local/nginx/sbin/nginx -s stop</li>
</ol>
</blockquote>
</div>
<h3>一、配置SELinux</h3>
<p><span class='wp_keywordlink_affiliate'><a href="http://www.mzfeng.com/html/ytag/%e5%ae%89%e5%85%a8" title="查看 安全 中的全部文章" target="_blank">安全</a></span>增强型Linux（SELinux）的是一个Linux内核的功能，它提供支持访问控制的安全政策保护机制。它可以大部分的攻击。下面我们来看如何启动基于<a>centos</a>/RHEL系统的SELinux。<br />
<strong>安装SELinux</strong></p>
<div>
<blockquote>
<ol title="Double click to hide line number.">
<li>rpm -qa | grep selinux</li>
</ol>
</blockquote>
</div>
<p>libselinux-1.23.10-2<br />
selinux-policy-targeted-1.23.16-6<br />
如果没有返回任何结果，代表没有安装 SELinux，如果返回了类似上面的结果，则说明系统安装了 SELinux。<br />
<strong>布什值锁定</strong><br />
运行命令getsebool -a来锁定系统。</p>
<div>
<blockquote>
<ol title="Double click to hide line number.">
<li>getsebool -a | less</li>
<li>getsebool -a | grep off</li>
<li>getsebool -a | grep o</li>
</ol>
</blockquote>
</div>
<h3>二、通过分区挂载允许最少特权</h3>
<p>服务器上的网页/html/php文件单独分区。例如，新建一个分区/dev/sda5(第一逻辑分区)，并且挂载在/nginx。确保 /nginx是以noexec, nodev and nosetuid的权限挂载。以下是我的/etc/fstab的挂载/nginx的信息：<br />
LABEL=/nginx /nginx ext3 defaults,nosuid,noexec,nodev 1 2<br />
注意：你需要使用fdisk和mkfs.ext3命令创建一个新分区。</p>
<h3>三、配置/etc/sysctl.conf强化Linux安全</h3>
<p>你可以通过编辑/etc/sysctl.conf来控制和配置Linux内核、网络设置。</p>
<div>
<blockquote>
<ol title="Double click to hide line number.">
<li># Avoid a smurf attack</li>
<li>net.ipv4.icmp_echo_ignore_broadcasts = 1</li>
<li># Turn on protection for bad icmp error messages</li>
<li>net.ipv4.icmp_ignore_bogus_error_responses = 1</li>
<li># Turn on syncookies for SYN flood attack protection</li>
<li>net.ipv4.tcp_syncookies = 1</li>
<li># Turn on and log spoofed, source routed, and redirect packets</li>
<li>net.ipv4.conf.all.log_martians = 1</li>
<li>net.ipv4.conf.default.log_martians = 1</li>
<li># No source routed packets here</li>
<li>net.ipv4.conf.all.accept_source_route = 0</li>
<li>net.ipv4.conf.default.accept_source_route = 0</li>
<li># Turn on reverse path filtering</li>
<li>net.ipv4.conf.all.rp_filter = 1</li>
<li>net.ipv4.conf.default.rp_filter = 1</li>
<li># Make sure no one can alter the routing tables</li>
<li>net.ipv4.conf.all.accept_redirects = 0</li>
<li>net.ipv4.conf.default.accept_redirects = 0</li>
<li>net.ipv4.conf.all.secure_redirects = 0</li>
<li>net.ipv4.conf.default.secure_redirects = 0</li>
<li># Don’t act as a router</li>
<li>net.ipv4.ip_forward = 0</li>
<li>net.ipv4.conf.all.send_redirects = 0</li>
<li>net.ipv4.conf.default.send_redirects = 0</li>
<li># Turn on execshild</li>
<li>kernel.exec-shield = 1</li>
<li>kernel.randomize_va_space = 1</li>
<li># Tuen IPv6</li>
<li>net.ipv6.conf.default.router_solicitations = 0</li>
<li>net.ipv6.conf.default.accept_ra_rtr_pref = 0</li>
<li>net.ipv6.conf.default.accept_ra_pinfo = 0</li>
<li>net.ipv6.conf.default.accept_ra_defrtr = 0</li>
<li>net.ipv6.conf.default.autoconf = 0</li>
<li>net.ipv6.conf.default.dad_transmits = 0</li>
<li>net.ipv6.conf.default.max_addresses = 1</li>
<li># Optimization for port usefor LBs</li>
<li># Increase system file descriptor limit</li>
<li>fs.file-max = 65535</li>
<li># Allow for more PIDs (to reduce rollover problems); may break some programs 32768</li>
<li>kernel.pid_max = 65536</li>
<li># Increase system IP port limits</li>
<li>net.ipv4.ip_local_port_range = 2000 65000</li>
<li># Increase TCP max buffer size setable using setsockopt()</li>
<li>net.ipv4.tcp_rmem = 4096 87380 8388608</li>
<li>net.ipv4.tcp_wmem = 4096 87380 8388608</li>
<li># Increase Linux auto tuning TCP buffer limits</li>
<li># min, default, and max number of bytes to use</li>
<li># set max to at least 4MB, or higher if you use very high BDP paths</li>
<li># Tcp Windows etc</li>
<li>net.core.rmem_max = 8388608</li>
<li>net.core.wmem_max = 8388608</li>
<li>net.core.netdev_max_backlog = 5000</li>
<li>net.ipv4.tcp_window_scaling = 1</li>
</ol>
</blockquote>
</div>
<h3>四、删除所有不需要的Nginx模块</h3>
<p>你需要直接通过编译Nginx源代码使模块数量最少化。通过限制只允许web服务器访问模块把风险降到最低。你可以只配置安装nginx你所需要的模块。例如，禁用SSL和autoindex模块你可以执行以下命令：</p>
<div>
<blockquote>
<ol title="Double click to hide line number.">
<li>./configure –without-http_autoindex_module –without-http_ssi_module</li>
<li>make</li>
<li>make install</li>
</ol>
</blockquote>
</div>
<p>通过以下命令来查看当编译nginx服务器时哪个模块能开户或关闭：</p>
<div>
<blockquote>
<ol title="Double click to hide line number.">
<li>./configure –help | less</li>
</ol>
</blockquote>
</div>
<p>禁用你用不到的nginx模块。<br />
（可选项）更改nginx版本名称。<br />
编辑文件/http/ngx_http_header_filter_module.c：</p>
<div>
<blockquote>
<ol title="Double click to hide line number.">
<li>vi +48 src/http/ngx_http_header_filter_module.c</li>
</ol>
</blockquote>
</div>
<p>找到行：</p>
<div>
<blockquote>
<ol title="Double click to hide line number.">
<li>static char ngx_http_server_string[] = “Server: nginx” CRLF;</li>
<li>static char ngx_http_server_full_string[] = “Server: ” NGINX_VER CRLF;</li>
</ol>
</blockquote>
</div>
<p>按照以下行修改：</p>
<div>
<blockquote>
<ol title="Double click to hide line number.">
<li>static char ngx_http_server_string[] = “Server: Ninja Web Server” CRLF;</li>
<li>static char ngx_http_server_full_string[] = “Server: Ninja Web Server” CRLF;</li>
</ol>
</blockquote>
</div>
<p>保存并关闭文件。现在你可以编辑服务器了。增加以下代码到nginx.conf文件来关闭nginx版本号的显示。</p>
<div>
<blockquote>
<ol title="Double click to hide line number.">
<li>server_tokens off</li>
</ol>
</blockquote>
</div>
<h3>五、使用mod_security(只适合后端Apache服务器)</h3>
<p>mod_security为Apache提供一个应用程序级的防火墙。为后端Apache Web服务器安装mod_security，这会阻止很多注入式攻击。</p>
<h3>六、安装SELinux策略以强化Nginx Web服务器</h3>
<p>默认的SELinux不会保护Nginx Web服务器，但是你可以安装和编译保护软件。<br />
1、安装编译SELinux所需环境支持</p>
<div>
<blockquote>
<ol title="Double click to hide line number.">
<li>yum -y install selinux-policy-targeted selinux-policy-devel</li>
</ol>
</blockquote>
</div>
<p>2、下载SELinux策略以强化Nginx Web服务器。</p>
<div>
<blockquote>
<ol title="Double click to hide line number.">
<li>cd /opt</li>
<li>wget ‘http://downloads.sourceforge.net/project/selinuxnginx/se-ngix_1_0_10.tar.gz?use_mirror=nchc’</li>
</ol>
</blockquote>
</div>
<p>3、解压文件</p>
<div>
<blockquote>
<ol title="Double click to hide line number.">
<li>tar -zxvf se-ngix_1_0_10.tar.gz</li>
</ol>
</blockquote>
</div>
<p>4、编译文件</p>
<div>
<blockquote>
<ol title="Double click to hide line number.">
<li>cd se-ngix_1_0_10/nginx</li>
<li>make</li>
</ol>
</blockquote>
</div>
<p>将会输出如下：<br />
Compiling targeted nginx module<br />
/usr/bin/checkmodule: loading policy configuration from tmp/nginx.tmp<br />
/usr/bin/checkmodule: policy configuration loaded<br />
/usr/bin/checkmodule: writing binary representation (version 6) to tmp/nginx.mod<br />
Creating targeted nginx.pp policy package</p>
<div>
<blockquote>
<ol title="Double click to hide line number.">
<li>rm tmp/nginx.mod.fc tmp/nginx.mod</li>
</ol>
</blockquote>
</div>
<p>5、安装生成的nginx.pp SELinux模块：</p>
<div>
<blockquote>
<ol title="Double click to hide line number.">
<li>/usr/sbin/semodule -i nginx.pp</li>
</ol>
</blockquote>
</div>
<h3>七、基于Iptables防火墙的限制</h3>
<p>下面的防火墙脚本阻止任何除了允许：</p>
<ul>
<li>来自HTTP(TCP端口80)的请求</li>
<li>来自ICMP ping的请求</li>
<li>ntp(端口123)的请求输出</li>
<li>smtp(TCP端口25)的请求输出</li>
</ul>
<div>
<blockquote>
<ol title="Double click to hide line number.">
<li>#!/bin/bash</li>
<li>IPT=”/sbin/iptables”</li>
<li>#### IPS ######</li>
<li># Get server public ip</li>
<li>SERVER_IP=$(ifconfig eth0 | grep ‘inet addr:’ | awk -F’inet addr:’ ‘{ print $2}’ | awk ‘{ print $1}’)</li>
<li>LB1_IP=”204.54.1.1″</li>
<li>LB2_IP=”204.54.1.2″</li>
<li># Do some smart logic so that we can use damm script on LB2 too</li>
<li>OTHER_LB=””</li>
<li>SERVER_IP=””</li>
<li>[[ "$SERVER_IP" == "$LB1_IP" ]] &amp;&amp; OTHER_LB=”$LB2_IP” || OTHER_LB=”$LB1_IP”</li>
<li>[[ "$OTHER_LB" == "$LB2_IP" ]] &amp;&amp; OPP_LB=”$LB1_IP” || OPP_LB=”$LB2_IP”</li>
<li>### IPs ###</li>
<li>PUB_SSH_ONLY=”122.xx.yy.zz/29″</li>
<li>#### FILES #####</li>
<li>BLOCKED_IP_TDB=/root/.fw/blocked.ip.txt</li>
<li>SPOOFIP=”127.0.0.0/8 192.168.0.0/16 172.16.0.0/12 10.0.0.0/8 169.254.0.0/16 0.0.0.0/8 240.0.0.0/4 255.255.255.255/32 168.254.0.0/16 224.0.0.0/4 240.0.0.0/5 248.0.0.0/5 192.0.2.0/24″</li>
<li>BADIPS=$( [[ -f ${BLOCKED_IP_TDB} ]] &amp;&amp; egrep -v “^#|^$” ${BLOCKED_IP_TDB})</li>
<li>### Interfaces ###</li>
<li>PUB_IF=”eth0″   # public interface</li>
<li>LO_IF=”lo”      # loopback</li>
<li>VPN_IF=”eth1″   # vpn / private net</li>
<li>### start firewall ###</li>
<li>echo “Setting LB1 $(hostname) Firewall…”</li>
<li># DROP and close everything</li>
<li>$IPT -P INPUT DROP</li>
<li>$IPT -P OUTPUT DROP</li>
<li>$IPT -P FORWARD DROP</li>
<li># Unlimited lo access</li>
<li>$IPT -A INPUT -i ${LO_IF} -j ACCEPT</li>
<li>$IPT -A OUTPUT -o ${LO_IF} -j ACCEPT</li>
<li># Unlimited vpn / pnet access</li>
<li>$IPT -A INPUT -i ${VPN_IF} -j ACCEPT</li>
<li>$IPT -A OUTPUT -o ${VPN_IF} -j ACCEPT</li>
<li># Drop sync</li>
<li>$IPT -A INPUT -i ${PUB_IF} -p tcp ! –syn -m state –state NEW -j DROP</li>
<li># Drop Fragments</li>
<li>$IPT -A INPUT -i ${PUB_IF} -f -j DROP</li>
<li>$IPT  -A INPUT -i ${PUB_IF} -p tcp –tcp-flags ALL FIN,URG,PSH -j DROP</li>
<li>$IPT  -A INPUT -i ${PUB_IF} -p tcp –tcp-flags ALL ALL -j DROP</li>
<li># Drop NULL packets</li>
<li>$IPT  -A INPUT -i ${PUB_IF} -p tcp –tcp-flags ALL NONE -m limit –limit 5/m –limit-burst 7 -j LOG –log-prefix ” NULL Packets “</li>
<li>$IPT  -A INPUT -i ${PUB_IF} -p tcp –tcp-flags ALL NONE -j DROP</li>
<li>$IPT  -A INPUT -i ${PUB_IF} -p tcp –tcp-flags SYN,RST SYN,RST -j DROP</li>
<li># Drop XMAS</li>
<li>$IPT  -A INPUT -i ${PUB_IF} -p tcp –tcp-flags SYN,FIN SYN,FIN -m limit –limit 5/m –limit-burst 7 -j LOG –log-prefix ” XMAS Packets “</li>
<li>$IPT  -A INPUT -i ${PUB_IF} -p tcp –tcp-flags SYN,FIN SYN,FIN -j DROP</li>
<li># Drop FIN packet scans</li>
<li>$IPT  -A INPUT -i ${PUB_IF} -p tcp –tcp-flags FIN,ACK FIN -m limit –limit 5/m –limit-burst 7 -j LOG –log-prefix ” Fin Packets Scan “</li>
<li>$IPT  -A INPUT -i ${PUB_IF} -p tcp –tcp-flags FIN,ACK FIN -j DROP</li>
<li>$IPT  -A INPUT -i ${PUB_IF} -p tcp –tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP</li>
<li># Log and get rid of broadcast / multicast and invalid</li>
<li>$IPT  -A INPUT -i ${PUB_IF} -m pkttype –pkt-type broadcast -j LOG –log-prefix ” Broadcast “</li>
<li>$IPT  -A INPUT -i ${PUB_IF} -m pkttype –pkt-type broadcast -j DROP</li>
<li>$IPT  -A INPUT -i ${PUB_IF} -m pkttype –pkt-type multicast -j LOG –log-prefix ” Multicast “</li>
<li>$IPT  -A INPUT -i ${PUB_IF} -m pkttype –pkt-type multicast -j DROP</li>
<li>$IPT  -A INPUT -i ${PUB_IF} -m state –state INVALID -j LOG –log-prefix ” Invalid “</li>
<li>$IPT  -A INPUT -i ${PUB_IF} -m state –state INVALID -j DROP</li>
<li># Log and block spoofed ips</li>
<li>$IPT -N spooflist</li>
<li>for ipblock in $SPOOFIP</li>
<li>do</li>
<li>$IPT -A spooflist -i ${PUB_IF} -s $ipblock -j LOG –log-prefix ” SPOOF List Block “</li>
<li>$IPT -A spooflist -i ${PUB_IF} -s $ipblock -j DROP</li>
<li>done</li>
<li>$IPT -I INPUT -j spooflist</li>
<li>$IPT -I OUTPUT -j spooflist</li>
<li>$IPT -I FORWARD -j spooflist</li>
<li># Allow ssh only from selected public ips</li>
<li>for ip in ${PUB_SSH_ONLY}</li>
<li>do</li>
<li>$IPT -A INPUT -i ${PUB_IF} -s ${ip} -p tcp -d ${SERVER_IP} –destination-port 22 -j ACCEPT</li>
<li>$IPT -A OUTPUT -o ${PUB_IF} -d ${ip} -p tcp -s ${SERVER_IP} –sport 22 -j ACCEPT</li>
<li>done</li>
<li># allow incoming ICMP ping pong stuff</li>
<li>$IPT -A INPUT -i ${PUB_IF} -p icmp –icmp-type 8 -s 0/0 -m state –state NEW,ESTABLISHED,RELATED -m limit –limit 30/sec  -j ACCEPT</li>
<li>$IPT -A OUTPUT -o ${PUB_IF} -p icmp –icmp-type 0 -d 0/0 -m state –state ESTABLISHED,RELATED -j ACCEPT</li>
<li># allow incoming HTTP port 80</li>
<li>$IPT -A INPUT -i ${PUB_IF} -p tcp -s 0/0 –sport 1024:65535 –dport 80 -m state –state NEW,ESTABLISHED -j ACCEPT</li>
<li>$IPT -A OUTPUT -o ${PUB_IF} -p tcp –sport 80 -d 0/0 –dport 1024:65535 -m state –state ESTABLISHED -j ACCEPT</li>
<li># allow outgoing ntp</li>
<li>$IPT -A OUTPUT -o ${PUB_IF} -p udp –dport 123 -m state –state NEW,ESTABLISHED -j ACCEPT</li>
<li>$IPT -A INPUT -i ${PUB_IF} -p udp –sport 123 -m state –state ESTABLISHED -j ACCEPT</li>
<li># allow outgoing smtp</li>
<li>$IPT -A OUTPUT -o ${PUB_IF} -p tcp –dport 25 -m state –state NEW,ESTABLISHED -j ACCEPT</li>
<li>$IPT -A INPUT -i ${PUB_IF} -p tcp –sport 25 -m state –state ESTABLISHED -j ACCEPT</li>
<li>### add your other rules here ####</li>
<li>#######################</li>
<li># drop and log everything else</li>
<li>$IPT -A INPUT -m limit –limit 5/m –limit-burst 7 -j LOG –log-prefix ” DEFAULT DROP “</li>
<li>$IPT -A INPUT -j DROP</li>
<li>exit 0</li>
</ol>
</blockquote>
</div>
<h3>八、控制缓冲区溢出攻击</h3>
<p>编辑nginx.conf，为所有客户端设置缓冲区的大小限制。</p>
<div>
<blockquote>
<ol title="Double click to hide line number.">
<li>vi /usr/local/nginx/conf/nginx.conf</li>
</ol>
</blockquote>
</div>
<p>编辑和设置所有客户端缓冲区的大小限制如下：</p>
<div>
<blockquote>
<ol title="Double click to hide line number.">
<li>## Start: Size Limits &amp; Buffer Overflows ##</li>
<li>client_body_buffer_size  1K;</li>
<li>client_header_buffer_size 1k;</li>
<li>client_max_body_size 1k;</li>
<li>large_client_header_buffers 2 1k;</li>
<li>## END: Size Limits &amp; Buffer Overflows ##</li>
</ol>
</blockquote>
</div>
<p>解释：<br />
1、client_body_buffer_size 1k-（默认8k或16k）这个指令可以指定连接请求实体的缓冲区大小。如果连接请求超过缓存区指定的值，那么这些请求实体的整体或部分将尝试写入一个临时文件。<br />
2、client_header_buffer_size 1k-指令指定客户端请求头部的缓冲区大小。绝大多数情况下一个请求头不会大于1k，不过如果有来自于wap客户端的较大的cookie它可能会大于 1k，Nginx将分配给它一个更大的缓冲区，这个值可以在large_client_header_buffers里面设置。<br />
3、client_max_body_size 1k-指令指定允许客户端连接的最大请求实体大小，它出现在请求头部的Content-Length字段。<br />
如果请求大于指定的值，客户端将收到一个”Request Entity Too Large” (413)错误。记住，浏览器并不知道怎样显示这个错误。<br />
4、large_client_header_buffers-指定客户端一些比较大的请求头使用的缓冲区数量和大小。请求字段不能大于一个缓冲区大小，如果客户端发送一个比较大的头，nginx将返回”Request URI too large” (414)<br />
同样，请求的头部最长字段不能大于一个缓冲区，否则服务器将返回”Bad request” (400)。缓冲区只在需求时分开。默认一个缓冲区大小为操作系统中分页文件大小，通常是4k或8k，如果一个连接请求最终将状态转换为keep- alive，它所占用的缓冲区将被释放。<br />
你还需要控制超时来提高服务器性能并与客户端断开连接。按照如下编辑：</p>
<div>
<blockquote>
<ol title="Double click to hide line number.">
<li>## Start: Timeouts ##</li>
<li>client_body_timeout   10;</li>
<li>client_header_timeout 10;</li>
<li>keepalive_timeout     5 5;</li>
<li>send_timeout          10;</li>
<li>## End: Timeouts ##</li>
</ol>
</blockquote>
</div>
<p>1、client_body_timeout 10;-指令指定读取请求实体的超时时间。这里的超时是指一个请求实体没有进入读取步骤，如果连接超过这个时间而客户端没有任何响应，Nginx将返回一个”Request time out” (408)错误。<br />
2、client_header_timeout 10;-指令指定读取客户端请求头标题的超时时间。这里的超时是指一个请求头没有进入读取步骤，如果连接超过这个时间而客户端没有任何响应，Nginx将返回一个”Request time out” (408)错误。<br />
3、keepalive_timeout 5 5; – 参数的第一个值指定了客户端与服务器长连接的超时时间，超过这个时间，服务器将关闭连接。参数的第二个值（可选）指定了应答头中Keep-Alive: timeout=time的time值，这个值可以使一些浏览器知道什么时候关闭连接，以便服务器不用重复关闭，如果不指定这个参数，nginx不会在应 答头中发送Keep-Alive信息。（但这并不是指怎样将一个连接“Keep-Alive”）参数的这两个值可以不相同。<br />
4、send_timeout 10; 指令指定了发送给客户端应答后的超时时间，Timeout是指没有进入完整established状态，只完成了两次握手，如果超过这个时间客户端没有任何响应，nginx将关闭连接。</p>
<h3>九、控制并发连接</h3>
<p>你可以使用NginxHttpLimitZone模块来限制指定的会话或者一个IP地址的特殊情况下的并发连接。编辑nginx.conf:</p>
<div>
<blockquote>
<ol title="Double click to hide line number.">
<li>### Directive describes the zone, in which the session states are stored i.e. store in slimits. ###</li>
<li>### 1m can handle 32000 sessions with 32 bytes/session, set to 5m x 32000 session ###</li>
<li>limit_zone slimits $binary_remote_addr 5m;</li>
<li>### Control maximum number of simultaneous connections for one session i.e. ###</li>
<li>### restricts the amount of connections from a single ip address ###</li>
<li>limit_conn slimits 5;</li>
</ol>
</blockquote>
</div>
<p>上面表示限制每个远程IP地址的客户端同时打开连接不能超过5个。</p>
<h3>十、只允许我们的域名的访问</h3>
<p>如果机器人只是随机扫描服务器的所有域名，那拒绝这个请求。你必须允许配置的虚拟域或反向代理请求。你不必使用IP地址来拒绝。</p>
<div>
<blockquote>
<ol title="Double click to hide line number.">
<li>## Only requests to our Host are allowed i.e. nixcraft.in, images.nixcraft.in and www.nixcraft.in</li>
<li>if ($host !~ ^(nixcraft.in|www.nixcraft.in|images.nixcraft.in)$ ) {</li>
<li>return 444;</li>
<li>}</li>
<li>##</li>
</ol>
</blockquote>
</div>
<h3>十一、限制可用的请求方法</h3>
<p>GET和POST是互联网上最常用的方法。 Web服务器的方法被定义在RFC 2616。如果Web服务器不要求启用所有可用的方法，它们应该被禁用。下面的指令将过滤只允许GET，HEAD和POST方法：</p>
<div>
<blockquote>
<ol title="Double click to hide line number.">
<li>## Only allow these request methods ##</li>
<li>if ($request_method !~ ^(GET|HEAD|POST)$ ) {</li>
<li>return 444;</li>
<li>}</li>
<li>## Do not accept DELETE, SEARCH and other methods ##</li>
</ol>
</blockquote>
</div>
<p>更多关于HTTP方法的介绍</p>
<ul>
<li>GET方法是用来请求，如文件<a target="_blank">http://www.mzfeng.com/index.php</a>。</li>
<li>HEAD方法是一样的，除非该服务器的GET请求无法返回消息体。</li>
<li>POST方法可能涉及到很多东西，如储存或更新数据，或订购产品，或通过提交表单发送电子邮件。这通常是使用服务器端处理，如PHP，Perl和Python等脚本。如果你要上传的文件和在服务器处理数据，你必须使用这个方法。</li>
</ul>
<h3>十二、如何拒绝一些User-Agents？</h3>
<p>你可以很容易地阻止User-Agents,如扫描器，机器人以及滥用你服务器的垃圾邮件发送者。</p>
<div>
<blockquote>
<ol title="Double click to hide line number.">
<li>## Block download agents ##</li>
<li>if ($http_user_agent ~* LWP::Simple|BBBike|wget) {</li>
<li>return 403;</li>
<li>}</li>
<li>##</li>
</ol>
</blockquote>
</div>
<p>阻止Soso和有道的机器人：</p>
<div>
<blockquote>
<ol title="Double click to hide line number.">
<li>## Block some robots ##</li>
<li>if ($http_user_agent ~* Sosospider|YodaoBot) {</li>
<li>return 403;</li>
<li>}</li>
</ol>
</blockquote>
</div>
<h3>十三、如何防止图片盗链</h3>
<p>图片或HTML盗链的意思是有人直接用你网站的图片地址来显示在他的网站上。最终的结果，你需要支付额外的宽带费用。这通常是在论坛和博客。我强烈建议您封锁，并阻止盗链行为。</p>
<div>
<blockquote>
<ol title="Double click to hide line number.">
<li># Stop deep linking or hot linking</li>
<li>location /images/ {</li>
<li>valid_referers none blocked www.example.com example.com;</li>
<li>if ($invalid_referer) {</li>
<li>return   403;</li>
<li>}</li>
<li>}</li>
</ol>
</blockquote>
</div>
<p>例如：重定向并显示指定图片</p>
<div>
<blockquote>
<ol title="Double click to hide line number.">
<li>valid_referers blocked www.example.com example.com;</li>
<li>if ($invalid_referer) {</li>
<li>rewrite ^/images/uploads.*\.(gif|jpg|jpeg|png)$ http://www.examples.com/banned.jpg last</li>
<li>}</li>
</ol>
</blockquote>
</div>
<h3>十四、目录限制</h3>
<p>你可以对指定的目录设置访问权限。所有的网站目录应该一一的配置，只允许必须的目录访问权限。<br />
<strong>通过IP地址限制访问</strong><br />
你可以通过IP地址来限制访问目录/admin/:</p>
<div>
<blockquote>
<ol title="Double click to hide line number.">
<li>location /docs/ {</li>
<li>## block one workstation</li>
<li>deny    192.168.1.1;</li>
<li>## allow anyone in 192.168.1.0/24</li>
<li>allow   192.168.1.0/24;</li>
<li>## drop rest of the world</li>
<li>deny    all;</li>
<li>}</li>
</ol>
</blockquote>
</div>
<p><strong>通过密码保护目录</strong><br />
首先创建密码文件并增加“user”用户：</p>
<div>
<blockquote>
<ol title="Double click to hide line number.">
<li>mkdir /usr/local/nginx/conf/.htpasswd/</li>
<li>htpasswd -c /usr/local/nginx/conf/.htpasswd/passwd user</li>
</ol>
</blockquote>
</div>
<p>编辑nginx.conf,加入需要保护的目录：</p>
<div>
<blockquote>
<ol title="Double click to hide line number.">
<li>### Password Protect /personal-images/ and /delta/ directories ###</li>
<li>location ~ /(personal-images/.*|delta/.*) {</li>
<li>auth_basic  “Restricted”;</li>
<li>auth_basic_user_file   /usr/local/nginx/conf/.htpasswd/passwd;</li>
<li>}</li>
</ol>
</blockquote>
</div>
<p>一旦密码文件已经生成，你也可以用以下的命令来增加允许访问的用户：</p>
<div>
<blockquote>
<ol title="Double click to hide line number.">
<li>htpasswd -s /usr/local/nginx/conf/.htpasswd/passwd userName</li>
</ol>
</blockquote>
</div>
<h3>十五、Nginx SSL配置</h3>
<p>HTTP是一个纯文本协议，它是开放的被动监测。你应该使用SSL来加密你的用户内容。<br />
<strong>创建SSL证书</strong><br />
执行以下命令：</p>
<div>
<blockquote>
<ol title="Double click to hide line number.">
<li>cd /usr/local/nginx/conf</li>
<li>openssl genrsa -des3 -out server.key 1024</li>
<li>openssl req -new -key server.key -out server.csr</li>
<li>cp server.key server.key.org</li>
<li>openssl rsa -in server.key.org -out server.key</li>
<li>openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt</li>
</ol>
</blockquote>
</div>
<p>编辑nginx.conf并按如下来更新：</p>
<div>
<blockquote>
<ol title="Double click to hide line number.">
<li>server {</li>
<li>server_name example.com;</li>
<li>listen 443;</li>
<li>ssl on;</li>
<li>ssl_certificate /usr/local/nginx/conf/server.crt;</li>
<li>ssl_certificate_key /usr/local/nginx/conf/server.key;</li>
<li>access_log /usr/local/nginx/logs/ssl.access.log;</li>
<li>error_log /usr/local/nginx/logs/ssl.error.log;</li>
<li>}</li>
</ol>
</blockquote>
</div>
<p>重启nginx:</p>
<div>
<blockquote>
<ol title="Double click to hide line number.">
<li>/usr/local/nginx/sbin/nginx -s reload</li>
</ol>
</blockquote>
</div>
<h3>十六、Nginx与PHP安全建议</h3>
<p>PHP是流行的服务器端脚本语言之一。如下编辑/etc/<a title="标签 PHP 下的日志" rel="tag">php</a>.ini文件：</p>
<div>
<blockquote>
<ol title="Double click to hide line number.">
<li># Disallow dangerous functions</li>
<li>disable_functions = phpinfo, system, mail, exec</li>
<li>## Try to limit resources  ##</li>
<li># Maximum execution time of each script, in seconds</li>
<li>max_execution_time = 30</li>
<li># Maximum amount of time each script may spend parsing request data</li>
<li>max_input_time = 60</li>
<li># Maximum amount of memory a script may consume (8MB)</li>
<li>memory_limit = 8M</li>
<li># Maximum size of POST data that PHP will accept.</li>
<li>post_max_size = 8M</li>
<li># Whether to allow HTTP file uploads.</li>
<li>file_uploads = Off</li>
<li># Maximum allowed size for uploaded files.</li>
<li>upload_max_filesize = 2M</li>
<li># Do not expose PHP error messages to external users</li>
<li>display_errors = Off</li>
<li># Turn on safe mode</li>
<li>safe_mode = On</li>
<li># Only allow access to executables in isolated directory</li>
<li>safe_mode_exec_dir = php-required-executables-path</li>
<li># Limit external access to PHP environment</li>
<li>safe_mode_allowed_env_vars = PHP_</li>
<li># Restrict PHP information leakage</li>
<li>expose_php = Off</li>
<li># Log all errors</li>
<li>log_errors = On</li>
<li># Do not register globals for input data</li>
<li>register_globals = Off</li>
<li># Minimize allowable PHP post size</li>
<li>post_max_size = 1K</li>
<li># Ensure PHP redirects appropriately</li>
<li>cgi.force_redirect = 0</li>
<li># Disallow uploading unless necessary</li>
<li>file_uploads = Off</li>
<li># Enable SQL safe mode</li>
<li>sql.safe_mode = On</li>
<li># Avoid Opening remote files</li>
<li>allow_url_fopen = Off</li>
</ol>
</blockquote>
</div>
<h3>十七、如果可能让Nginx运行在一个chroot监狱</h3>
<p>把nginx放在一个chroot监狱以减小潜在的非法进入其它目录。你可以使用传统的与nginx一起安装的chroot。如果可能，那使用FreeBSD jails，Xen，OpenVZ虚拟化的容器概念。</p>
<h3>十八、在防火墙级限制每个IP的连接数</h3>
<p>网络服务器必须监视连接和每秒连接限制。PF和Iptales都能够在进入你的nginx服务器之前阻止最终用户的访问。<br />
Linux Iptables:限制每次Nginx连接数<br />
下面的例子会阻止来自一个IP的60秒钟内超过15个连接端口80的连接数。</p>
<div>
<blockquote>
<ol title="Double click to hide line number.">
<li>/sbin/iptables -A INPUT -p tcp –dport 80 -i eth0 -m state –state NEW -m recent –set</li>
<li>/sbin/iptables -A INPUT -p tcp –dport 80 -i eth0 -m state –state NEW -m recent –update –seconds 60  –hitcount 15 -j DROP</li>
<li>service iptables save</li>
</ol>
</blockquote>
</div>
<p>请根据你的具体情况来设置限制的连接数。</p>
<h3>十九：配置操作系统保护Web服务器</h3>
<p>像以上介绍的启动SELinux.正确设置/nginx文档根目录的权限。Nginx以用户nginx运行。但是根目录（/nginx或者/usr /local/nginx/html）不应该设置属于用户nginx或对用户nginx可写。找出错误权限的文件可以使用如下命令：</p>
<div>
<blockquote>
<ol title="Double click to hide line number.">
<li>find /nginx -user nginx</li>
<li>find /usr/local/nginx/html -user nginx</li>
</ol>
</blockquote>
</div>
<p>确保你更所有权为root或其它用户，一个典型的权限设置 /usr/local/nginx/html/</p>
<div>
<blockquote>
<ol title="Double click to hide line number.">
<li>ls -l /usr/local/nginx/html/</li>
</ol>
</blockquote>
</div>
<p>示例输出：</p>
<div>
<blockquote>
<ol title="Double click to hide line number.">
<li>-rw-r–r– 1 root root 925 Jan  3 00:50 error4xx.html</li>
<li>-rw-r–r– 1 root root  52 Jan  3 10:00 error5xx.html</li>
<li>-rw-r–r– 1 root root 134 Jan  3 00:52 index.html</li>
</ol>
</blockquote>
</div>
<p>你必须删除由vi或其它文本编辑器创建的备份文件：</p>
<div>
<blockquote>
<ol title="Double click to hide line number.">
<li>find /nginx -name ‘.?*’ -not -name .ht* -or -name ‘*~’ -or -name ‘*.bak*’ -or -name ‘*.old*’</li>
<li>find /usr/local/nginx/html/ -name ‘.?*’ -not -name .ht* -or -name ‘*~’ -or -name ‘*.bak*’ -or -name ‘*.old*’</li>
</ol>
</blockquote>
</div>
<p>通过find命令的-delete选项来删除这些文件。</p>
<h3>二十、限制Nginx连接传出</h3>
<p>黑客会使用工具如wget下载你服务器本地的文件。使用Iptables从nginx用户来阻止传出连接。ipt_owner模块试图匹配本地产生的数据包的创建者。下面的例子中只允许user用户在外面使用80连接。</p>
<div>
<blockquote>
<ol title="Double click to hide line number.">
<li>/sbin/iptables -A OUTPUT -o eth0 -m owner –uid-owner vivek -p tcp –dport 80 -m state –state NEW,ESTABLISHED  -j ACCEPT</li>
</ol>
</blockquote>
</div>
<p>通过以上的配置，你的nginx服务器已经非常安全了并可以发布网页。可是，你还应该根据你网站程序查找更多的安全设置资料。例如，wordpress或者第三方程序。</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.mzfeng.com/html/y2012/341.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux主机使用DenyHosts阻止SSH暴力攻击</title>
		<link>http://www.mzfeng.com/html/y2010/329.html</link>
		<comments>http://www.mzfeng.com/html/y2010/329.html#comments</comments>
		<pubDate>Sun, 01 Aug 2010 00:41:11 +0000</pubDate>
		<dc:creator>mzfeng</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[DenyHosts]]></category>

		<guid isPermaLink="false">http://www.mzfeng.com/?p=329</guid>
		<description><![CDATA[现今很多朋友都在用国外的VPS，国外由于LINUX是免费开源，相比微软的高额的Windows费用，Linux就有很大的优势。从而有很多朋友都采用LINUX来做系统 ；但是网上有很多无聊的人经常在扫描SSH端口,试图连接ssh端口进行暴力破解（穷举扫描），所以建议vps主机的空间,尽量设置复杂的ssh登录密码，还有就是可以使用denyhosts这款软件，它会分析/var/log/secure（redhat，Fedora Core）等日志文件，当发现同一IP在进行多次SSH密码尝试时就会记录IP到/etc/hosts.deny文件，从而达到自动屏蔽该IP的目的。 DenyHosts官方网站为：http://denyhosts.sourceforge.net/ 1、下载DenyHosts 并解压 # wget http://soft.vpser.net/security/denyhosts/DenyHosts-2.6.tar.gz # tar zxvf DenyHosts-2.6.tar.gz # cd DenyHosts-2.6 2、安装、配置和启动 # python setup.py install 默认是安装到/usr/share/denyhosts/目录的,进入相应的目录修改配置文件 # cd /usr/share/denyhosts/ # cp denyhosts.cfg-dist denyhosts.cfg # cp daemon-control-dist daemon-control 默认的设置已经可以适合centos系统环境，你们可以使用vi命令查看一下denyhosts.cfg和daemon-control，里面有详细的解释 接着使用下面命令启动denyhosts程序 # chown root daemon-control # chmod 700 daemon-control # ./daemon-control start 如果要使DenyHosts每次重起后自动启动还需做如下设置： # cd /etc/init.d # ln -s /usr/share/denyhosts/daemon-control denyhosts [...]]]></description>
			<content:encoded><![CDATA[<p>现今很多朋友都在用国外的VPS，国外由于LINUX是免费开源，相比微软的高额的Windows费用，<span class='wp_keywordlink_affiliate'><a href="http://www.mzfeng.com/html/ytag/linux" title="查看 Linux 中的全部文章" target="_blank">Linux</a></span>就有很大的优势。从而有很多朋友都采用LINUX来做系统 ；但是网上有很多无聊的人经常在扫描SSH端口,试图连接ssh端口进行暴力破解（穷举扫描），所以建议vps主机的空间,尽量设置复杂的ssh登录密码，还有就是可以使用denyhosts这款软件，它会分析/var/log/secure（redhat，Fedora Core）等日志文件，当发现同一IP在进行多次SSH密码尝试时就会记录IP到/etc/hosts.deny文件，从而达到自动屏蔽该IP的目的。</p>
<p><span class='wp_keywordlink_affiliate'><a href="http://www.mzfeng.com/html/ytag/denyhosts" title="查看 DenyHosts 中的全部文章" target="_blank">DenyHosts</a></span>官方网站为：http://denyhosts.sourceforge.net/</p>
<p>1、下载<span class='wp_keywordlink_affiliate'><a href="http://www.mzfeng.com/html/ytag/denyhosts" title="查看 DenyHosts 中的全部文章" target="_blank">DenyHosts</a></span> 并解压</p>
<p># wget http://soft.vpser.net/security/denyhosts/DenyHosts-2.6.tar.gz<br />
# tar zxvf DenyHosts-2.6.tar.gz<br />
# cd DenyHosts-2.6</p>
<p>2、安装、配置和启动</p>
<p># python setup.py install<br />
默认是安装到/usr/share/denyhosts/目录的,进入相应的目录修改配置文件</p>
<p># cd /usr/share/denyhosts/<br />
# cp denyhosts.cfg-dist denyhosts.cfg<br />
# cp daemon-control-dist daemon-control</p>
<p>默认的设置已经可以适合centos系统环境，你们可以使用vi命令查看一下denyhosts.cfg和daemon-control，里面有详细的解释<br />
接着使用下面命令启动denyhosts程序<br />
# chown root daemon-control<br />
# chmod 700 daemon-control<br />
# ./daemon-control start</p>
<p>如果要使DenyHosts每次重起后自动启动还需做如下设置：<br />
# cd /etc/init.d<br />
# ln -s /usr/share/denyhosts/daemon-control denyhosts<br />
# chkconfig &#8211;add denyhosts<br />
# chkconfig &#8211;level 2345 denyhosts on<br />
或者执行下面的命令，将会修改/etc/rc.local文件：<br />
# echo “/usr/share/denyhosts/daemon-control start” &gt;&gt; /etc/rc.local</p>
<p>DenyHosts配置文件denyhosts.cfg说明：</p>
<p>SECURE_LOG = /var/log/secure</p>
<p>#sshd日志文件，它是根据这个文件来判断的，不同的操作系统，文件名稍有不同。</p>
<p>HOSTS_DENY = /etc/hosts.deny</p>
<p>#控制用户登陆的文件</p>
<p>PURGE_DENY = 5m</p>
<p>#过多久后清除已经禁止的</p>
<p>BLOCK_SERVICE = sshd</p>
<p>#禁止的服务名</p>
<p>DENY_THRESHOLD_INVALID = 1</p>
<p>#允许无效用户失败的次数</p>
<p>DENY_THRESHOLD_VALID = 10</p>
<p>#允许普通用户登陆失败的次数</p>
<p>DENY_THRESHOLD_ROOT = 5</p>
<p>#允许root登陆失败的次数</p>
<p>HOSTNAME_LOOKUP=NO</p>
<p>#是否做域名反解</p>
<p>DAEMON_LOG = /var/log/denyhosts</p>
<p>更多的说明请查看自带的README文本文件，好了以后维护VPS就会省一些心了，但是各位朋友们注意了安全都是相对的哦，没有绝对安全，请定期或不定期的检查你的VPS主机，而且要定时备份你的数据哦。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mzfeng.com/html/y2010/329.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux性能监控之Network篇</title>
		<link>http://www.mzfeng.com/html/y2010/325.html</link>
		<comments>http://www.mzfeng.com/html/y2010/325.html#comments</comments>
		<pubDate>Sun, 30 May 2010 17:14:45 +0000</pubDate>
		<dc:creator>mzfeng</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Network]]></category>
		<category><![CDATA[性能监控]]></category>

		<guid isPermaLink="false">http://www.mzfeng.com/?p=325</guid>
		<description><![CDATA[日常应用中，影响网络的因素有很多这些因素包括，延迟、冲突、阻塞等等。 接下来让我们了解Linux性能监控之下Network的具体情况，希望在关于Linux性能监控这方面对大家有更多的帮助。 大部分的以太网络都是自适应速度的，因为一个网络中可能有不同的网络设备采用不同的速率和工作模式（全双工或半双工）。大部分企业网络都工作在100到1000BaseTX。ethtool命令可以设置网卡的工作速率和模式。 # ethtool eth0 Settings for eth0: Supported ports: [ TP MII ] Supported link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full Supports auto-negotiation: Yes Advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full Advertised auto-negotiation: Yes Speed: 10Mb/s Duplex: Half Port: MII PHYAD: 32 Transceiver: internal Auto-negotiation: on Supports Wake-on: pumbg Wake-on: d Current message level: [...]]]></description>
			<content:encoded><![CDATA[<p>日常应用中，影响网络的因素有很多这些因素包括，延迟、冲突、阻塞等等。 接下来让我们了解<span class='wp_keywordlink_affiliate'><a href="http://www.mzfeng.com/html/ytag/linux" title="查看 Linux 中的全部文章" target="_blank">Linux</a></span><span class='wp_keywordlink_affiliate'><a href="http://www.mzfeng.com/html/ytag/%e6%80%a7%e8%83%bd%e7%9b%91%e6%8e%a7" title="查看 性能监控 中的全部文章" target="_blank">性能监控</a></span>之下<span class='wp_keywordlink_affiliate'><a href="http://www.mzfeng.com/html/ytag/network" title="查看 Network 中的全部文章" target="_blank">Network</a></span>的具体情况，希望在关于<span class='wp_keywordlink_affiliate'><a href="http://www.mzfeng.com/html/ytag/linux" title="查看 Linux 中的全部文章" target="_blank">Linux</a></span><span class='wp_keywordlink_affiliate'><a href="http://www.mzfeng.com/html/ytag/%e6%80%a7%e8%83%bd%e7%9b%91%e6%8e%a7" title="查看 性能监控 中的全部文章" target="_blank">性能监控</a></span>这方面对大家有更多的帮助。<br />
大部分的以太网络都是自适应速度的，因为一个网络中可能有不同的网络设备采用不同的速率和工作模式（全双工或半双工）。大部分企业网络都工作在100到1000BaseTX。ethtool命令可以设置网卡的工作速率和模式。<br />
# ethtool eth0<br />
Settings for eth0:<br />
Supported ports: [ TP MII ]<br />
Supported link modes: 10baseT/Half 10baseT/Full<br />
100baseT/Half 100baseT/Full<br />
Supports auto-negotiation: Yes<br />
Advertised link modes: 10baseT/Half 10baseT/Full<br />
100baseT/Half 100baseT/Full<br />
Advertised auto-negotiation: Yes<br />
Speed: 10Mb/s<span id="more-325"></span><br />
Duplex: Half<br />
Port: MII<br />
PHYAD: 32<br />
Transceiver: internal<br />
Auto-negotiation: on<br />
Supports Wake-on: pumbg<br />
Wake-on: d<br />
Current message level: 0&#215;00000007 (7)<br />
Link detected: yes</p>
<p>Linux<span class='wp_keywordlink_affiliate'><a href="http://www.mzfeng.com/html/ytag/%e6%80%a7%e8%83%bd%e7%9b%91%e6%8e%a7" title="查看 性能监控 中的全部文章" target="_blank">性能监控</a></span>我们可以看到网卡工作在10Mb/s，模式为半双工，并且打开了自适应开关。我们通过下列命令强制设置网卡工作在100Mb/s全双工模式，并关闭自适应功能。<br />
# ethtool -s eth0 speed 100 duplex full autoneg off</p>
<p>再次运行ethtool显示如下：<br />
# ethtool eth0<br />
Settings for eth0:<br />
Supported ports: [ TP MII ]<br />
Supported link modes: 10baseT/Half 10baseT/Full<br />
100baseT/Half 100baseT/Full<br />
Supports auto-negotiation: Yes<br />
Advertised link modes: 10baseT/Half 10baseT/Full<br />
100baseT/Half 100baseT/Full<br />
Advertised auto-negotiation: No<br />
Speed: 100Mb/s<br />
Duplex: Full<br />
Port: MII<br />
PHYAD: 32<br />
Transceiver: internal<br />
Auto-negotiation: off<br />
Supports Wake-on: pumbg<br />
Wake-on: d<br />
Current message level: 0&#215;00000007 (7)<br />
Link detected: yes</p>
<p>用iptraf工具可以清楚的看到每个网卡的工作情况。<br />
# iptraf –d eth0</p>
<p><a href="http://www.51testing.com/batch.download.php?aid=7928" target="_blank"><img title="Linux性能监控 - hljwxdn - hljwxdn的博客" src="http://images.51cto.com/files/uploadimg/20100526/1850280.jpg" border="0" alt="Linux性能监控 - hljwxdn - hljwxdn的博客" /></a></p>
<p>利用iptraf还可以监听固定TCP端口的流量，如对于Web服务器我们希望监听80端口的流量，对于邮件服务器我们关注25端口的流量。</p>
<p><a href="http://www.51testing.com/batch.download.php?aid=7929" target="_blank"><img title="Linux性能监控 - hljwxdn - hljwxdn的博客" src="http://images.51cto.com/files/uploadimg/20100526/1850281.jpg" border="0" alt="Linux性能监控 - hljwxdn - hljwxdn的博客" /></a>   </p>
<p>网络中最常见的错误就是冲突，由于网络中目前基本采用交换机环境，因此冲突问题已被消除。但是当网络流量不断增大的时候，就会出现丢包，网卡过载等情况。在网络流量很大的时候我们用sar命令来给出网络中可能的错误:<br />
# sar -n FULL 5 100<br />
Linux 2.6.9-55.ELsmp (sapulpa) 06/23/2007<br />
11:44:32 AM IFACE rxpck/s txpck/s rxbyt/s txbyt/s rxcmp/s txcmp/s rxmcst/s<br />
11:44:37 AM lo 6.00 6.00 424.40 424.40 0.00 0.00 0.00<br />
11:44:37 AM eth0 0.00 0.00 0.00 0.00 0.00 0.00 0.00<br />
11:44:37 AM sit0 0.00 0.00 0.00 0.00 0.00 0.00 0.00<br />
11:44:32 AM IFACE rxerr/s txerr/s coll/s rxdrop/s txdrop/s txcarr/s rxfram/s rxfifo/s txfifo/s<br />
11:44:37 AM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00<br />
11:44:37 AM eth0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00<br />
11:44:37 AM sit0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00<br />
11:44:32 AM totsck tcpsck udpsck rawsck ip-frag<br />
11:44:37 AM 297 79 8 0 0</p>
<p>rxerr/s是接受错误率；txerr/s是发送错误率；coll/s冲突率；rxdrop/s接受帧丢失率；txdrop/s发送帧丢失率； txcarr/s载波错误率；rxfram/s帧排列错误；rxfifo/s接受FIFO错误；txfifo/s发送FIFO错误。从上面输出看出各种错 误为零，证明网络工作良好。</p>
<p>Linux性能监控总的来说监视网络性能，我们有遵循一下几点：</p>
<p>1. 检查所有网络接口确保他们都运行在正确的速率；</p>
<p>2. 检查每块网卡的吞吐量确保没有造成过载；</p>
<p>3. 检查流量的类型确保正确的数据流在传送。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mzfeng.com/html/y2010/325.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Linux查看性能的命令之——top命令介绍</title>
		<link>http://www.mzfeng.com/html/y2010/324.html</link>
		<comments>http://www.mzfeng.com/html/y2010/324.html#comments</comments>
		<pubDate>Sat, 29 May 2010 15:53:58 +0000</pubDate>
		<dc:creator>mzfeng</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[top]]></category>
		<category><![CDATA[命令]]></category>

		<guid isPermaLink="false">http://www.mzfeng.com/?p=324</guid>
		<description><![CDATA[Linux系统运行维护的过程中，随时可能有需要查看 CPU 和内存使用率，并根据相应信息分析系统状况的需要。在 CentOS 中，可以通过 top 命令来查看 CPU 使用状况。运行 top 命令后，CPU 使用状态会以全屏的方式显示，并且会处在对话的模式 &#8212; 用基于 top 的命令，可以控制显示方式等等。退出 top 的命令为 q ，以下就让我们看看相关的命令。 Linux 查看性能操作实例: 在命令行中输入 “top” 即可启动 top top 的全屏对话模式可分为3部分：系统信息栏、命令输入栏、进程列表栏。 第一部分 &#8212; 最上部的 系统信息栏 ： 第一行（top）： “00:11:04”为系统当前时刻； “3:35”为系统启动后到现在的运作时间； “2 users”为当前登录到系统的用户，更确切的说是登录到用户的终端数 &#8212; 同一个用户同一时间对系统多个终端的连接将被视为多个用户连接到系统，这里的用户数也将表现 为终端的数目； “load average”为当前系统负载的平均值，后面的三个值分别为1分钟前、5分钟前、15分钟前进程的平均数，一般的可以认为这个数值超过 CPU 数目时，CPU 将比较吃力的负 载当前系统所包含的进程； 第二行（Tasks）： “59 total”为当前系统进程总数； “1 running”为当前运行中的进程数； “58 sleeping”为当前处于等待状态中的进程数； “0 stoped”为被停止的系统进程数； [...]]]></description>
			<content:encoded><![CDATA[<p><span class='wp_keywordlink_affiliate'><a href="http://www.mzfeng.com/html/ytag/linux" title="查看 Linux 中的全部文章" target="_blank">Linux</a></span>系统运行维护的过程中，随时可能有需要查看 CPU 和内存使用率，并根据相应信息分析系统状况的需要。在 CentOS 中，可以通过 <span class='wp_keywordlink_affiliate'><a href="http://www.mzfeng.com/html/ytag/top" title="查看 top 中的全部文章" target="_blank">top</a></span> <span class='wp_keywordlink_affiliate'><a href="http://www.mzfeng.com/html/ytag/%e5%91%bd%e4%bb%a4" title="查看 命令 中的全部文章" target="_blank">命令</a></span>来查看 CPU 使用状况。运行 <span class='wp_keywordlink_affiliate'><a href="http://www.mzfeng.com/html/ytag/top" title="查看 top 中的全部文章" target="_blank">top</a></span> <span class='wp_keywordlink_affiliate'><a href="http://www.mzfeng.com/html/ytag/%e5%91%bd%e4%bb%a4" title="查看 命令 中的全部文章" target="_blank">命令</a></span>后，CPU 使用状态会以全屏的方式显示，并且会处在对话的模式 &#8212; 用基于 top 的命令，可以控制显示方式等等。退出 top 的命令为 q ，以下就让我们看看相关的命令。</p>
<p><span class='wp_keywordlink_affiliate'><a href="http://www.mzfeng.com/html/ytag/linux" title="查看 Linux 中的全部文章" target="_blank">Linux</a></span> 查看性能操作实例:<br />
在命令行中输入 “top”<br />
即可启动 top<br />
top 的全屏对话模式可分为3部分：系统信息栏、命令输入栏、进程列表栏。</p>
<p>第一部分 &#8212; 最上部的 系统信息栏 ：</p>
<p><span id="more-324"></span>第一行（top）：<br />
“00:11:04”为系统当前时刻；<br />
“3:35”为系统启动后到现在的运作时间；<br />
“2 users”为当前登录到系统的用户，更确切的说是登录到用户的终端数 &#8212; 同一个用户同一时间对系统多个终端的连接将被视为多个用户连接到系统，这里的用户数也将表现</p>
<p>为终端的数目；<br />
“load average”为当前系统负载的平均值，后面的三个值分别为1分钟前、5分钟前、15分钟前进程的平均数，一般的可以认为这个数值超过 CPU 数目时，CPU 将比较吃力的负</p>
<p>载当前系统所包含的进程；</p>
<p>第二行（Tasks）：<br />
“59 total”为当前系统进程总数；<br />
“1 running”为当前运行中的进程数；<br />
“58 sleeping”为当前处于等待状态中的进程数；<br />
“0 stoped”为被停止的系统进程数；<br />
“0 zombie”为被复原的进程数；</p>
<p>第三行（Cpus）：<br />
分别表示了 CPU 当前的使用率；</p>
<p>第四行（Mem）：<br />
分别表示了内存总量、当前使用量、空闲内存量、以及缓冲使用中的内存量；</p>
<p>第五行（Swap）：<br />
表示类别同第四行（Mem），但此处反映着交换分区（Swap）的使用情况。通常，交换分区（Swap）被频繁使用的情况，将被视作物理内存不足而造成的。</p>
<p>第二部分 &#8212; 中间部分的内部命令提示栏：</p>
<p>Linux 查看性能top 运行中可以通过 top 的内部命令对进程的显示方式进行控制。内部命令如下表：</p>
<p>-Linux 查看性能 改变画面更新频率<br />
l &#8211; 关闭或开启第一部分第一行 top 信息的表示<br />
t &#8211; 关闭或开启第一部分第二行 Tasks 和第三行 Cpus 信息的表示<br />
m &#8211; 关闭或开启第一部分第四行 Mem 和 第五行 Swap 信息的表示<br />
N &#8211; 以 PID 的大小的顺序排列表示进程列表（第三部分后述）<br />
P &#8211; 以 CPU 占用率大小的顺序排列进程列表 （第三部分后述）<br />
M &#8211; 以内存占用率大小的顺序排列进程列表 （第三部分后述）<br />
h &#8211; 显示帮助<br />
n &#8211; 设置在进程列表所显示进程的数量<br />
q &#8211; 退出 top<br />
s -</p>
<p>Linux 查看性能改变画面更新周期</p>
<p>第三部分 &#8212; 最下部分的进程列表栏：</p>
<p>以 PID 区分的进程列表将根据所设定的画面更新时间定期的更新。Linux 查看性能通过 top 内部命令可以控制此处的显示方式。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mzfeng.com/html/y2010/324.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Linux环境中Windows软件环境的十七个替代品</title>
		<link>http://www.mzfeng.com/html/y2010/317.html</link>
		<comments>http://www.mzfeng.com/html/y2010/317.html#comments</comments>
		<pubDate>Fri, 28 May 2010 09:35:28 +0000</pubDate>
		<dc:creator>mzfeng</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[软件]]></category>

		<guid isPermaLink="false">http://www.mzfeng.com/?p=317</guid>
		<description><![CDATA[Linux系统近两年在桌面应用上的发展有目共睹，并且很多人开始活跃起来了，想转到Linux下。现在把我的Linux系统下使用的软件与在Windows下的软件环境给出一个对比结果。 一、办公软件 永中office2007PK Microsoft Office2003 办公软件是我们最常用的软件，可以采用“永中office2007”，有的朋友可能使用的是open office。不过经过我的使用比较，发现永中office比open office要快的很多，还有对于中文支持，及使用习惯上都更适合中国用户。 永中office2007能够双向精确兼容微软Office文档，包括加密的微软文件，也支持存取网页HTML和XML等文件，还可以输出为PDF文件。永中集成Office2007还添加了在中国的公文中经常使用的竖排、横排等格式的组合，或中国特有的拼图等MS产品所没有的功能。这套软件中包括文字处理（对应ＭＳ的 word）、电子表格（对应MS的Excel）和简报制作（对应MS的PowerPoint）三大应用。 二、文本编辑器 gedit PK 记事本 在Windows下，我们常常用记事本或是editplus等软件编辑文本文件，在Linux可以选用gedit软件。 三、图像处理 Gimp PK Photoshop 如果喜欢用Micromedia产品，现在可以找到在Linux下的版本了，与在Windows一样。 Micromedia Flash、Macromedia Fireworks都有在Linux下的版本。 四、输入法 XSIM，SCIM都很不错，里面有五笔、拼音等多种输入法。 五、聊天软件 可以用 Gaim,在Gaim下可以使用MSN、QQ、ICQ，gtalk、YAHOO等。 经常用skype的也不用担心，现在skype也有Linux下的版本，经使用语音效果很不错，不比Windows下差。 QQ如果不采用Gaim的形式，可以单独安装LumaQQ，这个软件有Windows下ＱＱ的大部分功能。 六、网页浏览器 Firefox PK IE 相信很多人都使用过Firefox，在Linux下，与在Windows下一样的出色。同时还可供选择的浏览器有Opera ，我的机器上这两种浏览器都安装了。另外对于Firefox浏览器可以选择性的安装一些扩展，这样你会发现你的Firefox越来越好用，也更漂亮。 这两个站都不错的，去看一看吧，一定有很多收获，Windows的用户也可以看看，一样适用。 七、下载工具 电骡下载：aMule与Windows下的基本一样，感觉比Windows下的更快一些。 ＢＴ下载：BitTorrent软件 多线程下载：MultiGet 类似于FlashGet下载软件。还可以采用Wget软件。 也可以通过扩展 Firefox插件提供多线程下载，我安装的是DownThemAll插件。 八、FTP工具 可以使用KFTPGrabber软件来取代Windows下的相关ftp软件。当然可供选择的还有很多。如：proftpd、CrossFTP等。 九、电子邮件客户端软件 Thunderbird PK FoxMail Mozilla Thunderbird 是一个强大的开源邮件和新闻组客户端。与firefox同出一家，完全可以取代foxmail。当然使用outlook的用户可以选用Evolution软件来取代。个人推荐使用Thunderbird软件。 十、网页编辑软件 本人机器里安装的是MicromediaDreamweaver [...]]]></description>
			<content:encoded><![CDATA[<p><span class='wp_keywordlink_affiliate'><a href="http://www.mzfeng.com/html/ytag/linux" title="查看 Linux 中的全部文章" target="_blank">Linux</a></span>系统近两年在桌面应用上的发展有目共睹，并且很多人开始活跃起来了，想转到<span class='wp_keywordlink_affiliate'><a href="http://www.mzfeng.com/html/ytag/linux" title="查看 Linux 中的全部文章" target="_blank">Linux</a></span>下。现在把我的<span class='wp_keywordlink_affiliate'><a href="http://www.mzfeng.com/html/ytag/linux" title="查看 Linux 中的全部文章" target="_blank">Linux</a></span>系统下使用的<span class='wp_keywordlink_affiliate'><a href="http://www.mzfeng.com/html/ytag/%e8%bd%af%e4%bb%b6" title="查看 软件 中的全部文章" target="_blank">软件</a></span>与在Windows下的<span class='wp_keywordlink_affiliate'><a href="http://www.mzfeng.com/html/ytag/%e8%bd%af%e4%bb%b6" title="查看 软件 中的全部文章" target="_blank">软件</a></span>环境给出一个对比结果。</p>
<p>一、办公软件</p>
<p>永中office2007PK Microsoft Office2003</p>
<p>办公软件是我们最常用的软件，可以采用“永中office2007”，有的朋友可能使用的是open office。不过经过我的使用比较，发现永中office比open office要快的很多，还有对于中文支持，及使用习惯上都更适合中国用户。</p>
<p>永中office2007能够双向精确兼容微软Office文档，包括加密的微软文件，也支持存取网页HTML和XML等文件，还可以输出为PDF文件。永中集成Office2007还添加了在中国的公文中经常使用的竖排、横排等格式的组合，或中国特有的拼图等MS产品所没有的功能。这套软件中包括文字处理（对应ＭＳ的 word）、电子表格（对应MS的Excel）和简报制作（对应MS的PowerPoint）三大应用。</p>
<p><span id="more-317"></span>二、文本编辑器</p>
<p>gedit PK 记事本</p>
<p>在Windows下，我们常常用记事本或是editplus等软件编辑文本文件，在Linux可以选用gedit软件。</p>
<p>三、图像处理</p>
<p>Gimp PK Photoshop</p>
<p>如果喜欢用Micromedia产品，现在可以找到在Linux下的版本了，与在Windows一样。</p>
<p>Micromedia Flash、Macromedia Fireworks都有在Linux下的版本。</p>
<p>四、输入法</p>
<p>XSIM，SCIM都很不错，里面有五笔、拼音等多种输入法。</p>
<p>五、聊天软件</p>
<p>可以用 Gaim,在Gaim下可以使用MSN、QQ、ICQ，gtalk、YAHOO等。</p>
<p>经常用skype的也不用担心，现在skype也有Linux下的版本，经使用语音效果很不错，不比Windows下差。</p>
<p>QQ如果不采用Gaim的形式，可以单独安装LumaQQ，这个软件有Windows下ＱＱ的大部分功能。</p>
<p>六、网页浏览器</p>
<p>Firefox PK IE</p>
<p>相信很多人都使用过Firefox，在Linux下，与在Windows下一样的出色。同时还可供选择的浏览器有Opera ，我的机器上这两种浏览器都安装了。另外对于Firefox浏览器可以选择性的安装一些扩展，这样你会发现你的Firefox越来越好用，也更漂亮。</p>
<p>这两个站都不错的，去看一看吧，一定有很多收获，Windows的用户也可以看看，一样适用。</p>
<p>七、下载工具</p>
<p>电骡下载：aMule与Windows下的基本一样，感觉比Windows下的更快一些。</p>
<p>ＢＴ下载：BitTorrent软件</p>
<p>多线程下载：MultiGet 类似于FlashGet下载软件。还可以采用Wget软件。</p>
<p>也可以通过扩展 Firefox插件提供多线程下载，我安装的是DownThemAll插件。</p>
<p>八、FTP工具</p>
<p>可以使用KFTPGrabber软件来取代Windows下的相关ftp软件。当然可供选择的还有很多。如：proftpd、CrossFTP等。</p>
<p>九、电子邮件客户端软件</p>
<p>Thunderbird PK FoxMail</p>
<p>Mozilla Thunderbird 是一个强大的开源邮件和新闻组客户端。与firefox同出一家，完全可以取代foxmail。当然使用outlook的用户可以选用Evolution软件来取代。个人推荐使用Thunderbird软件。</p>
<p>十、网页编辑软件</p>
<p>本人机器里安装的是MicromediaDreamweaver MX，因为在Windows下使用Dreamweaver习惯了，所以其它的用户起总觉得不方便，还好在网上找到了这个软件的Linux 版本。不错与在Windows一样的使用。</p>
<p>十一、英汉字典</p>
<p>星际译王 pk 金山词霸</p>
<p>星际译王这个软件虽然比金山词霸差些，但是足够满足我们的日常使用。在网上也发现了有金山词霸的Linux版本，不过没有试过。</p>
<p>十二、视频软件</p>
<p>MPlayer（可以放 VCD, DVD, divx, wma, wmv等）、RealPlayer。</p>
<p>p2p电视软件：可以安装gsopcast，虽然比不上Windows下的，总算在Linux下有的可用。</p>
<p>十三、音频软件</p>
<p>可以用xmms(支持多种格式)取代千千静音之类的音频播放软件，效果也不错的。</p>
<p>十四、打包压缩与解压缩软件</p>
<p>在Linux下可以用gzip , tar 等。</p>
<p>十五、开发工具</p>
<p>Eclipse, GCC, make, Perl, Python, Tcl/Tk各种语言都有。我的机器里安装了 Eclipse3.2 及GCC 等。</p>
<p>在Linux下的java开发一点问题都没有。tomcat、myeclipse、svn等一系例软件都有Linux版本，很是方便。</p>
<p>十六、UML设计工具</p>
<p>Dia PK Visio</p>
<p>Dia能制做 UML 图，流程图，电路图等，并能转换成多种外部格式(dxf,cgm,wpg,fig etc)。在ubuntu下可以直接通过新立得软件管理器安装。具有visio大部分功能，最少需要画uml及流程图等有工具可用，并且还算不错的工具。</p>
<p>十七、项目计划工具</p>
<p>Planner PK MS Project</p>
<p>Planner可以用于计划，调整和跟踪项目。与MS Project很像，不过功能上有差一些，但是足可以替代，不足的是不能与MS的数据互相沟通，这样很影响其它不用比工具的人无法互通计划文件。</p>
<p>当然Linux下还有很多好用与实用的软件用来取代我们在Windows下的常用软件。做为技术人员，专业人员为了工作或爱好完全采用Linux是可行的。但是我还是建议在系统中保留一份Windows系统，因为娱乐方面，玩游戏方面还是Windows下支持的更好，这个是Linux现在没有办法超过的。不要与我说在Linux下可以用wine之类的软件。这类软件的性能如何，用过的人我想都知道。只能说能用，不代表好用。我现在的Linux系统里就安装了IE浏览器，要比Linux下的其它浏览器慢得多，更比不上在Windows系统下的效果。Linux不可能完全取代Windows系统，不过，我觉得有一天它可能会与Windows平分天下，拥有各自相当数量的群体，就像现在开发语言中.net开发人员与java开发人员一样，各有所偏爱，各有所专功而以。</p>
<p>不管怎么说，看到Linux系统发展到现在这个样子，应该是一件很值得高兴的事情，因为我们除了Windows系统可以有更多的其它的选择。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mzfeng.com/html/y2010/317.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

