分享
 
 
 

熟悉Linux系统安全和优化(中)

王朝system·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

brimmer·Gerhard Mourani

启动和停止daemon服务

init是内核在引导的时候运行的程序。它负责管理那些在引导的时候要启动的进程。这些进程包括:Apache daemon、网络daemon和其它你想在引导时运行的进程。

那么init是怎么启动和停止服务呢?每一个启动脚本都有可以接受一个参数,参数的值为:“start”或“stop”。这些脚本在“/etc/rc.d/init.d/”目录下。你也可以手工运行这些脚本,用类似下面的命令:

例如:

* 在Linux上手工启动httpd Web服务器。

[root@deep]# /etc/rc.d/init.d/httpd start

* 停止httpd Web服务器

root@deep]# /etc/rc.d/init.d/httpd stop

可以在“/etc/rc.d/init.d/”目录下查看一下有什么服务,然后,用参数“start”或“stop”,启动或停止服务。

安装完服务器之后必须卸载的软件

RedHat Linux在默认情况下会安装一些预置的软件,而且在安装的过程中,不能够选择不安装。因此,必须在安装完成之后卸载下面这些软件

pump

apmd

isapnptools

redhat-logos

mt-st

kernel-pcmcia-cs

setserial

redhat-release

eject

linuxconf

kudzu

gd

Bc

getty_ps

raidtools

pciutils

mailcap

setconsole

gnupg

用下面的rpm命令卸载这些软件

[root@deep]# rpm -e softwarenames

softwarename在这里指的是软件包的名字,如:foo。

apmd、kudzu和sendmail是daemon进程,在卸载它们之前最好先停止这些进程。

停止这些进程用如下的命令:

[root@deep]# /etc/rc.d/init.d/apmd stop

[root@deep]# /etc/rc.d/init.d/sendmail stop

[root@deep]# /etc/rc.d/init.d/kudzu stop

现在你可以象卸载其它程序那样卸载它们,步骤如下:

第一步

卸载这些软件包。

[root@deep]# rpm -e pump mt-st eject bc mailcap apmd kernel-pcmcia-cs linuxconf getty_ps setconsole isapnptools setserial kudzu raidtools gnupg redhat-logos redhat-release gd pciutils

第二步

手工删除linux.conf-installed文件。

[root@deep]# rm -f /etc/conf.linuxconf-installed

注意:这是和linuxconf程序相关的的配置文件,必须手工删除。

如果你有IDE硬盘,hdparm程序是必须要的,所以一定要保留下来。否则,你可以把它从硬盘中卸载掉。

kdbconfig、mouseconfig和timeconfig是用来设置键盘类型、鼠标类型和时区的。在这些都设置好之后,就很少有机会再用到它们了。所以,可以把它们卸载掉。等需要改变键盘、鼠标和时区的时候,可以再从CD-ROM用rpm命令安装。

sendmail、procmail和mailx在通常情况下是必须要的。因为服务器上运行的各种各样的服务会用这些程序发消息给root用户,以建立系统日志(syslog)。

sendmail是一个强大的邮件传送代理(Mail Transport Agent,简称MTA),可以把邮件从一台计算机发送到另一台计算机。它实际上所起的作用就是通过网络或Internet把email传送到email的目的地。sendmail有很多不同的配置方式:可以做为一个把邮件转给邮件集中服务器(Mail Hub Server)的内部邮件服务器,也可以做为单独的mail服务器,或者做为网络上所有sendmail服务器的中央邮件集中服务器(Central Mail Hub Server)。因此,可以根据需要配置不同的sendmail服务器。所以,你要先把sendmail卸载掉,参考本书sendmail的配置和安装的相关章节,根据需要建立自己的sendmail服务器。

sendmail并不是自己处理邮件的分发,它是通过运行其它程序来完成这项工作。procmail是RedHat Linux用于本地邮件分发的分发代理(delivery agent)。因此,procmail只要装在中央邮件集中服务器(Central Mail Hub Server)上就行了。所以,没有必要在内部所有运行sendmail服务的计算机上都安装procmail程序。因为,这些内部的计算机会通过“/bin/mail”或sendmail把邮件转发到中央邮件集中服务器上。

Pump DHCP(Dynamic Host Configuration Protocol)和BOOTP(Boot Protocol)协议允许在IP网络上的设备,从服务器上获取它们的网络配置信息(IP地址、子网掩码、广播地址,等等)。【没有必要】

