Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4634655
  • 博文数量: 671
  • 博客积分: 10010
  • 博客等级: 上将
  • 技术积分: 7310
  • 用 户 组: 普通用户
  • 注册时间: 2006-07-14 09:56
文章分类

全部博文(671)

文章存档

2011年(1)

2010年(2)

2009年(24)

2008年(271)

2007年(319)

2006年(54)

我的朋友

分类: LINUX

2006-11-28 11:23:22

改变LILO、GRUB的默认启动顺序

    编辑LILO的配置文件/etc/lilo.conf,更改“default=dos”值后存盘退出,或者使用命令“lilo -D dos”(以上两种方式都是将标识为dos的操作系统设置为默认启动系统)。

    GRUB是一个免费的多功能启动系统控制器,其配置文件为/boot/grup/menu.lst,其中的default值以0、1、2…表示默认启动随后的第1、2或第3个操作系统,修改default的值就可以更改系统的默认启动顺序了。

图形界面和文字界面启动系统方式的切换

    编辑/etc/inittab文件,将其中“id:5:initdefault:”一行中的5改为3,重启系统即可。反之,将3改成5则表示选用图形界面启动方式。

手工加入windows启动项

title Windows at hde1

rootnoverify (hd0,0)

chainloader +1

savedefault

- 作者: redcat8850 2005年07月30日, 星期六 09:54  |  加入博采



GRUB引导:

进入GRUB界面,按 e  编辑,在随后的界面中选择 kernel=XXXX 后按 e 编辑,在最后进入 s(空格 s),按ESC键回到前一个界面后,按 b 重新启动;后用passwd修改密码;

LILO引导:

进入LiLo界面,按  Ctrl+x进入命令,在BOOT:处键入linux single.

- 作者: redcat8850 2005年07月30日, 星期六 09:31  |  加入博采

文章摘自:
#fdisk /dev/hda -l > /tmp/hda.txt

备份MBR
#dd if =/dev/hda of=/tmp/mbr bs=512 count=1

主引导记录512字节,前446是程序代码,后64字节包含分区表信息,最后2字节标识是MBR

恢复分区表
#dd if=/tmp/mbr of=/dev/hda bs=1 skip=446 count=66


- 作者: redcat8850 2005年03月8日, 星期二 21:55  |  加入博采

摘帖自:
RHEL AS 4系统应用:web服务器篇

前言
  1、以下所有应用均在本人的机器所装的rhel4上调试通过。
  2、本人不能保证你的系统完全适合本文,并如果按此操作给你的系统造成的不良后果本人不负任何责任。
3、本文撰写过程中,参考了网上的一些帖子和文章,无法一一列出作者姓名,在此对这些作者深表谢意!
4、文中肯定有不少错误之处,敬请指正!
5、感谢您的阅读!


  RHEL AS 4作为企业级操作系统,安装光盘自然包含基本的web服务器程序。为学习服务器配置,我们打算抛开其安装光盘,从网上下载当今web服务器所需的较新版本,自已一步一步进行配置安装,尽情享受DIY的乐趣!
  进行下列工作前,请确定你的系统未安装系统自带的web服务器。

  一、WEB服务器(Apache Ver2.0.53)
  Apache v2.0.53 for Linux:最流行的HTTP服务器软件之一,完全免费,完全源代码开放,如果你需要创建一个每天有数百万人访问的Web服务器,Apache可能是最佳选择。
  1、下载

  2、安装
  (1)解压缩
  将下载的Apache2.tar.gz压缩包解压至一临时目录如/usr/local/src/
  (2)编译安装
  进入刚解压的目录内。
  假如想把Apache2放在/usr/local/apache下,则:
  #./configure --prefix=/usr/local/apache
  (注意呀,不要在上行的最后加"/"号)
  #make
  #make install
安装完毕
(3)启动
  #/usr/local/apache/bin/apachectl start
  3、测试
  打开你的Firefox浏览器,在地址栏输入,回车。
  呵呵,看到那熟悉的彩色鹅毛logo吧。恭喜你,第一步进行得非常顺利!
  4、配置
  现在你的Apache服务器的配置文件是/usr/local/apache/conf/httpd.conf
  编辑该文件:
  (1)将用户web目录改成/var/www/html(以后var/www/html目录就是你的web文件存放地了,当然,你也可以指定为其他目录)
  307行附近用#注销DocumentRoot "/usr/local/apache/htdocs"
  下面加上一行:
代码:
DocumentRoot "/var/www/html"

  (2)加上缺省索引文件名index.htm
  396附近DirectoryIndex行后加入index.htm
代码:
DirectoryIndex index.html index.html.var index.htm

  (3)保存退出
  (4)重启web服务器:#httpd -k restart
  (命令说明:启动服务器:#httpd -k start
   关闭服务器:#httpd -k stop
  )
  友情提醒:为方便起见,建议创建启动和关闭服务器的桌面链接。
  5、再测
  用vi或文本编辑器编辑如下内容的文件:
代码:


<BR>我的测试页 <BR>


这是我的第一个测试页!

This is my first test webpage!


  保存为/var/www/html/index.htm
  现在再次在firefox浏览器地址栏输入,看到你的测试页了吗。如果出现乱码,调整一下你浏览器的字符编码啊。现在OK了吧。
  小Happy一下!

  二、MySQL数据库(MySQL Ver4.1.10)
  MySQL v4.1.10 for Linux
  一个多线程的、结构化查询语言(SQL)数据库服务器,它执行性能高,运行速度快,易于使用。目前国内不少商业web虚拟主机产品都提供对它的支持。

  1、解压缩mysql安装文件至某一目录。如/usr/local/src/
  2、增加用户组和用户
  #groupadd mysql //添加mysql用户组
  #useradd -g mysql mysql //在mysql用户组中添加用户mysql
  3、创建原程序目录链接
  #cd /usr/local/
  #ln -s /usr/local/src/mysql-standard-4.1.10-pc-linux-gnu-i686/ mysql //在/usr/local/下创建一个到原程序的目录链接
  4、创建mysql的授权表
  #cd mysql
  #scripts/mysql_install_db --user=mysql
  5、mysql目录程序root和mysql用户授权
  #chown -R root .
  #chown -R mysql data
  #chgrp -R mysql .
  6、启动mysql服务
  #cd /usr/local/mysql/support-files/
  #./mysql.server start
  7、测试
  #/usr/local/mysql/bin/mysql
  出现mysql>的提示符了吧。说明mysql安装运行成功了,呵呵。
输入select now();回车,看到如下输出界面了吧。
代码:
 +--------------------------------+
     |NOW()                      |
    +--------------------------------+
     |2005-03-05 20:00:03 |
    +--------------------------------+
     1 row in set (0.00 sec)


  mysql>提示符后输入quit退出
  友情提示:更多的MySQL操作指令,看参阅MySQL手册。
  8、关闭mysql服务
  #/usr/local/mysql/support-files/mysql.server stop
  友情提示:你可以在您的桌面建立打开和关闭MySQL的应用程序链接,以提高你的工作效率。

  三、PHP脚本语言(PHP Ver5.0.3)
  PHP v5.0.3 For Linux
  PHP是一种新型的CGI程序编写语言,易学易用,运行速度快,可以方便快捷地编写出功能强大,运行速度快,并可同时运行于Windows、Unix、 Linux 平台的Web后台程序。
  下载地址:


  1、解压缩文件至/usr/local/src/
  2、进入目录
  #cd /usr/local/src/php-5.0.3
  3、配置
  #./configure --prefix=/usr/local/php5 --with-mysql=/usr/local/mysql --with-mail --with-apxs2=/usr/local/apache/bin/apxs
  4、编译
  #make
  5、安装
  #make install
  6、复制php.ini文件
  #cp php.ini-dist /usr/local/lib/php.ini
  7、编辑/usr/local/apache/conf/httpd.conf
  (1)397附近DirectoryIndex行中加入index.php,变成:
代码:
DirectoryIndex index.php index.html index.html.var index.htm

  (2)827附近的#AddType application/x-tar .tgz下方加入两行:
代码:
AddType application/x-httpd-php .php .phtml
AddType application/x-httpd-php-source .phps

  8、测试
  (1)删除/var/www/html/下index.*文件,编辑index.php保存到这里,内容为:
