科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航



ZDNet>网络频道>ZD评测>Linux安全小谈(1)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

1LINUX服务器的安全安装(这里假定您已经对您的服务器硬件设备很了解)  首先创建启动盘,引导Linux。Linux分区的命名方式是字母和数字相结合的,这种命名方式很灵活也很直观。

来源: 2007年10月16日

关键字:安全 Linux

  要研究Linux安全,首先需要安全的安装LINUX系统。

  1LINUX服务器的安全安装(这里假定您已经对您的服务器硬件设备很了解)

  首先创建启动盘,引导Linux。(在次之前,我建议最好去RedHatLinux的勘误网站去下载特殊的软盘镜像)

  在windows下打开MS-DOS方式(开始|程序|MS-DOS方式):

  C:$#@62;d:

  D:$#@62;cddosutils

  D:dosutils$#@62;rawrite

  Enterdiskimagesourcefilename:..imagesroot.img

  Entertargetdiskettedrive:a:

  PleaseinsertaformatteddisketteintodriveA:andpress--ENTER--:

  D:dosutils$#@62;

  

  当rawrite.exe要求输入软盘镜像的时候,输入完整的boot.img的路径名,把软盘插入A驱。当程序问你把镜像写入哪个软盘驱动器的时候,输入a:。

  因为我们不能从CDROW启动,所以我们用软驱启动。把软盘插入A:驱,然后重新启动计算机。当出现boot:的时候,按下回车键,继续引导。

  ◆选择语言

  ◆选择键盘类型

  ◆选择鼠标类型

  再选择安装类型的时候,我建议选择自定义安装。

  分区是一个头疼的问题,我吐血建议在分区之前,备份你当前的系统先。

  使用DiskDruid分区工具

  DiskDruid是RedHatLinux带的一个分区工具。选择“Add”添加新的分区,“Edit”改变分区,“Delete"删除分区,“Reset”恢复原来的分区状态。在添加一个新分区的时候,会出现一个窗口,要求你添上有关这个分区的一些必要的信息。要求添的信息是:

  ◆MountPoint:分区装载(mount)的目录

  ◆Size:分区的大小,以兆为单位

  ◆PartitionType:分区类型。Linux的文件系统要使用Linuxnative类型的分区,Linux交换分区请用LinuxSwap类型。

  如果你有一个SCSI硬盘,那么这个设备的名称将是“/dev/sda”;如果你有一个IDE硬盘,那么这个设备名称将是“/dev/hda”。如果很在意系统的高性能和稳定性,我们建议你用SCSI硬盘。

  Linux分区的命名方式是字母和数字相结合的,这种命名方式很灵活也很直观。下面是一个小小的总结:

  ◆前两个字母:前两个字母表示设备类型,“hd”代表IDE硬盘,“sd”表示SCSI硬盘

  ◆第三个字母:这个字母是说明具体的设备。例如:“/dev/hda”表示第一个IDE硬盘;“/dev/hdb”表示第二个IDE硬盘。

  请记住这些,这样给Linux分区的时候,会觉得容易一些也不会混淆。

  交换分区

  交换分区是用于虚拟内存的。如果计算机的内存少于16M,你必须创建交换分区。即使有更多的内存,我们还是建议你建立交换分区。交换分区最小必须等于计算机的内存,如果内存多于16M,最小只要16M就行了。交换分区最大大约为1GB,(Linux2.2内核现在可以支持1GB的交换文件,如果多于1GB就是浪费)。注意:可以创建多于一个的交换分区,尽管只有在安装大型服务器的时候才有这个必要。尽量把交换分区放在硬盘驱动器的起始位置,因为一个磁盘的起始位置在物理上是在最外的柱面上,所以磁头每转一圈可以覆盖更大的面积。

  分区完毕之后,你可以在屏幕上看到类似的信息:

  MountPointDeviceRequestedActualType

  /bootsda15M5MLinuxNative

  /usrsda51000M1000MLinuxNative

  /homesda6500M500MLinuxNative

  /chrootsda7400M400MLinuxNative

  /cachesda8400M400MLinuxNative

  /varsda9200M200MLinuxNative

  Swapsda10150M150MLinuxSwap

  /tmpsda11100M100MLinuxNative

  /sda12316M315MLinuxNative

  DriveGeom[C/H/S]Total(M)Free(M)Used(M)Used(%)

  sda[3079/64/32]3079M1M3078M99%

  

  现在,选择“Next”继续安装。分区创建完之后,安装程序会让你格式化分区。选择想要格式化的分区,选中“Checkforbadblocksduringformat”选择框,按“Next”继续。这样就开始格式化分区,并且激活分区。Linux就可以使用这个分区了。

  下一步如果选择安装LILO,你会看到LILO的配置。可以选择把LILO装在主引导扇区(MBR),或引导分区的第一个扇区。

  在通常情况下,应该选择把LILO安装在主引导扇区。(如果你的计算机上装有NT,或一些多重引导程序,如SystemCommand,你最好仔细看一遍LILO-HOWTO,以免不必要的损失)。然后,开始配置网络和时钟。接着,要输入root口令和进行安全验证的配置。不要忘了选上:

  ◆EnableMD5passwords

  ◆EnableMD5passwords

  没有必要选择EnableNIS,因为我们不在这台服务器上安装NIS服务。

