设为首页 收藏本站
查看: 417|回复: 0

[经验分享] Linux 安全配置规范

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-3-23 09:04:39 | 显示全部楼层 |阅读模式
1.1      适用范围
原来在IDC机房里面进行上架,他们说了必须通过安全扫描才能接入外网,所以就得很苦逼的一个一个去改配置,有的参数不小心配置错了还得重新装系统,郁闷惨了。整理了一些文本给大家提供参考,可作为编制设备入网测试、安全验收、安全检查规范等文档的参考。

第二章   安全配置要求2.1账号编号: 1
要求内容
应按照不同的用户分配不同的账号,避免不同用户间共享账号,避免用户账号和设备间通信使用的账号共享。
操作指南
1、参考配置操作
为用户创建账号:
#useradd username  #创建账号
#passwd username   #设置密码
修改权限:
#chmod 750 directory  #其中750为设置的权限,可根据实际情况设置相应的权限,directory是要更改权限的目录)
使用该命令为不同的用户分配不同的账号,设置不同的口令及权限信息等。
2、补充操作说明

检测方法
1、判定条件
能够登录成功并且可以进行常用操作;
2、检测操作
使用不同的账号进行登录并进行一些常用操作;
3、补充说明


编号: 2
要求内容
应删除或锁定与设备运行、维护等工作无关的账号。
操作指南
1、参考配置操作
删除用户:#userdel  username;
锁定用户:
1)修改/etc/shadow文件,用户名后加*LK*
2)将/etc/passwd文件中的shell域设置成/bin/false
3)#passwd -l username
只有具备超级用户权限的使用者方可使用,#passwd -l username锁定用户,用#passwd –d username解锁后原有密码失效,登录需输入新密码,修改/etc/shadow能保留原有密码。
2、补充操作说明
需要锁定的用户:listen,gdm,webservd,nobody,nobody4、noaccess。

检测方法
1、判定条件
被删除或锁定的账号无法登录成功;
2、检测操作
使用删除或锁定的与工作无关的账号登录系统;
3、补充说明
需要锁定的用户:listen,gdm,webservd,nobody,nobody4、noaccess。


编号: 3
要求内容
限制具备超级管理员权限的用户远程登录。
远程执行管理员权限操作,应先以普通权限用户远程登录后,再切换到超级管理员权限账号后执行相应操作。
操作指南
1、参考配置操作
编辑/etc/passwd,帐号信息的shell为/sbin/nologin的为禁止远程登录,如要允许,则改成可以登录的shell即可,如/bin/bash
2、补充操作说明
如果限制root从远程ssh登录,修改/etc/ssh/sshd_config文件,将PermitRootLogin yes改为PermitRootLogin  no,重启sshd服务。

检测方法
1、判定条件
root远程登录不成功,提示“没有权限”;
普通用户可以登录成功,而且可以切换到root用户;
2、检测操作
root从远程使用telnet登录;
普通用户从远程使用telnet登录;
root从远程使用ssh登录;
普通用户从远程使用ssh登录;

3、补充说明
限制root从远程ssh登录,修改/etc/ssh/sshd_config文件,将PermitRootLogin yes改为PermitRootLogin  no,重启sshd服务。

编号:4
要求内容
对于使用IP协议进行远程维护的设备,设备应配置使用SSH等加密协议,并安全配置SSHD的设置。
操作指南
1、参考配置操作
正常可以通过#/etc/init.d/sshd start来启动SSH;
通过#/etc/init.d/sshd stop来停止SSH
2、补充操作说明
查看SSH服务状态:
# ps –ef|grep ssh

禁止使用telnet等明文传输协议进行远程维护;如特别需要,需采用访问控制策略对其进行限制;
检测方法
1、判定条件
# ps –ef|grep ssh
是否有ssh进程存在
是否有telnet进程存在
2、检测操作
查看SSH服务状态:
# ps –ef|grep  ssh
查看telnet服务状态:
# ps –ef|grep  telnet
3、补充说明