代码:
phpinfo();
?>

  (2)重启web服务器
  #httpd -k stop
  #httpd -k start
  (3)Firefox地址栏输入,回车。
  看到PHP5配置表了吗?OK,稍事休息,我们还有许多工作要做呢。

  四、MySQL管理工具(phpMyAdmin Ver 2.6.1 RC2)
  phpMyAdmin 2.6.1 RC2 for Linux
  phpMyAdmin 是一套可以用来管理 MySQL-server 以及单一数据库的 PHP 程序,对于不熟悉 MySQL 命令列指令的人来说,是很方便的管理工具。

  1、安装
  直接解压缩下载的phpMyAdmin-2.6.1-rc2.tar.gz至/var/www/html/下,并将目录phpMyAdmin-2.6.1-rc2改名为phpMyAdmin。
  2、使用
  在确保Apache服务器已经启动。
  打开Firefox浏览器,地址栏输入:phpMyAdmin,回车
  出现phpMyAdmin的主界面了吧。
  3、建议
  为安全起见,建议立即按下列步骤更改MySQL的root登录密码。
  (1)在第一个页面中央表格root记录右侧人头像图标点击。
  (2)打开权限编辑页面。在中央"更改密码"文本框中输入两次密码,点击"执行"。
  (3)用编辑器打开/var/www/html/phpMyAdmin/config.inc.php
  第85行$cfg['Servers'][$i]['password']后面的单引号内填入刚才的密码。保存退出。
  这样你就可以自动登录了。
  (4)如果你想手动登录,请修改该文件以下变量值:
  第60行:$cfg['blowfish_secret'] = 'cookie';
  第83行:$cfg['Servers'][$i]['auth_type'] = 'cookie';
  第85行:$cfg['Servers'][$i]['password'] = '';
  保存退出。

  五、Zend Optimizer(V.2.5.5)
  它是PHP的优化器及其伪编译脚本的解码器。所有的PHP脚本文件经ZendEncoder伪编译后,会生成不可逆的二进制格式文件,我们只要上传编译过的文件到服务器,其他人便无法查看该脚本程序了,起到了相当好的加密作用。同时,经伪编译过的PHP脚本可以大幅提高执行效率(本人没有测试验证过Smile)。
而安装过Zend Optimizer的Apache,不管PHP文件是否经伪编译处理,都可以正常解析运行。反之,伪编译处理过的PHP文件将只会在你的浏览器里输出一堆乱码。

  1、下载软件
  你需要下载Zend Optimizer V2.5.5以上版本,以支持PHP5。
  Zend Optimizer V2.5.5 For Linux

  2、准备工作
  解压缩.rar后,再解压缩里头的.tar.gz文件至某目录。
  3、正式安装
  进入该目录,运行./install.sh。
  出现终端图形化安装界面,一路回车,其中有两处需要指定路径的,检查缺省是否与你的机器实现路径相符,不同则改之。如Specify the Apache bin directory,变更下方路径为你的Apache的bin目录:/usr/local/apache/bin。之后,又是一路回车至最后提示安装成功并重启apache。
  Zend的安装目录一般为/usr/local/Zend/。
  4、测试安装
  上述第三节第8步编辑的内容为phpinfo()的index.php文件应该还在你的/var/www/html/目录下吧。
  在Firefox地址栏中输入,回车。在不滚动的屏幕下方Zend Engine2图标左侧是否看到下列文字段:
This program makes use of the Zend Scripting Language Engine:
Zend Engine v2.0.3, Copyright (c) 1998-2004 Zend Technologies
with Zend Extension Manager v1.0.4, Copyright (c) 2003-2004, by Zend Technologies
with Zend Optimizer v2.5.5, Copyright (c) 1998-2004, by Zend Technologies

  如果有,则说明安装成功,此时在滚动屏幕可以看到有Zend Optimizer参数表格。
  如果没有上方文字的后面两行,则说明安装有问题。最有可以的是Zend Optimizer没有找到你的php.ini文件。在上述文字段上方表格找到Configuration File (php.ini) Path后面的具体路径,将你的php.ini复制过去,然后重启Apache,一般可以解决。
  友情告知:你可以在你的机器内安装ZendEncoder软件,使用它你就可以将PHP网页文件进行伪编译了。这里不打算述及ZendEncoder的安装使用问题,否则就离题有点远啦。

  六、java开发工具包(J2SDK Ver.1.4.2)
  为提供服务器对jsp脚本语言的支持,我们还必须安装Java开发工具包。
  1、安装
  J2SDK的安装,详见我的另一篇文章(第七节)

2、配置
编辑~/.bash_profile文件,在最后位置加入如下几行:
代码:
JAVA_HOME=/usr/share/j2sdk1.4.2
PATH=$JAVA_HOME:$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH JAVA_HOME CLASSPATH

  3、测试
  (1)用文本编辑器编辑HelloWorldApp.java,内容为:
代码:
class HelloWorldApp
{
   public static void main (String args[])
  {
      System.out.println("Hello,World!");
  }
}

  (2)编译:#javac HelloWorldApp.java
  (3)运行:#java HelloWorldApp
  如果输出一行Hello,World!,说明安装配置成功!

  七、Tomcat(Tomcat 5.0.30)
  Tomcat是在SUN的JSWDK的基础上发展起来的另一个优秀的JSP服务器,它不但支持Servlet,而且还提供了Web服务器的功能。
  1、下载:

  2、安装:
解压缩下载的包至/usr/local/下,建议更目录名为tomcat5.0.30。
  3、启动:
#/usr/local/tomcat5.0.30/bin/startup.sh
  4、测试:
  Firefox地址栏输入:,回车。
  如果看到左上角有只漂亮的小猫咪,就说明OK了。

  八、Tomcat与Apache的整合器(jakarta-tomcat-connectors Ver.2.0.4)
  1、下载
http://apache.linuxforum.net/dist/jakarta/tomcat-connectors/jk2/jakarta-tomcat-connectors-jk2-src-current.tar.gz
2、安装
(1)解压缩下载的包至/usr/local/src/下。
(2)进入目录
#cd /usr/local/src/jakarta-tomcat-connectors-jk2-2.0.4-src/jk/native2
(3)编译安装
#./configure --with-apxs2=/usr/local/apache/bin/apxs
#make
#cd ../build/jk2/apache2
#/usr/local/apache/bin/apxs -n jk2 -i mod_jk2.so
(4)编辑Apache配置文件/usr/local/apache/conf/httpd.conf
在LoadModule段加入如下一行:
代码:
LoadModule jk2_module modules/mod_jk2.so

  (5)在/usr/local/apache/conf/目录下编辑保存一个名为workers2.properties的文本文件,内容为:
代码:
[logger]
level=ERROR

[config:]
file=/usr/local/apache2/conf/workers2.properties
debug=0
debugEnv=0

# Alternate file logger
[logger.file]
#level=DEBUG
level=ERROR
file=/var/log/httpd/jk2.log

[shm:]
info=Scoreboard. Required for reconfiguration and status with multiprocess servers
file=/var/log/httpd/jk2.shm
size=1048576
debug=0
disabled=0

[channel.socket:localhost:8009]
info=Ajp13 forwarding over socket
debug=0
tomcatId=localhost:8009
keepalive=1

[ajp13:localhost:8009]
channel=channel.socket:localhost:8009
debug=0

[status:]
info=Status worker, displays runtime informations