mt-st软件包包括mt和st磁带机驱动管理程序。mt(用于磁性磁带驱动器(magnetic tape drivers))和st(用于SCSI磁带驱动器)可以控制磁带的回卷、弹出、跳过文件或块以及其它。【没有必要】

eject程序允许用户用软件弹出可移动的介质,如:CD-ROM、软盘以及Jaz或Zip盘。【没有必要】

bc软件包包括:bc和dc两个应用程序,bc是一种非常精确的用于处理算术运算的语言。dc是基于堆栈的交互式计算器,是用在文本模式下的。【没有必要】

mailcap文件是用于metamail程序的。metamail通过读mailcap文件来确定怎么显示非文本的和多媒体的邮件信息。【没有必要】

apmd是高级能源管理(Advanced Power Management)daemon和实用工具。它可以监控笔记本电脑的电池使用情况。当电池电压过低的时候,它会给出警告。【没有必要】

所有支持PCMCIA的笔记本电脑都要用到kernel-pcmcia-cs软件包。PCMCIA卡是很小的卡片,可以是SCSI卡或是modem。【没有必要】

linuxconf是非常好的系统配置工具。linuxconf提供四种界面供你选择:命令行、文本菜单、X Window的图形界面和基于Web的界面。【没有必要,有bug的程序】

getty_ps软件包包括getty和uugetty两个程序,这两个程序是RedHat Linux系统中实现进程登录的基本程序。getty和uugetty是用于接受控制台或终端的登录请求。【没有必要】

setconsole是基本的系统工具,用在为一个新的控制台创建/etc/inittab、/dev/systty和/dev/console文件。控制台可以是本地的终端(直接通过显示卡连接到系统上)或是通过串口连接的控制台。【没有必要】

ispnptools软件包包括用于配置ISA接口的即插即用(Plug-and-Play)卡,符合PnP ISA Specification 1.0a标准。【没有必要】

kudzu是系统引导的时候运行的硬件探测程序,可以检测到哪些硬件从系统中删除或添加到系统中。【没有必要】

raidtools软件包包括在Linux系统中建立和维护软件RAID(磁盘阵列,用于容错和提高性能,需要两个以上的磁盘)。【取决于你用不用RAID】

GnuPG是GNU的数据通讯和存储的安全工具。它可以用来加密数据和创建数字签名。包括高级的密匙管理工具,而且遵循RFC2440中描述的OpenPGP的国际标准。【我们会在后面的章节介绍如何自己编译】

redhat-logos包括RedHat “Shawdow Man”和RPM的标志图片。【没有必要】

redhat-release是RedHat Linux的发行文件。【没有必要】

gd是处理gif文件的图形函数库。gd可以用于显示图像(线条、弧、文本、多种颜色、从其它图像中剪切和粘贴、填充),并把结果保存为gif文件。【没有必要】

pciutils包括各种各样的工具,用于检测和设置连接到PCI总线上的设备。【我们用其它的方法】

kbdconfig是文本模式的程序,提供了设置键盘映像的一个简单的界面。【没有必要】

mousconfig是基于文本模式的鼠标设置程序。mouseconfig在RedHat Linux系统中,创建配置和使用鼠标所需要的文件和链接。【没有必要】

timeconfig包括:timeconfig和setclock。timeconfig提供了一个简单的文本模式的工具,用来配置/etc/sysconfig/clock和/etc/localtime中的时间参数。【没有必要】

procmail是RedHat Linux用于处理本地邮件发送的程序。除了发送邮件,procmail还可以用于自动过滤、排序和其它处理mail的工作。而且,procmail是SmartList邮件列表程序的基础。【只用在邮件集中服务器上】

安装完服务器之后必须安装的软件

为了可以在你的服务器上编译软件,你还必须安装下面的RPM软件包。这部分安装是非常重要的,要求你安装所有如下所述的软件包。所有的这些软件都在RedHat 6.1第一张光盘的/RedHat/RPMS目录下,而且都是使你的Linux系统能够编译程序所必须要的。

* 第一步

首先,先mount 上CD-ROM驱动器,转到RPMS子目录下。

mount CD-ROM驱动器和转到RPMS目录用下面的命令:

[root@deep]# mount /dev/cdrom /mnt/cdrom/

[root@deep]# cd /mnt/cdrom/RedHat/RPMS/

下面是我们需要安装的软件包,只有安装了这些软件包才在Linux系统上编译程序。记住这不过是能够编译.tar.gz软件最少必须的软件包。有一些软件的编译可能还需要用到别的特殊的软件包。这些特殊的软件包在RedHat的光盘中都能找到。所以,编译程序的时候,如果出错了,可以先看看需要编译的软件包的README文件。

