业务安全 SUSE Linux 主机安全加固.docx
《业务安全 SUSE Linux 主机安全加固.docx》由会员分享,可在线阅读,更多相关《业务安全 SUSE Linux 主机安全加固.docx(66页珍藏版)》请在冰豆网上搜索。
业务安全SUSELinux主机安全加固
业务安全SUSELinux主机安全加固
通用操作指导书
目录
1文档使用说明6
1.1适用范围6
2实施前准备6
2.2系统检查7
2.3业务检查7
2.4备份7
3加固实施9
3.1帐号10
3.1.1SEC-SUSE-ACCT-01-设置专用维护帐号10
3.1.2SEC-SUSE-ACCT-02-锁定/删除无用帐号11
3.1.3SEC-SUSE-ACCT-03-用户帐号分组13
3.2口令14
3.2.1SEC-SUSE-PWD-01-配置用户口令复杂度14
3.2.2SEC-SUSE-PWD-02-配置用户口令期限15
3.2.3SEC-SUSE-PWD-03-配置用户口令重复使用次数17
3.2.4SEC-SUSE-PWD-04-配置用户认证失败锁定策略18
3.3服务20
3.3.1SEC-SUSE-SVC-01-查看开放系统服务端口20
3.3.2SEC-SUSE-SVC-02-禁用无用inetd/xinetd服务21
3.3.3SEC-SUSE-SVC-03-配置NTP时间同步22
3.3.4SEC-SUSE-SVC-04-停用NFS服务24
3.3.5SEC-SUSE-SVC-05-禁用无关启动服务26
3.3.6SEC-SUSE-SVC-06-修改SNMP默认团体名27
3.4访问控制29
3.4.1SEC-SUSE-AUTH-01-限制关键文件和目录访问权限29
3.4.2SEC-SUSE-AUTH-02-设置用户文件默认访问权限30
3.4.3SEC-SUSE-AUTH-03-设置EEPROM密码31
3.4.4SEC-SUSE-AUTH-04-使用SSH代替TELNET远程登陆32
3.4.5SEC-SUSE-AUTH-05-限制ROOT远程登录33
3.4.6SEC-SUSE-AUTH-06-限制用户FTP登录35
3.4.7SEC-SUSE-AUTH-07-限制FTP用户登录后能访问的目录35
3.4.8SEC-SUSE-AUTH-08-设置终端超时退出时间37
3.4.9SEC-SUSE-AUTH-09-设置图形界面超时退出时间38
3.4.10SEC-SUSE-AUTH-10-限制允许登录到设备的IP地址范围39
3.4.11SEC-SUSE-AUTH-11-设置FTP用户登录后对文件、目录的存取权限40
3.4.12SEC-SUSE-AUTH-12-取消所有文件“系统文件”属性41
3.4.13SEC-SUSE-AUTH-13-禁止ctrl+alt+del42
3.5日志审计43
3.5.1SEC-SUSE-LOG-01-记录用户登录信息43
3.5.2SEC-SUSE-LOG-02-开启系统记帐功能44
3.5.3SEC-SUSE-LOG-03-记录系统安全事件45
3.5.4SEC-SUSE-LOG-04-日志集中存放47
3.5.5SEC-SUSE-LOG-05-记录用户SU命令操作49
3.5.6SEC-SUSE-LOG-06-系统服务日志49
3.6登陆显示51
3.6.1SEC-SUSE-BANNER-01-设置登录成功后警告Banner51
3.6.2SEC-SUSE-BANNER-02-设置ssh警告Banner51
3.6.3SEC-SUSE-BANNER-03-更改telnet警告Banner52
3.6.4SEC-SUSE-BANNER-04-更改ftp警告Banner53
3.7IP协议55
3.7.1SEC-SUSE-IP-01-禁止ICMP重定向55
3.7.2SEC-SUSE-IP-02-关闭网络数据包转发56
3.8内核参数57
3.8.1SEC-SUSE-KERNEL-01-防止堆栈缓冲溢出57
3.9补丁/软件57
3.9.1SEC-SUSE-SW-01-安装OS补丁57
4实施后验证58
4.1系统检查58
4.2启动双机和业务59
4.3业务检查59
5风险回退59
5.1故障信息收集:
60
5.2系统恢复:
62
1文档使用说明
1.1适用范围
1.适用OS版本:
SLES9,SLES10
SLES:
SUSELinuxEnterpriseEdition
2.适用人员:
一线维护工程师和安全专业服务工程师。
要求使用人员熟悉Unix命令、系统管理和维护,熟悉安全加固流程。
2实施前准备
1.预计操作时间:
30分钟,可提前完成
2.操作人员:
华为办事处业务维护工程师、华为专业安全服务工程师或交付合作方
3.操作影响:
无影响
1)现网设备加固需要提前提交现网施工申请,一般要求凌晨0:
00后才能开始实施。
2)加固前一定要对机器作健康检查,确认无软硬件故障、重启正常、双机切换正常和业务运行正常后,才能对主机进行加固操作。
否则建议修复后再加固。
3)双机加固应该严格按照如下顺序执行:
双机切换-》备机重启-》备机检查-》备机加固-》备机重启-》加固后检查-》备机启动业务-》双机切换-》业务测试-》加固当前备机。
2.2系统检查
步骤1执行#dmesg查看系统硬件配置。
步骤2执行#more/var/log/messages检查是否有错误日志。
步骤3检查系统性能情况。
#top
#vmstat510
#sar510
并把相关结果记录下来
2.3业务检查
根据业务加固策略要求,检查业务运行状态,详细请参考对应产品的主机安全加固项目交付指导书。
2.4备份(需要具体步骤及相应执行命令)
步骤1对操作系统进行全备份
可以使用YAST工具中的系统备份功能实现。
#yast
System->SystemBackup
根据提示进行系统备份
步骤2对数据库进行备份
根据业务备份要求备份数据库。
步骤3对实施过程需修改的安全配置文件进行备份
加固过程中可能会修改如下文件:
/etc/passwd
/etc/shadow
/etc/group
/etc/security/pam_pwcheck.conf
/etc/pam.d/passwd
/etc/login.defs
/etc/default/useradd
/etc/pam.d/login
/etc/pam.d/sshd
/etc/ssh/sshd_config
/etc/xinetd.d/*
/etc/ntp.conf
/etc/fstab
/etc/exports(maynoexist)
/etc/snmpd.conf(SUSE9)
/etc/snmp/snmpd.conf(SUSE10)
/etc/profile
$home/.profile(或.bash_profile)#即用户家目录下的.profile文件或者.bash_profile文件
/etc/securetty
/etc/pam.d/su
/etc/ftpusers
/etc/vsftpd.conf
/etc/pure-ftpd/pure-ftpd.conf
/etc/hosts.allow
/etc/hosts.deny
/etc/inittab
/etc/syslog.conf(SUSE9)
/etc/syslog-ng/syslog-ng.conf(SUSE10)
/etc/motd
/etc/sshbanner(maynoexist)
/etc/ssh/sshd_config
/etc/issue
/etc/
/etc/sysctl.conf
备份相关系统文件:
#cp–p系统文件备份文件//其中参数-p表示拷贝文件权限。
3加固实施
1.预计操作时间:
60分钟
2.操作人员:
华为专业安全服务工程师或交付合作方
3.操作影响:
部分策略实施可能会造成业务中断,在双机系统中,实施时需先实施备机,确保备机没问题后,再实施主机。
4.其他约定:
如果没有特殊说明,文中的操作均以root用户完成。
3.2帐号
3.2.1SEC-SUSE-ACCT-01-设置专用维护帐号
1
安全要求:
应按照不同的用户分配不同的账号,避免不同用户间共享账号,避免用户账号和设备间通信使用的账号共享。
2通用策略:
需要按维护人员角色新增维护帐号,利用工号等唯一标志做识别,需询问客户意见。
通常华为业务系统上需新增两个华为方维护帐号:
maintain和admin_hw。
3风险说明:
无
4操作方法:
步骤1创建帐号
#useradd[-dhomedir][-Ggroup,...][-ggid][-m][-ppassword][-uuid][-sshell]account
参数说明:
d表示帐号主目录
G表示帐号所属组的列表
g表示帐号主所属组ID
m表示帐号组目录不存在时是否创建
p表示密码
u表示帐号ID
s表示Shell类型
步骤2设置密码:
#passwdaccount
修改权限:
#chmod755homedir
其中755为设置的权限,可根据实际情况设置相应的权限,homedir是要更改权限的目录
步骤3修改帐号
#usermod[-dhomedir][-Ggroup,...][-ggid][-m][-ppassword][-uuid][-sshell][-L][-U]account
参数说明:
d表示帐号主目录
G表示帐号所属组的列表
g表示帐号主所属组ID
m表示帐号组目录改变时是否移动原目录中文件
p表示密码
u表示帐号ID
s表示Shell类型
L表示锁定帐号
U表示解除锁定帐号
步骤4删除帐号
#userdel[-r[-f]]account
参数说明:
r表示是否删除帐号主目录
f表示当帐号主目录存在其他帐号所有文件时是否强制删除
5操作验证:
1.验证方法:
#more/etc/passwd
2.预期结果:
不同用户使用各自不同帐号。
3.2.2SEC-SUSE-ACCT-02-锁定/删除无用帐号
1
安全要求:
锁定/删除与设备运行、维护等工作无关的账号。
被锁定的账号无法使用交互式登陆。
2通用策略:
根据业务加固策略确定系统账号、业务账号的锁定/删除操作,根据客户意见确定维护账号的锁定/删除操作。
建议锁定的系统账号:
bindaemonftpnobodynobody4lpgamesnamedatircmysqlldappostfixpostgreswwwrunmailpopsnortsquidmailmannewsuucp
在实际加固过程中,对于系统帐号,建议只锁定,不删除。
3风险说明:
1.可能有第三方系统使用了被锁定的帐号,造成第三方系统不可用,请在实施方案制定时,收集第三方系统对账号加固的要求。
2.锁定的用户不能直接登录系统,需经管理员帐号解锁后方可登录。
4操作方法:
步骤1锁定用户:
#passwd-lusername
步骤2更改帐号默认登陆SHELL:
#usermod–s/bin/falseusername
步骤3删除用户:
#userdel[-r[-f]]account
参数说明:
r表示是否删除帐号主目录
f表示当帐号主目录存在其他帐号所有文件时是否强制删除
步骤4解除对帐号的锁定:
#passwd-uusername
5操作验证:
1.验证方法:
使用已经锁定的帐号尝试登陆
2.预期结果:
已经锁定的帐号无法登陆,系统提示:
Loginincorrect
3.2.3SEC-SUSE-ACCT-03-用户帐号分组
1要求内容:
根据系统要求及用户的业务需求,建立多帐户组,将用户账号分配到相应的帐户组。
2通用策略:
1.主要区分数据库用户组、业务维护帐号组、业务运行帐号和业务维护帐号。
2.实施时根据业务加固策略判断是否需要创建用户组,并且帐号修改为对应组。
3风险说明:
1.尽量避免一个帐号属于多个组,避免额外授权造成安全隐患。
2.更改业务安装运行帐号组可能造成业务不可用。
请参考产品加固策略制定实施方案,确定哪些帐号需要进行例外设置。
4操作方法:
步骤1创建帐户组:
#groupadd–gGIDgroupname#创建一个组,并为其设置GID号,若不设GID,系统会自动为该组分配一个GID号;
#usermod–ggroupnameusername#改变用户的组id为groupname
#groupmod–Ausernamegroupname#将用户username分配到groupname组中。
查询被分配到的组的GID:
#idusername
可以根据实际需求使用如上命令进行设置。
步骤2可以使用-g选项设定新组的GID。
0到499之间的值留给root、bin、mail这样的系统账号,因此最好指定该值大于499。
如果新组名或者GID已经存在,则返回错误信息。
当用户希望以其他用户组成员身份出现时,需要使用newgrp命令进行更改,如#newgrpsys即把当前用户以sys组身份运行;
5操作验证:
1.验证方法:
查看组文件:
#cat/etc/group
2.预期结果:
可以查看到用户账号分配到相应的帐户组中;
或都通过命令检查账号是否属于应有的组:
#idusername
3.3口令
3.3.1SEC-SUSE-PWD-01-配置用户口令复杂度
1
安全要求:
对于采用静态口令认证技术的设备,口令长度至少6位,并包括数字、小写字母、大写字母和特殊符号4类中至少2类。
2通用策略:
该操作立即生效,对所有修改密码的命令有效。
可根据现场需求设置密码复杂度,一般设置为最短长度6个字符,至少包含两个字母,一个特殊字符。
3风险说明:
对于存在密码关联的用户,修改密码时须注意同步修改业务相关配置文件,否则会造成业务不可用。
4操作方法:
设置密码规则:
至少各有一个字符来自这些字符集a-z、A-Z、标点符号、0-9
步骤1修改/etc/security/pam_pwcheck.conf文件:
#vi/etc/security/pam_pwcheck.conf
确保下面行未被注释,如没有,请添加:
password:
nullokuse_cracklib
步骤2修改/etc/pam.d/passwd文件:
#vi/etc/pam.d/passwd
确保下面行未被注释,如没有,请添加:
auth required pam_unix2.so nullok
account required pam_unix2.so
passwordrequired pam_pwcheck.so nullok
passwordrequisite pam_cracklib.sominlen=6lcredit=-2ocredit=-1use_authtok
passwordrequired pam_unix2.so nullokuse_first_passuse_authtok
session required pam_unix2.so
5操作验证:
1.验证方法:
创建一个普通账号,为用户配置与用户名相同的口令、只包含字符或数字的简单口令以及长度短于6位的口令,查看系统是否对口令强度要求进行提示;输入带有特殊符号的复杂口令、普通复杂口令,查看系统是否可以成功设置。
root使用passwd命令修改其它用户的密码时不受密码复杂度的限制。
2.预期结果:
不符合密码强度的时候,系统对口令强度要求进行提示;
符合密码强度的时候,可以成功设置
3.3.2SEC-SUSE-PWD-02-配置用户口令期限
1
安全要求:
对于采用静态口令认证技术的设备,帐户口令的生存期不长于90天。
2通用策略:
一般对维护帐号和系统帐号启用口令过期策略,实施时根据业务加固策略决定业务帐号和数据库帐号是否能够配置口令期限。
3风险说明:
1.如果口令在过期前不及时修改,密码会失效锁定,帐号不能使用,可能造成业务中断。
请参考产品加固策略制定实施方案,确定哪些帐号需要进行例外设置。
2.如果存在关联密码的情况,在修改密码时没同步修改业务相关配置文件,会导致业务不可用。
3.有些openssh版本不能正确提示密码即将到期,可能错过更改密码的时机,导致用户被锁定。
4操作方法:
1.设置密码最大有效期限为90天
修改/etc/login.defs,添加或修改如下内容:
#vi/etc/login.defs
PASS_MAX_DAYS90
对系统已经存在帐号进行设置:
#passwd–x90account
2.设置在密码过期之前7天内发出报警信息。
修改/etc/login.defs,添加或修改如下内容:
#vi/etc/login.defs
PASS_WARN_AGE7
对系统已经存在帐号进行设置:
#passwd–w7account
3.设置密码过期7天未修改则锁定帐号:
编辑文件/etc/default/useradd
#vi/etc/default/useradd
添加或修改行:
INACTIVE=7
对系统已经存在帐号进行设置:
#passwd–i7account
4.查看帐号密码策略:
#passwd-aS
5操作验证:
1.验证方法:
使用密码过期的帐户尝试登录系统;
使用密码即将到期的账号尝试登陆系统;
使用密码过期7天以上的账号尝试登陆系统。
2.预期结果:
登录不成功;
系统提示修改密码;
系统不再提示修改密码,直接拒绝登陆。
3.3.3SEC-SUSE-PWD-03-配置用户口令重复使用次数
1
安全要求:
对于采用静态口令认证技术的设备,应配置设备,使用户不能重复使用最近5次(含5次)内已使用的口令。
2通用策略:
实施时根据业务加固策略决定是否允许设置此项。
3风险说明:
无
4操作方法:
禁止使用最近5次使用的密码
修改/etc/pam.d/passwd,添加如下内容
#vi/etc/pam.d/passwd
passwordrequiredpam_unix.soremember=5use_authtokmd5shadow
5操作验证:
1.验证方法:
使用用户帐号修改自己的密码,设置新密码与最近几次的旧密码相同;
2.预期结果:
如果设置的新密码与最近5次的旧密码相同,系统不接受该新密码。
root使用passwd命令修改其它用户的密码时不受密码复杂度的限制。
3.3.4SEC-SUSE-PWD-04-配置用户认证失败锁定策略
1
安全要求:
对于采用静态口令认证技术的设备,应配置当用户连续认证失败次数超过6次(不含6次),锁定该用户使用的账号。
2通用策略:
实施时根据现场需求决定业务帐号和数据库帐号是否不允许设置认证失败次数。
Pam模块根据系统版本不同,可能配置的方法也不一样,需要参考实际情况来进行配置,以下两种配置方法可以解决绝大多数系统的配置问题。
需要注意的是:
某些SUSE9系统中,使用telnet错误登录一次,FAILLOG里计数器会计两次数,设置次数时需要根据实际情况进行设置。
3风险说明:
1.如果业务帐号被锁定,帐号不能使用,可能造成业务中断。
请参考产品加固策略制定实施方案,确定哪些帐号需要进行例外设置。
2.帐号可能被恶意重试导致被锁定。
需要询问客户决定是否实施。
4操作方法:
1.终端登录:
步骤2设置登录时连续认证失败6次后断开会话:
修改/etc/login.defs文件,进行如下设置:
#vi/etc/login.defs
LOGIN_RETRIES6
步骤3设置连续登陆6次后帐号锁定:
SUSE9:
修改/etc/pam.d/login文件,添加如下两行:
#vi/etc/pam.d/login
authrequiredpam_tally.sono_magic_root
accountrequiredpam_tally.sodeny=6no_magic_root
SUSE10:
修改/etc/pam.d/login文件,添加如下两行:
#vi/etc/pam.d/login
authrequiredpam_tally.sodeny=6
accountrequiredpam_tally.so
1.SSH登录:
SUSE9:
步骤4设置连续登陆6次后帐号锁定:
修改/etc/pam.d/sshd文件,添加如下两行:
#vi/etc/pam.d/sshd
authrequiredpam_tally.sono_magic_root#此行的位置需要在该文件的第一行。
accountrequiredpam_tally.sodeny=6no_magic_root
步骤5重启sshd服务:
#/etc/init.d/sshdrestart
SUSE10:
步骤6设置登录时连续认证失败6次后断开会话:
修改/etc/ssh/sshd_config文件,进行如下设置:
#vi/etc/ssh/sshd_config
MaxAuthTries6
步骤7设置连续登陆6次后帐号锁定:
修改/etc/pam.d/sshd文件,添加如下两行:
#vi/etc/pam.d/sshd
authrequiredpam_tally.sodeny=6
accountrequiredpam_tally.so
步骤8重启sshd服务:
#/etc/init.d/sshdrestart
1.解锁方法:
以管理员用户登录,执行如下操作:
步骤9查看哪些用户被锁定:
#pam_tally
步骤10为用户解锁:
#pam_tally--userusername--reset=0
5操作验证:
1.验证方法:
以任一普通账号通过错误的口令进行系统登录6次以上;
2.预期结果:
帐户被锁定,需要联系系统管理员解锁
3.4服务
3.4.1SEC-SUSE-SVC-01-查看开放系统服务端口
1
安全要求:
设备应支持列出对外开放的IP服务端口和设备内部进程的对应表。
2通用策略:
此项是对操作系统本身的要求,SUSE系统均满足此项要求。
3风险说明:
无