补上一篇作为对PAM机制的深入了解:
使用PAM进行统一身份的认证
PAM是PLUGGABLEAUTHENTICATIONMODULES的缩写.可插入的认证模块(并不是Linux指的模块)用于实现应用程序的认证机制,是程序员或管理员不需要重新编写或编译程序就可以改变认证机制.
在linux它已经被广泛的应用了,例如:/etc/securitty/etc/onlogin/etc/ftpusers实际上都是给它用的.你在登陆的时候的输入密码和你修改密码时也都用的是它./etc/pam.conf和/etc/pam/*都是它的配置文件.
它最大的优点是它的弹性和可扩充性.你可以随意修改认证机制,按你的实际需要来定制系统.你了解后就会非常清楚了.
DESIGNGOALS(设计目标)
(a)管理员可以选择认证方式,从简单的密码到智能卡系统.
(b)可以为不同的程序配置不同的认证机制.如使telnet使用S/Key认证.
而本机的login缺使用一般的UNIXpassword.
(c)支持程序的显示方式的需求.如login需要基于终端的显示,而dtlogin
需要X显示,而`ftp'和`telnet'需要透过网络来认证.
(d)支持为一个程序配置同时使用多种认证机制.
(e)可是用户在使用多种认证机制时,不必为同一个密码敲入多次.
(f)可是用户在认真时需要输入多个密码.
(g)当底层的认证机制改变时上层软件不需要修改.
(h)结构为systemauthentication提供一个_pluggable_model.
(i)必须能满足现有的服务需要.
4.OVERVIEWOFTHEPAMFRAMEWORK(纵览PAM的框架)其核心实际上是一些库函数.你写的应用程序要调用它们.PAM为你提供了一套入口(thefrontend).而这套函数互调用特定认证机制所定义的模块
(thebackend).
简单的说是这样的:你调用一个函数仅仅告诉它你要认正,这就足够了.至于用那一种机制来认证是由配置文件规定的.你只需要看一看返回值就知道认证是否成功了.对于开发应用程序的人来说只需要记住几个函数.
ftptelnetlogin(Applications)
|||
|||
+--------+--------+
|
+-----+-----+
|PAMAPI|<--pam.conffile
+-----+-----+
|
+--------+--------+
UNIXKerberosSmartCards(Mechanisms)

Figure1:基本的PAM结构PAM的功能被分为四个部分:(1)authentication(认证),(2)account(账号管理),(3)session(对话管理),和(4)password(密码管理).这四个东东都是什么呢?
(a)Authenticationmanagement:
包括`pam_authenticate()'来认证用户,`pam_setcred()'来设置刷新和销毁用户的credentials.
(b)Accountmanagement:
包括`pam_acct_mgmt()'来检查用的账号是否还有效.可以被用来检查用户是否超时或账号是否过期.
(c)Sessionmanagement:
包括`pam_open_session()'和`pam_close_session()'用于对话过程的管理.例如:可以用来纪录用户的连接时间.一次telnet过程实际上也是一个session.
(d)Passwordmanagement:`pam_chauthtok()'用来修该密码.
程序通过调用由于RedHatLinux在默认情况下会安装一些预置的软件,而且在安装的过程中,不能够选择不安装。因此,必须在安装完成之后卸载下面这些软件:isapnptools,redhat-logos,pump,apmd,kernel-pcmcia-cs,mt-st,setserial,eject,gd,kudzu,linuxconf,getty_ps,pciutils,mailcap,gnupg,setconsole。
usecommand:[root@deep]#rpm-esoftwarenames
apmd、kudzu和sendmail是daemon进程,在卸载它们之前最好先停止这些进程。
停止这些进程用如下的命令:
[root@deep]#/etc/rc.d/init.d/apmdstop
[root@deep]#/etc/rc.d/init.d/sendmailstop
[root@deep]#/etc/rc.d/init.d/kudzustop
由于本文着重介绍安全问题,所以就不介绍这些软件的作用了。
我们卸载了一系列的软件,同时我们也需要安装一些必要的软件。为了可以在你的服务器上编译软件,你还必须安装下面的RPM软件包。这部分安装是非常重要的,要求你安装所有如下所述的软件包。所有的这些软件都在RedHat6.1第一张光盘的/RedHat/RPMS目录下,而且都是使你的Linux系统能够编译程序所必须要的。
首先,先mount上CD-ROM驱动器,转到RPMS子目录下。mountCD-ROM驱动器和转到RPMS目录,usecommand:
[root@deep]#mount/dev/cdrom/mnt/cdrom/
[root@deep]#cd/mnt/cdrom/RedHat/RPMS/ 


weneedthesesoftwares:

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
PS:ThebestchoiceisinstallthesesoftwareinsametimebecauseitsalwaysmadesomethingwrongwhenyouinstallingtheRPM
Second:Installthesesoftwareyoucanusecommandthatis;
[root@deep]#rpm-Uvhautoconf-2.13-5.noarch.rpmm4-1.4-12.i386.rpmautomake-1.4-5.noarch.
rpmdev86-0.14.9-1.i386.rpmbison-1.28-1.i386.rpmbyacc-1.9-11.i386.rpmcdecl-2.5-9.i386.
rpmcpp-1.1.2-24.i386.rpmcproto-4.6-2.i386.rpmctags-3.2-1.i386.rpmegcs-1.1.2-24.i386.
rpmElectricFence-2.1-1.i386.rpmflex-2.5.4a-7.i386.rpmgdb-4.18-4.i386.
rpmkernel-headers-2.2.12-20.i386.rpmglibc-devel-2.1.2-11.i386.
rpmmake-3.77-6.i386.rpmpatch-2.5-9.i386.rpm
为了让这些改变都生效,必须退出然后再登陆,命令:
[root@deep]#exit
安装和编译完在服务器上需要的所有软件之后,最好把上面几步安装的软件包都卸掉,除非有什么特殊的需要。这样做,其中一个原因是:如果黑客成功地入侵了你的服务器,他也不可能用上面这些软件来编译软件或改变二进制程序。同时,把它们卸载掉也释放了很多磁盘空间,这样当进行系统的安全性和一致性检查的时候,可以加快扫描所有文件的时间(文件少了)。
因为我们选择定制安装我们的Linux系统,下面是服务器上已安装的程序列表。这个列表必须和/tmp目录下的install.log文件一致,否则你就是没装全。上面提到的那些软件是我们必须的。
使你的软件保持最新的版本
为了使你的软件保持最新的版本,请定期查看RedHatLinux的勘误网页http://www.redhat.com/corp/support/errata/index.html。勘误网页通常可以解决90%RedHatLinux的系统问题。而且,RedHat在得到安全漏洞的通知之后,如果已经找到解决方案了,就会在24小时之内,在勘误网站上发布出来。必须经常查看这个地方。RedHatLinux服务器现在必须更新的软件是:
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
推广二维码
邮件订阅

如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

重磅专题