linux安全规范
1、账户安全
1.1 锁定系统中多余的自建账号
实施目的:
清理与系统管理和应用没有关系的账号
实施步骤:
执行命令
#cat /etc/passwd
#cat /etc/shadow
查看账户、口令文件,与系统管理员确认不必要的账号。对于一些保留的系统伪账户。如:bin、sys、adm、uucp、lp、nuucp、hpdb、www、daemon等可根据需要锁定登陆。
安全加固方法:
使用命令passwd -l <用户名>锁定不必要的账号。
使用命令passwd -u <用户名>解锁需要恢复的账号。
1.2 设置系统口令策略
实施目的:
防止弱口令的使用
实施步骤:
使用命令#cat /etc/login.defs|grep PASS 查看密码策略设置
加固方法:
#vi /etc/login.defs 修改配置文件
PASS_MAX_DAYS 90 #新建用户的密码最长使用天数
PASS_MIN_DAYS 0 #新建用户的密码最短使用天数
PASS_WARN_AGE 7 #新建用户的密码到期提前提醒天数
PASS_MIN_LEN 9 最小密码长度
1.3 禁用root之外的超级用户
实施目的:
控制超级管理员账号
实施步骤:
#cat /etc/passwd 查看口令文件,口令文件格式如下:
login_name:passwd:user_ID:group_ID:comment:home_dir:command
login_name:用户名
password:加密后的用户密码
user_ID:用户ID,(1~6000) 若用户ID=0,则该用户拥有超级用户的权限。查看此处是否有多个ID=0
group_ID:用户组ID
comment:用户全名或其他注释信息
home_dir:用户根目录
command:用户登录后的执行命令
加固方法:
使用命令passwd -l <用户名> 锁定不必要的超级账户。
1.4 限制能够su 为root的用户
实施目的:
限制权限提升
实施步骤:
#cat /etc/pam.d/su,查看是否有auth requried /lib/security/pam_wheel.so 这样的配置条目
加固方法:
#vi /etc/pam.d/su 在头部添加:
auth requried /lib/security/pam_wheel.so group=wheel
这样,只有wheel组的用户可以su到root
#usermod -G wheel test
1.5 检查shadow中空口令账号
实施目的:
禁止空口令账号存在
实施步骤:
#awk -F: '($2 == "") {print $1}' /etc/shadow
对空口令账号进行锁定,或要求增加密码
2、最小化服务
2.1 停止或禁用与承载业务无关的服务
实施目的:
停止或禁用与承载业务无关的服务
实施步骤:
#who -r或runlevel 查看当前init 级别
#chkconfig --list 查看所有服务的状态
#chkconfig --level <服务名> on|off|reset 设置服务在各个init级别下开机是否启动
3、网络访问控制
3.1 使用SSH进行管理
实施目的:
使用加密的管理方式
实施步骤:
#ps -aef|grep sshd 查看有无ssh服务
如没有,使用命令开启服务
service sshd start
3.2 禁止root用户远程登陆
实施目的:
禁止root用户登录服务器
实施步骤:
#cat /etc/ssh/sshd_config 查看PermitRootLogin 是否为no
修改方法:
#vi /etc/ssh/sshd_config
PermitRootLogin no
3.3 屏蔽登录banner信息
实施目的:
禁止banner信息,防止相关信息泄露
实施步骤:
#cat /etc/ssh/sshd_config 查看文件中是否存在banner字段,或banner字段为NONE
#cat /etc/motd 查看文件内容,该处内容作为banner信息显示给登录用户
修改方法:
#vi /etc/ssh/sshd_config
banner NONE
#vi /etc/motd
删除全部内容或更新成自己想要添加内容
3.4 防止使用CRTL+ALT+DEL重启系统
实施目的:
防止误使用CRTL+ALT+DEL重启系统
实施方法:
#cat /etc/inittab|grep ctrlaltdel 查看输入行是否被注释
修改方法:
#vi /etc/inittab
在行开头添加注释符号“#”
#ca::ctrlaltdel:/sbin/shutdown -t3 -r now
4、用户鉴别
4.1 设置账户锁定登录失败次数、锁定次数、锁定时间
实施目的:
防止暴力破解
实施步骤:
#cat /etc/pam.d/system-auth 查看有无auth requried pam_tally.so 条目的设置
操作步骤:
#vi /etc/pam.d/system-auth
auth requried pam_tally.so onerr=fail deny=6 unlock_time=300 设置为密码连续错误6次锁定,锁定时间为300秒
解锁用户 faillog -u <用户名> -r
4.2 修改账户TMOUT值,设置自动注销时间
实施目的:
设置账号的空闲超时时间
实施步骤:
#cat /etc/profile 查看有无TMOUT的设置
修改方法:
#vi /etc/profile
增加
TMOUT=600 无操作600秒后自动退出
4.3 Grub/Lilo密码设置
实施目的:
设置Grub/Lilo的密码
实施步骤:
#cat /etc/grub.conf|grep password 查看grub是否设置密码
#cat /etc/lilo.conf|grep password 查看lilo是否设置密码
修改方法:
为grub或lilo设置密码
注意:此密码切勿遗忘
4.4 限制FTP登录
实施目的:
限制账号使用FTP
实施步骤:
#cat /etc/ftpusers 确认是否包含用户名,这些用户名不允许登录FTP服务。
修改方法:
#vi /etc/ftpusers 添加行,每行包含一个用户名,添加的用户将禁止登录FTP服务。
4.5 设置Bash保留历史命令的条数
实施目的:
设置Bash的历史命令条数,避免相关信息泄露
实施方法:
#cat /etc/profile|grep HISTSIZE=
#cat /etc/profile|grep HISTFILESIZE= 查看保留历史命令的条数
#cp -p /etc/profile /etc/profile.bak
修改方法:
#vi /etc/profile
修改HISTSIZE=5和HISTFILESIZE=5 即保留最新执行的*条命令