<?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>人生若只如初見 &#187; linux</title>
	<atom:link href="http://www.78wd.com/tag/linux/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.78wd.com</link>
	<description>i PanGel,and U</description>
	<lastBuildDate>Tue, 07 Feb 2012 07:26:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.3</generator>
		<item>
		<title>wget使用代理的方法</title>
		<link>http://www.78wd.com/wget-proxy/</link>
		<comments>http://www.78wd.com/wget-proxy/#comments</comments>
		<pubDate>Mon, 23 May 2011 08:12:24 +0000</pubDate>
		<dc:creator>pangel</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[wget]]></category>
		<category><![CDATA[wget使用代理]]></category>

		<guid isPermaLink="false">http://www.78wd.com/?p=866</guid>
		<description><![CDATA[最近用wget抓一个e文站的时候中断后不能继续，后来才发现是目标站服务器屏蔽了我的服务器的ip地址，应该是抓的太狠被发现了。。。 之前一直用的curl之类php函数，最近才用的exec()调用服务器系统命令wget来抓，发现效率绝对高啊，可惜副作用就是抓的频率太快，（一秒钟大约5-10篇）会遭到有防范的目标服务器屏蔽，解决办法就是用http代理了。 wget用http代理的方法很简单，但是效率会大打折扣。 要让wget使用代理进行下载只需要在执行wget的用户目录内添加.wgetrc文件，然后在改文件内添加http_proxy=ip:port即可 例如执行wget的用户是root，那么在root目录里添加一个文件.wgetrc内容是 http_proxy=8.8.8.8:80 8.8.8.8是代理服务器的ip地址，80是端口 这样再执行wget的时候就会通过8.8.8.8:80的代理服务器来进行下载了。]]></description>
			<content:encoded><![CDATA[<p>最近用wget抓一个e文站的时候中断后不能继续，后来才发现是目标站服务器屏蔽了我的服务器的ip地址，应该是抓的太狠被发现了。。。<br />
之前一直用的curl之类php函数，最近才用的exec()调用服务器系统命令wget来抓，发现效率绝对高啊，可惜副作用就是抓的频率太快，（一秒钟大约5-10篇）会遭到有防范的目标服务器屏蔽，解决办法就是用http代理了。<br />
wget用http代理的方法很简单，但是效率会大打折扣。<br />
要让wget使用代理进行下载只需要在执行wget的用户目录内添加.wgetrc文件，然后在改文件内添加http_proxy=ip:port即可<br />
例如执行wget的用户是root，那么在root目录里添加一个文件.wgetrc内容是<br />
http_proxy=8.8.8.8:80<br />
8.8.8.8是代理服务器的ip地址，80是端口<br />
这样再执行wget的时候就会通过8.8.8.8:80的代理服务器来进行下载了。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.78wd.com/wget-proxy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>linux下用Imagemagick批量处理图片</title>
		<link>http://www.78wd.com/imagemagick-debian-img/</link>
		<comments>http://www.78wd.com/imagemagick-debian-img/#comments</comments>
		<pubDate>Wed, 06 Apr 2011 07:30:38 +0000</pubDate>
		<dc:creator>pangel</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[imageMagick]]></category>
		<category><![CDATA[imageMagick批量处理图片]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[linux批量处理图片]]></category>
		<category><![CDATA[批量压缩图片]]></category>

		<guid isPermaLink="false">http://www.78wd.com/?p=855</guid>
		<description><![CDATA[因为采集的时候为了加快速度所以未对采集的图片做缩小尺寸和压水印的操作，最后导致图片占用了服务器上有90GB的空间，为了减小图片所占的空间顺便加上水印便用了Imagemagick命令行工具在linux下对所有的图片进行了尺寸缩小以及添加水印，经过实践发现这个方法的效率远远超出在采集的时候对图片进行操作，以下是操作笔记以备日后查阅。 首先安装Imagemagick 我的是debian系统 #Debian安装imagemagick apt-get install imageMagick -y #这里可能很多同学会发现系统会提示未找到安装包，可以先执行 apt-get update &#38;&#38; apt-get -f upgrade #再执行 apt-get install imageMagick -y #如果还是提示未找到安装包之类的就执行 aptitude install imagemagick 如果是centos的系统当然就得执行 yum install imageMagick -y 安装完ImageMagick 编写批量处理图片的脚本 #!/bin/bash for each in /home/www/website/imgfloder/*{.jpg,.gif,.png} do s=`du -k $each &#8230; <a href="http://www.78wd.com/imagemagick-debian-img/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>因为采集的时候为了加快速度所以未对采集的图片做缩小尺寸和压水印的操作，最后导致图片占用了服务器上有90GB的空间，为了减小图片所占的空间顺便加上水印便用了Imagemagick命令行工具在linux下对所有的图片进行了尺寸缩小以及添加水印，经过实践发现这个方法的效率远远超出在采集的时候对图片进行操作，以下是操作笔记以备日后查阅。<br />
首先安装Imagemagick<br />
我的是debian系统</p>
<pre class="brush: bash;">
#Debian安装imagemagick
apt-get install imageMagick -y
#这里可能很多同学会发现系统会提示未找到安装包，可以先执行
apt-get update &amp;&amp; apt-get -f upgrade
#再执行
apt-get install imageMagick -y
#如果还是提示未找到安装包之类的就执行
aptitude install imagemagick
</pre>
<p>如果是centos的系统当然就得执行</p>
<pre class="brush: bash;">
yum install imageMagick -y
</pre>
<p>安装完ImageMagick<br />
编写批量处理图片的脚本</p>
<pre class="brush: bash;">
#!/bin/bash
for each in /home/www/website/imgfloder/*{.jpg,.gif,.png}
do
s=`du -k $each | awk '{print $1}'`
if [ $s -gt 10 ]; then
    convert -quality 80 -resize '750x540&gt;' $each $each
    composite -gravity southeast -dissolve 80 /home/www/website/watermark.png $each $each 2&gt;/dev/null
    echo &quot;$each: done!&quot;
fi
done
exit 0
</pre>
<p>说明：<br />
以上脚本处理的时候处理后的图片会覆盖原始图片<br />
/home/www/website/imgfloder/，这是待处理图片的目录，即，将对该目录内的所有图片处理<br />
if [ $s -gt 10 ]，表示不对大小小于10kb的图片进行处理<br />
convert -quality 80 -resize &#8217;750&#215;540>&#8217;，表示处理后的图片质量为原图片的80%，并对尺寸大于750*540的图片缩小至此范围内，而对小于此尺寸的不做处理。<br />
-gravity southeast，这个决定图片水印的位置south就是南east就是东也就是图片的右下角。<br />
-dissolve 80，这个是设置水印的透明度的80代表透明度，这个数值越小越透明。</p>
<p>最后将脚本存储后执行就可以了，例如将脚本存为crimg.sh，执行sh ./crimg.sh即可。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.78wd.com/imagemagick-debian-img/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>eAccelerator-0.9.6安装笔记</title>
		<link>http://www.78wd.com/eaccelerator096/</link>
		<comments>http://www.78wd.com/eaccelerator096/#comments</comments>
		<pubDate>Wed, 10 Feb 2010 02:30:44 +0000</pubDate>
		<dc:creator>pangel</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[eAccelerator]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://www.78wd.com/?p=409</guid>
		<description><![CDATA[cd tmp wget http://bart.eaccelerator.net/source/0.9.6/eaccelerator-0.9.6.tar.bz2 tar -jxvf eaccelerator-0.9.6.tar.bz2 cd eaccelerator-0.9.6 /usr/bin/phpize ./configure --enable-eaccelerator=shared --with-php-config=/usr/bin/php-config make make install （注：以上文中“phpize”以及“php-config”的路径如果不知道可以使用find命令事先查找一下。） 安装完毕编辑php.ini将其安装为 PHP extension 模式 在php.ini中添加如下： extension=&#34;eaccelerator.so&#34; eaccelerator.shm_size=&#34;16&#34; eaccelerator.cache_dir=&#34;/tmp/eaccelerator&#34; eaccelerator.enable=&#34;1&#34; eaccelerator.optimizer=&#34;1&#34; eaccelerator.check_mtime=&#34;1&#34; eaccelerator.debug=&#34;0&#34; eaccelerator.log_file = &#34;/var/log/httpd/eaccelerator_log&#34; eaccelerator.filter=&#34;&#34; eaccelerator.shm_max=&#34;0&#34; eaccelerator.shm_ttl=&#34;0&#34; eaccelerator.shm_prune_period=&#34;0&#34; eaccelerator.shm_only=&#34;0&#34; eaccelerator.compress=&#34;1&#34; eaccelerator.compress_level=&#34;9&#34; 最后创建/tmp/eaccelerator目录 &#8230; <a href="http://www.78wd.com/eaccelerator096/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><script type="text/javascript"><!--
google_ad_client = "pub-1742180668176433";
/* 468x60, 创建于 10-3-25 */
google_ad_slot = "2888733453";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
<pre class="brush: bash;">
cd tmp
wget http://bart.eaccelerator.net/source/0.9.6/eaccelerator-0.9.6.tar.bz2
tar -jxvf eaccelerator-0.9.6.tar.bz2
cd eaccelerator-0.9.6
/usr/bin/phpize
./configure --enable-eaccelerator=shared --with-php-config=/usr/bin/php-config
make
make install
</pre>
<p>（注：以上文中“phpize”以及“php-config”的路径如果不知道可以使用find命令事先查找一下。）<br />
安装完毕编辑php.ini将其安装为 PHP extension 模式<br />
在php.ini中添加如下：</p>
<pre class="brush: php;">
extension=&quot;eaccelerator.so&quot;
eaccelerator.shm_size=&quot;16&quot;
eaccelerator.cache_dir=&quot;/tmp/eaccelerator&quot;
eaccelerator.enable=&quot;1&quot;
eaccelerator.optimizer=&quot;1&quot;
eaccelerator.check_mtime=&quot;1&quot;
eaccelerator.debug=&quot;0&quot;
eaccelerator.log_file = &quot;/var/log/httpd/eaccelerator_log&quot;
eaccelerator.filter=&quot;&quot;
eaccelerator.shm_max=&quot;0&quot;
eaccelerator.shm_ttl=&quot;0&quot;
eaccelerator.shm_prune_period=&quot;0&quot;
eaccelerator.shm_only=&quot;0&quot;
eaccelerator.compress=&quot;1&quot;
eaccelerator.compress_level=&quot;9&quot;
</pre>
<p>最后创建/tmp/eaccelerator目录</p>
<pre class="brush: bash;">
mkdir /tmp/eaccelerator
chmod 0777 /tmp/eaccelerator
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.78wd.com/eaccelerator096/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zeus+php+Zend for Linux安装指南</title>
		<link>http://www.78wd.com/zeusphpzend-optimizer-for-linux%e5%ae%89%e8%a3%85%e6%8c%87%e5%8d%97/</link>
		<comments>http://www.78wd.com/zeusphpzend-optimizer-for-linux%e5%ae%89%e8%a3%85%e6%8c%87%e5%8d%97/#comments</comments>
		<pubDate>Thu, 13 Oct 2005 13:46:10 +0000</pubDate>
		<dc:creator>pangel</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[zend]]></category>
		<category><![CDATA[zeus]]></category>

		<guid isPermaLink="false">http://www.78wd.com/zeusphpzend-optimizer-for-linux%e5%ae%89%e8%a3%85%e6%8c%87%e5%8d%97/</guid>
		<description><![CDATA[Zeus+php+Zend Optimizer for Linux安装指南 本文是Crossday第一篇unix作文，基于linux而写出。zeus是一个著名的web服务器软件，其效能远在apache1/2之上，是整台服务器用户跑论坛的首选，对内存小于1G而流量非常大的用户，换用zeus会比apache多获得一倍的负载能力。 本文提供方法在redhat linux 7.3及以上各版本，PHP 4.3.0及以上版本，Zend Optimizer 2.1.0验证通过，所配置参数为适应每15分钟在线1000人以上的，使用Discuz! 2.0/3.0的中大型论坛所优化 进入一个目录 如 cd /usr/local/src 找一个zeus 4.2 r3 for linux的破解版本下载 wget http://download.discuz.net/zeus_linux.tgz tar xvzf zeus_linux.tgz cd Zeus.Web.Server.v4.2r3.Linux.x86/ tar xvzf Zeus_42r3_Linux-glibc2.1.tgz cd Zeus_42r3_Linux-glibc2.1/ 开始安装 ./zinstall 按CTRL+C 打入accept Where should the &#8230; <a href="http://www.78wd.com/zeusphpzend-optimizer-for-linux%e5%ae%89%e8%a3%85%e6%8c%87%e5%8d%97/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Zeus+php+Zend Optimizer for Linux安装指南</p>
<p>本文是Crossday第一篇unix作文，基于linux而写出。zeus是一个著名的web服务器软件，其效能远在apache1/2之上，是整台服务器用户跑论坛的首选，对内存小于1G而流量非常大的用户，换用zeus会比apache多获得一倍的负载能力。<br />
本文提供方法在redhat linux 7.3及以上各版本，PHP 4.3.0及以上版本，Zend Optimizer 2.1.0验证通过，所配置参数为适应每15分钟在线1000人以上的，使用Discuz! 2.0/3.0的中大型论坛所优化</p>
<p>进入一个目录 如<br />
cd /usr/local/src</p>
<p>找一个zeus 4.2 r3 for linux的破解版本下载<br />
wget http://download.discuz.net/zeus_linux.tgz</p>
<p>tar xvzf zeus_linux.tgz<br />
cd Zeus.Web.Server.v4.2r3.Linux.x86/<br />
tar xvzf Zeus_42r3_Linux-glibc2.1.tgz<br />
cd Zeus_42r3_Linux-glibc2.1/</p>
<p>开始安装<br />
./zinstall</p>
<p>按CTRL+C 打入accept</p>
<p>Where should the product be installed? [/usr/local/zeus]: 回车</p>
<p>Installation options:</p>
<p>1. Full install of both admin server &amp; web server<br />
2. Stand-alone install of admin server<br />
3. Clustered install of web server<br />
H. Help</p>
<p>Choose installation option [1]: 回车</p>
<p>Enter the key filename, or leave blank for unlicensed mode: /usr/local/src/Zeus.Web.Server.v4.2r3.Linux.x86/license.key （输入密匙位置）</p>
<p>Please choose a password for the admin server: ****** （输入管理员密码）<br />
Re-enter: ****** （重新输入密码）</p>
<p>Would you like Zeus to start at boot time? Y/N [Y]: （回车）</p>
<p>以上是安装过程 很容易的就装好了 如果有apache在跑 先把他停掉 避免80端口冲突<br />
/usr/local/apache/bin/apachectl stop</p>
<p>若安装中提示libdb.so.2不存在 先进入压缩包的libdb.so.2目录中<br />
rpm -ivh db1-1.85-8.i386.rpm</p>
<p>安装php<br />
cd /usr/local/src<br />
从小日本网站下载php<br />
wget http://cn2.php.net/get/php-4.3.4.tar.gz/from/jp2.php.net/mirror<br />
tar xvzf php-4.3.4.tar.gz<br />
cd php-4.3.4/<br />
./configure &#8211;prefix=/usr/local/php &#8211;enable-fastcgi &#8211;enable-force-cgi-redirect &#8211;with-config-file-path=/etc &#8211;with-zlib &#8211;with-mysql &#8211;with-xml<br />
make<br />
make install<br />
cp php.ini-dist /etc/php.ini</p>
<p>安装Zend Optimizer<br />
cd /usr/local/src<br />
wget http://download.discuz.net/ZendOptimizer-2%5B1%5D.1.0b-Linux_glibc21-i386.tar.gz<br />
tar xvzf ZendOptimizer-2%5B1%5D.1.0b-Linux_glibc21-i386.tar.gz<br />
cd ZendOptimizer-2.1.0b-Linux_glibc21-i386/<br />
./install.sh<br />
一阵回车 问Confirm the location of your php.ini file的时候打入/etc<br />
问Are you using Apache web server?的时候选No</p>
<p>设置Zeus<br />
访问 http://your.com:9090 （你的域名地址或IP地址）<br />
用户名 admin 密码：刚才设定的密码</p>
<p>进入Zeus管理控制台，点Create a Virtual Server 把相关的六个选项填好 不多说<br />
提交后出现刚才加入的virtual server，点FastCGI</p>
<p>Enabling Support for FastCGI Programs 选 Enabled<br />
Restricting FastCGI locations 选 Enable FastCGI programs to be located anywhere<br />
Configuring Directories for FastCGI Local Responders 不用写他 因为我们用remote方式连接fastcgi</p>
<p>Configuring FastCGI Remote Responders 中填入以下配置<br />
Directory name : /usr/local/php/bin/php<br />
Location: Machine name: localhost<br />
Port: 8002<br />
Additional methods supported?:None</p>
<p>其他都不用管，点Apply changes</p>
<p>点左边Url Handling下面的Handlers<br />
File Extension : php<br />
Specify the path and filename of the handler, relative to the document root : /usr/local/php/bin/php<br />
点Apply changes</p>
<p>点左边Url Handling下面的Directory Requests<br />
Index Files中加入一个 index.php 和一分隔逗号<br />
Directory Listing选Disabled<br />
点Apply changes</p>
<p>再点上面的 This configuration has been modified. Click here for details or to make it take effect.<br />
出来的页面点Commit</p>
<p>配置php-fastcgi<br />
cd /usr/local/zeus/rc.d<br />
建立一个S05php的文件 内容为</p>
<blockquote><p>#!/bin/sh</p>
<p># Script to start and stop the persistent PHP runner for FastCGI.<br />
# Please check paths before use.</p>
<p># FastCGI PHP binary<br />
FPHPBIN=/usr/local/php/bin/php</p>
<p># Location to place semaphore<br />
SEMFILE=/tmp/php.pid<br />
PHP_FCGI_CHILDREN=200<br />
PHP_FCGI_MAX_REQUESTS=1000<br />
export PHP_FCGI_CHILDREN<br />
export PHP_FCGI_MAX_REQUESTS</p>
<p># This is Linux &#8211; use /proc to increase the local (ephemeral) port range<br />
#echo 1024 65000 &gt; /proc/sys/net/ipv4/ip_local_port_range</p>
<p>if [ -z "$ZEUSHOME" ]<br />
then<br />
cd `dirname $0`/..<br />
ZEUSHOME=`pwd`<br />
export ZEUSHOME<br />
fi</p>
<p>case &#8220;$1&#8243; in<br />
&#8216;start&#8217;)</p>
<p>if [ -e $SEMFILE ]<br />
then<br />
echo FastCGI PHP error: already running.Restart FastCGI PHP now<br />
kill `cat $SEMFILE`<br />
sleep 5<br />
fi</p>
<p>if [ ! -x $FPHPBIN ]<br />
then<br />
echo FastCGI PHP error: please check that $FPHPBIN is executable and exists.<br />
exit 1<br />
fi</p>
<p>echo Starting FastCGI PHP.<br />
$ZEUSHOME/web/bin/fcgirunner &#8211;user=99 &#8211;group=99 &#8211;pidfile=$SEMFILE 8002 $FPHPBIN<br />
;;</p>
<p>&#8216;stop&#8217;)<br />
if [ -e $SEMFILE ]<br />
then<br />
echo Stopping FastCGI PHP.<br />
kill `cat $SEMFILE`<br />
rm $SEMFILE<br />
exit 0<br />
fi<br />
;;<br />
&#8216;restart&#8217;)<br />
if [ -e $SEMFILE ]<br />
then<br />
echo Stopping FastCGI PHP.<br />
kill `cat $SEMFILE`<br />
sleep 5<br />
fi<br />
echo Starting FastCGI PHP.<br />
$ZEUSHOME/web/bin/fcgirunner &#8211;user=99 &#8211;group=99 &#8211;pidfile=$SEMFILE 8002 $FPHPBIN<br />
;;<br />
*)<br />
echo &#8220;usage: $0 {start|stop|restart}&#8221;<br />
;;</p>
<p>esac<br />
exit 1</p></blockquote>
<p>注意&#8211;user=65534 &#8211;group=65534 为php进程运行的用户和组，一般设置为nobody用户和组FreeBSD是65534/65534，Linux是99/99</p>
<p>如不会建文件 可看下面范例<br />
vi S05php<br />
（打一个小写的i）<br />
（把上面的内容复制到剪贴板 然后按SHIFT+INSERT粘贴过去）<br />
（按ESC）<br />
（输入 :wq 然后回车）</p>
<p>改写属性使其可执行<br />
chmod 755 S05php</p>
<p>回到Zeus的9090端口管理界面 把刚才设置的虚拟主机Start</p>
<p>启动Zeus的命令为 /usr/local/zeus/start-zeus<br />
停止Zeus的命令为 /usr/local/zeus/stop-zeus<br />
重启Zeus的命令为 /usr/local/zeus/restart-zeus</p>
<p>编辑/etc/rc.local<br />
加入一行<br />
/usr/local/zeus/start-zeus<br />
使得Zeus在开机时自动运行</p>
<p>如果现在无法访问web，多半是因为没有把apache停掉造成的，注意要将启动时候的apache自启动给去掉 否则zeus无法绑定到80端口进而无法访问 如没有上述问题 安装后仍然无法访问 可能为web服务器没有正确安装 例如第一次安装后中断退出 第二次又以升级方式安装 等等 这样的情况建议先把zeus停掉 然后将其目录rm -fr删除 重新安装一次即可正常 个人以为这是zeus安装脚本设计的不合理所致</p>
]]></content:encoded>
			<wfw:commentRss>http://www.78wd.com/zeusphpzend-optimizer-for-linux%e5%ae%89%e8%a3%85%e6%8c%87%e5%8d%97/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux的配置与优化</title>
		<link>http://www.78wd.com/linux%e7%9a%84%e9%85%8d%e7%bd%ae%e4%b8%8e%e4%bc%98%e5%8c%96/</link>
		<comments>http://www.78wd.com/linux%e7%9a%84%e9%85%8d%e7%bd%ae%e4%b8%8e%e4%bc%98%e5%8c%96/#comments</comments>
		<pubDate>Thu, 13 Oct 2005 13:41:21 +0000</pubDate>
		<dc:creator>pangel</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[优化]]></category>

		<guid isPermaLink="false">http://www.78wd.com/linux%e7%9a%84%e9%85%8d%e7%bd%ae%e4%b8%8e%e4%bc%98%e5%8c%96/</guid>
		<description><![CDATA[Linux作为一个免费的类似UNIX的操作系统，正日益受到人们的重视。本人作为一名Linux爱好者，出于学习，比较了各种不同的Linux发行套件，安装过各种Linux的发行套件，但是每一次安装完成，大量的配置与优化工作花费笔者许多时间，并且非常容易遗漏一些细节。本文以安装与使用RedHat 6.1为例，参考了/usr/doc/HOWTO/Config-HOWTO文档，结合自己的工作经验，谈一些自己的做法。以下的做法基本上适合各种liunx发行套件。 一、关于硬盘分区 关于安装Linux如何建立硬盘分区、交换分区等问题，已经超出本文范围，但是我的经验是安装Linux时一定要建立单独的分区，用于存储用户的私人数据，同时可以用于备份系统的配置文件（如像域名服务器，Samba的配置文件等），便于以后配置。 二、编辑/etc/inittab文件 大部分Linux的发行套件都建立六个虚拟控制台，实际上三个已经足够，并且可以节省可贵的内存空间。编辑/etc/inittab文件，在下面三行的前面加上#。 4:2345:respawn:/sbin/mingetty tty4 5:2345:respawn:/sbin/mingetty tty5 6:2345:respawn:/sbin/mingetty tty6 然后执行init q，使系统重新读取/etc/inittab文件，关闭tty4、tty5、tty6虚拟控制台。如果不考虑系统的安全，你可以利用第四个虚拟控制台来查看各种系统信息，编辑/etc/syslog.conf文件，在最后一行加入： *.* /dev/tty4 最后再执行killall -HUP syslog。 三、建立或者编辑/etc/inputrc、/etc/profile、/etc/bashrc文件 虽然最近几年个人计算机的潮流已经从命令行方式转向图形方式，采用鼠标操作，但是shell在Linux中依然有很强的生命力。shell有好几种，主要有bash、ksh、tcsh、zsh、ash， 用得最多的是bash。只要编辑/etc/inputrc文件，设置INPUTRC的环境变量，利用Tab键的命令补全功能，就可以实现类似于MSDOS的DOSKEY的功能。这样对文件与目录的各种操作，也一样方便与快捷。(附/etc/inputrc文件) __________________________________________________________________ set bell-style none # don&#8217;t beep set meta-flag on # allow 8-bit input set convert-meta off # &#8230; <a href="http://www.78wd.com/linux%e7%9a%84%e9%85%8d%e7%bd%ae%e4%b8%8e%e4%bc%98%e5%8c%96/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Linux作为一个免费的类似UNIX的操作系统，正日益受到人们的重视。本人作为一名Linux爱好者，出于学习，比较了各种不同的Linux发行套件，安装过各种Linux的发行套件，但是每一次安装完成，大量的配置与优化工作花费笔者许多时间，并且非常容易遗漏一些细节。本文以安装与使用RedHat 6.1为例，参考了/usr/doc/HOWTO/Config-HOWTO文档，结合自己的工作经验，谈一些自己的做法。以下的做法基本上适合各种liunx发行套件。</p>
<p>一、关于硬盘分区<br />
关于安装Linux如何建立硬盘分区、交换分区等问题，已经超出本文范围，但是我的经验是安装Linux时一定要建立单独的分区，用于存储用户的私人数据，同时可以用于备份系统的配置文件（如像域名服务器，Samba的配置文件等），便于以后配置。</p>
<p>二、编辑/etc/inittab文件<br />
大部分Linux的发行套件都建立六个虚拟控制台，实际上三个已经足够，并且可以节省可贵的内存空间。编辑/etc/inittab文件，在下面三行的前面加上#。<br />
4:2345:respawn:/sbin/mingetty tty4<br />
5:2345:respawn:/sbin/mingetty tty5<br />
6:2345:respawn:/sbin/mingetty tty6<br />
然后执行init q，使系统重新读取/etc/inittab文件，关闭tty4、tty5、tty6虚拟控制台。如果不考虑系统的安全，你可以利用第四个虚拟控制台来查看各种系统信息，编辑/etc/syslog.conf文件，在最后一行加入：<br />
*.* /dev/tty4<br />
最后再执行killall -HUP syslog。</p>
<p>三、建立或者编辑/etc/inputrc、/etc/profile、/etc/bashrc文件<br />
虽然最近几年个人计算机的潮流已经从命令行方式转向图形方式，采用鼠标操作，但是shell在Linux中依然有很强的生命力。shell有好几种，主要有bash、ksh、tcsh、zsh、ash， 用得最多的是bash。只要编辑/etc/inputrc文件，设置INPUTRC的环境变量，利用Tab键的命令补全功能，就可以实现类似于MSDOS的DOSKEY的功能。这样对文件与目录的各种操作，也一样方便与快捷。(附/etc/inputrc文件)<br />
__________________________________________________________________<br />
set bell-style none # don&#8217;t beep<br />
set meta-flag on # allow 8-bit input<br />
set convert-meta off # don&#8217;t strip 8-bit characters<br />
set output-meta on # display 8-bit characters correctly<br />
set horizontal-scroll-mode On # scroll long command lines<br />
set show-all-if-ambiguous On # after TAB is pressed</p>
<p>&#8220;\e[1~": beginning-of-line # home<br />
"\e[2~": insert-last-argument # insert<br />
"\e[3~": delete-char # delete<br />
"\e[4~": end-of-line # end<br />
"\e[5~": backward-kill-word # page up<br />
"\e[6~": kill-word # page down</p>
<p># define F7 F8 like msdos doskey<br />
"\e[18~": history-search-forward # F7<br />
"\e[19~": history-search-backward # F8<br />
__________________________________________________________________</p>
<p>编辑/etc/profile文件，在其尾部插入下面内容：<br />
_________________________________________________<br />
# add by zws<br />
# customize less<br />
#LESS='-M-Q-r'<br />
PS1="[\u@\h \w]\\$ &#8221;<br />
INPUTRC=/etc/inputrc<br />
LESS=&#8217;-M-r&#8217; # -r 为了ls | less 支持彩色。<br />
LESSEDIT=&#8221;%E ?lt+%lt. %f&#8221;<br />
LESSOPEN=&#8221;| lesspipe.sh %s&#8221;<br />
LESSCHARSET=latin1<br />
PAGER=less<br />
export LESS LESSEDIT LESSOPEN LESSCHARSET INPUTRC<br />
_________________________________________________</p>
<p>建立/usr/bin/lesspipe.sh文件，内容如下：<br />
__________________________________________________________________________<br />
#!/bin/sh<br />
# This is a preprocessor for &#8216;less&#8217;. It is used when this environment<br />
# variable is set: LESSOPEN=&#8221;|lesspipe.sh %s&#8221;<br />
lesspipe() {<br />
case &#8220;$1&#8243; in<br />
*.tar.bz2) bzip2 -cd $1 $1 2&gt;/dev/null | tar tvvf &#8211; ;;<br />
*.tar) tar tf $1 2&gt;/dev/null ;; # View contents of .tar and .tgz files<br />
*.tgz|*.tar.gz|*.tar.Z|*.tar.z) tar ztf $1 2&gt;/dev/null ;;<br />
*.Z|*.z|*.gz) gzip -dc $1 2&gt;/dev/null ;; # View compressed files correctly<br />
*.zip) unzip -l $1 2&gt;/dev/null ;; # View archives<br />
*.arj) unarj l $1 2&gt;/dev/null ;;<br />
*.rpm) rpm -qpil $1 2&gt;/dev/null ;;<br />
*.cpio) cpio &#8211;list -F $1 2&gt;/dev/null ;;<br />
*.bz2) bzip2 -dc $1 2&gt;/dev/null ;; # View compressed files correctly<br />
*.1|*.2|*.3|*.4|*.5|*.6|*.7|*.8|*.9|*.n|*.l|*.man) FILE=`file -L $1`<br />
FILE=`echo $FILE | cut -d &#8216; &#8216; -f 2`<br />
if [ "$FILE" = "troff" ]; then<br />
groff -s -p -t -e -Tascii -mandoc $1<br />
fi ;;<br />
*) file $1 | grep text &gt; /dev/null ;<br />
if [ $? = 1 ] ; then # it&#8217;s not some kind of text<br />
strings $1<br />
fi ;;<br />
esac<br />
}<br />
lesspipe $1<br />
_________________________________________________________________这样就可以使用less查看以上文件格式的信息与内容。<br />
注意要利用chmod 755 /usr/bin/lesspipe.sh命令将此文件设置为可执行!<br />
/etc/bashrc文件的例子：<br />
____________________________________________<br />
# /etc/bashrc</p>
<p># System wide functions and aliases<br />
# Environment stuff goes in /etc/profile</p>
<p># For some unknown reason bash refuses to inherit<br />
# PS1 in some circumstances that I can&#8217;t figure out.<br />
# Putting PS1 here ensures that it gets loaded every time.<br />
# PS1=&#8221;[\u@\h \w]\\$ &#8221;</p>
<p>eval `dircolors -b`<br />
alias ls=&#8217;ls &#8211;color=yes -F -N&#8217; # ls 支持彩色<br />
alias l=&#8217;ls &#8211;color=yes -l -F -N&#8217; # l<br />
alias cp=&#8217;cp -i&#8217;<br />
alias mv=&#8217;mv -i&#8217;<br />
alias rm=&#8217;rm -i&#8217;<br />
alias df=&#8217;df -h&#8217;<br />
alias ln=&#8217;ln -i&#8217;<br />
lrpm() # list information on an .rpm file<br />
{<br />
if [ $# != 0 ]; then rpm -qilf `which $1` | less; fi<br />
}<br />
lsrpm() # list information on an .rpm file<br />
{<br />
if [ $# != 0 ]; then rpm -qif `which $1` | less; fi<br />
}<br />
set -o noclobber # 避免覆盖与重写文件<br />
____________________________________________</p>
<p>四、编辑/etc/rc.local文件<br />
如果需要定制自己的登录信息，注意要修改/etc/rc.d/rc.local文件，因为每次执行/etc/rc.d/rc.local文件，都需要修改/etc/issue与/etc/issue.net文件，可以注解掉这些命令，编辑定制自己的/etc/issue文件，加快Linux引导过程，并且加入以下内容：<br />
echo &#8220;base=0xd8000000 size=0&#215;800000 type=write-combining&#8221; &gt;&gt; /proc/mtrr<br />
# Enable NumLock<br />
for tty in /dev/tty[1-3]; do<br />
setleds -D +num &lt; $tty<br />
done<br />
说明：关于第一行命令请看/usr/src/linux/Documentation/mtrr.txt文件。</p>
<p>五、定制vim的环境<br />
在Linux环境中，有许多编辑器，主要有emacs、vim、joe等，对于从没有使用过UNIX或者Linux的人，我的建议是最好找几本有关的参考书，先了解这些编辑器的使用方法，这样安装好Linux后，在编辑与查看一些配置文件时，不至于茫然不知所措。特别是vi，一开始难以掌握，最好开始能够得到高手的指点，一旦上手，简直就像驾驶一辆高速奔驰的赛车，初学者可以到ftp://ftp.cs.pdx.edu/pub/elvis或者http://www.vim.org下载相应的版本，它提供支持MSDOS、Windows 98等操作系统的版本，解压后就可以在自己熟悉的环境学习与使用vi。<br />
以下是/usr/share/vim/vimrc的例子：<br />
___________________________________________________________<br />
&#8220;&#8221; (for Chinese)<br />
&#8221; Set file encoding format as &#8216;prc&#8217; for Simplified Chinese<br />
&#8221; Valid values for &#8216;set fe=&#8217; is ansi, japan, korea, prc, taiwan<br />
&#8221; We set fe to prc for default, if you need single-byte editing,<br />
&#8221; just type &#8216;:set fe=ansi&#8217; will do the work.</p>
<p>set fe=prc</p>
<p>&#8220;&#8221; (for Chinese)<br />
&#8220;&#8221; Set ruler on, you must set this to ensure<br />
&#8220;&#8221; the Chinese functionality of gvim<br />
set ru</p>
<p>&#8220;&#8221; For syntax color<br />
if &amp;term==&#8221;xterm&#8221;<br />
set term=rxvt<br />
set t_Co=8<br />
set t_Sb=^[4%dm<br />
set t_Sf=^[3%dm<br />
endif<br />
syntax on</p>
<p>&#8220;&#8221; Set visual bell and disable screen flash<br />
&#8221; :set vb t_vb=</p>
<p>set bs=2</p>
<p>&#8220;&#8221; Toggle on/off highlightsearch<br />
map &lt;F8&gt; :set hls!&lt;bar&gt;set hls?&lt;cr&gt;</p>
<p>&#8220;&#8221; Toggle on/off paste mode<br />
map &lt;F9&gt; :set paste!&lt;bar&gt;set paste?&lt;cr&gt;</p>
<p>&#8220;&#8221; You can toggle the syntax on/off with this command<br />
if has(&#8220;syntax_items&#8221;) | syntax off | else | syntax on | endif<br />
map &lt;F7&gt; :if has(&#8220;syntax_items&#8221;) &lt;Bar&gt; syntax off &lt;Bar&gt; else &lt;Bar&gt; syntax on &lt;Bar&gt; endif &lt;CR&gt;</p>
<p>&#8220;&#8221; Set non-compatible with vi<br />
set nocompatible</p>
<p>&#8220;&#8221; Set backup extension<br />
&#8221; set backup<br />
&#8221; set backupext=.bak</p>
<p>&#8221; add by zws<br />
set autoindent<br />
set ignorecase<br />
set shiftwidth=4<br />
set showmode<br />
set tabstop=4<br />
set nowrap<br />
&#8220;if &amp;t_Co &gt; 1<br />
&#8221; syntax on<br />
&#8220;endif<br />
&#8220;&#8221; Map for parenthesis matching<br />
map \ %<br />
&#8220;&#8221; search English word<br />
map &lt;F3&gt; &lt;Esc&gt;:set keywordprg=/usr/local/bin/cdict&lt;Esc&gt;K&lt;Esc&gt;:set keyword=man&lt;CR&gt;<br />
map &lt;F6&gt; &lt;Esc&gt;:set keywordprg=man&lt;Esc&gt;K<br />
&#8221; backspace<br />
map &lt;BS&gt; X<br />
___________________________________________________________</p>
<p>六、编辑/etc/mtools.conf文件<br />
一般情况下，都是在自己的机器安装Windows 98与Linux两种操作系统，通过安装mtools包，可以不用安装相应的文件系统，允许在MSDOS、Windows 98与Linux的文件系统之间，实现文件的读、写、移动、显示等操作。假设Windows 98安装在/dev/hda1、/dev/hda5分区下，修改/etc/mstools.conf文件，加入以下内容：<br />
drive c: file=&#8221;/dev/hda1&#8243;<br />
drive d: file=&#8221;/dev/hda5&#8243;<br />
这样就可以执行mdir c:等命令。</p>
<p>七、拷贝各种配置文件<br />
根据机器的用途，编辑拷贝相应的配置文件，例如：samba的配置文件/etc/smb.conf，域名服务器的配置文件，DHCP的配置文件/etc/dhcpd.conf等文件，在一般情况下，这些文件一旦配置好，很少发生改动，这样可以节约许多时间，注意原来的配置文件一定要做好备份，如果配置文件发生改动也要做好备份！</p>
<p>八、编译Linux内核<br />
一般各种Linux系统套件安装的内核，都适合大部分的机器，但缺点是大而全，模块中包含有许多自己根本不需要的模块。只有根据自己的要求及机器硬件配置，来配置内核才能达到最优配置。注意在编译内核前，一定要对自己机器有一个全面的了解，这样才能做到心中有数。</p>
<p>以下是编译内核的简要步骤：(以redhat6.1为例说明)<br />
1.进入/usr/src/linux，编辑Makefile文件，修改EXTRAVERSION= -xx，其中xx表示编译的版本号，最好用数字，并且大于原来的数值。<br />
2.根据自己机器的硬件配置，选择相应的选项来配置内核。<br />
#make menuconfig<br />
3.理顺各文件的依存关系，清理以前生成的目标文件及其他文件。<br />
#make clean ; make dep<br />
4.编译内核与安装，并且安装模块。<br />
#make bzImage<br />
#make modules; make modules_install<br />
5.安装内核。<br />
# cp arch/i386/boot/bzImage /boot/vmlinuz-y.y.yy-xx<br />
将内核复制到/boot目录下，其中y.y.yy表示Linux版本号，xx表示编译的版本号。<br />
# cp System.map /boot/System.map-y.y.yy-xx<br />
# cd /boot<br />
# ln -s System.map-y.y.yy-xx System.map<br />
6.编辑lilo的配置文件/etc/lilo.conf(略)。<br />
注意最好保留原来的内核，这样如果新建的内核引导Linux不成功，可以利用旧的内核引导Linux操作系统。<br />
7.测试新内核。<br />
引导完成后，注意检查/lib/modules/y.y.yy-xx目录下，是否建立modules.dep文件。如果文件存在，可以修改/etc/rc.d/rc.sysinit，将有关执行模块依赖的命令的内容注解掉，这样可以加快Linux的启动过程。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.78wd.com/linux%e7%9a%84%e9%85%8d%e7%bd%ae%e4%b8%8e%e4%bc%98%e5%8c%96/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux系统中网络配置详解</title>
		<link>http://www.78wd.com/linux%e7%b3%bb%e7%bb%9f%e4%b8%ad%e7%bd%91%e7%bb%9c%e9%85%8d%e7%bd%ae%e8%af%a6%e8%a7%a3/</link>
		<comments>http://www.78wd.com/linux%e7%b3%bb%e7%bb%9f%e4%b8%ad%e7%bd%91%e7%bb%9c%e9%85%8d%e7%bd%ae%e8%af%a6%e8%a7%a3/#comments</comments>
		<pubDate>Thu, 13 Oct 2005 13:33:56 +0000</pubDate>
		<dc:creator>pangel</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[系统配置]]></category>

		<guid isPermaLink="false">http://www.78wd.com/linux%e7%b3%bb%e7%bb%9f%e4%b8%ad%e7%bd%91%e7%bb%9c%e9%85%8d%e7%bd%ae%e8%af%a6%e8%a7%a3/</guid>
		<description><![CDATA[从linux诞生的那一天起,就注定了它的网络功能空前地强大.所以在linux系统中如何配置网络,使其高效,安全的工作就显得十分重要.下面我们就从网络设备的安装,网络服务的设置和网络安全性三个方面来介绍一下linux系统中网络的设置. 一.安装和配置网络设备 　　在安装linux时,如果你有网卡,安装程序将会提示你给出tcp/ip网络的配置参数,如本机的ip地址,缺省网关的ip地址,DNS的ip地址等等.根据这些配置参数,安装程序将会自动把网卡(linux系统首先要支持)驱动程序编译到内核中去.但是我们一定要了解加载网卡驱动程序的过程,那么在以后改变网卡,使用多个网卡的时候我们就会很容易的操作.网卡的驱动程序是作为模块加载到内核中去的,所有linux支持的网卡驱动程序都是存放在目录/lib/modules/(linux版本号)/net/ ,例如inter的82559系列10/100M自适应的引导网卡的驱动程序是eepro100.o,3COM的3C509 ISA网卡的驱动程序是3C509.o,DLINK的pci 10网卡的驱动程序是via-rhine.o,NE2000兼容性网卡的驱动程序是ne2k-pci.o和ne.o.在了解了这些基本的驱动程序之后,我们就可以通过修改模块配置文件来更换网卡或者增加网卡. 　　1. 修改/etc/conf.modules 文件 　　这个配置文件是加载模块的重要参数文件,大家先看一个范例文件 　　#/etc/conf.modules 　　alias eth0 eepro100 　　alias eth1 eepro100 　　这个文件是一个装有两块inter 82559系列网卡的linux系统中的conf.modules中的内容.alias命令表明以太口(如eth0)所具有的驱动程序的名称,alias eth0 eepro100说明在零号以太网口所要加载的驱动程序是eepro100.o.那么在使用命令 modprobe eth0的时候,系统将自动将eepro100.o加载到内核中.对于pci的网卡来说,由于系统会自动找到网卡的io地址和中断号,所以没有必要在conf.modules中使用选项options来指定网卡的io地址和中断号.但是对应于ISA网卡,则必须要在conf.modules中指定硬件的io地址或中断号, 如下所示,表明了一块NE的ISA网卡的conf.modules文件. 　　alias eth0 ne 　　options ne io=0&#215;300 irq=5 　　在修改完conf.modules文件之后,就可以使用命令来加载模块,例如要插入inter的第二块网卡: 　　#insmod /lib/modules/2.2.14/net/eepro100.o 　　这样就可以在以太口加载模块eepro100.o.同时,还可以使用命令来查看当前加载的模块信息: 　　[root@ice /etc]# lsmod 　　Module Size &#8230; <a href="http://www.78wd.com/linux%e7%b3%bb%e7%bb%9f%e4%b8%ad%e7%bd%91%e7%bb%9c%e9%85%8d%e7%bd%ae%e8%af%a6%e8%a7%a3/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>从linux诞生的那一天起,就注定了它的网络功能空前地强大.所以在linux系统中如何配置网络,使其高效,安全的工作就显得十分重要.下面我们就从网络设备的安装,网络服务的设置和网络安全性三个方面来介绍一下linux系统中网络的设置.</p>
<p>一.安装和配置网络设备</p>
<p>　　在安装linux时,如果你有网卡,安装程序将会提示你给出tcp/ip网络的配置参数,如本机的ip地址,缺省网关的ip地址,DNS的ip地址等等.根据这些配置参数,安装程序将会自动把网卡(linux系统首先要支持)驱动程序编译到内核中去.但是我们一定要了解加载网卡驱动程序的过程,那么在以后改变网卡,使用多个网卡的时候我们就会很容易的操作.网卡的驱动程序是作为模块加载到内核中去的,所有linux支持的网卡驱动程序都是存放在目录/lib/modules/(linux版本号)/net/ ,例如inter的82559系列10/100M自适应的引导网卡的驱动程序是eepro100.o,3COM的3C509 ISA网卡的驱动程序是3C509.o,DLINK的pci 10网卡的驱动程序是via-rhine.o,NE2000兼容性网卡的驱动程序是ne2k-pci.o和ne.o.在了解了这些基本的驱动程序之后,我们就可以通过修改模块配置文件来更换网卡或者增加网卡.</p>
<p>　　1. 修改/etc/conf.modules 文件<br />
　　这个配置文件是加载模块的重要参数文件,大家先看一个范例文件<br />
　　#/etc/conf.modules<br />
　　alias eth0 eepro100<br />
　　alias eth1 eepro100<br />
　　这个文件是一个装有两块inter 82559系列网卡的linux系统中的conf.modules中的内容.alias命令表明以太口(如eth0)所具有的驱动程序的名称,alias eth0 eepro100说明在零号以太网口所要加载的驱动程序是eepro100.o.那么在使用命令 modprobe eth0的时候,系统将自动将eepro100.o加载到内核中.对于pci的网卡来说,由于系统会自动找到网卡的io地址和中断号,所以没有必要在conf.modules中使用选项options来指定网卡的io地址和中断号.但是对应于ISA网卡,则必须要在conf.modules中指定硬件的io地址或中断号, 如下所示,表明了一块NE的ISA网卡的conf.modules文件.<br />
　　alias eth0 ne<br />
　　options ne io=0&#215;300 irq=5<br />
　　在修改完conf.modules文件之后,就可以使用命令来加载模块,例如要插入inter的第二块网卡:<br />
　　#insmod /lib/modules/2.2.14/net/eepro100.o<br />
　　这样就可以在以太口加载模块eepro100.o.同时,还可以使用命令来查看当前加载的模块信息:<br />
　　[root@ice /etc]# lsmod<br />
　　Module Size Used by<br />
　　eepro100 15652 2 (autoclean)<br />
　　返回结果的含义是当前加载的模块是eepro100,大小是15652个字节,使用者两个,方式是自动清除.</p>
<p>　　2. 修改/etc/lilo.conf文件<br />
　　在一些比较新的linux版本中,由于操作系统自动检测所有相关的硬件,所以此时不必修改/etc/lilo.conf文件.但是对于ISA网卡和老的版本,为了在系统初始化中对新加的网卡进行初始化,可以修改lilo.conf文件.在/etc/lilo.conf文件中增加如下命令:<br />
　　append=&#8221;ether=5,0&#215;240,eth0 ether=7,0&#215;300,eth1&#8243;<br />
　　这条命令的含义是eth0的io地址是0&#215;240,中断是5,eth1的io地址是0&#215;300,中断是7.<br />
　　实际上,这条语句来自在系统引导影像文件时传递的参数,<br />
　　LILO: linux ether=5,0&#215;240,eth0 ether=7,0&#215;300,eth1<br />
　　这种方法也同样能够使linux系统配置好两个网卡.类似的,在使用三个以上网卡的时候,也可以依照同样的方法.<br />
　　在配置好网卡之后，就应该配置TCP/IP的参数，在一般情况下,在安装linux系统的同时就会提示你配置网络参数.但是之后如果我们想要修改网络设置，可以使用如下的命令：<br />
　　#ifconfig eth0 A.B.C.D netmask E.F.G.H<br />
　　A.B.C.D 是eth0的IP地址,E.F.G.H是网络掩码.<br />
　　其实,在linux系统中我们可以给一块网卡设置多个ip地址,例如下面的命令:<br />
　　#ifconfig eth0:1 202.112.11.218 netmask 255.255.255.192<br />
　　然后,使用命令#ifconfig -a 就可以看到所有的网络接口的界面:<br />
　　eth0 　　Link encap:Ethernet HWaddr 00:90:27:58:AF:1A<br />
　　　　　　 inet addr:202.112.13.204 Bcast:202.112.13.255 Mask:255.255.255.192<br />
　　　　　　 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1<br />
　　　　　　 RX packets:435510 errors:0 dropped:0 overruns:0 frame:2<br />
　　　　　　 TX packets:538988 errors:0 dropped:0 overruns:0 carrier:0<br />
　　　　　　 collisions:318683 txqueuelen:100<br />
　　　　　　 Interrupt:10 Base address:0xc000</p>
<p>　　eth0:1　 Link encap:Ethernet HWaddr 00:90:27:58:AF:1A<br />
　　　　　　 inet addr:202.112.11.218 Bcast:202.112.11.255 Mask:255.255.255.192<br />
　　　　　　 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1<br />
　　　　　　 Interrupt:10 Base address:0xc000</p>
<p>　　lo 　　　Link encap:Local Loopback<br />
　　　　　　 inet addr:127.0.0.1 Mask:255.0.0.0<br />
　　　　　　 UP LOOPBACK RUNNING MTU:3924 Metric:1<br />
　　　　　　 RX packets:2055 errors:0 dropped:0 overruns:0 frame:0<br />
　　　　　　 TX packets:2055 errors:0 dropped:0 overruns:0 carrier:0<br />
　　　　　　 collisions:0 txqueuelen:0<br />
　　我们看到网络接口有三个,eth0 , eth0:1,lo,eth0是真实的以太网络接口,eth0:1和eth0是同一块网卡,只不过绑定了另外的一个地址,lo是会送地址。eth0和eth0：1可以使用不同网段的ip地址，这在同一个物理网段却使用不同的网络地址的时候十分有用。<br />
　　另外,网卡有一种模式是混杂模式(prosimc),在这个模式下,网卡将会接收网络中所有的数据包,一些linux下的网络监听工具例如tcpdump,snort等等都是把网卡设置为混杂模式.<br />
　　ifconfig命令可以在本次运行的时间内改变网卡的ip地址，但是如果系统重新启动，linux仍然按照原来的默认的设置启动网络接口。这时候，可以使用netconfig或netconf命令来重新设置默认网络参数。netconfig 命令是重新配置基本的tcp/ip参数，参数包括是否配置为动态获得ip地址（dhcpd和bootp），网卡的ip地址，网络掩码，缺省网关和首选的域名服务器地址。netconf命令可以详细的配置所有网络的参数，分为客户端任务，服务器端任务和其他的配置三个部分，在客户端的配置中，主要包括基本主机的配置（主机名，有效域名，网络别名，对应相应网卡的ip地址，网络掩码，网络设备名，网络设备的内核驱动程序），DNS地址配置，缺省网关的地址配置，NIS地址配置，ipx接口配置，ppp/slip的配置等等。在服务器端配置中，主要包括NFS的配置，DNS的配置，ApacheWebServer配置，Samba的配置和Wu-ftpd的配置。在其他的配置选项中，一个是关于/etc/hosts文件中的主机配置，一个是关于/etc/networks文件中的网络配置信息，最后是关于使用linuxconf配置的信息。<br />
　　在linuxconf命令下，同样也可以配置网络信息，但是大家可以发现，linuxconf程序是调用netconf来进行网络配置的。<br />
　　另外，在/etc/sysconfig/network-scripts目录下存放着系统关于网络的配置文件，范例如下：</p>
<p>　　ifcfg-eth0* 　ifdown-post* 　ifup-aliases*　 ifup-ppp*<br />
　　ifcfg-eth1*　 ifdown-ppp* 　 ifup-ipx* 　　　ifup-routes*<br />
　　ifcfg-lo*　　 ifdown-sl* 　　ifup-plip* 　　 ifup-sl*<br />
　　ifdown@ 　　　ifup@ 　　　　 ifup-post* 　　 network-functions</p>
<p>　　ifcfg-eth0是以太口eth0的配置信息，它的内容如下：</p>
<p>　　DEVICE=&#8221;eth0&#8243;　　　　　　　　　　　　　 /*指明网络设备名称*/<br />
　　IPADDR=&#8221;202.112.13.204&#8243;　　　　　　　　 /*指明网络设备的ip地址*/<br />
　　NETMASK=&#8221;255.255.255.192&#8243;　　　　　　　 /*指明网络掩码*/<br />
　　NETWORK=202.112.13.192　　　　　　　　　/*指明网络地址*/<br />
　　BROADCAST=202.112.13.255 　　　　　　　 /*指明广播地址*/<br />
　　ONBOOT=&#8221;yes&#8221; 　　　　　　　　　　　　　 /*指明在系统启动时是否激活网卡*/<br />
　　BOOTPROTO=&#8221;none&#8221; 　　　　　　　　　　　 /*指明是否使用bootp协议*/<br />
　　<br />
　　所以，我们也可以修改这个文件来进行linux下网络参数的改变。</p>
<p>二 网络服务的配置:</p>
<p>　　在这一部分,我们并不是详细的介绍具体的网络服务器(DNS,FTP,WWW,SENDMAIL)的配置(那将是巨大的篇幅),而是介绍一下与linux网络服务的配置相关的文件.</p>
<p>1. LILO的配置文件<br />
　　在linux系统中,有一个系统引导程序,那就是lilo(linux loadin),利用lilo可以实现多操作系统的选择启动.它的配置文件是/etc/lilo.conf.在这个配置文件中,lilo的配置参数主要分为两个部分,一个是全局配置参数,包括设置启动设备等等.另一个是局部配置参数,包括每个引导影像文件的配置参数.在这里我就不详细介绍每个参数,特别的仅仅说明两个重要的参数&#8212;&#8212;&#8211;password和restricted选项,password选项为每个引导的影像文件加入口令保护.我们都知道,在linux系统中有一个运行模式是单用户模式,在这个模式下,用户是以超级用户的身份登录到linux系统中.人们可以通过在lilo引导的时候加入参数(linux single 或linux init 0)就可以不需要口令直接进入单用户模式的超级用户环境中,这将是十分危险的.所以在lilo.conf中增加了password的配置选项来为每个影像文件增加口令保护.你可以在全局模式中使用password选项(对所有影像文件都加入相同的口令),或者为每个单独的影像文件加入口令.这样一来,在每次系统启动时,都会要求用户输入口令.也许你觉得每次都要输入口令很麻烦,可以使用restricted选项,它可以使lilo仅仅在linux启动时输入了参数(例如 linux single)的时候才会检验密码.这两个选项可以极大的增加系统的安全性,建议在lilo.conf文件中设置它们.由于password在/etc/lilo.conf文件是以明文存放的,所以必须要将/etc/lilo.conf文件的属性改为仅仅root可读(0400).<br />
　　另外,在lilo的早期版本中,存在着引导扇区必须存放到前1024柱面的限制,在lilo的2.51版本中已经突破了这个限制,同时引导界面也变成了图形界面更加直观.最新版本的下载站点:<br />
　　ftp://166.111.136.3/pub/linux/lilo/lilo-2.51.tar.gz<br />
　　下载解压后,使用命令make install即可完成安装.<br />
　　注意: 物理安全才是最基本的安全,即使在lilo.conf中增加了口令保护,如果没有物理安全,恶意闯入者可以使用启动软盘启动linux系统.</p>
<p>2. 域名服务的配置文件<br />
　　(1)/etc/HOSTNAME 在这个文件中保存着linux系统的主机名和域名.范例文件</p>
<p>　　ice.xanet.edu.cn</p>
<p>　　这个文件表明了主机名ice,域名是xanet.edu.cn<br />
　　(2)/etc/hosts和/etc/networks文件 在域名服务系统中,有着主机表机制,/etc/hosts和/etc/networks就是主机表发展而来在/etc/hosts中存放着你不需要DNS系统查询而得的主机ip地址和主机名的对应,下面是一个范例文件:<br />
　　# ip 地址 主机名 别名<br />
　　127.0.0.1 　　　　　localhosts 　　　　　　　loopback<br />
　　202.117.1.13　　　　www.xjtu.edu.cn　　　　　www<br />
　　202.117.1.24 　　　 ftp.xjtu.edu.cn 　　　　 ftp</p>
<p>　　在/etc/networks 中,存放着网络ip地址和网络名称的一一对应.它的文件格式和/etc/hosts是类似的<br />
　　(3)/etc/resolv.conf 这个文件是DNS域名解析器的主要配置文件,它的格式十分简单,每一行由一个主关键字组成./etc/resolv.conf的关键字主要有:<br />
　　domain 　　指明缺省的本地域名,<br />
　　search 　　指明了一系列查找主机名的时候搜索的域名列表,<br />
　　nameserver 指明了在进行域名解析时域名服务器的ip地址.下面给出一个范例文件:</p>
<p>　　#/etc/resolv.conf<br />
　　domain 　　　xjtu.edu.cn<br />
　　search 　　　xjtu.edu.cn edu.cn<br />
　　nameserver 　202.117.0.20<br />
　　nameserver 　202.117.1.9</p>
<p>　　(4)/etc/host.conf 在系统中同时存在着DNS域名解析和/etc/hosts的主机表机制时,由文件/etc/host.conf来说明了解析器的查询顺序.范例文件如下:</p>
<p>　　#/etc/host.conf<br />
　　order hosts,bind 　　　　#解析器查询顺序是文件/etc/hosts,然后是DNS<br />
　　multi on 　　　　　　　　#允许主机拥有多个ip地址<br />
　　nospoof on 　　　　　　　#禁止ip地址欺骗</p>
<p>3. DHCP的配置文件<br />
　　/etc/dhcpd.conf是DHCPD的配置文件,我们可以通过在/etc/dhcpd.conf文件中的配置来实现在局域网中动态分配ip地址,一台linux主机设置为dhcpd服务器,通过鉴别网卡的MAC地址来动态的分配ip地址.范例文件如下:</p>
<p>　　option domain-name &#8220;chinapub.com&#8221;;<br />
　　use-host-decl-names off;<br />
　　subnet 210.27.48.0 netmask 255<br />
　　}</p>
<p>　　在这个文件中，最主要的是通过设置的硬件地址来鉴别局域网中的主机，并分配给它指定的ip地址，hardware ethernet 00:02:b3:11:f2:30指定要动态分配ip的主机得网卡的MAC地址，fixed-address 210.27.48.8指定分配其ip地址。filename &#8220;/tmp/image&#8221;是通过tftp服务，主机所要得到的影像文件，可以通过得到的影像文件来引导主机启动。</p>
<p>4. 超级守候进程inetd的配置<br />
　　在linux系统中有一个超级守候进程inetd,inetd监听由文件/etc/services指定的服务的端口,inetd根据网络连接请求,调用相应的服务进程来相应请求.在这里有两个文件十分重要,/etc/inetd.conf和/etc/services,文件/etc/services定义linu系统中所有服务的名称,协议类型,服务的端口等等信息,/etc/inetd.conf是inetd的配置文件,由它来指定那些服务可以由inetd来监听,以及相应的服务进程的调用命令.首先介绍一下/etc/services文件,/etc/services文件是一个服务名和服务端口对应的数据库文件,如下面所示:<br />
# /etc/services:<br />
# $Id: services,v 1.4 2000/01/23 21:03:36 notting Exp $<br />
#<br />
# Network services, Internet style<br />
#<br />
# Note that it is presently the policy of IANA to assign a single well-known<br />
# port number for both TCP and UDP; hence, most entries here have two entries<br />
# even if the protocol doesn&#8217;t support UDP operations.<br />
# Updated from RFC 1700, &#8220;Assigned Numbers&#8221; (October 1994). Not all ports<br />
# are included, only the more common ones.<br />
#名称 　　　端口/协议　　　　 别名 　　　　　　　注释<br />
tcpmux 　　 1/tcp 　　　　　　　　　　　　　　　# TCP port service multiplexer<br />
echo 　　　 7/tcp<br />
echo 　　　 7/udp<br />
discard 　　9/tcp 　　　　　sink null<br />
discard 　　9/udp 　　　　　sink null<br />
systat　　　11/tcp 　　　　 users<br />
daytime 　　13/tcp<br />
daytime 　　13/udp<br />
netstat 　　15/tcp<br />
qotd 　　　 17/tcp 　　　　　quote<br />
msp 　　　　18/tcp 　　　　　　　　　　　　　　　　# message send protocol<br />
msp 　　　　18/udp　　　　　　　　　　　　　　　　 # message send protocol<br />
chargen 　　19/tcp 　　　　ttytst source<br />
chargen　　 19/udp　　　　 ttytst source<br />
ftp-data 　 20/tcp<br />
ftp　　　　 21/tcp<br />
fsp　　　　21/udp　　　　　 fspd<br />
ssh 　　　　22/tcp 　　　　　　　　　　　　　　　　# SSH Remote Login Protocol<br />
ssh　　　　22/udp　　　　　　　　　　　　　　　　　# SSH Remote Login Protocol<br />
telnet 　　23/tcp<br />
# 24 &#8211; private<br />
smtp 　　　25/tcp 　　　　　mail<br />
# 26 &#8211; unassigned<br />
time　　　　37/tcp　　　　 timserver<br />
time 　　　37/udp 　　　　　timserver<br />
rlp 　　　　39/udp　　　　　 resource　　　　　　　　 # resource location<br />
nameserver 42/tcp 　　　　　name　　　　　　　　　　　# IEN 116<br />
whois 　　　43/tcp 　　　　　nicname<br />
re-mail-ck 　50/tcp 　　　　　　　　　　　　　　　　　# Remote Mail Checking Protocol<br />
re-mail-ck　50/udp 　　　　　　　　　　　　　　　　　 # Remote Mail Checking Protocol<br />
domain 　　 53/tcp 　　　　nameserver 　　　　　　　　# name-domain server<br />
domain　　　53/udp 　　　　nameserver<br />
mtp 　　　　57/tcp　　　　　　　　　　　　　　　　　　 # deprecated<br />
bootps 　　 67/tcp 　　　　　　　　　　　　　　　　　　# BOOTP server<br />
bootps 　　 67/udp<br />
bootpc 　　 68/tcp 　　　　　　　　　　　　　　　　　　# BOOTP client<br />
bootpc 　　 68/udp<br />
tftp 　　　 69/udp<br />
gopher 　　 70/tcp # Internet Gopher<br />
gopher 　　 70/udp<br />
rje 　　　　77/tcp netrjs<br />
finger 　　 79/tcp<br />
www 　　　　80/tcp 　　　　http　　　　　　　　　　　　 # WorldWideWeb HTTP<br />
www　　　　 80/udp 　　　　　　　　　　　　　　　　　　 # HyperText Transfer Protocol<br />
link 　　　 87/tcp 　　　　ttylink<br />
kerberos 　 88/tcp 　　　　kerberos5 krb5 　　　　　　　# Kerberos v5<br />
kerberos 　 88/udp 　　　　kerberos5 krb5 　　　　　　　# Kerberos v5<br />
supdup　　　95/tcp<br />
# 100 &#8211; reserved<br />
hostnames 　101/tcp 　　　　hostname 　　　　　　　　　　# usually from sri-nic<br />
iso-tsap 　102/tcp　　　　　tsap 　　　　　　　　　　　　# part of ISODE.<br />
csnet-ns 　105/tcp 　　　　cso-ns　　　　　　　　　　　　 # also used by CSO name server<br />
csnet-ns 　105/udp　　　　 cso-ns<br />
rtelnet 　　107/tcp 　　　　　　　　　　　　　　　　　　　# Remote Telnet<br />
rtelnet 　　107/udp<br />
pop2 　　　　109/tcp 　　　pop-2 postoffice　　　　　　　 # POP version 2<br />
pop2 　　　　109/udp　　　 pop-2<br />
pop3 　　　　110/tcp 　　　pop-3　　　　　　　　　　　　　 # POP version 3<br />
pop3　　　　 110/udp　　　 pop-3<br />
sunrpc 　　　111/tcp 　　portmapper　　　　　　　　　　　 # RPC 4.0 portmapper TCP<br />
sunrpc 　　　111/udp 　　portmapper 　　　　　　　　　　　# RPC 4.0 portmapper UDP<br />
auth 　　　　113/tcp　　 authentication tap ident<br />
sftp 　　　　115/tcp<br />
uucp-path 　　117/tcp<br />
nntp 　　　　119/tcp 　　　readnews untp　　　　　　　　　 # USENET News Transfer Protocol<br />
ntp 　　　　　123/tcp<br />
ntp 　　　　　123/udp　　　　　　　　　　　　　　　　　　　# Network Time Protocol<br />
netbios-ns 　　137/tcp　　　　　　　　　　　　　　　　　　 # NETBIOS Name Service<br />
netbios-ns 　　137/udp<br />
netbios-dgm 　　138/tcp 　　　　　　　　　　　　　　　　　　# NETBIOS Datagram Service<br />
netbios-dgm 　　138/udp<br />
netbios-ssn 　　139/tcp　　　　　　　　　　　　　　　　　　　# NETBIOS session service<br />
netbios-ssn 　　139/udp<br />
imap2 　　　　　143/tcp 　　imap 　　　　　　　　　　　　　　# Interim Mail Access Proto v2<br />
imap2 　　　　　143/udp　　 imap</p>
<p>(实际上,以上仅仅是/etc/services的一部分,限于篇幅没有全部写出)<br />
在这个文件中,为了安全考虑,我们可以修改一些常用服务的端口地址,例如我们可以把telnet服务的端口地址改为52323,www的端口改为8080,ftp端口地址改为2121等等,这样仅仅需要在应用程序中修改相应的端口即可.这样可以提高系统的安全性.<br />
/etc/inetd.conf文件是inetd的配置文件, 首先要了解一下linux服务器到底要提供哪些服务。一个很好的原则是&#8221; 禁止所有不需要的服务&#8221;，这样黑客就少了一些攻击系统的机会./etc/inetd.conf范例文件如下:<br />
#<br />
# inetd.conf　　　　This file describes the services that will be available<br />
# 　　　　　　　　　through the INETD TCP/IP super server. To re-configure<br />
# 　　　　　　　　　the running INETD process, edit this file, then send the<br />
# 　　　　　　　　　NETD process a SIGHUP signal.<br />
#<br />
# Version:　　　 @(#)/etc/inetd.conf 　　3.10 　　05/27/93<br />
#<br />
# Authors: 　　　Original taken from BSD UNIX 4.3/TAHOE.<br />
# 　　　　　　　　Fred N. van Kempen, &lt;waltje@uwalt.nl.mugnet.org&gt;<br />
#<br />
# Modified for Debian Linux by Ian A. Murdock &lt;imurdock@shell.portal.com&gt;<br />
#<br />
# Modified for RHS Linux by Marc Ewing &lt;marc@redhat.com&gt;<br />
#<br />
# &lt;service_name&gt; &lt;sock_type&gt; &lt;proto&gt; &lt;flags&gt; &lt;user&gt; &lt;server_path&gt; &lt;args&gt;<br />
#服务名 socket类型 协议 动作 拥有者 服务进程路径名 掉用参数<br />
#nowait 表示在相应一个网络连接之后,服务进程在释放旧的联接之前可以接受<br />
#新的连接请求,wait 则表示必须在旧连接清除之后才能接收新的连接.<br />
# Echo, discard, daytime, and chargen are used primarily for testing.<br />
# To re-read this file after changes, just do a &#8216;killall -HUP inetd&#8217;<br />
#<br />
#echo 　stream 　tcp　 nowait　 root 　internal<br />
#echo 　dgram 　　udp　 wait 　　root 　internal<br />
#discard　　　 stream 　tcp　 nowait　 root 　internal<br />
#discard　　　 dgram 　　udp 　wait 　　root 　internal<br />
#daytime stream　 tcp　　 nowait　　 root 　　internal<br />
#daytime dgram　　udp 　　wait 　　　root 　　internal<br />
#chargen 　　　　stream 　tcp 　　nowait 　root 　internal<br />
#chargen 　　　　dgram 　udp 　wait　　 root 　　internal<br />
#time 　　stream 　　tcp 　　nowait 　　root 　internal<br />
#time 　　dgram　　 udp 　　wait 　　root 　　internal<br />
#<br />
# These are standard services.<br />
#<br />
ftp 　　stream　　 tcp　　 nowait　　 root　　 /usr/sbin/tcpd 　　in.wuftpd -l -a<br />
telnet　stream 　　tcp 　　nowait 　　root 　　/usr/sbin/tcpd 　　in.telnetd<br />
#<br />
# Shell, login, exec, comsat and talk are BSD protocols.<br />
#<br />
#shell 　stream　 tcp 　nowait 　root 　　/usr/sbin/tcpd 　　in.rshd<br />
#login 　stream　 tcp　 nowait　 root　　 /usr/sbin/tcpd 　　in.rlogind<br />
#exec 　stream 　tcp　 nowait　 root 　　/usr/sbin/tcpd　　 in.rexecd<br />
#comsat dgram　 udp 　wait 　　root　　 /usr/sbin/tcpd　　 in.comsat<br />
#talk 　dgram 　udp 　wait 　　root　　 /usr/sbin/tcpd 　　in.talkd<br />
#ntalk　 dgram 　udp　wait 　　root 　　/usr/sbin/tcpd 　　in.ntalkd<br />
#dtalk　 stream　tcp　 waut　　 nobody 　/usr/sbin/tcpd 　　in.dtalkd<br />
# Pop and imap mail services et al<br />
#<br />
#pop-2 stream tcp nowait root /usr/sbin/tcpd ipop2d<br />
#pop-3 stream tcp nowait root /usr/sbin/tcpd ipop3d<br />
#imap stream tcp nowait root /usr/sbin/tcpd imapd<br />
#<br />
# The Internet UUCP service.<br />
#<br />
#uucp stream tcp nowait uucp /usr/sbin/tcpd /usr/lib/uucp/uucico -l<br />
#<br />
# Tftp service is provided primarily for booting. Most sites<br />
# run this only on machines acting as &#8220;boot servers.&#8221; Do not uncomment<br />
# this unless you *need* it.<br />
#<br />
#tftp 　dgram 　udp　 wait 　root 　/usr/sbin/tcpd 　in.tftpd<br />
#bootps dgram　 udp　 wait　 root 　/usr/sbin/tcpd　 bootpd<br />
#　<br />
# Finger, systat and netstat give out user information which may be<br />
# valuable to potential &#8220;system crackers.&#8221; Many sites choose to disable<br />
# some or all of these services to improve security.<br />
#<br />
#finger stream　 tcp 　　nowait 　　root 　　/usr/sbin/tcpd 　　in.fingerd<br />
#cfinger stream 　tcp 　　nowait　　 root 　　/usr/sbin/tcpd 　　in.cfingerd<br />
#systat stream　 tcp　　 nowait 　　guest 　　/usr/sbin/tcpd /bin/ps -auwwx<br />
#netstat stream 　tcp　　 nowait 　　guest 　　/usr/sbin/tcpd /bin/netstat 　-f inet<br />
#<br />
# Authentication<br />
#<br />
#auth　　　 stream 　tcp 　nowait　 nobody 　/usr/sbin/in.identd in.identd -l -e -o<br />
#linuxconf stream　　 tcp 　wait 　　root 　　/bin/linuxconf linuxconf -http</p>
<p>　　大家看到的这个文件已经修改过的文件,除了telnet 和ftp服务,其他所有的服务都被禁止了.在修改了/etc/inetd.conf之后,使用命令kill -HUP (inetd的进程号),使inetd重新读取配置文件并重新启动即可.</p>
<p>5. ip route的配置<br />
　　利用linux,一台普通的微机也可以实现高性价比的路由器.首先让我们了解一下linux的查看路由信息的命令:<br />
　　[root@ice /etc]# route -n<br />
　　Kernel IP routing table<br />
　　Destination　　　 Gateway　　　 Genmask 　　　　Flags Metric Ref　　 Use Iface<br />
　　202.112.13.204　　0.0.0.0 　　　255.255.255.255 UH 　0　 0 　0 　　　　eth0<br />
　　202.117.48.43 　　0.0.0.0　　　 255.255.255.255 UH　 0　 0　 0 　　　　eth1<br />
　　202.112.13.192　 202.112.13.204 255.255.255.192 UG　 0 　0 　0 　　　　eth0<br />
　　202.112.13.192 　0.0.0.0　　　　255.255.255.192 U 　0 　0 　0　　　　　 eth0<br />
　　202.117.48.0　　 202.117.48.43　255.255.255.0 　UG 　0 　0　 0 　　　　eth1<br />
　　202.117.48.0　　 0.0.0.0　　　　 255.255.255.0　 U 　0　 0　 0　　　　 eth1<br />
　　127.0.0.0 　　　0.0.0.0 　　　　255.0.0.0　　　　 U 　0 　0 　0 　　　　lo<br />
　　0.0.0.0 　　　　202.117.48.1　　 0.0.0.0 　　　　UG 　0 　0　 0 　　　　eth1<br />
　　命令netstat -r n 得到输出结果和route -n是一样的.它们操作的都是linux 内核的路由表.<br />
　　命令cat /proc/net/route的输出结果是以十六进制表示的路由表.<br />
[root@ice /etc]# cat /proc/net/route<br />
Iface　 Destination　　 Gateway 　Flags 　RefCnt 　Use　　 Metric Mask<br />
eth0 　CC0D70CA　　　　 00000000 0005 　0 　　0 　　　0 　　　　FFFFFFF<br />
eth1 　2B3075CA　　　　 00000000 0005 　0　　 0　　　 0 　　　　FFFFFFF<br />
eth0　 C00D70CA 　　　　CC0D70CA 0003 　0　　 0 　　　0 　　　　C0FFFFF<br />
eth0 　C00D70CA 　　　　00000000 0001　 0　　 0 　　　0 　　　　C0FFFFF<br />
eth1　 003075CA　　　　 2B3075CA 0003　 0　 　0 　　　0 　　　　00FFFFF<br />
eth1　　003075CA　　　　 00000000 0001 　0 　　0 　　　0 　　　　00FFFFF<br />
lo 　　0000007F 　　　　　00000000 0001　 0　　 0 　　　0　　　 000000F<br />
eth1　　 00000000 　　　　　013075CA 0003　 0　 0 　　　0　　　　 0000000<br />
　　通过计算可以知道,下面的这个路由表(十六进制)和前面的路由表(十进制)是一致的.<br />
　　我们还可以通过命令route add (del )来操作路由表,增加和删除路由信息.<br />
除了上面的静态路由,linux还可以通过routed来实现rip协议的动态路由.我们只需要打开linux的路由转发功能,在/proc/sys/net/ipv4/ip_forward文件中增加一个字符1.</p>
<p>三.网络的安全设置</p>
<p>　　在这一部分,再次强调一定要修改/etc/inetd.conf,安全的策略是禁止所有不需要的服务.除此之外,还有以下几个文件和网络安全相关.</p>
<p>　　(1)./etc/ftpusers ftp服务是一个不太安全的服务,所以/etc/ftpusers限定了不允许通过ftp访问linux主机的用户列表.当一个ftp请求传送到ftpd,ftpd首先检查用户名,如果用户名在/etc/ftpusers中,则ftpd将不会允许该用户继续连接.范例文件如下:</p>
<p># /etc/ftpusers &#8211; users not allowed to login via ftp<br />
root<br />
bin<br />
daemon<br />
adm<br />
lp<br />
sync<br />
shutdown<br />
halt<br />
mail<br />
news<br />
uucp<br />
operator<br />
games<br />
nobody<br />
nadmin</p>
<p>　　(2)/etc/securetty 在linux系统中,总共有六个终端控制台,我们可以在/etc/securetty中设置哪个终端允许root登录,所有其他没有写入文件中的终端都不允许root登录.范例文件如下:</p>
<p># /etc/securetty &#8211; tty&#8217;s on which root is allowed to login<br />
tty1<br />
tty2<br />
tty3<br />
tty4</p>
<p>(3)tcpd的控制登录文件/etc/hosts.allow和/etc/hosts.deny<br />
　　在tcpd服务进程中,通过在/etc/hosts.allow和/etc/hosts.deny中的访问控制规则来控制外部对linux主机的访问.它们的格式都是<br />
　　service-list : hosts-list [ : command]<br />
　　服务进程的名称 : 主机列表 可选,当规则满足时的操作<br />
　　在主机表中可以使用域名或ip地址,ALL表示匹配所有项,EXCEPT表示除了某些项, PARANOID表示当ip地址和域名不匹配时(域名伪装)匹配该项.<br />
　　范例文件如下:</p>
<p>#<br />
# hosts.allow This file describes the names of the hosts which are<br />
# allowed to use the local INET services, as decided<br />
# by the &#8216;/usr/sbin/tcpd&#8217; server.<br />
#<br />
ALL : 202.112.13.0/255.255.255.0<br />
ftpd: 202.117.13.196<br />
in.telnetd: 202.117.48.33<br />
ALL : 127.0.0.1</p>
<p>　　在这个文件中,网段202.112.13.0/24可以访问linux系统中所有的网络服务,主机202.117.13.196只能访问ftpd服务,主机202.117.48.33只能访问telnetd服务.本机自身可以访问所有网络服务.<br />
　　在/etc/hosts.deny文件中禁止所有其他情况:<br />
　　#/etc/hosts.deny<br />
　　ALL : DENY : spawn (/usr/bin/finger -lp @%h | /bin/mail -s &#8220;Port Denial noted in %d-%h&#8221; root)</p>
<p>　　在/etc/hosts.allow中,定义了在所有其他情况下,linux所应该执行的操作.spawn选项允许linux系统在匹配规则中执行指定的shell命令,在我们的例子中,linux系统在发现无授权的访问时,将会发送给超级用户一封主题是&#8221;Port Denial noted in %d-%h&#8221;的邮件,在这里,我们先要介绍一下allow和deny文件中的变量扩展.</p>
<p>　　</p>
<p>　　(4)/etc/issue和/etc/issue.net<br />
　　在我们登录linux系统中的时候,我们常常可以看到我们linux系统的版本号等敏感信息.在如今的网络攻击行为中,许多黑客首先要收集目标系统的信息,版本号等就是十分重要的信息,所以在linux系统中一般要把这些信息隐藏起来./etc/issue和/etc/issue.net就是存放这些信息的文件.我们可以修改这些文件来隐藏版本信息.<br />
另外,在每次linux重新启动的时候,都会在脚本/etc/rc.d/rc.local中再次覆盖上面那两个文件./etc/rc.d/rc.local文件的范例如下:</p>
<p># This script will be executed *after* all the other init scripts.<br />
# You can put your own initialization stuff in here if you don&#8217;t<br />
# want to do the full Sys V style init stuff.</p>
<p>if [ -f /etc/redhat-release ]; then<br />
R=$(cat /etc/redhat-release)</p>
<p>arch=$(uname -m)<br />
a=&#8221;a&#8221;<br />
case &#8220;_$arch&#8221; in<br />
_a*) a=&#8221;an&#8221;;;<br />
_i*) a=&#8221;an&#8221;;;<br />
esac</p>
<p>NUMPROC=`egrep -c &#8220;^cpu[0-9]+&#8221; /proc/stat`<br />
if [ "$NUMPROC" -gt "1" ]; then<br />
SMP=&#8221;$NUMPROC-processor &#8221;<br />
if [ "$NUMPROC" = "8" -o "$NUMPROC" = "11" ]; then<br />
a=&#8221;an&#8221;<br />
else<br />
a=&#8221;a&#8221;<br />
fi<br />
fi</p>
<p># This will overwrite /etc/issue at every boot. So, make any changes you<br />
# want to make to /etc/issue here or you will lose them when you reboot.<br />
#echo &#8220;&#8221; &gt; /etc/issue<br />
#echo &#8220;$R&#8221; &gt;&gt; /etc/issue<br />
# echo &#8220;Kernel $(uname -r) on $a $SMP$(uname -m)&#8221; &gt;&gt; /etc/issue</p>
<p>cp -f /etc/issue /etc/issue.net<br />
echo &gt;&gt; /etc/issue</p>
<p>　　在文件中黑体的部分就是得到系统版本信息的地方.一定要将他们注释掉.</p>
<p>　　(5)其他配置<br />
　　在普通微机中,都可以通过ctl+alt+del三键的组合来重新启动linux.这样是十分不安全的,所以要在　　　　/etc/inittab文件中注释该功能:<br />
　　# Trap CTRL-ALT-DELETE<br />
　　#ca::ctrlaltdel:/sbin/shutdown -t3 -r now</p>
]]></content:encoded>
			<wfw:commentRss>http://www.78wd.com/linux%e7%b3%bb%e7%bb%9f%e4%b8%ad%e7%bd%91%e7%bb%9c%e9%85%8d%e7%bd%ae%e8%af%a6%e8%a7%a3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux的基本文件说明</title>
		<link>http://www.78wd.com/linux%e7%9a%84%e5%9f%ba%e6%9c%ac%e6%96%87%e4%bb%b6%e8%af%b4%e6%98%8e/</link>
		<comments>http://www.78wd.com/linux%e7%9a%84%e5%9f%ba%e6%9c%ac%e6%96%87%e4%bb%b6%e8%af%b4%e6%98%8e/#comments</comments>
		<pubDate>Thu, 13 Oct 2005 13:32:32 +0000</pubDate>
		<dc:creator>pangel</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://www.78wd.com/linux%e7%9a%84%e5%9f%ba%e6%9c%ac%e6%96%87%e4%bb%b6%e8%af%b4%e6%98%8e/</guid>
		<description><![CDATA[启动引导程序配置文件 　　LILO /etc/lilo.conf 　　GRUB /boot/grub/menu.lst 　　 　　系统启动文件核脚本 　　主启动控制文件 /etc/inittab 　　SysV启动脚本的位置 /etc/init.d、/etc/rc.d/init.d或/etc/rc.d 　　SysV启动脚本链接的位置 /etc/init.d/rc?.d、/etc/rc.d/rc?.d或/etc/rc?.d 　　本地启动脚本 /etc/rc.d/rc.local、/etc/init.d/boot.local或/etc/rc.boot里的文件 　　 　　网络配置文件 　　建立网络接口的脚本 /sbin/ifup 　　保存网络配置数据文件的目录 /etc/network、/etc/sysconfig/network和/etc/sysconfig/network-scripts 　　保存解析DNS服务的文件 /etc/resolv.conf 　　DHCP客户端的配置文件 /etc/dhclient.conf 　　 　　超级服务程序配置文件和目录 　　inetd配置文件 /etc/inetd.conf 　　TCP Wrappers配置文件 /etc/hosts.allow和/etc/hosts.deny 　　xinetd配置文件 /etc/xinetd.conf和/etc/xinetd.d目录里的文件 　　 　　硬件配置 　　内核模块配置文件 /etc/modules.conf 　　 　　硬件访问文件 &#8230; <a href="http://www.78wd.com/linux%e7%9a%84%e5%9f%ba%e6%9c%ac%e6%96%87%e4%bb%b6%e8%af%b4%e6%98%8e/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>启动引导程序配置文件<br />
　　LILO /etc/lilo.conf<br />
　　GRUB /boot/grub/menu.lst<br />
　　<br />
　　系统启动文件核脚本<br />
　　主启动控制文件 /etc/inittab<br />
　　SysV启动脚本的位置 /etc/init.d、/etc/rc.d/init.d或/etc/rc.d<br />
　　SysV启动脚本链接的位置 /etc/init.d/rc?.d、/etc/rc.d/rc?.d或/etc/rc?.d<br />
　　本地启动脚本 /etc/rc.d/rc.local、/etc/init.d/boot.local或/etc/rc.boot里的文件<br />
　　<br />
　　网络配置文件<br />
　　建立网络接口的脚本 /sbin/ifup<br />
　　保存网络配置数据文件的目录 /etc/network、/etc/sysconfig/network和/etc/sysconfig/network-scripts<br />
　　保存解析DNS服务的文件 /etc/resolv.conf<br />
　　DHCP客户端的配置文件 /etc/dhclient.conf<br />
　　<br />
　　超级服务程序配置文件和目录<br />
　　inetd配置文件 /etc/inetd.conf<br />
　　TCP Wrappers配置文件 /etc/hosts.allow和/etc/hosts.deny<br />
　　xinetd配置文件 /etc/xinetd.conf和/etc/xinetd.d目录里的文件<br />
　　<br />
　　硬件配置<br />
　　内核模块配置文件 /etc/modules.conf<br />
　　<br />
　　硬件访问文件<br />
　　Linux设备文件 /dev目录里<br />
　　保存硬件和驱动程序数据的文件 /proc目录里<br />
　　<br />
　　扫描仪配置文件<br />
　　SANE主配置 /etc/sane.d/dll.conf<br />
　　特定扫描仪的配置文件 /etc/sane.d目录里以扫描仪型号命名的文件<br />
　　<br />
　　打印机配置文件<br />
　　BSD LPD核LPRng的本地打印机主配置文件 /etc/printcap<br />
　　CUPS本地打印机主配置和远程访问受权文件 /etc/cups/cupsd.conf<br />
　　BSD LPD远程访问受权文件 /etc/hosts.lpd<br />
　　LPRng远程访问受权文件 /etc/lpd.perms<br />
　　<br />
　　文件系统<br />
　　文件系统表 /etc/fstab<br />
　　软驱装配点 /floppy、/mnt/floppy或/media/floppy<br />
　　光驱装配点 /cdrom、/mnt/cdrom或/media/cdrom<br />
　　<br />
　　shell配置文件<br />
　　bash系统非登录配置文件 /etc/bashrc、/etc/bash.bashrc或/etc/bash.bashrc.local<br />
　　bash系统登录文件 /etc/profile和/etc/profile.d里的文件<br />
　　bash用户非登录配置文件 ~/.bashrc<br />
　　bash用户登录配置文件 ~/.profile<br />
　　<br />
　　XFree86配置文件核目录<br />
　　XFree86主配置文件 /etc/XF86config、/etc/X11/XF86Config或/etc/X11/XF86Config-4<br />
　　字体服务程序配置文件 /etc/X11/fs/config<br />
　　Xft 1.x配置文件 /etcX11/XftConfig<br />
　　Xft 2.0配置文件 /etc/fonts/fonts.conf<br />
　　字体目录 /usr/X11R6/lib/X11/fonts和/usr/share/fonts<br />
　　<br />
　　Web服务程序配置文件<br />
　　Apache主配置文件 /etc/apache、/etc/httpd或/httpd/conf里的httpd.conf或httpd2.conf文件<br />
　　MIME类型文件 与Apache主配置文件在同一目录里的mime.types或apache-mime.types<br />
　　<br />
　　文件服务程序配置文件<br />
　　ProFTPd配置文件 /etc/proftpd.conf<br />
　　vsftpd配置文件 /etc/vsftpd.conf<br />
　　NFS服务程序的输出定义文件 /etc/exports<br />
　　NFS客户端装配的NFS输出 /etc/fstab<br />
　　Samba配置文件 /etc/samba/smb.conf<br />
　　Samba用户配置文件 /etc/samba/smbpasswd<br />
　　<br />
　　邮件服务程序配置文件<br />
　　sendmail主配置文件 /etc/mail/sendmail.cf<br />
　　sendmail源配置文件 /etc/mail/sendmail.mc或/usr/share/sendmail/cf/cf/linux.smtp.mc或其他文件<br />
　　Postfix主配置文件 /etc/postfix/main.cf<br />
　　Exim主配置文件 /etc/exim/exim.cf<br />
　　Procmail配置文件 /etc/procmailrc或~/.procmailrc<br />
　　Fetchmail配置文件 ~/.fetchmailrc<br />
　　<br />
　　远程登录配置文件<br />
　　SSH服务程序配置文件 /etc/ssh/sshd_config<br />
　　SSH客户端配置文件 /etc/ssh/ssh_config<br />
　　XDM配置文件 /etc/X11/xdm目录下<br />
　　GDM配置文件 /etc/X11/gdm目录下<br />
　　VNC服务程序配置文件 /usr/X11R6/bin/vncserver启动脚本和~/.vnc目录里的文件<br />
　　<br />
　　其他服务程序配置文件<br />
　　DHCP服务程序配置文件 /etc/dhcpd.conf<br />
　　BIND服务程序配置文件 /etc/named.conf和/var/named/<br />
　　NTP服务程序配置文件 /etc/ntp.conf</p>
]]></content:encoded>
			<wfw:commentRss>http://www.78wd.com/linux%e7%9a%84%e5%9f%ba%e6%9c%ac%e6%96%87%e4%bb%b6%e8%af%b4%e6%98%8e/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>about LOG for linux</title>
		<link>http://www.78wd.com/about-log-for-linux/</link>
		<comments>http://www.78wd.com/about-log-for-linux/#comments</comments>
		<pubDate>Mon, 10 Oct 2005 17:16:13 +0000</pubDate>
		<dc:creator>pangel</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[log]]></category>

		<guid isPermaLink="false">http://www.78wd.com/about-log-for-linux/</guid>
		<description><![CDATA[1. 日志简介 日志对于安全来说，非常重要，他记录了系统每天发生的各种各样的事情，你可以通过他来检查错误发生的原因，或者受到攻击时攻击者留下的痕迹。日志主要的功能有：审计和监测。他还可以实时的监测系统状态，监测和追踪侵入者等等。 在Linux系统中，有三个主要的日志子系统： 连接时间日志&#8211;由多个程序执行，把纪录写入到/var/log/wtmp和/var/run/utmp，login等程序更新wtmp和utmp文件，使系统管理员能够跟踪谁在何时登录到系统。 进程统计&#8211;由系统内核执行。当一个进程终止时，为每个进程往进程统计文件（pacct或acct）中写一个纪录。进程统计的目的是为系统中的基本服务提供命令使用统计。 错误日志&#8211;由syslogd（8）执行。各种系统守护进程、用户程序和内核通过syslog（3）向文件/var/log/messages报告值得注意的事件。另外有许多UNIX程序创建日志。像HTTP和FTP这样提供网络服务的服务器也保持详细的日志。 常用的日志文件如下： access-log 纪录HTTP/web的传输 acct/pacct 纪录用户命令 aculog 纪录MODEM的活动 btmp 纪录失败的纪录 lastlog 纪录最近几次成功登录的事件和最后一次不成功的登录 messages 从syslog中记录信息（有的链接到syslog文件） sudolog 纪录使用sudo发出的命令 sulog 纪录使用su命令的使用 syslog 从syslog中记录信息（通常链接到messages文件） utmp 纪录当前登录的每个用户 wtmp 一个用户每次登录进入和退出时间的永久纪录 xferlog 纪录FTP会话 utmp、wtmp和lastlog日志文件是多数重用UNIX日志子系统的关键&#8211;保持用户登录进入和退出的纪录。有关当前登录用户的信息记录在文件utmp中；登录进入和退出纪录在文件wtmp中；最后一次登录文件可以用lastlog命令察看。数据交换、关机和重起也记录在wtmp文件中。所有的纪录都包含时间戳。这些文件（lastlog通常不大）在具有大量用户的系统中增长十分迅速。例如wtmp文件可以无限增长，除非定期截取。许多系统以一天或者一周为单位把wtmp配置成循环使用。它通常由cron运行的脚本来修改。这些脚本重新命名并循环使用wtmp文件。通常，wtmp在第一天结束后命名为wtmp.1；第二天后wtmp.1变为wtmp.2等等，直到wtmp.7。 每次有一个用户登录时，login程序在文件lastlog中察看用户的UID。如果找到了，则把用户上次登录、退出时间和主机名写到标准输出中，然后login程序在lastlog中纪录新的登录时间。在新的lastlog纪录写入后，utmp文件打开并插入用户的utmp纪录。该纪录一直用到用户登录退出时删除。Utmp文件被各种命令文件使用，包括who、w、users和finger。 下一步，login程序打开文件wtmp附加用户的utmp纪录。当用户登录退出时，具有更新时间戳的同一utmp纪录附加到文件中。Wtmp文件被程序last和ac使用。 2. 具体命令 wtmp和utmp文件都是二进制文件，他们不能被诸如tail命令剪贴或合并（使用cat命令）。用户需要使用who、w、users、last和ac来使用这两个文件包含的信息。 Who：who命令查询utmp文件并报告当前登录的每个用户。Who的缺省输出包括用户名、终端类型、登录日期及远程主机。例如：who（回车）显示 chyang &#8230; <a href="http://www.78wd.com/about-log-for-linux/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>1. 日志简介</p>
<p>日志对于安全来说，非常重要，他记录了系统每天发生的各种各样的事情，你可以通过他来检查错误发生的原因，或者受到攻击时攻击者留下的痕迹。日志主要的功能有：审计和监测。他还可以实时的监测系统状态，监测和追踪侵入者等等。</p>
<p>在Linux系统中，有三个主要的日志子系统：</p>
<p>连接时间日志&#8211;由多个程序执行，把纪录写入到/var/log/wtmp和/var/run/utmp，login等程序更新wtmp和utmp文件，使系统管理员能够跟踪谁在何时登录到系统。</p>
<p>进程统计&#8211;由系统内核执行。当一个进程终止时，为每个进程往进程统计文件（pacct或acct）中写一个纪录。进程统计的目的是为系统中的基本服务提供命令使用统计。</p>
<p>错误日志&#8211;由syslogd（8）执行。各种系统守护进程、用户程序和内核通过syslog（3）向文件/var/log/messages报告值得注意的事件。另外有许多UNIX程序创建日志。像HTTP和FTP这样提供网络服务的服务器也保持详细的日志。</p>
<p>常用的日志文件如下：</p>
<p>access-log 纪录HTTP/web的传输<br />
acct/pacct 纪录用户命令<br />
aculog 纪录MODEM的活动<br />
btmp 纪录失败的纪录<br />
lastlog 纪录最近几次成功登录的事件和最后一次不成功的登录<br />
messages 从syslog中记录信息（有的链接到syslog文件）<br />
sudolog 纪录使用sudo发出的命令<br />
sulog 纪录使用su命令的使用<br />
syslog 从syslog中记录信息（通常链接到messages文件）<br />
utmp 纪录当前登录的每个用户<br />
wtmp 一个用户每次登录进入和退出时间的永久纪录<br />
xferlog 纪录FTP会话</p>
<p>utmp、wtmp和lastlog日志文件是多数重用UNIX日志子系统的关键&#8211;保持用户登录进入和退出的纪录。有关当前登录用户的信息记录在文件utmp中；登录进入和退出纪录在文件wtmp中；最后一次登录文件可以用lastlog命令察看。数据交换、关机和重起也记录在wtmp文件中。所有的纪录都包含时间戳。这些文件（lastlog通常不大）在具有大量用户的系统中增长十分迅速。例如wtmp文件可以无限增长，除非定期截取。许多系统以一天或者一周为单位把wtmp配置成循环使用。它通常由cron运行的脚本来修改。这些脚本重新命名并循环使用wtmp文件。通常，wtmp在第一天结束后命名为wtmp.1；第二天后wtmp.1变为wtmp.2等等，直到wtmp.7。</p>
<p>每次有一个用户登录时，login程序在文件lastlog中察看用户的UID。如果找到了，则把用户上次登录、退出时间和主机名写到标准输出中，然后login程序在lastlog中纪录新的登录时间。在新的lastlog纪录写入后，utmp文件打开并插入用户的utmp纪录。该纪录一直用到用户登录退出时删除。Utmp文件被各种命令文件使用，包括who、w、users和finger。</p>
<p>下一步，login程序打开文件wtmp附加用户的utmp纪录。当用户登录退出时，具有更新时间戳的同一utmp纪录附加到文件中。Wtmp文件被程序last和ac使用。</p>
<p>2. 具体命令</p>
<p>wtmp和utmp文件都是二进制文件，他们不能被诸如tail命令剪贴或合并（使用cat命令）。用户需要使用who、w、users、last和ac来使用这两个文件包含的信息。</p>
<p>Who：who命令查询utmp文件并报告当前登录的每个用户。Who的缺省输出包括用户名、终端类型、登录日期及远程主机。例如：who（回车）显示</p>
<p>chyang pts/0 Aug 18 15:06<br />
ynguo pts/2 Aug 18 15:32<br />
ynguo pts/3 Aug 18 13:55<br />
lewis pts/4 Aug 18 13:35<br />
ynguo pts/7 Aug 18 14:12<br />
ylou pts/8 Aug 18 14:15</p>
<p>如果指明了wtmp文件名，则who命令查询所有以前的纪录。命令who /var/log/wtmp将报告自从wtmp文件创建或删改以来的每一次登录。</p>
<p>W：w命令查询utmp文件并显示当前系统中每个用户和它所运行的进程信息。例如：w（回车）显示：3:36pm up 1 day, 22:34, 6 users, load average: 0.23, 0.29, 0.27</p>
<p>USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT<br />
chyang pts/0 202.38.68.242 3:06pm 2:04 0.08s 0.04s -bash<br />
ynguo pts/2 202.38.79.47 3:32pm 0.00s 0.14s 0.05 w<br />
lewis pts/3 202.38.64.233 1:55pm 30:39 0.27s 0.22s -bash<br />
lewis pts/4 202.38.64.233 1:35pm 6.00s 4.03s 0.01s sh /home/users/<br />
ynguo pts/7 simba.nic.ustc.e 2:12pm 0.00s 0.47s 0.24s telnet mail<br />
ylou pts/8 202.38.64.235 2:15pm 1:09m 0.10s 0.04s -bash</p>
<p>users：users用单独的一行打印出当前登录的用户，每个显示的用户名对应一个登录会话。如果一个用户有不止一个登录会话，那他的用户名将显示相同的次数。例如：users（回车）显示：chyang lewis lewis ylou ynguo ynguo</p>
<p>last：last命令往回搜索wtmp来显示自从文件第一次创建以来登录过的用户。例如：</p>
<p>chyang pts/9 202.38.68.242 Tue Aug 1 08:34 &#8211; 11:23 (02:49)<br />
cfan pts/6 202.38.64.224 Tue Aug 1 08:33 &#8211; 08:48 (00:14)<br />
chyang pts/4 202.38.68.242 Tue Aug 1 08:32 &#8211; 12:13 (03:40)<br />
lewis pts/3 202.38.64.233 Tue Aug 1 08:06 &#8211; 11:09 (03:03)<br />
lewis pts/2 202.38.64.233 Tue Aug 1 07:56 &#8211; 11:09 (03:12)</p>
<p>如果指明了用户，那么last只报告该用户的近期活动，例如：last ynguo（回车）显示：</p>
<p>ynguo pts/4 simba.nic.ustc.e Fri Aug 4 16:50 &#8211; 08:20 (15:30)<br />
ynguo pts/4 simba.nic.ustc.e Thu Aug 3 23:55 &#8211; 04:40 (04:44)<br />
ynguo pts/11 simba.nic.ustc.e Thu Aug 3 20:45 &#8211; 22:02 (01:16)<br />
ynguo pts/0 simba.nic.ustc.e Thu Aug 3 03:17 &#8211; 05:42 (02:25)<br />
ynguo pts/0 simba.nic.ustc.e Wed Aug 2 01:04 &#8211; 03:16 1+02:12)<br />
ynguo pts/0 simba.nic.ustc.e Wed Aug 2 00:43 &#8211; 00:54 (00:11)<br />
ynguo pts/9 simba.nic.ustc.e Thu Aug 1 20:30 &#8211; 21:26 (00:55)</p>
<p>ac：ac命令根据当前的/var/log/wtmp文件中的登录进入和退出来报告用户连结的时间（小时），如果不使用标志，则报告总的时间。例如：ac（回车）显示：total 5177.47</p>
<p>ac -d（回车）显示每天的总的连结时间</p>
<p>Aug 12 total 261.87<br />
Aug 13 total 351.39<br />
Aug 14 total 396.09<br />
Aug 15 total 462.63<br />
Aug 16 total 270.45<br />
Aug 17 total 104.29<br />
Today total 179.02</p>
<p>ac -p （回车）显示每个用户的总的连接时间</p>
<p>ynguo 193.23<br />
yucao 3.35<br />
rong 133.40<br />
hdai 10.52<br />
zjzhu 52.87<br />
zqzhou 13.14<br />
liangliu 24.34<br />
total 5178.24</p>
<p>lastlog：lastlog文件在每次有用户登录时被查询。可以使用lastlog命令来检查某特定用户上次登录的时间，并格式化输出上次登录日志/var/log/lastlog的内容。它根据UID排序显示登录名、端口号（tty）和上次登录时间。如果一个用户从未登录过，lastlog显示&#8221;**Never logged**。注意需要以root运行该命令，例如：</p>
<p>rong 5 202.38.64.187 Fri Aug 18 15:57:01 +0800 2000<br />
dbb **Never logged in**<br />
xinchen **Never logged in**<br />
pb9511 **Never logged in**<br />
xchen 0 202.38.64.190 Sun Aug 13 10:01:22 +0800 2000</p>
<p>另外，可一加一些参数，例如，last -u 102将报告UID为102的用户；last -t 7表示限制上一周的报告。</p>
<p>3. 进程统计</p>
<p>UNIX可以跟踪每个用户运行的每条命令，如果想知道昨晚弄乱了哪些重要的文件，进程统计子系统可以告诉你。它对还跟踪一个侵入者有帮助。与连接时间日志不同，进程统计子系统缺省不激活，它必须启动。在Linux系统中启动进程统计使用accton命令，必须用root身份来运行。Accton命令的形式accton file，file必须先存在。先使用touch命令来创建pacct文件：touch /var/log/pacct，然后运行accton： accton /var/log/pacct。一旦accton被激活，就可以使用lastcomm命令监测系统中任何时候执行的命令。若要关闭统计，可以使用不带任何参数的accton命令。</p>
<p>Lastcomm命令报告以前执行的文件。不带参数时，lastcomm命令显示当前统计文件生命周期内纪录的所有命令的有关信息。包括命令名、用户、tty、命令花费的CPU时间和一个时间戳。如果系统有许多用户，输入则可能很长。下面的例子：</p>
<p>crond F root ?? 0.00 secs Sun Aug 20 00:16<br />
promisc_check.s S root ?? 0.04 secs Sun Aug 20 00:16<br />
promisc_check root ?? 0.01 secs Sun Aug 20 00:16<br />
grep root ?? 0.02 secs Sun Aug 20 00:16<br />
tail root ?? 0.01 secs Sun Aug 20 00:16<br />
sh root ?? 0.01 secs Sun Aug 20 00:15<br />
ping S root ?? 0.01 secs Sun Aug 20 00:15<br />
ping6.pl F root ?? 0.01 secs Sun Aug 20 00:15<br />
sh root ?? 0.01 secs Sun Aug 20 00:15<br />
ping S root ?? 0.02 secs Sun Aug 20 00:15<br />
ping6.pl F root ?? 0.02 secs Sun Aug 20 00:15<br />
sh root ?? 0.02 secs Sun Aug 20 00:15<br />
ping S root ?? 0.00 secs Sun Aug 20 00:15<br />
ping6.pl F root ?? 0.01 secs Sun Aug 20 00:15<br />
sh root ?? 0.01 secs Sun Aug 20 00:15<br />
ping S root ?? 0.01 secs Sun Aug 20 00:15<br />
sh root ?? 0.02 secs Sun Aug 20 00:15<br />
ping S root ?? 1.34 secs Sun Aug 20 00:15<br />
locate root ttyp0 1.34 secs Sun Aug 20 00:15<br />
accton S root ttyp0 0.00 secs Sun Aug 20 00:15</p>
<p>进程统计的一个问题是pacct文件可能增长的十分迅速。这时需要交互式的或经过cron机制运行sa命令来保持日志数据在系统控制内。Sa命令报告、清理并维护进程统计文件。它能把/var/log/pacct中的信息压缩到摘要文件/var/log/savacct和/var/log/usracct中。这些摘要包含按命令名和用户名分类的系统统计数据。Sa缺省情况下先读它们，然后读pacct文件，使报告能包含所有的可用信息。Sa的输出有下面一些标记项：</p>
<p>avio&#8211;每次执行的平均I/O操作次数<br />
cp&#8211;用户和系统时间总和，以分钟计<br />
cpu&#8211;和cp一样<br />
k&#8211;内核使用的平均CPU时间，以1k为单位<br />
k*sec&#8211;CPU存储完整性，以1k-core秒<br />
re&#8211;实时时间，以分钟计<br />
s&#8211;系统时间，以分钟计<br />
tio&#8211;I/O操作的总数<br />
u&#8211;用户时间，以分钟计</p>
<p>例如：</p>
<p>842 173.26re 4.30cp 0avio 358k<br />
2 10.98re 4.06cp 0avio 299k find<br />
9 24.80re 0.05cp 0avio 291k ***other<br />
105 30.44re 0.03cp 0avio 302k ping<br />
104 30.55re 0.03cp 0avio 394k sh<br />
162 0.11re 0.03cp 0avio 413k security.sh*<br />
154 0.03re 0.02cp 0avio 273k ls<br />
56 31.61re 0.02cp 0avio 823k ping6.pl*<br />
2 3.23re 0.02cp 0avio 822k ping6.pl<br />
35 0.02re 0.01cp 0avio 257k md5sum<br />
97 0.02re 0.01cp 0avio 263k initlog<br />
12 0.19re 0.01cp 0avio 399k promisc_check.s<br />
15 0.09re 0.00cp 0avio 288k grep<br />
11 0.08re 0.00cp 0avio 332k awk</p>
<p>用户还可以根据用户而不是命令来提供一个摘要报告。例如sa -m显示如下：</p>
<p>885 173.28re 4.31cp 0avk<br />
root 879 173.23re 4.31cp 0avk<br />
alias 3 0.05re 0.00cp 0avk<br />
qmailp 3 0.01re 0.00cp 0avk</p>
<p>4. Syslog设备</p>
<p>Syslog已被许多日志函数采纳，它用在许多保护措施中&#8211;任何程序都可以通过syslog 纪录事件。Syslog可以纪录系统事件，可以写到一个文件或设备中，或给用户发送一个信息。它能纪录本地事件或通过网络纪录另一个主机上的事件。</p>
<p>Syslog设备依据两个重要的文件：/etc/syslogd（守护进程）和/etc/syslog.conf配置文件，习惯上，多数syslog信息被写到/var/adm或/var/log目录下的信息文件中（messages.*）。一个典型的syslog纪录包括生成程序的名字和一个文本信息。它还包括一个设备和一个优先级范围（但不在日之中出现）。</p>
<p>每个syslog消息被赋予下面的主要设备之一：</p>
<p>LOG_AUTH&#8211;认证系统：login、su、getty等<br />
LOG_AUTHPRIV&#8211;同LOG_AUTH，但只登录到所选择的单个用户可读的文件中<br />
LOG_CRON&#8211;cron守护进程<br />
LOG_DAEMON&#8211;其他系统守护进程，如routed<br />
LOG_FTP&#8211;文件传输协议：ftpd、tftpd<br />
LOG_KERN&#8211;内核产生的消息<br />
LOG_LPR&#8211;系统打印机缓冲池：lpr、lpd<br />
LOG_MAIL&#8211;电子邮件系统<br />
LOG_NEWS&#8211;网络新闻系统<br />
LOG_SYSLOG&#8211;由syslogd（8）产生的内部消息<br />
LOG_USER&#8211;随机用户进程产生的消息<br />
LOG_UUCP&#8211;UUCP子系统<br />
LOG_LOCAL0~LOG_LOCAL7&#8211;为本地使用保留</p>
<p>Syslog为每个事件赋予几个不同的优先级：</p>
<p>LOG_EMERG&#8211;紧急情况<br />
LOG_ALERT&#8211;应该被立即改正的问题，如系统数据库破坏<br />
LOG_CRIT&#8211;重要情况，如硬盘错误<br />
LOG_ERR&#8211;错误<br />
LOG_WARNING&#8211;警告信息<br />
LOG_NOTICE&#8211;不是错误情况，但是可能需要处理<br />
LOG_INFO&#8211;情报信息<br />
LOG_DEBUG&#8211;包含情报的信息，通常旨在调试一个程序时使用</p>
<p>syslog.conf文件指明syslogd程序纪录日志的行为，该程序在启动时查询配置文件。该文件由不同程序或消息分类的单个条目组成，每个占一行。对每类消息提供一个选择域和一个动作域。这些域由tab隔开：选择域指明消息的类型和优先级；动作域指明syslogd接收到一个与选择标准相匹配的消息时所执行的动作。每个选项是由设备和优先级组成。当指明一个优先级时，syslogd将纪录一个拥有相同或更高优先级的消息。所以如果指明&#8221;crit&#8221;，那所有标为crit、alert和emerg的消息将被纪录。每行的行动域指明当选择域选择了一个给定消息后应该把他发送到哪儿。例如，如果想把所有邮件消息纪录到一个文件中，如下：</p>
<p>#Log all the mail messages in one place<br />
mail.* /var/log/maillog</p>
<p>其他设备也有自己的日志。UUCP和news设备能产生许多外部消息。它把这些消息存到自己的日志（/var/log/spooler）中并把级别限为&#8221;err&#8221;或更高。例如：</p>
<p># Save mail and news errors of level err and higher in aspecial file.<br />
Uucp,news.crit /var/log/spooler</p>
<p>当一个紧急消息到来时，可能想让所有的用户都得到。也可能想让自己的日志接收并保存。</p>
<p>#Everybody gets emergency messages， plus log them on anther machine<br />
*.emerg *<br />
*.emerg @linuxaid.com.cn</p>
<p>alert消息应该写到root和tiger的个人账号中：</p>
<p>#Root and Tiger get alert and higher messages<br />
*.alert root,tiger</p>
<p>有时syslogd将产生大量的消息。例如内核（&#8221;kern&#8221;设备）可能很冗长。用户可能想把内核消息纪录到/dev/console中。下面的例子表明内核日志纪录被注释掉了：</p>
<p>#Log all kernel messages to the console<br />
#Logging much else clutters up the screen<br />
#kern.* /dev/console</p>
<p>用户可以在一行中指明所有的设备。下面的例子把info或更高级别的消息送到/var/log/messages，除了mail以外。级别&#8221;none&#8221;禁止一个设备：</p>
<p>#Log anything（except mail）of level info or higher<br />
#Don&#8217;t log private authentication messages!<br />
*.info:mail.none;authpriv.none /var/log/messages</p>
<p>在有些情况下，可以把日志送到打印机，这样网络入侵者怎么修改日志都没有用了。通常要广泛纪录日志。Syslog设备是一个攻击者的显著目标。一个为其他主机维护日志的系统对于防范服务器攻击特别脆弱，因此要特别注意。</p>
<p>有个小命令logger为syslog（3）系统日志文件提供一个shell命令接口，使用户能创建日志文件中的条目。用法：logger 例如：logger This is a test！</p>
<p>它将产生一个如下的syslog纪录：Aug 19 22:22:34 tiger: This is a test!</p>
<p>注意不要完全相信日志，因为攻击者很容易修改它的。</p>
<p>5. 程序日志</p>
<p>许多程序通过维护日志来反映系统的安全状态。Su命令允许用户获得另一个用户的权限，所以它的安全很重要，它的文件为sulog。同样的还有sudolog。另外，想Apache有两个日志：access_log和error_log。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.78wd.com/about-log-for-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux&#8217;s command</title>
		<link>http://www.78wd.com/linuxs-command/</link>
		<comments>http://www.78wd.com/linuxs-command/#comments</comments>
		<pubDate>Wed, 31 Aug 2005 15:24:19 +0000</pubDate>
		<dc:creator>pangel</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[command]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://www.78wd.com/linuxs-command/</guid>
		<description><![CDATA[1.按q键或者ctrl+c退出,在linux下可以使用ctrl+c终止当前程序运行 　　2.ls 查看目录或者文件的属*,列举出任一目录下面的文件 　　eg: ls /usr/man 　　ls -l 　　a.d表示目录(directory),如果是一个&#8221;-&#8221;表示是文件,如果是l则表示是一个连接文件(link) 　　b.表示文件或者目录许可权限.分别用可读(r),可写(w),可运行(x). 　　3.cp 拷贝文件 　　eg: cp filename1 filename2 //把filename1拷贝成filename2 　　cp 1.c netseek/2.c //将1.c拷到netseek目录下命名为2.c 　　4.rm 删除文件和目录 　　$rm 1.c //将1.c这个文件删除 $rm -ir /vpidc #删除目录vpidc，并询问是否真的要删除。 　　5.mv 移走目录或者改文件名 　　eg: mv filename1 filename2 //将filename1 改名为filename2 　　mv qib.tgz &#8230; <a href="http://www.78wd.com/linuxs-command/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>1.按q键或者ctrl+c退出,在linux下可以使用ctrl+c终止当前程序运行</p>
<p>　　2.<strong>ls</strong> 查看目录或者文件的属*,列举出任一目录下面的文件<br />
　　eg: ls /usr/man<br />
　　ls -l<br />
　　a.d表示目录(directory),如果是一个&#8221;-&#8221;表示是文件,如果是l则表示是一个连接文件(link)<br />
　　b.表示文件或者目录许可权限.分别用可读(r),可写(w),可运行(x).</p>
<p>　　3.<strong>cp</strong> 拷贝文件<br />
　　eg: cp filename1 filename2 //把filename1拷贝成filename2<br />
　　cp 1.c netseek/2.c //将1.c拷到netseek目录下命名为2.c</p>
<p>　　4.<strong>rm</strong> 删除文件和目录<br />
　　$rm 1.c //将1.c这个文件删除<br />
$rm -ir /vpidc #删除目录vpidc，并询问是否真的要删除。</p>
<p>　　5.<strong>mv</strong> 移走目录或者改文件名<br />
　　eg: mv filename1 filename2 //将filename1 改名为filename2<br />
　　mv qib.tgz ../qib.tgz //移到上一级目录</p>
<p>　　6.<strong>cd</strong> 改变当前目录 pwd 查看当前所在目录完整路径<br />
　　eg: pwd //查看当前所在目录路径<br />
　　cd netseek //进入netseek这个目录<br />
　　cd //退出当前目录</p>
<p>7.<strong>cat,more</strong>命令<br />
　　将某个文件的内容显示出来.两个命令所不同的是:cat把文件内容一直打印出来,而 more则分屏显示<br />
　　eg; cat&gt;1.c //就可以把代码粘帖到1.c文件里，按ctrl+d 保存代码。<br />
　　cat 1.c 或more 1.c //都可以查看里面的内容。<br />
　　gcc -o 1 1.c //将1.c编译成.exe文件，我们可以用此命编译出代码</p>
<p>　　8.<strong>chmod</strong> 命令 权限修改 用法：chmod 一位8进制数 filename<br />
　　eg: chmod u+x filenmame //只想给自己运行，别人只能读<br />
　　//u表示文件主人, g 表示文件文件所在组. o 表示其他人 ;r 表可读,w 表可写,x 表可以运行<br />
　　chmod g+x filename //同组的人来执行</p>
<p>　　9. <strong>clear,date</strong>命令<br />
clear:清屏,相当与DOS下的cls;date:显示当前时间.</p>
<p>　　10.<strong>mount</strong> 加载一个硬件设备<br />
　　用法:mount [参数] 要加载的设备 载入点<br />
　　eg: mount /dev/cdrom<br />
　　cd /mnt/cdrom //进入光盘目录</p>
<p>　　11.<strong>su</strong> 在不退出登陆的情况下,切换到另外一个人的身份<br />
　　用法: su -l 用户名(如果用户名缺省,则切换到root状态)<br />
　　eg:su -l netseek (切换到netseek这个用户，将提示输入密码)</p>
<p>　　12.<strong>whoami,whereis,which,id </strong><br />
　　//whoami:确认自己身份.<br />
　　//whereis:查询命令所在目录以及帮助文档所在目录.<br />
　　//which:查询该命令所在目录(类似whereis)<br />
　　//id:打印出自己的UID以及GID.(UID:用户身份唯一标识.GID:用户组身份唯一标识.每一个用户只能有一个唯一的UID和 GID)<br />
　　eg: whoami //显示你自已登陆的用户名<br />
　　whereis bin 显示bin所在的目录, 将显示为：/usr/local/bin<br />
　　which bin</p>
<p>　　13. <strong>grep,find </strong><br />
grep:文本内容搜索;find:文件或者目录名以及权限属主等匹配搜索<br />
　　eg: grep success * 　　/*查找当前目录下面所有文件里面含有success字符的文件</p>
<p>　　14.<strong>kill </strong>可以杀死某个正在进行或者已经是dest状态的进程<br />
　　eg; ps ax</p>
<p>　　15.<strong>passwd</strong> 可以设置口令</p>
<p>　　16.history 用户用过的命令<br />
　　eg: history //可以显示用户过去使用的命令</p>
<p>　　17.<strong>!!</strong> 执行最近一次的命令</p>
<p>　　18.<strong>mkdir</strong>命令<br />
　　eg: mkdir netseek //创建netseek这个目录</p>
<p>　　19.<strong>tar</strong> 解压命令<br />
　　eg: tar -zxvf nmap-3.45.tgz //将这个解压到nmap-3.45这个目录里</p>
<p>例1：把/home目录下包括它的子目录全部做备份文件，备份文件名为usr.tar。</p>
<p>$ tar cvf usr.tar /home</p>
<p>例2：把usr.tar这个备份文件还原</p>
<p>$ tar xvf usr.tar</p>
<p>例3：展开 abc.tar.gz 使用命令： tar xvzf abc.tar.gz 展开 abc.tar 使用命令： tar xvf abc.tar</p>
<p>例4：压缩一个tar备份文件，如usr.tar，此时压缩文件的扩展名为.tar.gz</p>
<p>$ gzip usr.tar</p>
<p>　　20.<strong>finger</strong> 可以让使用者查询一些其他使用者的资料<br />
　　eg: finger //查看所用用户的使用资料<br />
　　finger root //查看root的资料</p>
]]></content:encoded>
			<wfw:commentRss>http://www.78wd.com/linuxs-command/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk
Page Caching using disk (enhanced) (user agent is rejected)

Served from: www.78wd.com @ 2012-02-10 03:19:40 -->
