分类: LINUX
2005-10-20 15:17:59
2.3对安装步骤的简化 在对RPM 包的剪裁进行之前,还要对原有的安装步骤做出简化,去掉一些与系统需求大致无关的项目,使安装者可以集中精力地配置Sensor的主要参数,忽略诸如对键盘,鼠标,和多国语言的配置。具体的如下所示: 原有的安装步骤有: 1.安装语言选择 2.键盘配置 3.鼠标配置 4.欢迎信息 5.安装类型选择(包括安装或升级,安装部分又包括workstation,server,laptop,custom四种类型) 6.选择分区方式(自动分区,手动分区,专业分区) 7.选择以上部分或全部分区格式化 8.Lilo操作系统引导器配置 9.网卡及网络配置 10.防火墙配置 11.语言配置 12.时区配置 13.账户配置 14.认证配置 15.包组及单RPM包选择 16.包独立性检查 17.X-Window配置 18.安装前确认 19.安装过程 20.制作启动盘 21.安装完毕确认 在这些安装步骤中很多都是在确定了RPM包组及调试完成后不必要存在的,所以去掉第1,2,3,4,7,8,10,11,14,16,17和第
20项安装步骤,所有去掉步骤的相关设置都采取默认的设置值,如第7步
采取分区全部格式化的方案,第8步,采取Lilo放置在MBR上,default boot
为Linux的设置等等,并修改第5步,去掉升级类型和安装类型中的所有4种既定类型,添加IDS sensor类型。修改完成以后的安装步骤如下所示: 1.安装类型选择(现有的为IDS sensor一种) 2.选择分区方式(自动分区,手动分区,专业分区) 3.网卡及网络配置 4.时区配置 5.账户配置 6.包组及单RPM包选择 7.安装过程 8.安装完毕确认 为此,需要修改Python脚本语言 ● 在安装程序运行之初,需要先禁止掉安装语言选择,键盘配置,鼠标配置和欢迎信息,在anaconda中在判断语言是否有效之前即Line491 if lang:之前加上以下四句: 并在gui.py中的类class
InstallInterface的run函数中注释掉Line371至Line371,即在commonSteps结构中除保留(
InstallPathWindow, "installtype" )外,注释掉( LanguageWindow, "language" ),(
KeyboardWindow, "keyboard" ),( MouseWindow, "mouse" )和( WelcomeWindow,
"welcome" ) ●对安装类型进行精简。在installclasses目录下去掉upgrateonly.py , workstation.py ,
server.py , laptop.py和custom.py即去掉升级类型和安装类型中的所有4种既定类型, 添加IDS
sensor类型,即在目录中添加sensor.py文件,文件的具体内容请参考附录E。 除此之外,还要修改iw/installpath_gui.py脚本文件,以便在图形界面上不显示Install和Upgrate图标和选项,
只显示IDS Sensor项目。具体的,注释掉Line223,Line 227,Line 233和Line 234代码,即在类class
InstallPathWindow中的getScreen函数的最后部分不执行显示。 ● 去掉其他多余步骤,主要修改iw/installpath_gui.py脚本文件。注释掉类class
InstallPathWindow初始化函数__init__里结构self.installSteps中的( FormatWindow,
"format" ) , ( FirewallWindow, "firewall" ) , ( LanguageSupportWindow,
"languagesupport" ) , ( AuthWindow, "authentication" ) , (
UnresolvedDependenciesWindow, "dependencies" ) , ( XConfigWindow,
"xconfig" ) , ( BootdiskWindow, "bootdisk"
),即对应着去掉的第7,10,11,14,16,17和第20步骤。 当这三步完成后,进行make和make install,重新编译程序,使修改生效,并把这些文件Copy至stage2.img中的相关位置,替换掉旧文件。这样就完成了对安装步骤的简化。 2.4对RPM 包的剪裁 对RPM包的裁剪依这次的需求进行。项目整体分析时已做出说明,制作目的是为了在系统前端Sensor 中能够快速,正确地建立运行Snort的Linux系统环境。所以只需保留Linux基本系统和运行snort所需的环境即可。 Linux基本系统的RPM包组成在comps文件中的base部分中有详细的描述,所以就以它为蓝本,去掉除base以外的所有component,并去掉base中以下不必要的RPM包: 在comps文件中增加IDS Sensor component并在此组中添加必要的RPM包,如snort-1.8.1就需要snort
, libpcap , mysql , openssl , openssl-clients ,
perl等RPM包,除此之外,为了方便调试,也保留了一些用于操作和诊断的RPM包,如tcpdump , iputils ,
zip等,完成的comps请参考附录C。 同时,在/RPM目录中依照上面所有确认保留的RPM包名称,删除不予保留的各RPM文件(文件后缀.rpm)。此时在/base中的
comps文件和在/RPM中的各rpm文件都已剪裁完成,可以利用genhdlist生成hdlist和hdlist2文件了,genhdlist
在anaconda-7.1的源代码中的utils目录里。具体生成方法见附录D。 3. 存在的问题及今后目标 此次对NetCop
Linux发布的制作是以RPM包作为裁剪单元进行的,所以必然存在很大缺陷,即对RPM包的内部毫无办法,无法去掉RPM包内部对需求无用的大量文件并
且无法对内核,脚本文件等做出制定修改。所以,下一步所要做的工作,是逐一打开每一个候选的RPM包,依需求对包内的每一个文件做出修改或丢弃,这样才能
做出真正适合sensor的Linux发布,无疑,工作量是巨大的。 4. 原始资料及参考文献
instClass.addToSkipList("language");
instClass.addToSkipList("keyboard");
instClass.addToSkipList("mouse");
instClass.addToSkipList("welcome");
apmd ash autoconfig dhcpcd
dosfstools ed eject gdm
gettext gpm gruff ksymoops
lokkit mailcap mailx man
mktemp mouseconfig ncurses
openldap popt procmail pump
raidtool readline redhat-logos
redhat-release rootfiles sendmail
syslinux utemper words
Bootdisk-HOWTO
CDROM-HOWTO
CD-Writing-HOWTO
Distribution-HOWTO
HP-HOWTO
KickStart-HOWTO
Linux-From-Scratch-HOWTO
RedHat-CD-HOWTO
RPM-HOWTO
~nob/ml/linuxppc-jp-dev/199902/msg00150.html