要研究Linux安全,首先需要安全的安装LINUX系统。
1 LINUX服务器的安全安装(这里假定您已经对您的服务器硬件设备很了解)
首先创建启动盘,引导Linux 。(在次之前,我建议最好去RedHat Linux的勘误网站去下载特殊的软盘镜像)
在windows下打开MS-DOS方式(开始 | 程序 | MS-DOS方式):
C:$#@62; d:
D:$#@62; cd dosutils
D:dosutils$#@62; rawrite
Enter disk image source file name: ..imagesroot.img
Enter target diskette drive: a:
Please insert a formatted diskette into drive A: and press --ENTER-- :
D:dosutils$#@62;
当rawrite.exe要求输入软盘镜像的时候,输入完整的boot.img的路径名,把软盘插入A驱。当程序问你把镜像写入哪个软盘驱动器的时候,输入a:。
因为我们不能从CDROW启动,所以我们用软驱启动。把软盘插入A:驱,然后重新启动计算机。当出现boot:的时候,按下回车键,继续引导。
* 选择语言
* 选择键盘类型
* 选择鼠标类型
再选择安装类型的时候,我建议选择自定义安装。
分区是一个头疼的问题,我吐血建议在分区之前,备份你当前的系统先。
(1)使用Disk Druid分区工具
Disk Druid是RedHat Linux带的一个分区工具。选择“Add”添加新的分区,“Edit”改变分区,“Delete"删除分区,“Reset”恢复原来的分区状态。在添加一个新分区的时候,会出现一个窗口,要求你添上有关这个分区的一些必要的信息。要求添的信息是:
* Mount Point: 分区装载(mount)的目录
* Size: 分区的大小,以兆为单位
* Partition Type: 分区类型。Linux的文件系统要使用Linux native类型的分区,Linux交换分区请用Linux Swap类型。
如果你有一个SCSI硬盘,那么这个设备的名称将是“/dev/sda”;如果你有一个IDE硬盘,那么这个设备名称将是“/dev/hda”。如果很在意系统的高性能和稳定性,我们建议你用SCSI硬盘。
Linux分区的命名方式是字母和数字相结合的,这种命名方式很灵活也很直观。下面是一个小小的总结:
* 前两个字母:前两个字母表示设备类型,“hd”代表IDE硬盘,“sd”表示SCSI硬盘
* 第三个字母:这个字母是说明具体的设备。例如:“/dev/hda”表示第一个IDE硬盘;“/dev/hdb”表示第二个IDE硬盘。
请记住这些,这样给Linux分区的时候,会觉得容易一些也不会混淆。
(2)交换分区
交换分区是用于虚拟内存的。如果计算机的内存少于16M,你必须创建交换分区。即使有更多的内存,我们还是建议你建立交换分区。交换分区最小必须等于计算机的内存,如果内存多于16M,最小只要16M就行了。交换分区最大大约为1GB,(Linux 2.2内核现在可以支持1GB的交换文件,如果多于1GB就是浪费)。注意:可以创建多于一个的交换分区,尽管只有在安装大型服务器的时候才有这个必要。尽量把交换分区放在硬盘驱动器的起始位置,因为一个磁盘的起始位置在物理上是在最外的柱面上,所以磁头每转一圈可以覆盖更大的面积。
分区完毕之后,你可以在屏幕上看到类似的信息:
Mount Point Device Requested Actual Type
/boot sda1 5M 5M Linux Native
/usr sda5 1000M 1000M Linux Native
/home sda6 500M 500M Linux Native
/chroot sda7 400M 400M Linux Native
/cache sda8 400M 400M Linux Native
/var sda9 200M 200M Linux Native
Swap sda10 150M 150M Linux Swap
/tmp sda11 100M 100M Linux Native
/ sda12 316M 315M Linux Native
Drive Geom [C/H/S] Total (M) Free (M) Used (M) Used (%)
sda [3079/64/32] 3079M 1M 3078M 99%
现在,选择“Next”继续安装。分区创建完之后,安装程序会让你格式化分区。选择想要格式化的分区,选中“Check for bad blocks during format”选择框,按“Next”继续。这样就开始格式化分区,并且激活分区。Linux就可以使用这个分区了。
下一步如果选择安装LILO,你会看到LILO的配置。可以选择把LILO装在主引导扇区(MBR),或引导分区的第一个扇区。
在通常情况下,应该选择把LILO安装在主引导扇区。(如果你的计算机上装有NT,或一些多重引导程序,如System Command,你最好仔细看一遍LILO-HOWTO,以免不必要的损失)。然后,开始配置网络和时钟。接着,要输入root口令和进行安全验证的配置。不要忘了选上:
* Enable MD5 passwords
* Enable MD5 passwords
没有必要选择Enable NIS,因为我们不在这台服务器上安装NIS服务。
关于Linux安全的研究(二)
作者:Feardark
发布日期:28/3/2002
上文我们已经安装了Linux系统,由于RedHat Linux在默认情况下会安装一些预置的软件,而且在安装的过程中,不能够选择不安装。因此,必须在安装完成之后卸载下面这些软件:isapnptools,redhat-logos ,pump,apmd ,kernel-pcmcia-cs,mt-st,setserial
,eject,gd,kudzu,linuxconf,getty_ps,pciutils ,mailcap,gnupg,setconsole。
use command :[root@deep]# rpm -e softwarenames
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
由于本文着重介绍安全问题,所以就不介绍这些软件的作用了。
我们卸载了一系列的软件,同时我们也需要安装一些必要的软件。为了可以在你的服务器上编译软件,你还必须安装下面的RPM软件包。这部分安装是非常重要的,要求你安装所有如下所述的软件包。所有的这些软件都在RedHat 6.1第一张光盘的/RedHat/RPMS目录下,而且都是使你的Linux系统能够编译程序所必须要的。
首先,先mount 上CD-ROM驱动器,转到RPMS子目录下。mount CD-ROM驱动器和转到RPMS目录,use command:
[root@deep]# mount /dev/cdrom /mnt/cdrom/
[root@deep]# cd /mnt/cdrom/RedHat/RPMS/
we need these softwares:
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:The best choice is install these software in same time because its always made something wrong when you installing the RPM
Second:Install these software you can use command that is;
[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
安装和编译完在服务器上需要的所有软件之后,最好把上面几步安装的软件包都卸掉,除非有什么特殊的需要。这样做,其中一个原因是:如果黑客成功地入侵了你的服务器,他也不可能用上面这些软件来编译软件或改变二进制程序。同时,把它们卸载掉也释放了很多磁盘空间,这样当进行系统的安全性和一致性检查的时候,可以加快扫描所有文件的时间(文件少了)。
因为我们选择定制安装我们的Linux系统, 下面是服务器上已安装的程序列表。这个列表必须和/tmp目录下的install.log文件一致,否则你就是没装全。上面提到的那些软件是我们必须的。
使你的软件保持最新的版本
为了使你的软件保持最新的版本,请定期查看RedHat Linux的勘误网页http://www.redhat.com/corp/support/errata/index.html。勘误网页通常可以解决90% RedHat Linux的系统问题。而且,RedHat在得到安全漏洞的通知之后,如果已经找到解决方案了,就会在24小时之内,在勘误网站上发布出来。必须经常查看这个地方。RedHat Linux服务器现在必须更新的软件是:
groff-1_15-1_i386.rpm
sysklogd-1_3_31-14_i386.rpm
inits cripts-4_70-1_i386.rpm
e2fsprogs-1.17-1.i386.rpm
pam-0_68-10_i386.rpm
L