linu安全配置规范.docx
《linu安全配置规范.docx》由会员分享,可在线阅读,更多相关《linu安全配置规范.docx(23页珍藏版)》请在冰豆网上搜索。
linu安全配置规范
Linux安全配置规范
2011年3月
第一章概述
1.1适用范围
适用于中国电信使用Linux操作系统的设备。
本规范明确了安全配置的基本要求,适用于所有的安全等级,可作为编制设备入网测试、安全验收、安全检查规范等文档的参考。
由于版本不同,配置操作有所不同,本规范以内核版本及以上为例,给出参考配置操作。
第二章安全配置要求
账号
编号:
1
要求内容
应按照不同的用户分配不同的账号。
避免不同用户间共享账号。
避免用户账号和设备间通信使用的账号共享。
操作指南
1、参考配置操作
为用户创建账号:
#useraddusername#创建账号
#passwdusername#设置密码
修改权限:
#chmod750directory#其中750为设置的权限,可根据实际情况设置相应的权限,directory是要更改权限的目录)
使用该命令为不同的用户分配不同的账号,设置不同的口令及权限信息等。
2、补充操作说明
检测方法
1、判定条件
能够登录成功并且可以进行常用操作;
2、检测操作
使用不同的账号进行登录并进行一些常用操作;
3、补充说明
编号:
2
要求内容
应删除或锁定与设备运行、维护等工作无关的账号。
操作指南
1、参考配置操作
删除用户:
#userdelusername;
锁定用户:
1)修改/etc/shadow文件,用户名后加*LK*
2)将/etc/passwd文件中的shell域设置成/bin/false
3)#passwd-lusername
只有具备超级用户权限的使用者方可使用,#passwd-lusername锁定用户,用#passwd–dusername解锁后原有密码失效,登录需输入新密码,修改/etc/shadow能保留原有密码。
2、补充操作说明
需要锁定的用户:
listen,gdm,webservd,nobody,nobody4、noaccess。
注:
无关的账号主要指测试帐户、共享帐号、长期不用账号(半年以上未用)等
检测方法
1、判定条件
被删除或锁定的账号无法登录成功;
2、检测操作
使用删除或锁定的与工作无关的账号登录系统;
3、补充说明
需要锁定的用户:
listen,gdm,webservd,nobody,nobody4、noaccess。
编号:
3
要求内容
根据系统要求及用户的业务需求,建立多帐户组,将用户账号分配到相应的帐户组。
操作指南
1、参考配置操作
Cat/etc/passwd
Cat/etc/group
2、补充操作说明
检测方法
1、判定条件
人工分析判断
2、检测操作
编号:
4
要求内容
使用PAM禁止任何人su为root
操作指南
参考操作:
编辑su文件(vi/etc/su),在开头添加下面两行:
authsufficient/lib/security/authrequired/lib/security/group=wheel这表明只有wheel组的成员可以使用su命令成为root用户。
你可以把用户添加到wheel组,以使它可以使用su命令成为root用户。
添加方法为:
#chmod–G10username
检测方法
1、判定条件
2、检测操作
Cat/etc/su
口令
编号:
1
要求内容
对于采用静态口令认证技术的设备,口令长度至少8位,并包括数字、小写字母、大写字母和特殊符号4类中至少3类。
操作指南
1、参考配置操作
vi/etc/,修改设置如下
PASS_MIN_LEN=8#设定最小用户密码长度为8位
Linux用户密码的复杂度可以通过pam_cracklibmodule或pam_passwdqcmodule进行设置
检测方法
1、判定条件
不符合密码强度的时候,系统对口令强度要求进行提示;
符合密码强度的时候,可以成功设置;
2、检测操作
1、检查口令强度配置选项是否可以进行如下配置:
i.配置口令的最小长度;
ii.将口令配置为强口令。
2、创建一个普通账号,为用户配置与用户名相同的口令、只包含字符或数字的简单口令以及长度短于8的口令,查看系统是否对口令强度要求进行提示;输入带有特殊符号的复杂口令、普通复杂口令,查看系统是否可以成功设置。
3、补充说明
pam_cracklib主要参数说明:
?
?
?
tretry=N:
重试多少次后返回密码修改错误
?
?
?
difok=N:
新密码必需与旧密码不同的位数
?
?
?
dcredit=N:
N>=0:
密码中最多有多少个数字;N<0密码中最少有多少个数字.
?
?
?
lcredit=N:
小宝字母的个数
?
?
?
ucredit=N大宝字母的个数
?
?
?
credit=N:
特殊字母的个数
?
?
?
minclass=N:
密码组成(大/小字母,数字,特殊字符)
pam_passwdqc主要参数说明:
mix:
设置口令字最小长度,默认值是mix=disabled。
max:
设置口令字的最大长度,默认值是max=40。
passphrase:
设置口令短语中单词的最少个数,默认值是passphrase=3,如果为0则禁用口令短语。
atch:
设置密码串的常见程序,默认值是match=4。
similar:
设置当我们重设口令时,重新设置的新口令能否与旧口令相似,它可以是similar=permit允许相似或similar=deny不允许相似。
random:
设置随机生成口令字的默认长度。
默认值是random=42。
设为0则禁止该功能。
enforce:
设置约束范围,enforce=none表示只警告弱口令字,但不禁止它们使用;enforce=users将对系统上的全体非根用户实行这一限制;enforce=everyone将对包括根用户在内的全体用户实行这一限制。
non-unix:
它告诉这个模块不要使用传统的getpwnam函数调用获得用户信息。
retry:
设置用户输入口令字时允许重试的次数,默认值是retry=3。
密码复杂度通过/etc/system-auth实施
编号:
2
要求内容
对于采用静态口令认证技术的设备,帐户口令的生存期不长于90天。
操作指南
1、参考配置操作
vi/etc/
PASS_MAX_DAYS=90#设定口令的生存期不长于90天
检测方法
1、判定条件
登录不成功;
2、检测操作
使用超过90天的帐户口令登录;
3、补充说明
测试时可以将90天的设置缩短来做测试;
文件及目录权限
编号:
1
要求内容
在设备权限配置能力内,根据用户的业务需要,配置其所需的最小权限。
操作指南
1、参考配置操作
通过chmod命令对目录的权限进行实际设置。
2、补充操作说明
/etc/passwd必须所有用户都可读,root用户可写–rw-r—r—
/etc/shadow只有root可读–r--------
/etc/group须所有用户都可读,root用户可写–rw-r—r—
使用如下命令设置:
chmod644/etc/passwd
chmod600/etc/shadow
chmod644/etc/group
如果是有写权限,就需移去组及其它用户对/etc的写权限(特殊情况除外)
执行命令#chmod-Rgo-w/etc
检测方法
1、判定条件
1、设备系统能够提供用户权限的配置选项,并记录对用户进行权限配置是否必须在用户创建时进行;
2、记录能够配置的权限选项内容;
3、所配置的权限规则应能够正确应用,即用户无法访问授权范围之外的系统资源,而可以访问授权范围之内的系统资源。
2、检测操作
1、利用管理员账号登录系统,并创建2个不同的用户;
2、创建用户时查看系统是否提供了用户权限级别以及可访问系统资源和命令的选项;
3、为两个用户分别配置不同的权限,2个用户的权限差异应能够分别在用户权限级别、可访问系统资源以及可用命令等方面予以体现;
4、分别利用2个新建的账号访问设备系统,并分别尝试访问允许访问的内容和不允许访问的内容,查看权限配置策略是否生效。
3、补充说明
编号:
2
要求内容
,当在创建新文件或目录时应屏蔽掉新文件或目录不应有的访问允许权限。
防止同属于该组的其它用户及别的组的用户修改该用户的文件或更高限制。
操作指南
1、参考配置操作
设置默认权限:
Vi/etc/在末尾增加umask027,将缺省访问权限设置为750
修改文件或目录的权限,操作举例如下:
#chmod444dir;#修改目录dir的权限为所有人都为只读。
根据实际情况设置权限;
2、补充操作说明
如果用户需要使用一个不同于默认全局系统设置的umask,可以在需要的时候通过命令行设置,或者在用户的shell启动文件中配置。
检测方法
1、判定条件
权限设置符合实际需要;不应有的访问允许权限被屏蔽掉;
2、检测操作
查看新建的文件或目录的权限,操作举例如下:
#ls-ldir;#查看目录dir的权限
#cat/etc/查看是否有umask027内容
3、补充说明
umask的默认设置一般为022,这给新创建的文件默认权限755(777-022=755),这会给文件所有者读、写权限,但只给组成员和其他用户读权限。
umask的计算:
umask是使用八进制数据代码设置的,对于目录,该值等于八进制数据代码777减去需要的默认权限对应的八进制数据代码值;对于文件,该值等于八进制数据代码666减去需要的默认权限对应的八进制数据代码值。
编号:
3
要求内容
如果需要启用FTP服务,,当通过FTP服务创建新文件或目录时应屏蔽掉新文件或目录不应有的访问允许权限。
操作指南
1、参考配置操作
以vsftp为例
打开/etc/vsftpd/chroot_list文件,将需要限制的用户名加入到文件中
2、补充操作说明
检测方法
1、判定条件
权限设置符合实际需要;不应有的访问允许权限被屏蔽掉;
2、检测操作
查看新建的文件或目录的权限,操作举例如下:
3、补充说明
远程登录
编号:
1
要求内容
限制具备超级管理员权限的用户远程登录。
远程执行管理员权限操作,应先以普通权限用户远程登录后,再切换到超级管理员权限账号后执行相应操作。
操作指南
1、参考配置操作
编辑/etc/passwd,帐号信息的shell为/sbin/nologin的为禁止远程登录,如要允许,则改成可以登录的shell即可,如/bin/bash
2、补充操作说明
如果限制root从远程ssh登录,修改/etc/ssh/sshd_config文件,将PermitRootLoginyes改为PermitRootLoginno,重启sshd服务。
检测方法
1、判定条件
root远程登录不成功,提示“没有权限”;
普通用户可以登录成功,而且可以切换到root用户;
2、检测操作
root从远程使用telnet登录;
普通用户从远程使用telnet登录;
root从远程使用ssh登录;
普通用户从远程使用ssh登录;
3、补充说明
限制root从远程ssh登录,修改/etc/ssh/sshd_config文件,将PermitRootLoginyes改为PermitRootLoginno,重启sshd服务。
编号:
2
要求内容
对于使用IP协议进行远程维护的设备,设备应配置使用SSH等加密协议,并安全配置SSHD的设置。
操作指南
1、参考配置操作
正常可以通过#/etc/sshdstart来启动SSH;
通过#/etc/sshdstop来停止SSH
2、补充操作说明
查看SSH服务状态:
#ps–ef|grepssh
注:
禁止使用telnet等明文传输协议进行远程维护;如特别需要,需采用访问控制策略对其进行限制;
检测方法
1、判定条件
#ps–ef|grepssh
是否有ssh进程存在
是否有telnet进程存在
2、检测操作
查看SSH服务状态:
#ps–ef|grepssh
查看telnet服务状态:
#ps–ef|greptelnet
3、补充说明
补丁安全
编号:
1
要求内容
在保证业务网络稳定运行的前提下,安装最新的OS补丁。
补丁在安装前需要测试确定。
操作指南
1、参考配置操作
看版本是否为最新版本。
执行下列命令,查看版本及大补丁号。
#uname–a
2、补充操作说明
检测方法
1、判定条件
看版本是否为最新版本。
#uname–a查看版本及大补丁号
RedHatLinux:
Linux:
Linux:
:
、检测操作
在系统安装时建议只安装基本的OS部份,其余的软件包则以必要为原则,非必需的包就不装。
3、补充说明
日志安全要求
编号:
1
要求内容
启用syslog系统日志审计功能
操作指南
1、参考配置操作
#cat/etc/查看是否有#authpriv.*/var/log/secure
2、补充操作说明
将authpirv设备的任何级别的信息记录到/var/log/secure文件中,这主要是一些和认证、权限使用相关的信息。
检测方法
1、判定条件
查看是否有#authpriv.*/var/log/secure
2、检测操作
#cat/etc/
3、补充说明
将authpirv设备的任何级别的信息记录到/var/log/secure文件中,这主要是一些和认证、权限使用相关的信息。
编号:
2
要求内容
系统日志文件由syslog创立并且不可被其他用户修改;其它的系统日志文件不是全局可写
操作指南
1、参考配置操作
查看如下等日志的访问权限
#ls–l查看下列日志文件权限
/var/log/messages、/var/log/secure、?
/var/log/maillog、/var/log/cron、?
/var/log/spooler、/var/log/
2、补充操作说明
检测方法
1、判定条件
2、检测操作
使用ls–l命令依次检查系统日志的读写权限
3、补充说明
编号:
3(可选)
要求内容
启用记录cron行为日志功能
操作指南
1、参考配置操作
Vi/etc/
#Logcronstuff
cron.*
cron.*
检测方法
1、判定条件
2、检测操作
cron.*
编号:
4(可选)
要求内容
设备配置远程日志功能,将需要重点关注的日志内容传输到日志服务器。
操作指南
1、参考配置操作
修改配置文件vi/etc/,
加上这一行:
?
?
*.*?
?
@
可以将"*.*"替换为你实际需要的日志信息。
比如:
kern.*;mail.*等等。
可以将此处替换为实际的IP或域名。
2、补充操作说明
检测方法
1、判定条件
设备配置远程日志功能,将需要重点关注的日志内容传输到日志服务器。
2、检测操作
查看日志服务器上的所收到的日志文件。
3、补充说明
不必要的服务、端口
编号:
1
要求内容
关闭不必要的服务。
操作指南
1、参考配置操作
查看所有开启的服务:
#ps–ef
#chkconfig--list
#cat/etc/
在中关闭不用的服务首先复制/etc/。
#cp/etc//etc/然后用vi编辑器编辑
文件,对于需要注释掉的服务在相应行开头标记"#"字符,重启xinetd服务,即可。
2、补充操作说明
参考附表,根据需要关闭不必要的服务
检测方法
1、判定条件
所需的服务都列出来;
没有不必要的服务;
2、检测操作
#ps–ef
#chkconfig--list
#cat/etc/
3、补充说明
在/etc/文件中禁止不必要的基本网络服务。
注意:
改变了“/etc/”文件之后,需要重新启动xinetd。
对必须提供的服务采用tcpwapper来保护
系统Banner设置
要求内容
修改系统banner,避免泄漏操作系统名称,版本号,主机名称等,并且给出登陆告警信息
操作指南
1、参考配置操作
在缺省情况下,当你登录到linux系统,它会告诉你该linux
发行版的名称、版本、内核版本、服务器的名称。
应该尽可
能的隐藏系统信息。
首先编辑“/etc/”文件,在下面显示的这些行前加一个“#”,把输出信息的命令注释掉。
#Thiswilloverwrite/etc/issueateveryboot.So,make
anychangesyouwanttomaketo/etc/issuehereoryou
willlosethemwhenyoureboot.
#echo"">/etc/issue
#echo"$R">>/etc/issue
#echo"Kernel$(uname-r)on$a$(uname-m)">>
/etc/issue
#cp-f/etc/issue/etc/
#echo>>/etc/issue
其次删除"/etc"目录下的和issue文件:
#mv/etc/issue/etc/
#mv/etc//etc/
检测方法
查看Cat/etc/注释住处信息
登录超时时间设置
要求内容
对于具备字符交互界面的设备,配置定时帐户自动登出
操作指南
1、参考配置操作
通过修改账户中“TMOUT”
参数,可以实现此功能。
TMOUT按秒计算。
编辑profile文
件(vi/etc/profile),在“HISTFILESIZE=”后面加入下
面这行:
建议TMOUT=300(可根据情况设定)
2、补充操作说明
改变这项设置后,必须先注销用户,再用该用户登录才能激
活这个功能
检测方法
1、判定条件
查看TMOUT=300
删除潜在危险文件
要求内容
.rhosts,rc,等文件都具有潜在的危险,如果没有应用,应该删除
操作指南
1、参考配置操作
执行:
find/-namerc,检查系统中是否有rc文件,
执行:
find/-name.rhosts,检查系统中是否有.rhosts文件
如无应用,删除以上文件:
Mv.rhost.
Mvr.
2、补充操作说明
注意系统版本,用相应的方法执行
检测方法
1、判定条件
2、检测操作
FTP设置
编号1:
要求内容
禁止root登陆FTP
操作指南
1、参考配置操作
在ftpaccess文件中加入下列行
root
检测方法
使用root帐号登录ftp会被拒绝
编号2:
要求内容
禁止匿名ftp
操作指南
1、参考配置操作
以vsftpd为例:
打开文件,修改下列行为:
anonymous_enable=NO
检测方法
匿名账户不能登录
编号3:
要求内容
修改FTPbanner信息
操作指南
1、参考配置操作
使用vsftpd,则修改下列文件的内容:
/etc/
使用wu-ftpd,则需要修改文件/etc/ftpaccess,在其中添加:
banner/path/to/ftpbanner
在指定目录下创建包含ftp的banner信息的文件
检测方法
1、判断依据
通过外部ftp客户端登录,banner按照预先设定的显示
2、检查操作
附表:
端口及服务
服务名称
端口
应用说明
关闭方法
处置建议
daytime
13/tcp
RFC867白天协议
chkconfigdaytimeoff
建议关闭
13/udp
RFC867白天协议
chkconfigdaytimeoff
time
37/tcp
时间协议
chkconfigtimeoff
37/udp
时间协议
chkconfigtime-udpoff
echo
7/tcp
RFC862_回声协议
chkconfigechooff
7/udp
RFC862_回声协议
chkconfigecho-udpoff
discard
9/tcp
RFC863废除协议
chkconfigdiscardoff
9/udp
chkconfigdiscard-udpoff
chargen
19/tcp
RFC864字符产生协议
chkconfigchargenoff
19/udp
chkconfigchargen-udpoff
ftp
21/tcp
文件传输协议(控制)
chkconfiggssftpoff
根据情况选择开放
telnet
23/tcp
虚拟终端协议
chkconfigkrb5-telnetoff
根据情况选择开放
sendmail
25/tcp
简单邮件发送协议
chkconfigsendmailoff
建议关闭
nameserver
53/udp
域名服务
chkconfignamedoff
根据情况选择开放
53/tcp
域名服务
chkconfignamedoff
根据情况选择开放
apache
80/tcp
HTTP万维网发布服务
chkconfighttpdoff
根据情况选择开放
login
513/tcp
远程登录
chkconfigloginoff
根据情况选择开放
shell
514/tcp
远程命令,nopasswdused
chkconfigshelloff
根据情况选择开放
exec
512/tcp
remoteexecution,passwdrequired
chkconfigexecoff
根据情况选择开放
ntalk
518/udp
newtalk,conversation
chkconfigntalkoff
建议关闭
ident
113/tcp
auth
chkconfigidentoff
建议关闭
printer
515/tcp
远程打印缓存
chkconfigprinteroff
强烈建议关闭
bootps
67/udp
引导协议服务端
chkconfigbootpsoff
建议关闭
68/udp
引导协议客户端
chkconfigbootpsoff
建议关闭
tftp
69/udp
普通文件传输协议
chkconfigtftpoff
强烈建议关闭
kshell
544/tcp
Kerberosremoteshell-kfall
chkconfigkshelloff
建议关闭
klogin
543/tcp
Ker