[uri:/jkstatus/*]
info=Display status information and checks the config file for changes.
worker=ajp13:localhost:8009

[uri:/*.jsp]
worker=ajp13:localhost:8009
context=/

(6)修改/usr/local/tomcat5.0.30/conf/server.xml,在

下方加入这行:
代码:


保存退出。
(7)测试
A)方法一:Firefox地址栏输入examples/,看到JSP Samples及其两列图标链接了吧。
B)方法二:在/var/www/html/下编辑一test.jsp文件,内容为以下五行:
代码:
<%@ page language="java" contentType="text/html;charset=gb2312"%>
<%
out.print("This is JSP's test page!

");
%>
Hello! The time is now <%= new java.util.Date() %>

再在Firefox地址栏输入test.jsp,有输出下面两行文字吗?
This is JSP's test page!
Hello! The time is now Wed Mar 09 02:34:15 CST 2005

OK,所有的工作就告一段落了,大功告成!

web服务器建设是一项十分繁杂的工作,以上只是初步完成在本机调试HTML、PHP、JSP及其调用MySQL的服务器环境。
要真正完成在Internet上实际应用的web服务器,毫无疑问还有很多工作要做。

- 作者: redcat8850 2005年03月8日, 星期二 21:49  |  加入博采

转自珊瑚虫论坛 %3D1


Hotmail信箱最大的缺点就是不快,因为服务器在国外。不过,某些类型的邮件用Hotmail信箱来收,效果却比较好。
    登录Hotmail信箱,点击"选项"→"个人"→"我的档案文件"后,将"国家(地区)"设置为"英国",将"州"设置为"England",在"邮政编码"后面输入"441003",然后点击"更新"按钮。当出现"您的档案文件已更新"页面,点击"继续"按钮,将"" 网址放到地址栏里回车,在出现成员服务的页面上,点击"关闭.NETPassport账户"链接,在打开的页面中点击"与Hotmail联系"按钮后,点击"关闭账户"按钮。出现"确认关闭账户"页面,不管它,把"http://"输入到地址栏里回车,接着输入 Hotmail信箱的帐户名和密码,进入激活账户页面,点击"激活账户"按钮,在新的页面里点击"我接受"按钮后就进入到自己的信箱了。
    进入邮箱后可发现容量已变成25M,大概一个星期左右会变成250M,每个邮件上传附件为10M。本猫猫屡试不爽。

另:MSN后缀的邮箱好像不行。国外对未成年人保护得厉害,大家不要把年龄的资料改得过小,否则有时会进入另外个链接要你的父母也登陆他们的hotmail邮箱来证实允许你这个小孩用邮箱。晕死,我也遇到过

- 作者: redcat8850 2005年02月23日, 星期三 23:07  |  加入博采

作为一个多用户、多任务的操作系统,Linux下的文件一旦被删除,是难以恢复的。尽管删除命令只是在文件节点中作删除标记,并不真正清除文件内容,但是
其他用户和一些有写盘动作的进程会很快覆盖这些数据。不过,对于家庭单机使用的Linux,或者误删文件后及时补救,还是可以恢复的。转自
1.Ext2文件系统结构的简单介绍
在Linux所用的Ext2文件系统中,文件是以块为单位存储的,默认情况下每个块的大小是1K,不同的块以块号区分。每个文件还有一个节点,节点中包含有文件所有者,读写权限,文件类型等信息。对于一个小于12个块的文件,在节点中直接存储文件数据块的块号。如果文件大于12个块,那么节点在12个块号之后存储一个间接块的块号,在这个间接块号所对应的块中,存储有256个文件数据块的块号(Ext2fs中每个块号占用4字节,这样一个块中所能存储的块号就是1024/4=256)。如果有更大的文件,那么还会在节点中出现二级间接块和三级间接块。

2。恢复被误删文件的方法
大多数Linux发行版都提供一个debugfs工具,可以用来对Ext2文件系统进行编辑操作。不过在使用这个工具之前,还有一些工作要做。
首先以只读方式重新挂载被误删的文件所在分区。使用如下命令:(假设文件在/usr分区)
mount -r -n -o remount /usr
-r表示只读方式挂载;-n表示不写入/etc/mtab,如果是恢复/etc上的文件,就加上这个参数。如果系统说xxx partion busy,可以用fuser命令查看一下是哪些进程使用这个分区上的文件:
fuser -v -m /usr
如果没有什么重要的进程,用以下命令停掉它们:
fuser -k -v -m /usr
然后就可以重新挂载这些文件系统了。
如果是把所有的文件统一安装在一个大的/分区当中,可以在boot提示符下用linux single进入单用户模式,尽量减少系统进程向硬盘写入数据的机会,要不干脆把硬盘挂在别的机器上。另外,恢复出来的数据不要写到/上面,避免破坏那些有用的数据。如果机器上有dos/windows,可以写到这些分区上面:
mount -r -n /dev/hda1 /mnt/had
然后就可以执行debugfs:(假设Linux在 /dev/hda5)
#debugfs /dev/hda5
就会出现debugfs提示符debugfs:
使用lsdel命令可以列出很多被删除的文件的信息:
debugfs:lsdel
debugfs: 2692 deleted inodes found.
Inode Owner Mode Size Blocks Time deleted
164821 0 100600 8192 1/ 1 Sun May 13 19:22:46 2001
.............................................................................................
36137 0 100644 4 1/ 1 Tue Apr 24 10:11:15 2001
196829 0 100644 149500 38/ 38 Mon May 27 13:52:04 2001

debugfs:
列出的文件有很多(这里找到2692个),第一字段是文件节点号,第二字段是文件所有者,第三字段是读写权限,接下来是文件大小,占用块数,删除时间。然后就可以根据文件大小和删除日期判断那些是我们需要的。比如我们要恢复节点是196829的文件:
可以先看看文件数据状态:
debugfs:stat <196829>
Inode: 196829 Type: regular Mode: 0644 Flags: 0x0 Version: 1
User: 0 Group: 0 Size: 149500
File ACL: 0 Directory ACL: 0
Links: 0 Blockcount: 38
Fragment: Address: 0 Number: 0 Size: 0
ctime: 0x31a9a574 -- Mon May 27 13:52:04 2001
atime: 0x31a21dd1 -- Tue May 21 20:47:29 2001
mtime: 0x313bf4d7 -- Tue Mar 5 08:01:27 2001
dtime: 0x31a9a574 -- Mon May 27 13:52:04 2001
BLOCKS:
594810 594811 594814 594815 594816 594817 ........................................
TOTAL: 38
然后就可以用dump指令恢复文件:
debugfs:dump <196829> /mnt/hda/01.sav
这样就把文件恢复出来了。退出debugfs:
debugfs:quit
另一种方法是手工编辑inode:
debugfs:mi <196829>
Mode [0100644]
User ID [0]
Group ID [0]
Size [149500]
Creation time [0x31a9a574]
Modification time [0x31a9a574]
Access time [0x31a21dd1]
Deletion time [0x31a9a574] 0
Link count [0] 1
Block count [38]
File flags [0x0]
Reserved1 [0]
File acl [0]
Directory acl [0]
Fragment address [0]
Fragment number [0]
Fragment size [0]
Direct Block #0 [594810]
..................................
Triple Indirect Block [0]
使用mi指令后每次显示一行信息以供编辑,其它行可以直接按回车表示确认,把deletion time改成0(未删除),Link count改成1。改好后退出debugfs:
debugfs:quit
然后用fsck检查/dev/hda5
fsck /dev/hda5
程序会说找到丢失的数据块,放在lost+found里面。这个目录里的文件就是我们要的东东。
Now all O.K. Good Luck.

- 作者: redcat8850 2005年02月3日, 星期四 23:24  |  加入博采

- 作者: redcat8850 2005年02月3日, 星期四 23:10  |  加入博采

摘要
  nmap是一个网络探测和安全扫描程序,系统管理者和个人可以使用这个软件扫描大型的网络,获取那台主机正在运行以及提供什么服务等信息。nmap支持很多扫描技术,例如:UDP、TCP connect()、TCP SYN(半开扫描)、ftp代理(bounce攻击)、反向标志、ICMP、FIN、ACK扫描、圣诞树(Xmas Tree)、SYN扫描和null扫描。从扫描类型一节可以得到细节。nmap还提供了一些高级的特征,例如:通过TCP/IP协议栈特征探测操作系统类型,秘密扫描,动态延时和重传计算,并行扫描,通过并行ping扫描探测关闭的主机,诱饵扫描,避开端口过滤检测,直接RPC扫描(无须端口影射),碎片扫描,以及灵活的目标和端口设定。

1.名称

nmap-网络探测和安全扫描工具

2.语法

nmap [Scan Type(s)] [Options]

3.描述

  nmap是一个网络探测和安全扫描程序,系统管理者和个人可以使用这个软件扫描大型的网络,获取那台主机正在运行以及提供什么服务等信息。 nmap支持很多扫描技术,例如:UDP、TCP connect()、TCP SYN(半开扫描)、ftp代理(bounce攻击)、反向标志、ICMP、FIN、ACK扫描、圣诞树(Xmas Tree)、SYN扫描和null扫描。从扫描类型一节可以得到细节。nmap还提供了一些高级的特征,例如:通过TCP/IP协议栈特征探测操作系统类型,秘密扫描,动态延时和重传计算,并行扫描,通过并行ping扫描探测关闭的主机,诱饵扫描,避开端口过滤检测,直接RPC扫描(无须端口影射),碎片扫描,以及灵活的目标和端口设定。

  为了提高nmap在non-root状态下的性能,软件的设计者付出了很大的努力。很不幸,一些内核界面(例如raw socket)需要在root状态下使用。所以应该尽可能在root使用nmap。

  nmap运行通常会得到被扫描主机端口的列表。nmap总会给出well known端口的服务名(如果可能)、端口号、状态和协议等信息。每个端口的状态有:open、filtered、unfiltered。open状态意味着目标主机能够在这个端口使用accept()系统调用接受连接。filtered状态表示:防火墙、包过滤和其它的网络安全软件掩盖了这个端口,禁止 nmap探测其是否打开。unfiltered表示:这个端口关闭,并且没有防火墙/包过滤软件来隔离nmap的探测企图。通常情况下,端口的状态基本都是unfiltered状态,只有在大多数被扫描的端口处于filtered状态下,才会显示处于unfiltered状态的端口。

  根据使用的功能选项,nmap也可以报告远程主机的下列特征:使用的操作系统、TCP序列、运行绑定到每个端口上的应用程序的用户名、DNS名、主机地址是否是欺骗地址、以及其它一些东西。

4.功能选项

  功能选项可以组合使用。一些功能选项只能够在某种扫描模式下使用。nmap会自动识别无效或者不支持的功能选项组合,并向用户发出警告信息。

  如果你是有经验的用户,可以略过结尾的示例一节。可以使用nmap -h快速列出功能选项的列表。

4.1 扫描类型

  -sT
  TCP connect()扫描:这是最基本的TCP扫描方式。connect()是一种系统调用,由操作系统提供,用来打开一个连接。如果目标端口有程序监听, connect()就会成功返回,否则这个端口是不可达的。这项技术最大的优点是,你勿需root权限。任何UNIX用户都可以自由使用这个系统调用。这种扫描很容易被检测到,在目标主机的日志中会记录大批的连接请求以及错误信息。
  -sS
  TCP同步扫描(TCP SYN):因为不必全部打开一个TCP连接,所以这项技术通常称为半开扫描(half-open)。你可以发出一个TCP同步包(SYN),然后等待回应。如果对方返回SYN|ACK(响应)包就表示目标端口正在监听;如果返回RST数据包,就表示目标端口没有监听程序;如果收到一个SYN|ACK包,源主机就会马上发出一个RST(复位)数据包断开和目标主机的连接,这实际上有我们的操作系统内核自动完成的。这项技术最大的好处是,很少有系统能够把这记入系统日志。不过,你需要root权限来定制SYN数据包。
  -sF -sF -sN
  秘密FIN数据包扫描、圣诞树(Xmas Tree)、空(Null)扫描模式:即使SYN扫描都无法确定的情况下使用。一些防火墙和包过滤软件能够对发送到被限制端口的SYN数据包进行监视,而且有些程序比如synlogger和courtney能够检测那些扫描。这些高级的扫描方式可以逃过这些干扰。这些扫描方式的理论依据是:关闭的端口需要对你的探测包回应RST包,而打开的端口必需忽略有问题的包(参考RFC 793第64页)。FIN扫描使用暴露的FIN数据包来探测,而圣诞树扫描打开数据包的FIN、URG和PUSH标志。不幸的是,微软决定完全忽略这个标准,另起炉灶。所以这种扫描方式对Windows95/NT无效。不过,从另外的角度讲,可以使用这种方式来分别两种不同的平台。如果使用这种扫描方式可以发现打开的端口,你就可以确定目标注意运行的不是Windows系统。如果使用-sF、-sX或者-sN扫描显示所有的端口都是关闭的,而使用SYN扫描显示有打开的端口,你可以确定目标主机可能运行的是Windwos系统。现在这种方式没有什么太大的用处,因为nmap有内嵌的操作系统检测功能。还有其它几个系统使用和windows同样的处理方式,包括Cisco、BSDI、HP/UX、MYS、IRIX。在应该抛弃数据包时,以上这些系统都会从打开的端口发出复位数据包。
  -sP
  ping扫描:有时你只是想知道此时网络上哪些主机正在运行。通过向你指定的网络内的每个IP地址发送ICMP echo请求数据包,nmap就可以完成这项任务。如果主机正在运行就会作出响应。不幸的是,一些站点例如:microsoft.com阻塞ICMP echo请求数据包。然而,在默认的情况下nmap也能够向80端口发送TCP ack包,如果你收到一个RST包,就表示主机正在运行。nmap使用的第三种技术是:发送一个SYN包,然后等待一个RST或者SYN/ACK包。对于非root用户,nmap使用connect()方法。
  在默认的情况下(root用户),nmap并行使用ICMP和ACK技术。
  注意,nmap在任何情况下都会进行ping扫描,只有目标主机处于运行状态,才会进行后续的扫描。如果你只是想知道目标主机是否运行,而不想进行其它扫描,才会用到这个选项。
  -sU
  UDP扫描:如果你想知道在某台主机上提供哪些UDP(用户数据报协议,RFC768)服务,可以使用这种扫描方法。nmap首先向目标主机的每个端口发出一个0字节的UDP包,如果我们收到端口不可达的ICMP消息,端口就是关闭的,否则我们就假设它是打开的。
  有些人可能会想UDP扫描是没有什么意思的。但是,我经常会想到最近出现的solaris rpcbind缺陷。rpcbind隐藏在一个未公开的UDP端口上,这个端口号大于32770。所以即使端口111(portmap的众所周知端口号) 被防火墙阻塞有关系。但是你能发现大于30000的哪个端口上有程序正在监听吗?使用UDP扫描就能!cDc Back Orifice的后门程序就隐藏在Windows主机的一个可配置的UDP端口中。不考虑一些通常的安全缺陷,一些服务例如:snmp、tftp、NFS 使用UDP协议。不幸的是,UDP扫描有时非常缓慢,因为大多数主机限制ICMP错误信息的比例(在RFC1812中的建议)。例如,在Linux内核中 (在net/ipv4/icmp.h文件中)限制每4秒钟只能出现80条目标不可达的ICMP消息,如果超过这个比例,就会给1/4秒钟的处罚。 solaris的限制更加严格,每秒钟只允许出现大约2条ICMP不可达消息,这样,使扫描更加缓慢。nmap会检测这个限制的比例,减缓发送速度,而不是发送大量的将被目标主机丢弃的无用数据包。
  不过Micro$oft忽略了RFC1812的这个建议,不对这个比例做任何的限制。所以我们可以能够快速扫描运行Win95/NT的主机上的所有65K个端口。
  -sA
  ACK扫描:这项高级的扫描方法通常用来穿过防火墙的规则集。通常情况下,这有助于确定一个防火墙是功能比较完善的或者是一个简单的包过滤程序,只是阻塞进入的SYN包。
  这种扫描是向特定的端口发送ACK包(使用随机的应答/序列号)。如果返回一个RST包,这个端口就标记为unfiltered状态。如果什么都没有返回,或者返回一个不可达ICMP消息,这个端口就归入filtered类。注意,nmap通常不输出unfiltered的端口,所以在输出中通常不显示所有被探测的端口。显然,这种扫描方式不能找出处于打开状态的端口。
  -sW
  对滑动窗口的扫描:这项高级扫描技术非常类似于ACK扫描,除了它有时可以检测到处于打开状态的端口,因为滑动窗口的大小是不规则的,有些操作系统可以报告其大小。这些系统至少包括:某些版本的AIX、Amiga、BeOS、BSDI、Cray、Tru64 UNIX、DG/UX、OpenVMS、Digital UNIX、OpenBSD、OpenStep、QNX、Rhapsody、SunOS 4.x、Ultrix、VAX、VXWORKS。从nmap-hackers邮件3列表的文档中可以得到完整的列表。
  -sR
  RPC扫描。这种方法和nmap的其它不同的端口扫描方法结合使用。选择所有处于打开状态的端口向它们发出SunRPC程序的NULL命令,以确定它们是否是RPC端口,如果是,就确定是哪种软件及其版本号。因此你能够获得防火墙的一些信息。诱饵扫描现在还不能和RPC扫描结合使用。
  -b
  FTP反弹攻击(bounce attack):FTP协议(RFC 959)有一个很有意思的特征,它支持代理FTP连接。也就是说,我能够从evil.com连接到FTP服务器target.com,并且可以要求这台 FTP服务器为自己发送Internet上任何地方的文件!1985年,RFC959完成时,这个特征就能很好地工作了。然而,在今天的Internet 中,我们不能让人们劫持FTP服务器,让它向Internet上的任意节点发送数据。如同Hobbit在1995年写的文章中所说的,这个协议"能够用来做投递虚拟的不可达邮件和新闻,进入各种站点的服务器,填满硬盘,跳过防火墙,以及其它的骚扰活动,而且很难进行追踪"。我们可以使用这个特征,在一台代理FTP服务器扫描TCP端口。因此,你需要连接到防火墙后面的一台FTP服务器,接着进行端口扫描。如果在这台FTP服务器中有可读写的目录,你还可以向目标端口任意发送数据(不过nmap不能为你做这些)。
  传递给-b功能选项的参数是你要作为代理的FTP服务器。语法格式为:
  -b username:password@server:port。
  除了server以外,其余都是可选的。如果你想知道什么服务器有这种缺陷,可以参考我在Phrack 51发表的文章。还可以在nmap的站点得到这篇文章的最新版本。

4.2 通用选项

  这些内容不是必需的,但是很有用。

  -P0
  在扫描之前,不必ping主机。有些网络的防火墙不允许ICMP echo请求穿过,使用这个选项可以对这些网络进行扫描。microsoft.com就是一个例子,因此在扫描这个站点时,你应该一直使用-P0或者-PT 80选项。
  -PT
  扫描之前,使用TCP ping确定哪些主机正在运行。nmap不是通过发送ICMP echo请求包然后等待响应来实现这种功能,而是向目标网络(或者单一主机)发出TCP ACK包然后等待回应。如果主机正在运行就会返回RST包。只有在目标网络/主机阻塞了ping包,而仍旧允许你对其进行扫描时,这个选项才有效。对于非 root用户,我们使用connect()系统调用来实现这项功能。使用-PT <端口号>来设定目标端口。默认的端口号是80,因为这个端口通常不会被过滤。
  -PS
  对于root用户,这个选项让nmap使用SYN包而不是ACK包来对目标主机进行扫描。如果主机正在运行就返回一个RST包(或者一个SYN/ACK包)。
  -PI
  设置这个选项,让nmap使用真正的ping(ICMP echo请求)来扫描目标主机是否正在运行。使用这个选项让nmap发现正在运行的主机的同时,nmap也会对你的直接子网广播地址进行观察。直接子网广播地址一些外部可达的IP地址,把外部的包转换为一个内向的IP广播包,向一个计算机子网发送。这些IP广播包应该删除,因为会造成拒绝服务攻击(例如 smurf)。
  -PB
  这是默认的ping扫描选项。它使用ACK(-PT)和ICMP(-PI)两种扫描类型并行扫描。如果防火墙能够过滤其中一种包,使用这种方法,你就能够穿过防火墙。
  -O
  这个选项激活对TCP/IP指纹特征(fingerprinting)的扫描,获得远程主机的标志。换句话说,nmap使用一些技术检测目标主机操作系统网络协议栈的特征。nmap使用这些信息建立远程主机的指纹特征,把它和已知的操作系统指纹特征数据库做比较,就可以知道目标主机操作系统的类型。
  -I
  这个选项打开nmap的反向标志扫描功能。Dave Goldsmith 1996年向bugtap发出的邮件注意到这个协议,ident协议(rfc 1413)允许使用TCP连接给出任何进程拥有者的用户名,即使这个进程并没有初始化连接。例如,你可以连接到HTTP端口,接着使用identd确定这个服务器是否由root用户运行。这种扫描只能在同目标端口建立完全的TCP连接时(例如:-sT扫描选项)才能成功。使用-I选项是,远程主机的 identd精灵进程就会查询在每个打开的端口上监听的进程的拥有者。显然,如果远程主机没有运行identd程序,这种扫描方法无效。
  -f
  这个选项使nmap使用碎片IP数据包发送SYN、FIN、XMAS、NULL。使用碎片数据包增加包过滤、入侵检测系统的难度,使其无法知道你的企图。不过,要慎重使用这个选项!有些程序在处理这些碎片包时会有麻烦,我最喜欢的嗅探器在接受到碎片包的头36个字节时,就会发生 segmentation faulted。因此,在nmap中使用了24个字节的碎片数据包。虽然包过滤器和防火墙不能防这种方法,但是有很多网络出于性能上的考虑,禁止数据包的分片。
  注意这个选项不能在所有的平台上使用。它在Linux、FreeBSD、OpenBSD以及其它一些UNIX系统能够很好工作。
  -v
  冗余模式。强烈推荐使用这个选项,它会给出扫描过程中的详细信息。使用这个选项,你可以得到事半功倍的效果。使用-d选项可以得到更加详细的信息。
  -h
  快速参考选项。
  -oN
  把扫描结果重定向到一个可读的文件logfilename中。
  -oM
  把扫描结果重定向到logfilename文件中,这个文件使用主机可以解析的语法。你可以使用-oM -来代替logfilename,这样输出就被重定向到标准输出stdout。在这种情况下,正常的输出将被覆盖,错误信息荏苒可以输出到标准错误 stderr。要注意,如果同时使用了-v选项,在屏幕上会打印出其它的信息。
  -oS    thIs l0gz th3 r3suLtS of YouR ScanZ iN a s|
  THe fiL3 U sPecfy 4s an arGuMEnT! U kAn gIv3 the 4rgument '-'
  (wItHOUt qUOteZ) to sh00t output iNT0 stDouT!@!! 莫名其妙,下面是我猜着翻译的,相形字?:)
  把扫描结果重定向到一个文件logfilename中,这个文件使用一种"黑客方言"的语法形式(作者开的玩笑?)。同样,使用-oS -就会把结果重定向到标准输出上。
  -resume
  某个网络扫描可能由于control-C或者网络损失等原因被中断,使用这个选项可以使扫描接着以前的扫描进行。logfilename是被取消扫描的日志文件,它必须是可读形式或者机器可以解析的形式。而且接着进行的扫描不能增加新的选项,只能使用与被中断的扫描相同的选项。nmap会接着日志文件中的最后一次成功扫描进行新的扫描。
  -iL
  从inputfilename文件中读取扫描的目标。在这个文件中要有一个主机或者网络的列表,由空格键、制表键或者回车键作为分割符。如果使用-iL -,nmap就会从标准输入stdin读取主机名字。你可以从指定目标一节得到更加详细的信息。
  -iR
  让nmap自己随机挑选主机进行扫描。
  -p <端口范围>
  这个选项让你选择要进行扫描的端口号的范围。例如,-p 23表示:只扫描目标主机的23号端口。-p 20-30,139,60000-表示:扫描20到30号端口,139号端口以及所有大于60000的端口。在默认情况下,nmap扫描从1到1024号以及nmap-services文件(如果使用RPM软件包,一般在/usr/share/nmap/目录中)中定义的端口列表。
  -F
  快速扫描模式,只扫描在nmap-services文件中列出的端口。显然比扫描所有65535个端口要快。
  -D
  使用诱饵扫描方法对目标网络/主机进行扫描。如果nmap使用这种方法对目标网络进行扫描,那么从目标主机/网络的角度来看,扫描就象从其它主机 (decoy1,等)发出的。从而,即使目标主机的IDS(入侵检测系统)对端口扫描发出报警,它们也不可能知道哪个是真正发起扫描的地址,哪个是无辜的。这种扫描方法可以有效地对付例如路由跟踪、response-dropping等积极的防御机制,能够很好地隐藏你的IP地址。
  每个诱饵主机名使用逗号分割开,你也可以使用ME选项,它代表你自己的主机,和诱饵主机名混杂在一起。如果你把ME放在第六或者更靠后的位置,一些端口扫描检测软件几乎根本不会显示你的IP地址。如果你不使用ME选项,nmap会把你的IP地址随机夹杂在诱饵主机之中。
  注意:你用来作为诱饵的主机应该正在运行或者你只是偶尔向目标发送SYN数据包。很显然,如果在网络上只有一台主机运行,目标将很轻松就会确定是哪台主机进行的扫描。或许,你还要直接使用诱饵的IP地址而不是其域名,这样诱饵网络的域名服务器的日志上就不会留下关于你的记录。
  还要注意:一些愚蠢的端口扫描检测软件会拒绝路由试图进行端口扫描的主机。因而,你需要让目标主机和一些诱饵断开连接。如果诱饵是目标主机的网关或者就是其自己时,会给目标主机造成很大问题。所以你需要慎重使用这个选项。
  诱饵扫描既可以在起始的ping扫描也可以在真正的扫描状态下使用。它也可以和-O选项组合使用。
  使用太多的诱饵扫描能够减缓你的扫描速度甚至可能造成扫描结果不正确。同时,有些ISP会把你的欺骗包过滤掉。虽然现在大多数的ISP不会对此进行限制。
  -S
  在一些情况下,nmap可能无法确定你的源地址(nmap会告诉你)。在这种情况下,可以使用这个选项给出你的IP地址。
  在欺骗扫描时,也使用这个选项。使用这个选项可以让目标认为是其它的主机对自己进行扫描。
  -e
  告诉nmap使用哪个接口发送和接受数据包。nmap能够自动对此接口进行检测,如果无效就会告诉你。
  -g
  设置扫描的源端口。一些天真的防火墙和包过滤器的规则集允许源端口为DNS(53)或者FTP-DATA(20)的包通过和实现连接。显然,如果攻击者把源端口修改为20或者53,就可以摧毁防火墙的防护。在使用UDP扫描时,先使用53号端口;使用TCP扫描时,先使用20号端口。注意只有在能够使用这个端口进行扫描时,nmap才会使用这个端口。例如,如果你无法进行TCP扫描,nmap会自动改变源端口,即使你使用了-g选项。
  对于一些扫描,使用这个选项会造成性能上的微小损失,因为我有时会保存关于特定源端口的一些有用的信息。
  -r
  告诉nmap不要打乱被扫描端口的顺序。
  --randomize_hosts
  使nmap在扫描之前,打乱每组扫描中的主机顺序,nmap每组可以扫描最多2048台主机。这样,可以使扫描更不容易被网络监视器发现,尤其和--scan_delay 选项组合使用,更能有效避免被发现。
  -M
  设置进行TCP connect()扫描时,最多使用多少个套接字进行并行的扫描。使用这个选项可以降低扫描速度,避免远程目标宕机。

4.3 适时选项

  通常,nmap在运行时,能够很好地根据网络特点进行调整。扫描时,nmap会尽量减少被目标检测到的机会,同时尽可能加快扫描速度。然而,nmap默认的适时策略有时候不太适合你的目标。使用下面这些选项,可以控制nmap的扫描timing:

-T
  设置nmap的适时策略。Paranoid:为了避开IDS的检测使扫描速度极慢,nmap串行所有的扫描,每隔至少5分钟发送一个包;Sneaky:也差不多,只是数据包的发送间隔是15秒;Polite:不增加太大的网络负载,避免宕掉目标主机,串行每个探测,并且使每个探测有0.4秒种的间隔; Normal:nmap默认的选项,在不是网络过载或者主机/端口丢失的情况下尽可能快速地扫描;Aggressive:设置5分钟的超时限制,使对每台主机的扫描时间不超过5分钟,并且使对每次探测回应的等待时间不超过1.5秒钟;b>Insane:只适合快速的网络或者你不在意丢失某些信息,每台主机的超时限制是75秒,对每次探测只等待0.3秒钟。你也可是使用数字来代替这些模式,例如:-T 0等于-T Paranoid,-T 5等于-T Insane。
  这些适时模式不能下面的适时选项组合使用。
--host_timeout
  设置扫描一台主机的时间,以毫秒为单位。默认的情况下,没有超时限制。
--max_rtt_timeout
  设置对每次探测的等待时间,以毫秒为单位。如果超过这个时间限制就重传或者超时。默认值是大约9000毫秒。
--min_rtt_timeout
  当目标主机的响应很快时,nmap就缩短每次探测的超时时间。这样会提高扫描的速度,但是可能丢失某些响应时间比较长的包。使用这个选项,可以让nmap对每次探测至少等待你指定的时间,以毫秒为单位。
--initial_rtt_timeout
  设置初始探测的超时值。一般这个选项只在使用-P0选项扫描有防火墙保护的主机才有用。默认值是6000毫秒。
--max_parallelism
  设置最大的并行扫描数量。--max_parallelism 1表示同时只扫描一个端口。这个选项对其它的并行扫描也有效,例如ping sweep, RPC scan。
--scan_delay
  设置在两次探测之间,nmap必须等待的时间。这个选项主要用于降低网络的负载。

4.4 目标设定

  在nmap的所有参数中,只有目标参数是必须给出的。其最简单的形式是在命令行直接输入一个主机名或者一个IP地址。如果你希望扫描某个IP地址的一个子网,你可以在主机名或者IP地址的后面加上/掩码。掩码在0(扫描整个网络)到32(只扫描这个主机)。使用/24扫描C类地址,/16扫描B 类地址。

  除此之外,nmap还有更加强大的表示方式让你更加灵活地指定IP地址。例如,如果要扫描这个B类网络128.210.*.*,你可以使用下面三种方式来指定这些地址:128.210.*.*、128.21-.0-255.0-255或者128.210.0.0/16这三种形式是等价的。

5.例子

  本节将由浅入深地举例说明如何使用nmap。

  • nmap -v target.example.com

    扫描主机target.example.com的所有TCP端口。-v打开冗余模式。

  • nmap -sS -O target.example.com/24

    发起对target.example.com所在网络上的所有255个IP地址的秘密SYN扫描。同时还探测每台主机操作系统的指纹特征。需要root权限。

  • nmap -sX -p 22,53,110,143,4564 128.210.*.1-127

    对B类IP地址128.210中255个可能的8位子网的前半部分发起圣诞树扫描。确定这些系统是否打开了sshd、DNS、pop3d、imapd和4564端口。注意圣诞树扫描对Micro$oft的系统无效,因为其协议栈的TCP层有缺陷。

  • nmap -v --randomize_hosts -p 80 '*.*.2.3-5'

    只扫描指定的IP范围,有时用于对这个Internet进行取样分析。nmap将寻找Internet上所有后两个字节是.2.3、.2.4、. 2.5的IP地址上的WEB服务器。如果你想发现更多有意思的主机,你可以使用'127-222',因为在这个范围内有意思的主机密度更大。

  • host -l company.com | cut '-d ' -f 4 | ./nmap -v -iL -

    列出company.com网络的所有主机,让nmap进行扫描。注意:这项命令在GNU/Linux下使用。如果在其它平台,你可能要使用 其它的命令/选项。

- 作者: redcat8850 2005年01月29日, 星期六 19:11  |  加入博采

这里三篇文章涵盖了守护进程的功能和一些解释,可以为准备优化系统启动速度的朋友提供一些建议。第一篇中还有设置硬盘等等的信息资料。欢迎大家阅读。摘自linuxsir.org

定制自己的Linux应用环境(一)
作者:曹江华 本文选自:开放系统世界--赛迪网 2002年12月11日

基于开放源代码的Linux给用户提供了这样一个平台:可以根据自己的软、硬件环境,定制自己的Linux应用环境。因此,根据每个用户不同的应用范围定制应用环境,可以将Linux系统的性能提升到新的高度。

定制系统服务


Linux在启动时需要启动很多系统服务,它们向本地和网络用户提供了Linux的系统功能接口,直接面向应用程序和用户。但是,开启不必要或有漏洞的服务则会给操作系统带来安全和性能上的影响。对于系统安全来说,如果操作系统中的任何一个漏洞,都可能使整个系统受到攻击。所以,增加系统安全的最佳办法就是尽量监视系统的功能。至于选择多少服务和功能,要根据工作需求和能力来决定。

下面以root身份运行:

#ntsysv





图1 将不需要的服务和进程前面的*去掉


打开如图1所示的窗口,在此可以开启/关闭每一项系统服务(以Red Flag 3.0为例)。将不需要的服务和进程前面的*去掉(用空格键),然后重新启动系统,这样就可以使不需要的服务和进程不再启动。用这种办法可以随时根据需求定制系统服务,不但安全有保障,而且还能提高系统的性能,一举两得。要保障Linux正常工作,有些系统服务是必须启动的,例如crond、syslog、keytable、nfs、 kudzu。

为了高效安全地定制系统服务,下面介绍一下各项系统服务的功能。

alsasound Alsa 声卡驱动程序支持。Alsa声卡驱动程序本来是为了一种声卡Gravis UltraSound(GUS)而写的,它和OSS/Free 及OSS/Linux兼容。

apmd 用来监视系统用电状态,并将相关信息通过syslogd 写入日志,也可以用来在电源不足时关机。一般用于笔记本电脑,若是台式机建议关闭。

atd 用At命令调度的任务,也在系统负荷比较低时运行批处理任务。

autofs 需要时自动转载文件系统,不需要时自动卸载。

chargen 端口chargen字符产生的缩写,输出一个可打印字符的旋转序列,用于测试字符终端设备。

chargen udp udp格式下端口chargen字符产生的缩写,输出一个可打印字符的旋转序列,用于测试字符终端设备。

crond 根据用户要求周期地运行调度的任务。它比较安全,配置简单,类似Windows中的计划任务。

dhcpd 提供了对动态主机控制协议(Dynamic Host Control Protocol)的访问支持。

echo 端口echo简单地回应所有为测试连接发送给它的数据。

echo udp udp格式下端口echo简单地回应所有为测试连接发送给它的数据。

gpm 为文本模式下的Linux程序,如MC(Midnight Commander)提供了鼠标的支持。它也支持控制台下鼠标的拷贝、粘贴操作及弹出式菜单。

inetd 因特网操作服务程序。监控网络管理服务的需求,并在必要的时候启动相应的服务程序。通常,inetd 管理的程序有telnet、ftp、rsh和rlogin。关闭inetd也就关闭了这些由它管理的服务。

http 它是著名的WWW服务器,可用来提供HTML文件以及CGI动态内容服务。

isdn isdn的守护程序。

keytable 该程序的功能是转载/etc/sysconfig/keyboards里说明的键盘映射表。该表可以通过kbdconfig工具进行选择,应该使该程序处于激活状态。

kudzu 它是一个硬件检测程序,和Windows中的添加新硬件差不多。如果系统核心支持该硬件,并且有该驱动程序,就可自动装载。

linuxconf 它是Linux下一个有效的系统配置工具,该服务允许远程运行。

linuxconf web 在Web方式下使用linuxconf。

lpd 系统打印守护程序,负责将lpr等程序提交给打印作业。

medusa 支持Web的浏览器。

mysql 一个快速高效可靠的小型SQL数据库引擎。

ntalk 允许用户把自己的计算机和其它的计算机连接起来,然后向前或向后传送信息。

netfs 负责装载/卸载NFS、Samba、NCP(Netware)文件系统。

network 激活/关闭启动时的各个网络接口。

nfs 一个流行的、基于TCP/IP网络的文件共享协议。该服务提供了NFS文件共享服务,具体的配置在/etc/ exports文件里。

nscd 该服务负责密码和组的查询,并且缓冲查询结果。如果系统有比较慢的服务(如NIS和NIS+),则应该启动该服务。

pxe 用于远程无盘的Linux系统启动的服务程序。

pcmcia 主要用于支持笔记本电脑。

rexec 它是一个安全、分散式的远程执行系统,用于集群计算机的平行和连续运行。

random 保存和恢复系统的高质量随机数生成器。这些随机数是由系统一些随机行为提供的。

routed 该守护程序支持RIP协议的自动IP路由表维护。RIP主要使用在小型网络上,大一点的网络就需要复杂一点的协议。

rsync 叠加的Ftp Server,允许循环检查。

rsh 远程主机上启动一个shell,并执行用户命令。

rwhod 允许远程用户获得运行rwho守护程序的机器上所有已登录用户的列表,与finger类似。

swat Samba的一个工具包,使用901号端口。

sendmail 邮件服务器。

smb 启动和关闭smbd和nmbd守护程序,以提供SMB网络服务。

snmpd 简单网络管理协议(SNMP)的守护程序。

syslog 是操作系统提供的一种机制,守护程序通常使用这种机制将各种信息写到各个系统日志文件。通常应该启动该服务。

xfs X-Window系统的字体服务器。

xinetd 是inetd继承服务,监控网络对各种管理的服务的需求,并在必要的时候启动相应的服务程序。

以上这些系统服务中,安全隐患比较大的是:rsh、rwhod、rexec、snmp、named、sendmail。对于确实需要的系统服务,应该尽量选用最新的版本程序,并增加其它安全防范。

另外,许多Linux产品在系统初始化后缺省地启动X-Window 管理器。如果只编译程序或编辑配置文件,那么启动X-Window管理器将会消耗大量系统资源。禁用X-Window管理器的方法是:编辑 /etc/inittab 文件,找到内容为id:5:initdefault的那一行,把它改为 id:3:initdefault,系统重新启动后将提供命令行登录。当需要运行X-Window管理器的时候,只要输入startx 就可以了。

根据硬件进行优化


1.CPU

CPU是Linux主机的核心硬件,根据CPU型号在编译时优化以获得最佳性能。在/etc/profile文件中,含有系统环境和启动程序的配置信息,采用-O9 来编译程序时,运行速度也是最快的。编译时使用-fomit-frame-poinetr选项,程序运行时访问变量会使用堆栈。使用-mcpu=cpu-type和 -march= cpu-type时,gcc会对针对CPU型号进行优化。

如果CPU是Pentium Pro、PentiumⅡ、PentiumⅢ、AMD K6-2、K6-3、Althon,那么在"/etc/profile"加入:

CFLAGS='-O9 -funroll-loops -ffast-math -malign-double -mcpu=pentiumpro
-march=pentiumpro -fomit-
frame-pointer -fno-exceptions'



如果CPU是Pentium 、Pentium MMX、AMD K5 、IDT、Cyrix,那么在"/etc/profile"加入:

export CFLAGS=-O3 -march=pentium -mcpu=pentium -
ffast-math -funroll-loops -fomit-frame-pointer -
fforce-mem -fforce-addr -malign-double -fno-exceptions



2.硬盘

采用UDMA/33、66、100、133技术的硬盘,其最高传输速率是33MB/s、66MB/s、100MB/s、100MB/s。从理论上来说,它是IDE硬盘(这里是指PIO MODE4模式,其传输率是16.6MB/s)传输速率的3~6倍,但是在Linux缺省设置中,DMA却是被禁用的,所以必须将它打开。我们可以使用/sbin/hdparm程序打开它。hdparm 的一些常用选项如下:

/sbin/hdparm -c1 /dev/hda或hdb或hdc等启用 PCI 总线上的 32 位 I/O模式传输数据。
/sbin/hdparm -d1 /dev/hda启用 DMA模式传输数据。
/sbin/hdparm -d1 -X66/dev/hda启用UltraDMA模式传输数据。



获取系统中当前硬盘驱动器的设置列表的方法是(作为root)输入:

$/sbin/hdparm /dev/hda



接着再输入命令:

$/sbin/hdparm -kl /dev/hda



使硬盘在Reset之后仍然保持上述的设置。把一切优化到最佳状态后,请把各种命令添加到 /etc/rc.d/rc.local 文件中去,使这些命令在每次系统引导时自动运行。

3.内存

在Linux下使用free可以观察内存的使用情况。如果发现Linux只能使用其中的一部分,则在/etc/lilo.conf 加入append="mem=XXX"就可以,其中XXX是物理内存容量。这样可以告诉Linux使用全部内存。

如果对计算速度要求很高,可以通过增加内存来实现,使用ramdisk技术。 一个A RamDisk就是把内存假设为一个硬盘驱动器,并且在它的上面存储文件。假设有几个文件要频繁的使用,如果将它们加到内存当中,程序运行速度会大幅度提高,因为内存的读写速度远高于硬盘。划出部分内存提高整体性能,不亚于更换新的CPU。像Web服务器这样的计算机,需要大量读取和交换特定的文件。因此,在Web服务器上建立RamDisk会大大提高网络读取速度。

$mkdir /tmp/ramdisk0
$mke2fs /dev/ram0
$mount /dev/ram0 /tmp/ramdisk0



上面这三个命令将会为RamDisk创建一个目录、格式化RamDisk(创建件系统),并把RamDisk装载到目录"/tmp/ramdisk0"中。现在,就可以把它作为一个磁盘分区使用了。

把下面这一行加到你的lilo.conf 文件中去:

ramdisk_size=20000



这样,当键入LILO命令并重新启动后,RamDisk的大小将为20MB。

如果你有512MB以上的内存,划出256MB作为暂存区/tmp,当很多程序用到/tmp,如Web服务,那么系统性能会大大提高。重新启动后,/tmp 中将被清空。注意:一定要记住保存RamDisk中有用的东西。

以上介绍了如何根据工作要求定制Linux系统应用环境,最后要强调的是一定要进行系统备份。

-------------------------------------------------------------------------------------------------

请教:linux启动服务解释大全(请大家知道一点加一点,接龙来完成)
装过了很多linux系统,现在我用的是redhat7.2,可是里面的系统服务却是越来越多,而且似乎也没有哪里专门介绍了每个服务的功能,搞得我们不知道机器启动了什么服务,是否达到了最优化的启动模式。所以,今天把我见过的linux服务全写下来,请大家来解释:打星号的,是系统默认自动启动的服务:

FreeWnn
amanda
amd这个好像是管理mixer设备的)?
amidxtape
*anacron(命令调度)
*apmd(高级电源管理)
arpwatch(看ARP的?)
*atd (功能cron类似)
*autofs(自动加载文件系统)
*bcm5820
bgpd
cwnn
bootparamd(启动参数管理?)
chargen
chargen-udp
comsat
*crond
daytime(夏时制管理的daemon?)
daytime-udp(udp-用户数据报协议,与之同级别的是TCP)
dbskkd-cdb
dhcpd(动态主机服务)
echo(服务器回显客户数据服务)
echo-udp(UDP版本的echo)
eklogin
finger(finger服务)
gated (网关服务)
*gpm(控制台下的鼠标)
gssftp (gss ftp服务器还有wu-ftp服务器)
httpd (超文本协议服务)
identd
imap(邮件服务中的imap协议)
imaps(邮件服务中的imap协议?)
innd(互联网新闻服务)
*ipchains(防火墙)
ipop2 (邮件服务的发件服务第2版)
ipop3(邮件服务的发件服务第3版)
*iptables(防火墙)
irda
*iscsi(利用高速专线组成SCSI磁盘阵列)
*isdn (提供对isdn设备的支持)
junkbuster
kwnn
kadmin
kdcrotate
keytable(键盘的配置)
klogin(远程登录)
kprop
krb5-telnet (krb5 是什么? 提供telnet服务?)
krb524
krb5kdc
kshell
*Kudzu
ldap(目录服务)
*linuxconf(疑问:linuxconf为什么要作为服务启动?)
linuxconf-web(打开linuxconf的web配置端口)
*lpd(提供对打印机的支持)
mars-nwe(模拟novell网服务器)
mcserv
mysqld(提供mysql数据库的支持)
named(域名服务器)
*netfs(网络文件系统)
*network(提供网络支持)
nfs(网络文件系统)
*nfslock(网络文件系统锁定?)
nscd
ntalk(talk-在线聊天服务)
ntpd
ospftd
spfd
*pcmica(提供对pc卡的支持)
pop3s(是不是pop3的服务器?)
*portmap(端口映射列表,但不清楚是干什么的)
postgresql(提供对postgre sql数据库的支持)
radvd
*random(产生并存储高精度数据运算的随机数,为什么平时要自动启动呢?)
rawdevices(好像是对读写设备的支持例如磁带机?)(Read After Write)
regongfig(支持远端配置?)
rexec(远端执行?)
rhnsd
ripd
ripngd
rlogin(支持远端登录)
routed(linux路由服务)
rsh(r shell?)
rstatd
rsync
rusersd
rwalld
rwhod
*sendmail(大名鼎鼎的邮件服务器)
smb(是不是samba呀?--是)
sgi_fam
snmpd(简单网络管理服务)
squid(代理服务器)
swat(smb的901web配置)
*systlog(系统日志服务)
talk
telnet(telnet服务)
time(回响系统时间)
time-udp(回响系统时间的UDP版本)
tux(好像 是基于内核的高速静态web)
ups(提供对ups的控制支持?)
vncserver
*wine(在linux下直接执行windows二进制代码!)
wu-ftpd(华盛顿大学的ftp服务器.很好用
xfs(x font server)
xinetd(新版本的互联网服务器)
ypbind
yppasswdd
ypserv
yhpxfrd
Zebra


以上就是我记得的一些服务,能说明一些的,都做了说明,其中也有自己的疑问,请各位同好者,如果有谁知道其中的部分或者全部,
就在跟贴里面说明,越详细越好~~~~ 请让我来帮助你,就象帮助我们自己... :)

keytable(键盘影射,适用于韩文,日文,德国等语言)
KZUZU----启动系统时检测PC硬件有无变动,比如换了显卡会提示你重新配制XF86
*gpm-----好像是在控制台模式下实现mouse 的CP和PASTE功能.
*crond---一个基于UNIX的定期命令调度器
swat----基于视窗的samba配置程序
xfs---Xwindows Font Server


bgpd(bgp路由协议daemon)
*gpm(字符终端状态下的mouse驱动)
*ipchains(2.0 kernel下的防火墙进程)
*iptables(防火墙进程)
kshell(k shell)
ldap(ldap服务进程)
ntalk(网络talk进程)
ntpd(网络时间服务进程)
ospftd(ospf 路由协议进程?)
spfd(spf路由协议进程?)
ripd(rip路由协议进程)
smb(是不是samba呀?)---是的
squid(代理服务进程)
talk(应该是本机talk进程吧)
Zebra(一个很有名的路由服务套件)

--------------------------------------------------------------------------------------

LINUX守护进程介绍

amd:自动安装NFS(网络文件系统)守侯进程
apmd:高级电源管理
Arpwatch:记录日志并构建一个在LAN接口上看到的以太网地址和IP地址对数据库
Autofs:自动安装管理进程automount,与NFS相关,依赖于NIS
Bootparamd:引导参数服务器,为LAN上的无盘工作站提供引导所需的相关信息
crond:Linux下的计划任务
Dhcpd:启动一个DHCP(动态IP地址分配)服务器
Gated:网关路由守候进程,使用动态的OSPF路由选择协议
Httpd:WEB服务器
Inetd:支持多种网络服务的核心守候程序
Innd:Usenet新闻服务器
Linuxconf:允许使用本地WEB服务器作为用户接口来配置机器
Lpd:打印服务器
Mars-nwe:mars-nwe文件和用于Novell的打印服务器
Mcserv:Midnight命令文件服务器
named:DNS服务器
netfs:安装NFS、Samba和NetWare网络文件系统
network:激活已配置网络接口的脚本程序
nfs:打开NFS服务
nscd:nscd(Name Switch Cache daemon)服务器,用于NIS的一个支持服务,它高速缓存用户口令和组成成员关系
portmap:RPC portmap管理器,与inetd类似,它管理基于RPC服务的连接
postgresql:一种SQL数据库服务器
routed:路由守候进程,使用动态RIP路由选择协议
rstatd:一个为LAN上的其它机器收集和提供系统信息的守候程序
ruserd:远程用户定位服务,这是一个基于RPC的服务,它提供关于当前记录到LAN上一个机器日志中的用户信息
rwalld:激活rpc.rwall服务进程,这是一项基于RPC的服务,允许用户给每个注册到LAN机器上的其他终端写消息
rwhod:激活rwhod服务进程,它支持LAN的rwho和ruptime服务
sendmail:邮件服务器sendmail
smb:Samba文件共享/打印服务
snmpd:本地简单网络管理候进程
squid:激活代理服务器squid
syslog:一个让系统引导时起动syslog和klogd系统日志守候进程的脚本
xfs:X Window字型服务器,为本地和远程X服务器提供字型集
xntpd:网络时间服务器
ypbind:为NIS(网络信息系统)客户机激活ypbind服务进程
yppasswdd:NIS口令服务器
ypserv:NIS主服务器
gpm:管鼠标的
identd:AUTH服务,在提供用户信息方面与finger类似

Linux各项系统开机服务的功能是什么?有哪些可以关掉?
Linux在启动时要启动很多系统服务,它们向本地和网络用户提供了Linux的系统功能接口,直接面向应用程序和用户。但是,开启不必要或有漏洞的服务则会给操作系统带来安全和性能上的影响。下面我们以BluePoint Linux 2.0的开机服务为例,列表说明各项服务的功能。

alsasound
Alsa声卡驱动程序支持。Alsa声卡驱动程序本来是为了 一种声卡Gravis UltraSound(GUS)而写的,该程序被证 明很优秀,于是作者就开始为一般的声卡写驱动程序。 Alsa和OSS/Free 及OSS/Linux兼容,但是有自己的接 口,甚至比OSS优秀。

amd
运行automount精灵程序,该精灵在必要时自动安装一些 本地设备和NFS文件系统。

apmd
apmd用来监视系统用电状态,并将相关信息通过syslogd 写入日志。也可以用来在电源不足时关机。

arpwatch
该程序主要用来维护以太网物理地址和IP地址的对应关系。

atalk
AppleTalk精灵程序。注意不要在后台运行该程序,该程 序的数据结构必须在运行其他进程前先花一定时间初始化。

atd
运行用户用At命令调度的任务。也在系统负荷比较低时 运行批处理任务。

autofs
当您需要时自动转载文件系统,而当您不需要时自动卸载。

bootparamd
该服务允许老的Sun工作站从Linux网络启动,它和rarp 现在很少使用,基本上被bootp和dhcp取代了。

crond
cron是Unix下的一个传统程序,该程序周期地运行用户 调度的任务。比起传统的Unix版本,Vixie版本添加了不 少属性,而且更安全,配置更简单。
dhcpd 该精灵提供了对动态主机控制协议(Dynamic Host Control Protocol)的访问支持。

gated
gated通过一个数据库提供了网络路由功能支持。它支持 各种路由协议,包括RIP版本1和2、DCN HELLO协议、 OSPF版本2以及EGP版本2到4。

gpm
gpm为文本模式下的Linux程序如mc(Midnight Commander)提供了鼠标的支持。它也支持控制台下鼠标 的拷贝,粘贴操作以及弹出式菜单。

httpd
http是著名的www服务器,可用来提供HTML文件以 及CGI动态内容服务。

inetd
因特网操作服务程序。监控网络对各种它管理的服务的需 求,并在必要的时候启动相应的服务程序。通常,inetd 管理的程序有telnet、ftp、rsh和rlogin。关闭inetd也就 关闭了这些由它管理的服务。

innd
inn是最流行的用户组新闻服务器。它允许您建立起本地 新闻服务器。配置有一定的难度,可以先阅读/usr/doc/ inn*文档获得帮助。


keytable 该程序的功能是转载您在/etc/sysconfig/keyboards里说 明的键盘映射表,该表可以通过kbdconfig工具进行选 择。您应该使该程序处于激活状态。

ldap
LDAP代表Lightweight Directory Access Protocol, 实现了目录访问协议的行业标准。

linuxconf
linuxconf是Linux下的一个有效的系统配置工具,该服 务允许远程运行。

lpd
lpd是系统打印守护程序,负责将lpr等程序提交给打印 作业。

mcserv
Midnight Commander服务进程允许远程机器上的用户 通过Midnight Commander文件管理器操作本机文件。服 务进程用PAM来验证用户,需要给出"用户名/口令" 以通过验证。

mysql 一个快速高效可靠的轻型SQL数据库引擎。

named 域名服务器,将Internet主机名解析为点分的IP地址。

netfs 负责装载/卸载NFS、Samba、NCP(Netware)文件系统。

network 激活/关闭启动时的各个网络接口。

nfs
NFS是一个流行的基于TCP/IP网络的文件共享协议。该 服务提供了NFS文件共享服务,具体的配置在/etc/ exports文件里。

nscd
该服务负责密码和组的查询,并且缓冲查询结果。如果您 的系统有比较慢的服务(如NIS和NIS+),则应该启动该 服务。

pcmcia pcmcia 主要用于支持笔记本电脑。

portmap portmap 用来支持RPC连接,RPC被用于NFS以及NIS 等服务。

postgresql PostgreSQL 关系数据库引擎。

proftpd proftpd 是Unix下的一个配置灵活的ftp守护程序。

radvd 路由广播程序。

random
保存和恢复系统的高质量随机数生成器,这些随机数是系 统一些随机行为提供的。

routed
该守护程序支持RIP协议的自动IP路由表维护。RIP主要 使用在小型网络上,大一点的网络就需要复杂一点的协议。

rstatd Rstat协议允许网络上的用户获得同一网络上各机器的性能 参数。

rusersd 该服务使网络用户可以定位同一网络上的其他用户。

rwalld
Rwall协议允许远程用户向在同一系统中活跃着的终端发送 消息,类似wall的本地行为。

rwhod
允许远程用户获得运行rwho精灵的机器上所有已登录用户 的列表,与finger类似。

sendmail 大名鼎鼎的邮件服务器。

smb 启动和关闭smbd和nmbd精灵程序以提供SMB网络服务。

snmpd 简单网络管理协议(SNMP)的守护精灵。

syslog
syslog是操作系统提供的一种机制,守护程序通常使用这 种机制将各种信息写到各个系统日志文件。通常应该启动 该服务。

xfs X的字体服务器。
ypbind NIS/YP的客户端守护程序。如果您需要使用NIS/YP机 器,请启动这项服务,否则,关闭这项服务。

yppasswd
让NIS用户能够修改密码。运行在NIS域的服务器上。客 户端程序同样也叫yppasswd。

ypserv
标准NIS/YP网络协议的一个实现。允许主机名,用户名 和其他信息分布于网络各端。运行在NIS服务器上,客户 端不需要。

阅读(2471) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~