autoconf-2.13-5.noarch.rpm

m4-1.4-12.i386.rpm

automake-1.4-5.noarch.rpm

dev86-0.14.9-1.i386.rpm

bison-1.28-1.i386.rpm

byacc-1.9-11.i386.rpm

cdecl-2.5-9.i386.rpm

cpp-1.1.2-24.i386.rpm

cproto-4.6-2.i386.rpm

ctags-3.2-1.i386.rpm

egcs-1.1.2-24.i386.rpm

ElectricFence-2.1-1.i386.rpm

flex-2.5.4a-7.i386.rpm

gdb-4.18-4.i386.rpm

kernel-headers-2.2.12-20.i386.rpm

glibc-devel-2.1.2-11.i386.rpm

make-3.77-6.i386.rpm

patch-2.5-9.i386.rpm

注意:最好把这些软件一起全装了,省得在安装这些RPM包的时候总出现一些相关出错的信息。

* 第二步

安装所有这些软件只要用一个命令就够了。这个命令是:

[root@deep]# rpm -Uvh autoconf-2.13-5.noarch.rpm m4-1.4-12.i386.rpm automake-1.4-5.noarch.rpm dev86-0.14.9-1.i386.rpm bison-1.28-1.i386.rpm byacc-1.9-11.i386.rpm cdecl-2.5-9.i386.rpm cpp-1.1.2-24.i386.rpm cproto-4.6-2.i386.rpm ctags-3.2-1.i386.rpm egcs-1.1.2-24.i386.rpm ElectricFence-2.1-1.i386.rpm flex-2.5.4a-7.i386.rpm gdb-4.18-4.i386.rpm kernel-headers-2.2.12-20.i386.rpm glibc-devel-2.1.2-11.i386.rpm make-3.77-6.i386.rpm patch-2.5-9.i386.rpm

* 第三步

为了让所有的改变都生效,必须退出再重新登录。退出的命令是:

[root@deep]# exit

安装和编译完在服务器上需要的所有软件之后,最好把上面几步安装的软件包都卸掉,除非有什么特殊的需要。这样做,其中一个原因是:如果黑客成功地入侵了你的服务器,他也不可能用上面这些软件来编译软件或改变二进制程序。同时,把它们卸载掉也释放了很多磁盘空间,这样当进行系统的安全性和一致性检查的时候,可以加快扫描所有文件的时间(文件少了)。

当然,有很多建立服务器的方法和策略,我在这本书中介绍的不过是我自己的观点,我的观点如下:

第一:每台服务器最好只安排一个特定的任务。你不应该把所有的服务都放在一台服务器上,否则,这台服务器的速度会受到影响(系统的资源要同时分给很多个进程),而且会降低系统的安全(在同一台服务器上运行太多的服务,黑客就有更多的机会找到系统的安全漏洞)。

第二:不同的服务器完成不同的任务。这样有利于简化管理(你可以清楚地知道每台服务器具体的用途、运行哪些服务、客户计算机(client)可以访问哪些端口,你也可以知道在日志文件中会看到什么,等等),而且还可以更好更灵活地控制每台服务器(专门用于邮件、Web、数据库、开发、备份,等等)。

举一个例子,一台专门用作开发和测试的服务器,就没有必要象上面介绍的那样,每一次装软件之前都要先装编译器,装完软件之后又把编译器卸掉,完全可以把编译器保留着。如果想知道更多的编译器的信息,请参考第八章《编译器的功用》。

服务器上已经安装的程序

因为我们选择定制安装我们的Linux系统, 下面是服务器上已安装的程序列表。这个列表必须和/tmp目录下的install.log文件一致,否则你就是没装全。不要忘了装全上一节《安装完服务器之后必须安装的软件》中的那些软件包,不然你编译一些程序的时候就会遇到问题。

Installing setup.

Installing filesystem.

Installing basesystem.

Installing ldconfig.

Installing glibc.

Installing shadow-utils.

Installing mktemp.

Installing termcap.

Installing libtermcap.

Installing bash.

Installing MAKEDEV.

Installing SysVinit.

Installing XFree86-SVGA.

Installing chkconfig.

Installing apmd.

Installing arpwatch.

Installing ncurses.

Installing info.

Installing fileutils.

Installing grep.

Installing ash.

Installing at.

[1] [2] 下一页

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有