2.2口令
编号:1
要求内容
对于采用静态口令认证技术的设备,口令长度至少8位,并包括数字、小写字母、大写字母和特殊符号4类中至少3类。
操作指南
1、参考配置操作
vi  /etc/login.defs,修改设置如下
PASS_MIN_LEN=8 #设定最小用户密码长度为8位

Linux用户密码的复杂度可以通过pam_cracklib module或pam_passwdqc module进行设置
检测方法
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/pam.d/system-auth实施

编号: 2
要求内容
对于采用静态口令认证技术的设备,帐户口令的生存期不长于90天。
操作指南
1、参考配置操作
vi /etc/login.defs
PASS_MAX_DAYS=90   #设定口令的生存期不长于90天
检测方法
1、判定条件
登录不成功;
2、检测操作
使用超过90天的帐户口令登录;
3、补充说明
测试时可以将90天的设置缩短来做测试;

2.3授权
编号:1
要求内容
在设备权限配置能力内,根据用户的业务需要,配置其所需的最小权限。
操作指南
1、参考配置操作
通过chmod命令对目录的权限进行实际设置。
2、补充操作说明
/etc/passwd 必须所有用户都可读,root用户可写 –rw-r—r—
/etc/shadow 只有root可读 –r--------
/etc/group  须所有用户都可读,root用户可写  –rw-r—r—
使用如下命令设置:
chmod 644 /etc/passwd
chmod 600 /etc/shadow
chmod 644 /etc/group
如果是有写权限,就需移去组及其它用户对/etc的写权限(特殊情况除外)
执行命令#chmod  -R go-w /etc

检测方法
1、判定条件
1、设备系统能够提供用户权限的配置选项,并记录对用户进行权限配置是否必须在用户创建时进行;
2、记录能够配置的权限选项内容;
3、所配置的权限规则应能够正确应用,即用户无法访问授权范围之外的系统资源,而可以访问授权范围之内的系统资源。
2、检测操作
1、利用管理员账号登录系统,并创建2个不同的用户;
2、创建用户时查看系统是否提供了用户权限级别以及可访问系统资源和命令的选项;
3、为两个用户分别配置不同的权限,2个用户的权限差异应能够分别在用户权限级别、可访问系统资源以及可用命令等方面予以体现;
4、分别利用2个新建的账号访问设备系统,并分别尝试访问允许访问的内容和不允许访问的内容,查看权限配置策略是否生效。
3、补充说明
编号:2(可选)
要求内容
对文件和目录进行权限设置,合理设置重要目录和文件的权限
操作指南
执行以下命令检查目录和文件的权限设置情况:
ls  –l   /etc/
ls  –l   /etc/rc.d/init.d/
ls  –l   /tmp
ls  –l   /etc/inetd.conf
ls  –l   /etc/security
ls  –l   /etc/services
ls  -l  /etc/rc*.d
检测方法
1、判定条件
文件权限的设置合理
2、检测操作
对于重要目录,建议执行如下类似操作:
# chmod -R 750  /etc/rc.d/init.d/*
这样只有root可以读、写和执行这个目录下的脚本。

