Red Hat 基本系统设定指令
在 Red Hat Linux 里头有一个相当好用的系统参数设定工具,那就是大家都耳熟能详的『 setup 』啰!这工具说穿了也没有什么特殊的地方,就是他将一些 /etc/sysconfig 里的设定参数给他做成图形界面就是了!基本上,如果你对系统熟的话,那么不需要使用 setup 也是可以的啦!直接修改 /etc/sysconfig 底下的东西就可以啰!
· setup:
我们先来说一说 setup 的用法吧!以 root 的身份在 command line 输入 setup 就可以进入如下的画面:
主要有底下几个设定的咚咚:
o Authentication configuration:这是关于系统性安全的设定项目;
o Firewall configuration :这个是关于 ipchains 的防火墙机制设定;
o Keyboard configuration :这个是键盘的类型设定项目;
o Mouse configuration :设定滑鼠的型态的地方啦;
o Network configuration :设定网路参数的地方,包括你的 IP 呦!
o System services :设定一些系统服务的地方;
o Printer configuration :设定印表机啰;
o Sound card configuration :就是设定音效卡啦!
o Timezone configuration :设定时区;
o X configuration :设定 X-Window 相关的硬体设定!
依序介绍一下里面的各种资料啰:
o Authentication configuration :
还记得我们在 帐号管理 那一篇文章里面提到的东西吗?对啦!我们在管理密码的时候就是使用那个 shadow 的资料!好啦,那么怎么改变这些密码资料的设定呢?呵呵!就是在这一项啰!按下他之后会出现底下两个画面:
那个 NIS, LDAP, Hesiod 等等都是其他类型的 ID 与 pass word 管理伺服器,这里我们不太需要使用到这么高级的伺服器!所以只要简单的 Shadow 与 MD5 这两个编码过的安全防护即可!所以啰,您可以在这里勾选 Shadow 与 MD5 就行了!除非后来您还想要加入上述的伺服器!
§ 这个项目完成之后,会写入 /etc/sysconfig/authconfig这个档案当中!所以也可以直接修改这个档案即可!
o Firewall configuration :
这是用来设定防火墙的!
§ 在设定防火墙之前需要来了解一下什么是『防火墙』?简单的说,防火墙就是资料封包的过滤机制的套件啰,目前在 2.2.xx 上面使用的是 ipchains 这个封包过滤,至于 2.4.xx 则使用的是 iptables 这个封包过滤机制。此外,这两个封包过滤机制『不能同时开启』!
但是在这个 setup 当中的 firewall 比较诡异一点点,就是在 Red Hat 7.1 以后的版本中(包含这一版的 Red Hat 7.2 )使用的 Kernel 是 2.4.xx 版本,这一版的适合的防火墙如前述是 iptables 这个机制,但是
§ 这支程式使用来设定的却是『 ipchains 』真是的~~而且,另外一点比较怪异的是,
§ 这个程式启动之后,所显示的是『程式预设值』而不是您目前的设定值,所以每次进入都会显示『Security Level 为 ( ) High 那一项!,不过,只要不按下 OK 的话,就不会改变您原先的设定!
基本上,这个东西用来设定 ipchains 是可以啦,但是用来设定 iptables 则『没有办法』,最起码我试不出来,如果您试出来的话,可得教教我呦!按下之后显示出来的样子如下:
请注意,在上面的设定当中,是适合于 ipchains 的,再强调一次,所以如果您使用了 iptables 作为您的防火墙机制,那么就不要使用这支程式了!另外,在第二个画面中,需要特别注意的是:
§ 如果您只有一张卡(例如上面的例子),那么千万注意『不要开启 eth0 』这个咚咚!上面的意思是说,『来自底下的界面卡(例如 eth0)或者是底下的 port 号,则予以接受』,那么当您接受 eth0 的请求,偏偏这个卡是对外卡,那么由于所有的要求都是由外界来的,所以底下的设定则完全没有用了!因为检查到界面卡的部分就予以放行的意思!这里请注意!
§ 万一,若您有两张网路卡,一张对内(假设为 eth0 )一张对外(假设为 eth1 ),那么对内信任对外不信任,则可以勾选 eth0 为信任的(沟成星号),而 eth1 则不勾!
那么这个设定在产生什么设定档案呢?
§ 这个设定完成之后,会在 /etc/sysconfig 产生一个名为 ipchains 的档案,这个档案即是开机时启动的设定档,您可以查询到 /etc/rc.d/init.d/ipchains 这个启动档案的内容看到!!
§ 同理,如果您想要一开机立即将您的 iptables 机制的规则写上去的话,那么就可以在 /etc/sysconfig/ 建立一个名为 iptables 的档案啰!
o Keyboard configuration :
这是用来设定键盘型式的!如下图所示:
选择正确的即可!通常我们选择 us 这一个就对了!
§ 修改的结果会记录在 /etc/sysconfig/keyboard 这个档案中!
o Mouse configuration:
这是用来设定滑鼠的!按下去之后会显示出下面的图示:
看到了喔!如果是 ps/2 的介面的话,那么上面就会显示出 Generic Mouse (PS/2) 的那一项!请依照您的硬体来设定好你的滑鼠周边!
§ 这个项目会在 /etc/sysconfig/mouse 当中记录下来正确的滑鼠型态,可以直接修改这个档案呦!
o Network configuration :
这东西是用来设定网路的东西的!按下他之后会出现底下的咚咚:
所谓的 DHCP 是一种动态发放 IP 的主机,来分给 client 电脑 IP 的方式!那么由于我们使用的是虚拟 IP 这一种静态的 IP 给予方式,所以自然就将第一个取消啰!另外,需要特别留意的是,使用 Cable 的朋友就是以 DHCP 来上网的,所以其对外的卡使用的就得是 DHCP 协定啰!然后需要来设定 IP (给予虚拟 IP 即可!)子遮罩网路( netmask)及 gateway 等等,这个咚咚会修改到的档案有:
§ /etc/sysconfig/network
§ /etc/sysconfig/network-scripts/ifcfg-eth0
§ /etc/resolv.conf
大概就是如此吧!所以,基本上,手动修改上面这些档案即可设定好网路的基础架构啰!
o System services :
这个东西也蛮好玩的,其实他就是 ntsysv 这个程式啦!按下他之后会显示出底下的框框!
这里显示的是,目前系统上以 RPM (或者是你自己写的)可以进行『开机时后启动的』服务项目,以这张图表为例,显示出 atd 这支服务在启动的时候就会自动的启动啰!所以你可以移动到你所想要启动的项目之前,按下空白键使产生 * 后,再按下 OK 即可!不过需要注意的是:
§ 这个设定仅是在设定『启动的时候可以自动执行』的服务,所以当你设定好 * 之后,除非重新开机,否则仍需要直接以手动启动才行;
§ 这个设定所捉出来的服务项目,其内容都列在 /etc/rc.d/init.d 及 /etc/xinetd.d 这两个目录内;
§ 这个设定设好之后,其连结会在 /etc/rc.d/rc#.d/Sxxservername 这个档案内,例如我以文字型态登入的,所以 run-level 为 3 ,而我要设定的是 atd 这个服务,所以就会在 /etc/rc.d/rc3.d/S95atd 这个连结档建立到 /etc/rc.d/init.d/atd 这个执行 script 中!请注意,那么 S 代表开机启动的意思,而数字代表执行的顺序!
o Printer configuration :
设定 printer 的步骤!按下去之后可以出现如下的咚咚:
这个我就不是很熟悉了!请有经验的朋友来信告诉我该怎么做吧!
o Sound card configuration :
设定音效卡啰!那就设定吧!
o Timezone configuration :
还记得我们选择的时区吗?呵呵!想不想改变呢?
§ 建立的资料写在 /etc/sysconfig/clock 里头!
· /etc/sysconfig/* 里头的设定档案:
在介绍完了 setup 这个好用的工具之后,让我们来了解一下实际上在运作的系统设定档案内容吧!我们底下只说明几个可能会用到的档案,而由于内容说明的已经很清楚了,所以我们仅介绍该档案的用途,若有兴趣的话,请自行进入您的 Linux 系统,好好的看一看里面的资料吧!
·其他的咚咚不是不重要,而是我仅列出比较相对重要的咚咚!
注:很多档案都必须要您的系统中有设定启动才会存在该档案,例如 iptables 即是一例!
Red Hat 基本设定工具: linuxconf, userconf
在 Red Hat 底下的基本设定工具有好几个,我们只来谈一谈最热门的 linuxconf 这支工具!他不但支援图形介面,在纯文字介面底下仍然可以工作的!相当的棒!
·linuxconf
说到设定工具上面,呵呵!使用最多的人应该是 linuxconf 这一支相当好用的设定工具了!不过,仍须需要晓得的是:『所有的设定工具,都只是将一些已经套好的规则使用在一些系统的设定档案上面』而已,而且,这些设定工具可能没有办法完全的满足您的需求的!因此,很多时候还是需要手动的来进行修改的行为呢!好了!那么 linuxconf 也是相同的,他会将一些设定的档案整理成表列出来给您修改而已啦!
由于我是以 ssh 捉的图,所以会比较丑一些,请大家多多见谅! Linuxconf 的使用方式也是很简单的!就如同上面的图示,您可以开启之后,看到那个 +, - 号吗?那就是显示:
o + :表示里面还有资料,移动上下键到该行,按下 Enter 之后,就会持续的在萤幕上列出设定的细项;
o - :表示已经展开的设定细项。
设定的方式就是直接按下您要修改的地方,然后再以表格的方式来修改您的设定即可!这个设定不难啦!只是如果要全部都写出来的话,会粉累!所以让我偷个懒吧!! ^_^
·userconf
基本上 userconf 也是挂附在 linuxconf 这支程式底下的!在我们的 帐号管理 那一章已经说明的很详细了!所以这里不再多言啰!
注:目前的 Red Hat 7.2 预设当中并没有将此一套件安装(即使选择完全安装也不会将此套件加入!),所以如果您要执行此一套件时,请自行将光碟拿出来, mount 之后,直接 rpm 安装他吧!
Red Hat 启动服务工具:ntsysv, service, chkconfig, init,
大家一定都有:『咦!我某些服务在开机的时候启动,要怎么开始?』的疑问吧!?像我一开始玩 Linux 的时候,就对这个问题很有兴趣!嘿嘿!完到最后才终于晓得,原来开机能不能执行跟你的 /etc/rc.d/init.d 里头的服务设定项目有关,而是否启动则是设定在 /etc/rc.d/rc[0-6].d 这总共七个目录下的资料中!我们当然可以手动来进行连结档案,使他符合我们所需要的特性,但是我们也可以透过 Linux 给我们的设定工具来执行呦!
·ntsysv
·说明:
这支工具蛮有意思的!他可以设定开机时后启动的项目呢!就是在 setup 里头的 System Services 那个设定的地方!比较不一样的地方在于,这个单独的程式还可以执行非目前 run-level 的启动项目。如果您回到前面提到的『开机流程』的地方,那么就会发现在启动的项目方面,需要取得 inittab 之后,才能在各个 /etc/rc.d/rc#.d 里头执行各不同的 scripts ,其中常用的 run-level 是 3 及 5 (文字与图形!)。那么 ntsysv 就可以依据:
o /etc/xinetd.d
o /etc/rc.d/init.d
这两个资料夹内的 scripts ,然后配合 /etc/rc.d/rc#.d 里头的 scripts 来进行连结档的设定!
·service
·说明:
这个程式就更简单了!基本上他只是一支 script 而已!他会将 /etc/init.d (其实就是 /etc/rc.d/init.d )的东西取出来,然后进行分析啦!例如上面的例子中,[ service xinetd restart ] = [ /etc/rc.d/init.d/xinetd restart ]这两个是完全相同的东西呦!只是 service 把他更简化了而已!除此之外,在 ntsysv 与底下接着要说明的 chkconfig 都是『等到下次开机的时候再启动』的方式,那么有没有办法立刻启动呢?呵呵!那就是 service 的工作啦! service 可以直接将该服务启动呦!
· chkconfig
·说明:
这也是个很好用的设定档呢!他仍然是设定在 /etc/rc.d/init.d 及 /etc/rc.d/rc[0-6].d 里面的 scripts 的用途啦!基本上,与 ntsysv 具有相同的使用方式!
·init
[root @test /root]# init [0-6] 参数说明: 范例: [root @test /root]# init 5 <==转为图形介面登入!
·说明:
说完了 /etc/rc.d/rc[0-6].d 与 /etc/rc.d/init.d 的执行序之后,呵呵!如何切换呢?是否一定要修改 inittab 这个档案?!其实不需要,直接使用 init 这支程式就行了!不过需要特别留意,当进行 init 之后,若转为不同的登入型态时,目前工作中的资料将全部被踢出来!!等于是『reboot 』的意思!请特别小心使用!
函式库资料: ldconfig, ldd,
什么是函式库呢?由于我们使用的 Linux 是一个相当不算小的作业系统,里头的资料可是相当多的,然而有些执行程式所使用的系统资源都是相同的,例如登入的时候不论 ftp, ssh, telnet 都需要使用到 pam 模组,那么是不是所有的执行程式都需要将 pam 的资料写入程式当中呢?当然不需要了!因为系统本身就已经有 pam 了呀!那么如何使用这些系统提供的资讯呢?呵呵!这个时候动态的函式库就不可或缺了!同时,需要特别留意的是,有相当多的函式库都是『根据 kernel 的版本来设定的』,所以不同版本的 kernel 最好不要随意的互相更换呦!容易造成很多执行程式无法使用其函式库,而挂点的情况发生的!底下我们来谈一谈怎么获得函式库的资料!
·ldconfig
·说明:
系统预设的函式库都是由 ldconfig 设定后写入 /etc/ld.so.cache 当中!然后供系统来读取使用!那么您如何知道目前的函式库有多少呢?呵呵!使用 ldconfig 就可以知道啦!以 ldconfig -p 可以列出 /etc/ld.so.cache 的内容呢!那么 /etc/ld.so.conf 又是什么呢?!很简单,那就是『目前你的系统中主要的函式库放置的目录』,以上式为例,则主要的 XFree86 函式库放置在 /usr/X11R6/lib 当中,另外还有常用的 kerberos 的函式库也摆在其中!
如果您的其他函式库需要写入系统中,让系统可以很快的找到该函式库而予以取用的话,那么将你所安装的套件(通常是 tarball 的套件)所产生的 lib 目录,给他写到 /etc/ld.so.conf 这个档案中,然后再以 ldconfig 重新建立 /etc/ld.so.cache 即可!
·ldd
·说明:
如果您常常升级安装 RPM 的套件时,应该常常会发现那个『相依属性』的问题吧!?没错!我们可以先以 ldd 来视察『相依函式库』之间的相关性!以先取得了解!例如上面的例子中,我们检查了 libc.so 这个在 /lib 当中的函式库,结果发现他其实还跟 libc.so.6 有关呢!也与 ld-linux.so.2 有关说!所以我们就需要来了解一下,那个档案到底是什么套件的函式库呀!?使用 -v 这个参数还可以得知该函式库来自于哪一个套件!像上面的资料中,就可以得到该 libc.so.6 其实可以支援 GLIBC_2.1.1 等的版本!
检验软体正确性
在我们的 Linux 系统当中,为了怕系统商( distribution )推出的档案被修改过,因此都会有所谓的 MD5 的软体指纹验证功能!例如在南台湾最大的 ftp 学术网站 中山大学的 ftp 网站 里头的 Red Hat 7.3 这个可开机光碟的完整套件,在该目录底下,除了完整的的可开机光碟的映象档(image)之外,还会附上一个档名为 MD5SUM 的档案,这个档案的内容有点像这样:
这说明的是,『在 valhalla-i386-disc1.iso 这个档案中,有个 MD5SUM 的档案指纹表,如果该档案是原本开发厂商提供的档案时(没有被修改过!),则以 md5sum 这支程式进行检验时,会得到左边的指纹表!』那有什么用呢?!呵呵!用途可大了,前一阵子不是常常发现有些免费的软体被利用来作为收集使用者的电子邮件、常上网站资料,及其他使用者私人的资讯吗?嘿嘿!那就是利用软体的特性来『偷』使用者的咚咚,那么万一 Red Hat 提供的光碟映象档(image)被下载之后,让有心人士偷偷修改过,再转到 Internet 上面流传,那么你下载的这个档案偏偏不是原厂提供的,呵呵!你能保证该档案的内容完全没有问题吗?!当然不能对不对?!是的,这个时候就有 md5sum 这个档案指纹的咚咚出现啦!说说他的用法吧!
· md5sum
说明:
一般而言,每个系统里面的档案内容大概都不相同,例如你的系统中的 /etc/passwd 这个登入资讯档与我的一定不一样,因为我们的使用者与密码、 Shell 及家目录等大概都不相同,所以由 md5sum 这个档案指纹分析程式所自行计算出来的指纹表当然就不相同啰!以上面的例子来说明,当原本的 logfile.sh 被改变之后,在经由 md5sum 计算一次,嘿嘿!指纹改变了~~这说明了我们的档案被修改过了,与原先的内容
· insmod
说明:
这个跟 modprobe 有点类似啦,但是 insmod 可以读取非 /lib/modules/`uname -r`/kernel 内的模组,而且还可以为模组进行载入测试呢!您可以加上路径与完整的档名来载入模组,加上 -p 这个参数可以验证该模组的可执行性与否!!『要注意的是,这个 insmod 输入的模组名称必须要完整的路径、档名来输入呦!』
· rmmod
说明:
顾名思义,呵呵!移除模组的程式啦!!使用 lsmod 得到以存在的模组之后,,然后再输入『 rmmod 模组名称』就可以移除模组啰!
· depmod
说明:
这东西用来建立模组中间的相关性,如果不想让模组被写入 /lib/modules/`uname -r` 当中的话,那么就加入 -n 参数吧,可以先看一下各模组的相依性呢!