荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: nttiger (平平淡淡才是真。), 信区: Linux
标  题: 熟悉Linux系统安全和优化(中)
发信站: 荔园晨风BBS站 (Thu Sep  6 20:25:55 2001), 转信

熟悉Linux系统安全和优化(中)
文章类型:推崇文章 文章加入时间:2001年9月4日13:11
----------------------------------------------------------------------------
----
启动和停止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 linuxc
onf getty_ps setconsole isapnptools setserial kudzu raidtools gnupg redhat-l
ogos 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把em
ail传送到email的目的地。sendmail有很多不同的配置方式:可以做为一个把邮件转给
邮件集中服务器(Mail Hub Server)的内部邮件服务器,也可以做为单独的mail服务器
,或者做为网络上所有sendmail服务器的中央邮件集中服务器(Central Mail Hub Ser
ver)。因此,可以根据需要配置不同的sendmail服务器。所以,你要先把sendmail卸载
掉,参考本书sendmail的配置和安装的相关章节,根据需要建立自己的sendmail服务器

sendmail并不是自己处理邮件的分发,它是通过运行其它程序来完成这项工作。procma
il是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 ta
pe 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/systt
y和/dev/console文件。控制台可以是本地的终端(直接通过显示卡连接到系统上)或是
通过串口连接的控制台。【没有必要】
ispnptools软件包包括用于配置ISA接口的即插即用(Plug-and-Play)卡,符合PnP IS
A 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 c
tags-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 gli
bc-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.
Installing authconfig.
Installing bc.
Installing bdflush.
Installing binutils.
Installing bzip2.
Installing sed.
Installing console-tools.
Installing e2fsprogs.
Installing rmt.
Installing cpio.
Installing cracklib.
Installing cracklib-dicts.
Installing crontabs.
Installing textutils.
Installing dev.
Installing diffutils.
Installing ed.
Installing eject.
Installing etcskel.
Installing file.
Installing findutils.
Installing gawk.
Installing gd.
Installing gdbm.
Installing getty_ps.
Installing glib.
Installing gmp.
Installing gnupg.
Installing gpm.
Installing groff.
Installing gzip.
Installing hdparm.
Installing initscripts.
Installing ipchains.
Installing isapnptools.
Installing kbdconfig.
Installing kernel.
Installing kernel-pcmcia-cs.
Installing kudzu.
Installing ld.so.
Installing less.
Installing libc.
Installing libstdc++.
Installing lilo.
Installing pwdb.
Installing pam.
Installing sh-utils.
Installing redhat-release.
Installing linuxconf.
Installing logrotate.
Installing losetup.
Installing lsof.
Installing mailcap.
Installing mailx.
Installing man.
Installing mingetty.
Installing mkbootdisk.
Installing mkinitrd.
Installing modutils.
Installing mount.
Installing mouseconfig.
Installing mt-st.
Installing ncompress.
Installing net-tools.
Installing netkit-base.
Installing newt.
Installing ntsysv.
Installing passwd.
Installing pciutils.
Installing perl.
Installing procmail.
Installing procps.
Installing psmisc.
Installing pump.
Installing python.
Installing quota.
Installing raidtools.
Installing readline.
Installing redhat-logos.
Installing rootfiles.
Installing rpm.
Installing sash.
Installing sendmail.
Installing setconsole.
Installing setserial.
Installing setuptool.
Installing shapecfg.
Installing slang.
Installing slocate.
Installing stat.
Installing sysklogd.
Installing tar.
Installing tcp_wrappers.
Installing tcpdump.
Installing tcsh.
Installing time.
Installing timeconfig.
Installing timed.
Installing tmpwatch.
Installing traceroute.
Installing utempter.
Installing util-linux.
Installing vim-common.
Installing vim-minimal.
Installing vixie-cron.
Installing which.
Installing zlib.
给你的终端加点颜色
给终端加一点颜色,可以帮助区分目录、文件、设备、符号连接和可执行文件。我认为
加上颜色可以让人少犯错误,并且可以让人感觉更好用。
编辑profile文件(vi /etc/profile)加入下面这些行:
# Enable Colour ls
eval dircolors /etc/DIR_COLORS -b
export LS_OPTIONS=-s -F -T 0 --color=yes
编辑bashrc文件(vi /etc/bashrc),加入下面这一行:
alias ls=ls --color=auto
退出,再重新登录,与颜色相关的环境变量就设定好了。
使你的软件保持最新的版本
为了使你的软件保持最新的版本,请定期查看RedHat Linux的勘误网页:http://www.r
edhat.com/corp/support/errata/index.html。勘误网页通常可以解决90% RedHat Lin
ux的系统问题。而且,RedHat在得到安全漏洞的通知之后,如果已经找到解决方案了,
就会在24小时之内,在勘误网站上发布出来。必须经常查看这个地方。RedHat Linux服
务器现在必须更新的软件是:
groff-1_15-1_i386.rpm
sysklogd-1_3_31-14_i386.rpm
initscripts-4_70-1_i386.rpm
e2fsprogs-1.17-1.i386.rpm
pam-0_68-10_i386.rpm
Linux kernel 2.2.14 (linux-2_2_14_tar.gz)
注意:Linux的内核是最重要的,必须经常更新。下面的一些章节将会介绍如何为你的服
务器编译一个定制的内核。
在更新之前,你可以用下面的命令查看在系统中已经安装的软件。
[root@deep]# rpm -q
这里表示想查看的软件名,比如:XFree86、telnet,等等。
出处:天极网
文章出处:第八军团
文章作者:JunTuan

--
要软件的自己找啦!
ftp://192.168.0.127

※ 来源:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.0.127]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店