编号: 3(可选)
要求内容
控制用户缺省访问权限,当在创建新文件或目录时应屏蔽掉新文件或目录不应有的访问允许权限。防止同属于该组的其它用户及别的组的用户修改该用户的文件或更高限制。
操作指南
1、参考配置操作
设置默认权限:
Vi /etc/login.defs     在末尾增加umask  027,将缺省访问权限设置为750
修改文件或目录的权限,操作举例如下:
#chmod 444 dir ; #修改目录dir的权限为所有人都为只读。
根据实际情况设置权限;
2、补充操作说明
如果用户需要使用一个不同于默认全局系统设置的umask,可以在需要的时候通过命令行设置,或者在用户的shell启动文件中配置。
检测方法
1、判定条件
权限设置符合实际需要;不应有的访问允许权限被屏蔽掉;
2、检测操作
查看新建的文件或目录的权限,操作举例如下:
#ls -l dir ; #查看目录dir的权限
#cat /etc/login.defs 查看是否有umask 027内容
3、补充说明
umask的默认设置一般为022,这给新创建的文件默认权限755(777-022=755),这会给文件所有者读、写权限,但只给组成员和其他用户读权限。
umask的计算:
umask是使用八进制数据代码设置的,对于目录,该值等于八进制数据代码777减去需要的默认权限对应的八进制数据代码值;对于文件,该值等于八进制数据代码666减去需要的默认权限对应的八进制数据代码值。


2.4补丁安全
编号:1
要求内容
在保证业务网络稳定运行的前提下,安装最新的OS补丁。补丁在安装前需要测试确定。
操作指南
1、参考配置操作
看版本是否为最新版本。
执行下列命令,查看版本及大补丁号。
#uname –a

2、补充操作说明
  
  
检测方法
1、判定条件
看版本是否为最新版本。
# uname –a查看版本及大补丁号
TurboLinux:http://www.turbolinux.com/security/
2、检测操作
在系统安装时建议只安装基本的OS部份,其余的软件包则以必要为原则,非必需的包就不装。
3、补充说明


2.5日志安全要求
编号:1
要求内容
打开syslog系统日志审计功能有助于系统的日常维护和故障排除,或者防止被攻击后查看日志采取防护补救措施,增强系统安全日志。
操作指南
1、参考配置操作
#cat  /etc/syslog.conf 查看是否有#authpriv.*    /var/log/secure
2、补充操作说明
将authpirv设备的任何级别的信息记录到/var/log/secure文件中,这主要是一些和认证、权限使用相关的信息。
检测方法
1、判定条件
查看是否有#authpriv.*    /var/log/secure
2、检测操作
#cat  /etc/syslog.conf
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/boot.log
2、补充操作说明

检测方法
1、判定条件

2、检测操作
使用ls –l 命令依次检查系统日志的读写权限
3、补充说明


2.6不必要的服务、端口
编号:1
要求内容
列出所需要服务的列表(包括所需的系统服务),不在此列表的服务需关闭。
操作指南
1、参考配置操作
查看所有开启的服务:
#ps –ef  
#chkconfig --list
#cat /etc/xinetd.conf
在xinetd.conf中关闭不用的服务首先复制/etc/xinetd.conf。 #cp /etc/xinetd.conf /etc/xinetd.conf.backup  然后用vi编辑器编辑
xinetd.conf文件,对于需要注释掉的服务在相应行开头标记"#"字符,重启xinetd服务,即可。

2、补充操作说明
参考附表,根据需要关闭不必要的服务

检测方法
1、判定条件
所需的服务都列出来;
没有不必要的服务;
2、检测操作
#ps –ef  
#chkconfig --list
#cat /etc/xinetd.conf
3、补充说明
在/etc/xinetd.conf文件中禁止不必要的基本网络服务。
注意:改变了“/etc/xinetd.conf”文件之后,需要重新启动xinetd。
对必须提供的服务采用tcpwapper来保护
2.7系统Banner设置
要求内容
修改系统banner,避免泄漏操作系统名称,版本号,主机名称等,并且给出登陆告警信息
操作指南
1、参考配置操作

在缺省情况下,当你登录到linux系统,它会告诉你该linux
发行版的名称、版本、内核版本、服务器的名称。应该尽可
能的隐藏系统信息。

首先编辑“/etc/rc.d/rc.local”文件,在下面显示的这些行前加一个“#”,把输出信息的命令注释掉。

# This will overwrite /etc/issue at every  boot. So, make
any changes you want to make to  /etc/issue here or you
will lose them when you reboot.

#echo  "" > /etc/issue

