1、业务系统安全加固实施方案 业务系统安全加固实施方案目 录1加固目的42加固范围43加固前准备工作43.1加固前检查43.2加固前备份53.3影响分析63.4加固操作流程74加固实施74.1账号管理、认证授权74.1.1账号74.1.2口令114.1.3授权134.2日志审计174.2.1登录日志(必选)174.2.2操作审计184.2.3本地记录系统日志184.2.4远程记录日志194.2.5SU操作日志204.2.6应用日志204.3IP协议安全214.3.1使用SSH协议登录214.3.2关闭不需要的IP服务端口224.3.3鉴权远程登录的主机IP234.3.4禁止ICMP重定向244.4
2、屏幕保护254.4.1超时退出登录界面254.4.2定时锁屏264.5文件系统及访问权限274.5.1重要文件权限加固274.5.2限制FTP等应用的访问目录274.6补丁管理284.6.1软件包裁减284.6.2补丁包294.7服务294.7.1关闭不需要的服务29Email Server314.7.2NTP服务的安全配置314.7.3NFS服务的安全配置324.8内核调整334.8.1防止堆栈缓冲溢出334.9启动项344.9.1启动项的安全配置345加固后检查验证355.1操作系统健康检查355.2业务检查366失败处理366.1失败定义366.2回退操作361 加固目的随着电信业务不断
3、发展,系统信息安全方面的投入的不断增多,在信息系统各个层面都采取一些安全防护策略。而由于网络系统本身的复杂性,各种应用系统繁多,设备采用通用操作系统、数据库和IP协议,设备自身存在的安全问题日益突出。同时,一些现网设备不符合必要的安全要求,存在较大安全隐患。针对上述问题,中国移动集团根据设备的安全现状,制定了统一的中国移动设备安全规范,要求设备必须符合规范的相关要求。本次安全加固项目目的在于降低风险,提高系统的稳定性和安全性,符合中国移动通信集团与山东移动对业务系统设备的安全要求。2 加固范围设备名设备管理IP地址设备用途3 加固前准备工作3.1 加固前检查1)、检查需要加固的主机是否满足下列
4、条件:序号检查项目检查结果确认责任人时间1检查业务主机的硬件情况执行/usr/platform/sun4u/sbin/prtdiag -v检查是否有硬件故障2检查业务主机日志执行more /var/adm/message*及/var/log/syslog*检查是否有报错3检查系统性能情况#vmstat 5 10#sar 5 10并把相关结果记录下来4远程登录环境检查确保能够进行远程登录,登录方式不限于telnet、ssh5本地登录检查检查是否具备本地登录操作的环境,如鼠标与键盘是否可用2)、检查需要加固的主机承载业务是否正常序号检查项目检查结果确认责任人时间1GPRS应用在做加固之前,做一次巡
5、检检查系统状态是否都正常2Cluster应用查看Cluster状态: #scstat 3.2 加固前备份(时间点: 晚上10:00以后,具体时间点请和客户协商)序号检查项目检查结果确认责任人时间1对实施过程需修改的安全配置文件进行备份mkdir -p /etc/backupmkdir -p /etc/backup/default/etc/passwd #cp /etc/passwd /etc/backup/passwd.backup/etc/group #cp /etc/group /etc/backup/group.backup/etc/shadow # cp /etc/shadow /et
6、c/backup/shadow.backup/etc/default/su # cp /etc/default/su /etc/backup/default/su.backup/etc/default/passwd # cp /etc/default/passwd /etc/backup/default/passwd.backup/etc/default/login # cp /etc/default/login /etc/backup/default/login.backup/etc/inetd.conf # cp /etc/inetd.conf /etc/backup/inetd.conf
7、.backup/etc/services # cp /etc/services /etc/backup/services.backup/etc/system # cp /etc/system /etc/backup/system.backup3.3 影响分析序号被影响环境名称影响结果应对措施需要对方的配合1GPRS系统涉及的业务(因被加固主机加固前需要进行主备倒换以及重启,重启前需要退出Cluster)业务暂时会中断按流程操作,降低风险需要总部提供业务保障支持3.4 加固操作流程主机加固整体流程如下: 1)、检查当前需加固主机业务应用正常后,重启机器,再次确认业务状态正常。(对于双机类应用,检
8、查主备机承担业务均正常后,重启备机,对备机执行加固) 2)、设备加固实施。 3)、加固后重启,业务验证。提供相应的加固操作说明,脚本等等4 加固实施预计操作时间: 120分钟操作人员:操作影响:部分策略实施可能会造成业务中断, 在双机系统中,实施时需先实施备机,确保备机没问题后,再实施主机.4.1 账号管理、认证授权4.1.1 账号1. 账号专人专用(必选)编号:安全要求-设备-SOLARIS-ACCT-01 要求内容: 应按照不同的用户分配不同的账号,避免不同用户间共享账号,避免用户账号和设备间通信使用的账号共享。 操作方法: 为用户创建账号:#useradd -m username #创建
9、账号#passwd username #设置密码修改权限:#chmod 750 user directory #其中755为设置的权限,可根据实际情况设置相应的权限,directory是要更改权限的目录) 操作验证:1.验证方法:以新增的用户登录2.预期结果:登录成功,并能进行常用操作2. 删除无关用户(必选)编号:安全要求-设备-SOLARIS-ACCT-02 要求内容: 应删除或锁定与设备运行、维护等工作无关的账号。系统内存在不可删除的内置账号,包括root,bin等。 操作方法:需要锁定的用户:daemon、bin、sys、adm、smmsp 、listen、gdm、webservd、n
10、obody、noaccess。需要删除的用户:lp、uucp、nuucp、nobody4删除用户:#userdel username; 锁定用户:1)修改/etc/shadow文件,用户名后加*LK*2)将/etc/passwd文件中的shell域设置成/bin/false修改密码文件?#usermod -s /bin/false USERNAME3)#passwd -l username只有具备超级用户权限的使用者方可使用,#passwd -l username锁定用户,用#passwd d username解锁后原有密码失效,登录需输入新密码,修改/etc/shadow能保留原有密码。 操
11、作验证:1.验证方法:使用删除或锁定的与工作无关的账号登录系统;2.预期结果:被删除或锁定的账号无法登录成功;3. root用户不能远程登录(必选)编号:安全要求-设备-SOLARIS-ACCT-03 要求内容: 限制具备超级管理员权限的用户远程登录。远程执行管理员权限操作,应先以普通权限用户远程登录后,再切换到超级管理员权限账号后执行相应操作。 操作方法:1、编辑/etc/default/login,加上:CONSOLE=/dev/console # If CONSOLE is set, root can only login on that device.此项只能限制root用户远程使用t
12、elnet登录。用ssh登录,修改此项不会看到效果的2、如果限制root从远程ssh登录,修改/etc/ssh/sshd_config文件,将PermitRootLogin yes改为PermitRootLogin no,重启sshd服务。重启sshd服务:Solaris10以前:#/etc/init.d/sshd stop#/etc/init.d/sshd startSolaris10:#svcadm disable ssh#svcadm enable ssh补充命令操作验证:1.验证方法:root从远程使用telnet登录;普通用户从远程使用telnet登录;root从远程使用ssh登录;
13、普通用户从远程使用ssh登录;2.预期结果:root远程登录不成功,提示“Not on system console”;普通用户可以登录成功,而且可以切换到root用户;4. 用户账号分组编号:安全要求-设备-SOLARIS-ACCT-04 要求内容: 根据系统要求及用户的业务需求,建立多帐户组,将用户账号分配到相应的帐户组。 操作方法: 1、 创建帐户组:#groupadd g GID groupname #创建一个组,并为其设置GID号,若不设GID,系统会自动为该组分配一个GID号;#usermod g group username #将用户username分配到group组中。查询被分
14、配到的组的GID:#id username可以根据实际需求使用如上命令进行设置。2、可以使用 -g 选项设定新组的 GID。0 到 499 之间的值留给 root、bin、mail 这样的系统账号,因此最好指定该值大于 499。如果新组名或者 GID 已经存在,则返回错误信息。当group_name字段长度大于八个字符,groupadd命令会执行失败;当用户希望以其他用户组成员身份出现时,需要使用newgrp命令进行更改,如#newgrp sys 即把当前用户以sys组身份运行; 操作验证:1.验证方法:查看组文件:cat /etc/group 2.预期结果:可以查看到用户账号分配到相应的帐户
15、组中;或都通过命令检查账号是否属于应有的组:#id username 4.1.2 口令1. 口令加强(必选)编号:安全要求-设备-SOLARIS-PWD-01 要求内容:对于采用静态口令认证技术的设备,口令长度至少6位,并包括数字、小写字母、大写字母和特殊符号4类中至少2类。 操作方法:2、Solaris10默认如下各行都被注释掉,并且数值设置和解释如下:MINDIFF=3 # Minimum differences required between an old and a new password.MINALPHA=2 # Minimum number of alpha character
16、 required.MINNONALPHA=1 # Minimum number of non-alpha (including numeric and special) required.MINUPPER=0 # Minimum number of upper case letters required.MINLOWER=0 # Minimum number of lower case letters required.MAXREPEATS=0 # Maximum number of allowable consecutive repeating characters.MINSPECIAL=
17、0 # Minimum number of special (non-alpha and non-digit) characters required.MINDIGIT=0 # Minimum number of digits required.WHITESPACE=YES操作验证:验证方法:1、检查口令强度配置选项是否可以进行如下配置:i. 配置口令的最小长度;ii. 将口令配置为强口令。2、创建一个普通账号,为用户配置与用户名相同的口令、只包含字符或数字的简单口令以及长度短于6位的口令,查看系统是否对口令强度要求进行提示;输入带有特殊符号的复杂口令、普通复杂口令,查看系统是否可以成功设置。
18、预期结果:不符合密码强度的时候,系统对口令强度要求进行提示;符合密码强度的时候,可以成功设置;可查询密码文件即可2. 口令生存期为90天(必选)计费的账号设置为不过期编号:安全要求-设备-SOLARIS-PWD-02要求内容: 对于采用静态口令认证技术的设备,帐户口令的生存期不长于90天。 操作方法: #vi /etc/default/passwd文件:MAXWEEKS=13密码的最大生存周期为13周;(Solaris 8&10)PWMAX= 90 #密码的最大生存周期;(Solaris 其它版本)操作验证:1.验证方法:使用超过90天的帐户口令登录;2.预期结果:登录不成功;3. 设置的密码
19、在最近5次不能相同编号:安全要求-设备-SOLARIS-PWD-03要求内容:对于采用静态口令认证技术的设备,应配置设备,使用户不能重复使用最近5次(含5次)内已使用的口令。 操作方法: 1、vi /etc/default/passwd ,修改设置如下HISTORY52、#HISTORY sets the number of prior password changes to keep and# check for a user when changing passwords. Setting the HISTORY# value to zero (0), or removing/commen
20、ting out the flag will# cause all users prior password history to be discarded at the# next password change by any user. No password history will# be checked if the flag is not present or has zero value.# The maximum value of HISTORY is 26.验证方法:cat /etc/default/passwd ,设置如下HISTORY5预期结果:设置密码不成功4.1.3
21、授权1. 文件的权限(必选)编号:安全要求-设备-SOLARIS-AUTH-01要求内容:在设备权限配置能力内,根据用户的业务需要,配置其所需的最小权限。 操作方法:重要系统文件权限清单如下或更小:/etc/passwdrootSys-r-r-r-/etc/shadowrootSys-r-/etc/default/loginrootSys-r-r-r-/etc/default/passwdrootSys-r-r-r-/etc/systemrootRoot-rw-r-r-/etc/inittabrootSys-rw-r-r-/etc/profilerootSys-rw-r-r-/etc/vfst
22、abrootRoot-rw-r-r- 1、通过chmod命令对目录的权限进行实际设置。/etc/passwd 必须所有用户都可读,root用户可写 rw-rr /etc/shadow 只有root可读 r- /etc/group 必须所有用户都可读,root用户可写 rw-rr使用如下命令设置:chmod 644 /etc/passwdchmod 600 /etc/shadowchmod 644 /etc/group如果是有写权限,就需移去组及其它用户对/etc的写权限(特殊情况除外)执行命令#chmod -R go-w /etc 操作验证:1.验证方法:1、利用管理员账号登录系统,并创建2个
23、不同的用户;2、创建用户时查看系统是否提供了用户权限级别以及可访问系统资源和命令的选项;3、为两个用户分别配置不同的权限,2个用户的权限差异应能够分别在用户权限级别、可访问系统资源以及可用命令等方面予以体现;4、分别利用2个新建的账号访问设备系统,并分别尝试访问允许访问的内容和不允许访问的内容,查看权限配置策略是否生效。2.预期结果:1、设备系统能够提供用户权限的配置选项,并记录对用户进行权限配置是否必须在用户创建时进行;2、记录能够配置的权限选项内容;3、所配置的权限规则应能够正确应用,即用户无法访问授权范围之外的系统资源,而可以访问授权范围之内的系统资源。2. 用户的缺省权限编号:安全要求
24、-设备-SOLARIS-AUTH-02要求内容:控制用户缺省访问权限,当在创建新文件或目录时 应屏蔽掉新文件或目录不应有的访问允许权限。防止同属于该组的其它用户及别的组的用户修改该用户的文件或更高限制。 操作方法: 1、设置默认权限:vi /etc/default/login在末尾增加umask 0272、更改应用用户主目录的权限:修改目录及所有子目录的权限,操作举例如下:Owner可读可写可执行、同组可读可执行、其他没有权限。#chmod -R 750 /home/idea3、如果用户需要使用一个不同于默认全局系统设置的umask,可以在需要的时候通过命令行设置,或者在用户的shell启动文
25、件中配置。 操作验证:1.验证方法:1、查看新建的文件或目录的权限,操作举例如下:#ls lR /home/idea ; #查看目录dir的权限#cat /etc/default/login 查看是否有umask 027内容2.预期结果:权限设置符合实际需要;不应有的访问允许权限被屏蔽掉;3. ftp权限控制编号:安全要求-设备-SOLARIS-AUTH-03要求内容:控制FTP进程缺省访问权限,当通过FTP服务创建新文件或目录时应屏蔽掉新文件或目录不应有的访问允许权限。ftp话单时,需要在FTP服务器进行删除、移动、改名等权限。 操作方法:a. 限制某些系统帐户不准ftp登录:通过修改ftp
26、users文件,增加帐户#vi /etc/ftpusers #Solaris 8#vi /etc/ftpd/ftpusers #Solaris 10b. 限制用户可使用FTP不能用Telnet,假如用户为ftpxll创建一个/etc/shells文件, 添加一行 /bin/true;修改/etc/passwd文件,ftpxll:x:119:1:/home/ftpxll:/bin/true注:还需要把真实存在的shell目录加入/etc/shells文件,否则没有用户能够登录ftp最好不要做测试,可以查一下文件即可c. 限制ftp用户登陆后在自己当前目录下活动编辑ftpaccess,加入如下一行
27、restricted-uid *(限制所有),restricted-uid username(特定用户) ftpaccess文件与ftpusers文件在同一目录 d. 设置ftp用户登录后对文件目录的存取权限,可编辑/etc/ftpd/ftpaccess。chmod no guest,anonymous delete no guest,anonymous overwrite no guest,anonymous rename no guest,anonymous umask no anonymous 说明:查看# cat ftpusers说明: 在这个列表里边的用户名是不允许ftp登陆的。ro
28、otdaemonbinsysadmlpuucpnuucplistennobodynoaccessnobody4 操作验证:1.验证方法:查看新建的文件或目录的权限,操作举例如下:#more /etc/ftpusers #Solaris 8#more /etc/ftpd/ftpusers #Solaris 10#more /etc/passwd#more /etc/ftpaccess #Solaris 8#more /etc/ftpd/ftpaccess #Solaris 102.预期结果:权限设置符合实际需要;不应有的访问允许权限被屏蔽掉;4.2 日志审计本部分对SOLARIS操作系统设备的日
29、志功能提出要求,主要考察设备所具备的日志功能,确保发生安全事件后,设备日志能提供充足的信息进行安全事件定位。根据这些要求,设备日志应能支持记录与设备相关的重要事件,包括违反安全策略的事件、设备部件发生故障或其存在环境异常等,以便通过审计分析工具,发现安全隐患。如出现大量违反ACL规则的事件时,通过对日志的审计分析,能发现隐患,提高设备维护人员的警惕性,防止恶化。4.2.1 登录日志(必选)编号:安全要求-设备-SOLARIS-LOG-01要求内容: 设备应配置日志功能,对用户登录进行记录,记录内容包括用户登录使用的账号,登录是否成功,登录时间,以及远程登录时,用户使用的IP地址。 操作方法:
30、修改文件:vi /etc/default/login ,设置SYSLOG=YES。,SOLARIS10是wtmpx文件,Solaris8 是wtmp,wtmps,文件中记录着所有登录过主机的用户,时间,来源等内容,这两个文件不具可读性,可用last命令来看。 操作验证:1.验证方法:查看文件:more /etc/default/login 中的SYSLOG=YES/var/adm/wtmpx或者wtmp,wtmps文件中记录着所有登录过主机的用户,时间,来源等内容,该文件不具可读性,可用last命令来看。# last 2.预期结果:列出用户账号、登录是否成功、登录时间、远程登录时的IP地址。4
31、.2.2 操作审计编号:安全要求-设备-SOLARIS-LOG-02 要求内容: 设备应配置日志功能,记录用户对设备的操作,包括但不限于以下内容:账号创建、删除和权限修改,口令修改,读取和修改设备配置,读取和修改业务用户的话费数据、身份数据、涉及通信隐私数据。需记录要包含用户账号,操作时间,操作内容以及操作结果。 操作方法: 通过设置日志文件可以对每个用户的每一条命令进行纪录,这一功能默认是不开放的,为了打开它,需要执行/usr/lib/acct目录下的accton文件查看即可,若示开启,由于CG是放话单的,容易较大,日志太多是否会影响计费,格式如下/usr/lib/acct/accton /
32、var/adm/pacct,执行读取命令lastcomm user name。 操作验证:1.验证方法:# lastcomm user name2.预期结果:能够显示出包含配置内容中所要求的全部内容。4.2.3 本地记录系统日志编号:安全要求-设备-SOLARIS-LOG-03要求内容: 设备应配置日志功能,记录对与设备相关的安全事件。 操作方法: 修改配置文件vi /etc/syslog.conf,配置如下类似语句:*.err;kern.debug;daemon.notice; /var/adm/messages定义为需要保存的设备相关安全事件。 操作验证:1. 验证方法:修改配置文件vi
33、/etc/syslog.conf,配置如下类似语句:*.err;kern.debug;daemon.notice; /var/adm/messages定义为需要保存的设备相关安全事件。2. 预期结果:查看/var/adm/messages,记录有需要的设备相关的安全事件。4.2.4 远程记录日志编号:安全要求-设备-SOLARIS-LOG-04要求内容: 设备配置远程日志功能,将需要重点关注的日志内容传输到日志服务器。 操作方法: 修改配置文件vi /etc/syslog.conf,加上这一行:*.* 192.168.0.1可以将*.*替换为你实际需要的日志信息。比如:kern.* / mai
34、l.* 等等。可以将此处192.168.0.1替换为实际的IP或域名。重新启动syslog服务,依次执行下列命令:对solaris 10:svcadm disable svc:/system/system-logsvcadm enable svc:/system/system-log操作验证:1.验证方法:查看日志服务器上的所收到的日志文件。2.预期结果:设备配置远程日志功能,将需要重点关注的日志内容传输到日志服务器4.2.5 SU操作日志编号:安全要求-设备-SOLARIS-LOG-05要求内容: 设备应配置日志功能,记录用户使用SU命令的情况,记录不良的尝试记录。 操作方法: 修改文件:v
35、i /etc/default/su 设置SYSLOG=YES.使用以下方法使尝试登录失败记录有效:touch /var/log/loginlog;chmod 600 /var/log/loginlog;chgrp sys /var/log/loginlog查看sulog日志,记载着普通用户尝试su成为其它用户的纪录,more /var/adm/sulog 操作验证:1.验证方法:查看sulog日志,记载着普通用户尝试su成为其它用户的纪录more /var/adm/sulog2.预期结果:有类似如下格式记录:SU 01/01 00:30 + console root-root或SU 08/20
36、 13:44 + pts/2 xll-root4.2.6 应用日志编号:安全要求-设备-SOLARIS-LOG-06要求内容: 系统上运行的应用/服务也应该配置相应日志选项,比如cron。 操作方法: 对所有的cron行为进行审计:在 /etc/default/cron里设置CRONLOG=yes 来记录corn的动作。 操作验证:1.验证方法:查看日志存放文件,如cron的日志:more /var/cron/log 2.预期结果:日志中能够列出相应的应用/服务的详细日志信息;4.3 IP协议安全4.3.1 使用SSH协议登录编号:安全要求-设备-SOLARIS-IP-01要求内容: 对于使用
37、IP协议进行远程维护的设备,设备应配置使用SSH等加密协议。 操作方法: 1、Solaris 10以前的版本需另外安装,才能使用SSH。查看进程即可Solaris 10启用SSH的命令:svcadm enable sshSolaris 10禁用Telnet的命令:svcadm disable telnet正常可以通过#/etc/init.d/sshd start来启动SSH;通过#/etc/init.d/sshd stop来停止SSH2、查看SSH服务状态:# ps elf|grep sshSolaris 10还可以通过命令:# svcs -a |grep ssh 若为online,即为生效。
38、 操作验证:1. 验证方法:查看SSH服务状态:# ps elf|grep ssh查看telnet服务状态:# ps elf|grep telnet2. 预期结果:# ps elf|grep ssh是否有ssh进程存在Solaris 10还可以通过命令# svcs -a |grep sshSSH服务状态查看结果为:online telnet服务状态查看结果为:disabled4.3.2 关闭不需要的IP服务端口编号:安全要求-设备-SOLARIS-IP-02要求内容:设备应支持列出对外开放的IP服务端口和设备内部进程的对应表。 操作方法: 开放的服务列表SOLARIS10命令:inetadm开
39、放的端口列表命令: # netstat -an 服务端口和进程对应表:命令:cat /etc/servicesftp-data 20/tcpftp 21/tcpssh 22/tcptelnet 23/tcpsmtp 25/tcppop2 109/tcppop3 110/tcpimap 143/tcpldap 389/udptftp 69/udprje 77/tcpfinger 79/tcplink 87/tcp supdup 95/tcpiso-tsap 102/tcpx400 103/tcp x400-snd 104/tcpntp 123/tcplogin 513/tcpshell 514/
40、tcpsyslog 514/udp 操作验证:1.验证方法:能够列出端口和服务对应表。2.预期结果:开放的服务列表命令: # cat /etc/inetd.confinetdadm开放的端口列表命令: # netstat -an 服务端口和进程对应表:命令:cat /etc/services4.3.3 鉴权远程登录的主机IP操作文件失败,会影响计费IP取话单编号:安全要求-设备-SOLARIS-IP-03要求内容: 对于通过IP协议进行远程维护的设备,设备应支持对允许登陆到该设备的IP地址范围进行设定。 操作方法: 1、编辑/etc/hosts.allow和/etc/hosts.deny两个文
41、件vi /etc/hosts.allow增加一行 : 允许访问的IP;举例如下:all:192.168.4.44:allow #允许单个IP;ssh:192.168.1.:allow #允许192.168.1的整个网段vi /etc/hosts.deny增加一行 all:all重启进程:#pkill -HUP inetd2、solaris9 for x86下,更改/etc/inetd.conf文件后,重启inetd的命令是:#pkill -HUP inetd#/etc/init.d/inetsvc startsolaris 10 X86下,可以用如下命令重启inetd:svcadm enabl
42、e svc:/network/inetd 操作验证:1. 验证方法:查看/etc/hosts.allow和/etc/hosts.deny两个文件cat /etc/hosts.allowcat /etc/hosts.deny4.3.4 禁止ICMP重定向查看CG的探测文件,关闭是否会影响CG链路状态探测编号:安全要求-设备-SOLARIS-IP-04要求内容: 主机系统应该禁止ICMP重定向,采用静态路由。 操作方法: 禁止系统发送ICMP重定向包:在/etc/rc2.d/S?inet中做如下参数调整,ndd -set /dev/ip ip_send_redirects=0 # default is 1设置in.routed运行在静态路由模式:创建文件/usr/sbin/in.routed为以下内容:#! /bin/sh/usr/sbin/in.routed q改变文件属性:chmod 0755 /usr/sbin/in.routed操作验证:1. 验证方法:查看当前的路由信息:#netstat -rn2. 预期结果:在/etc/rc2.d/S