注:
查看文件不做修改,硬要修改,记得备份
一切以你检查配置为准
1
、用户账号
1.1
验证账号
验证空口令
awk
-F
:
空格
'($2=="") {print $1}'
/etc/shadow
uid
为
0
的账号,
awk
-F
:
空格
'($3==0) {print $1}'
/etc/passwd
1.2
密码长度和有效期
cat
/etc/login.defs
注
:
(普通系统、涉密系统、核心业务系统等环境下对配至的要求不同,具体要分行业和国标)
pass_max_days
密码有效期
推荐
90
天
pass_min_days
修改密码的最短期限
推荐
2
天
PASS_MIN_LEN
密码的最小长度 推荐
8
位
PASS_WARN_AGE
密码过期提醒 推荐
7
天
1.3
密码复杂度
推荐:至少包含大、小写、数字、特殊字符中的最少两种
cat
/etc/pam.d/system-auth
passwrod requisite pam_cracklib.so
minlen
=
8
difok
=
5
dcredit
=
-1
lcredit
=
-1
ucredit
=
-1
ocredit
=
-1
password sufficient pam_unix.so sha512 shadow nullok try_first_pass
use_authtok
后面加
个
remember
=
5
不允许和近期设置的
5
个历史密码相同
try_first_pass
防止新设置的密码和旧密码相同
minlen=8
最小长度
difok=5
新密码、旧密码至少有
5
个字符不同
dcredit=-1
最少
1
个数字
lcredit=-1
最少一个小写字母
ucredit=-1
最少一个大写字母
ocredit=-1
最少一个特殊字符
retry=1
几次登录失败后返回错误信息
type=xxx
用来修改默认的密码提示文本信息
1.4
会话超时
推荐:
5
分钟
1.5
防
ip spoof
echo
"nospoof on"
>>/etc/host.conf
1.6
限制指定用户组的用户可通过
su
且为
root
cat
/etc/pam.d/system-auth
查找以下行,若不存在则自己新增
auth required pam_wheel.so user_uid
该配置的作用仅允许
wheel
组用户可通过
su
登录至
root
在终端直接输入:
usermod
-G10
zhangsan
将
zhangsan
用户加到
wheel
组(
wheel
组在
group
文件中排第
10
位)
1.7
查看是否存在
suid
文件
find
/
-perm -u
=
s
-type
f
2
>/dev/null
find
/
-perm -g
=
s
-type
f
2
>/dev/null
2
、系统访问和授权
2.1crontab
chown
root:root /etc/crontab
仅允许管理员(组),操作
chmod
400
/etc/crontab
仅管理员
root
有读的权限
chown
root:root /var/spool/cron
chmod
跟随用户可给适当权限
/var/spool/cron
chown
root:root /etc/cron.*
chmod
跟随用户可给适当权限
/etc/crontab
(分配权限时,最好和用户进行沟通,部份用户有计划任务需 求)
2.2
守护进程、掩码
/etc/bashrc
/etc/profile
在上述文件的末尾增加
umask
027
将
umask
设置位
027
,相当于将非文件所有者和所有者组的权限降低
默认情况下:
新建目录权限为
755
,
新建文件是
644
,
配置后:
新增目录为
750
新建文件是
640
3
、修改常用服务的
banner
信息
修改后端口扫描会增加时间成本,建议修改默认端口
vim
/etc/ssh/sshd_config
Banner /etc/ssh/test
指定使用路径为
/etc/ssh/test
新建
/etc/ssh/test
touch
/etc/ssh/test
可自定一文件内容
之后重启
ssh
服务
service
sshd
restart
4
、查看、关闭未知、不必要的服务
service
--status-all
#
查看所有服务
5
、设置
history
命令时间戳
vim
/etc/profile
在文末新增一条
export
HISTTIMEFORMAT
=
"%F %T `whoami` "
(反单引号)
需要重新加载环境变量才能生效
source
/etc/profile
之后输入
history
验证格式是否修改成功
6
、设置登录失败锁定
推荐登录失败
5
次后锁定账号
30
分钟,
cat
/etc/pam.d/system-auth
auth required pam_tally2.so
deny
=
5
even_deny_root
unlock_time
=
1800
root_unlock_time
=
1800
7
、禁止
root
用户通过
ssh
远程登录
推荐值
PermitRootLogin no
和之前的配置结合,仅能普通用户登录,且仅有特定组用户可用
su
提权
cat
sshd_config |grep PermitRootLogin
#
查看文件
vim
sshd_config
修改配置
PermitRootLogin no
配置完成后需重启服务
8
、
ssh
其他配置
8.1
禁止空密码登录
文件
/etc/sshd_config
PermitEmptyPasswords no
在该配置前前去除注释即可
8.2
禁止
ssh
端口转发(若用户有使用需求,则需声明)
文件
/etc/sshd_config
AllowTcpForwarding no
GatewayPorts no
将上述两个配置前的注释去除,并设置为
no :P
9
、隐藏操作系统版本信息
/etc
目录下
修改
issue.net
和
issue
为空
10
、最大文件打开数
echo
"* soft nofile 65535
*hard nofile
65535
" >>/etc/security/limits.conf
11
、用户最大进程数
/etc/security/limits.d/20-nproc.conf
修改
unlimited
为
65535
以下
推荐配置:
root soft nproc
65535
root hard nproc
65535
* soft nproc
65535
* hard nproc
65535