#echo  "$R" >> /etc/issue

#echo  "Kernel $(uname -r) on $a $(uname -m)" >>
/etc/issue
#cp -f  /etc/issue /etc/issue.net

#echo >>  /etc/issue

其次删除"/etc"目录下的isue.net和issue文件:
# mv /etc/issue /etc/issue.bak

# mv /etc/issue.net /etc/issue.net.bak
检测方法
查看Cat /etc/rc.d/rc.local 注释住处信息

附表:端口及服务
服务名称
端口
应用说明
关闭方法
处置建议
daytime
13/tcp
RFC867 白天协议
chkconfig daytime off
建议关闭
13/udp
RFC867 白天协议
chkconfig daytime off
time
37/tcp
时间协议
chkconfig time  off
37/udp
时间协议
chkconfig time-udp off
echo
7/tcp
RFC862_回声协议
chkconfig echo  off
7/udp
RFC862_回声协议
chkconfig echo-udp    off   
discard
9/tcp
RFC863 废除协议
chkconfig discard off
9/udp
chkconfig discard-udp off
chargen
19/tcp
RFC864 字符产生协议
chkconfig chargen off
19/udp
chkconfig chargen-udp off
ftp
21/tcp
文件传输协议(控制)
chkconfig gssftp off   
根据情况选择开放
telnet
23/tcp
虚拟终端协议
chkconfig krb5-telnet off   
根据情况选择开放
sendmail
25/tcp
简单邮件发送协议
chkconfig sendmail off
建议关闭
nameserver
53/udp
域名服务
chkconfig named off
根据情况选择开放
53/tcp
域名服务
chkconfig named off
根据情况选择开放
apache
80/tcp
HTTP 万维网发布服务
chkconfig httpd off
根据情况选择开放
login
513/tcp
远程登录
chkconfig login   off
根据情况选择开放
shell
514/tcp
远程命令, no passwd used
chkconfig shell   off
根据情况选择开放
exec
512/tcp
remote execution, passwd required
chkconfig exec    off
根据情况选择开放
ntalk
518/udp
new talk, conversation
chkconfig ntalk   off
建议关闭
ident
113/tcp
auth
chkconfig ident   off
建议关闭
printer
515/tcp
远程打印缓存
chkconfig printer off
强烈建议关闭
bootps
67/udp
引导协议服务端
chkconfig bootps  off
建议关闭
68/udp
引导协议客户端
chkconfig bootps  off
建议关闭
tftp
69/udp
普通文件传输协议
chkconfig tftp    off
强烈建议关闭
kshell
544/tcp
Kerberos remote shell -kfall
chkconfig kshell  off
建议关闭
klogin
543/tcp
Kerberos rlogin -kfall
chkconfig klogin  off
建议关闭
portmap
111/tcp
端口映射
chkconfig portmap  off
根据情况选择开放
snmp
161/udp
简单网络管理协议(Agent)
chkconfig snmp  off
根据情况选择开放
snmp trap
161/tcp
简单网络管理协议(Agent)
chkconfig snmp  off
根据情况选择开放
snmp-trap
162/udp
简单网络管理协议(Traps)
chkconfig snmptrap  off
根据情况选择开放
syslogd
514/udp
系统日志服务
chkconfig syslog  off
建议保留
lpd
515/tcp
远程打印缓存
chkconfig lpd  off
强烈建议关闭
nfs
2049/tcp
NFS远程文件系统
chkconfig nfs  off
强烈建议关闭
2049/udp
NFS远程文件系统
chkconfig nfs  off
强烈建议关闭
nfs.lock
动态端口
rpc服务
chkconfig nfslock  off
强烈建议关闭
ypbind
动态端口
rpc服务
chkconfig ypbind  off
强烈建议关闭



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-49603-1-1.html 上篇帖子: Linux双网卡绑定 下篇帖子: Linux 文件特殊权限和访问控制列表 Linux
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表