1.判断用户是否存在if id -u username > /dev/null 2>&1
2.wheel组的作用
~]# usermod -G wheel username
将用户加入wheel组后,使用sudo可以基本完成root用户的所有操作
3./etc/login.defs:密码使用周期,修改周期
# 只对普通用户有效,对wheel组和root来说形同虚设
# 因此,wheel组加用户时需要慎重再慎重,wheel组的用户执行命令时也要慎重再慎重
[python@docker ~]$ cat /etc/login.defs | grep '^[A-Z].*$'
MAIL_DIR /var/spool/mail
PASS_MAX_DAYS 99999 #密码的最长使用时间
PASS_MIN_DAYS 7 #密码的最小修改间隔
PASS_MIN_LEN 5 #密码最小长度
PASS_WARN_AGE 7
UID_MIN 1000 #创建用户时,用户的最小ID
UID_MAX 60000
SYS_UID_MIN 201
SYS_UID_MAX 999
GID_MIN 1000
GID_MAX 60000
SYS_GID_MIN 201
SYS_GID_MAX 999
CREATE_HOME yes #新建用户时,默认会创建家目录,使用-M选项从而不创建家目录
UMASK 077
USERGROUPS_ENAB yes
ENCRYPT_METHOD MD5
MD5_CRYPT_ENAB yes
4./etc/issue.net
在使用本地终端登录(非ssh)时,在输入密码前所展示的信息
比如,你可以把用户密码放在信息里,当然,完成这种操作的前提是你觉得你的系统无关紧要
5.查看用户的密码规则
chage -l username
[python@docker ~]$ chage -l python
Last password change : Jun 15, 2020
Password expires : never
Password inactive : never
Account expires : never
Minimum number of days between password change : 0
Maximum number of days between password change : 99999
Number of days of warning before password expires : 7
6./etc/systemd/system/system.conf
##禁用ctrl+alt+del组合重启,将CtrlAltDelBurstAction=reboot-force改为CtrlAltDelBurstAction=none
7.export TMOUT=600,输入超时时间,在/etc/profile中设置
8./etc/profile,/etc/bashrc,设置umask
9.find / -xdev -nouser -o -nogroup -print 找出没属主或属组的文件或目录
可定期扫描系统,防止此类文件或目录被利用
10./var/log/{wtmp,lastlog,faillog}
(1)/var/log/messages用于存储系统的日志信息,记录一些系统事件
(2)/var/log/secure记录着用户登录系统的一些信息,不管失败或成功都会记录。因此,定时扫描此文件,如果突然持续增大,那很有可能有人正在对你的系统进行爆破;也可以定时扫描登录信息中是否出现陌生用户
(3)/var/log/wtmp用于记录用户成功登录的记录,包括登陆时间、持续时长等信息
(4)/var/log/lastlog用于记录用户最近的一次登录信息,如果用户从未登陆过也会记录
11.stat filename | md5sum(避免黑客修改文件后还原文件修改时间)
或者用于监控某些不会改动但是很重要的文件文件,比如可以监控/etc/passwd,通常情况下不怎么改变。
在安装redis,haproxy等第三方软件的时候会改变/etc/passwd
12./etc/pam.d/
# 目录下包含多个系统文件
包括su和sshd等文件,用于配置
13./etc/security/access.conf
控制用户访问某些文件或者服务
#禁止非root用户通过tty1访问相关服务
-:ALL EXCEPT root:tty1
#禁止除了wheel、shutdown以及sync之外的所有用户访问相关服务
-:ALL EXCEPT wheel shutdown sync:LOCAL
#禁止wheel用户通过.win.tue.nl之外的其它它终端访问相关服务
-:wheel:ALL EXCEPT LOCAL .win.tue.nl
# 禁止下面的用户从任何主机登录。其它用户可以从任意地方访问相关服务
-:wsbscaro wsbsecr wsbspac wsbsym wscosor wstaiwde:ALL
# root用户允许通过cron来使用tty1到tty6终端访问相关服务
+ : root : cron crond :0 tty1 tty2 tty3 tty4 tty5 tty6
# 用户root允许从下面的地址访问相关服务
+ : root : 192.168.99.1 192.168.99.4 192.168.99.9
+ : root : 127.0.0.1
# 用户root可以从192.168.201.网段访问相关服务
+ : root : 192.168.99.
# 用户root可以从.foo.bar.org中任何主机访问相关服务
+ : root : .foo.bar.org
# 用户root不允许从任何主机访问相关服务
- : root : ALL
# 用户@nis_group和foo可以从任何主机访问相关服务
+ : @nis_group foo : ALL
14.扫描/etc/passwd从而监控未知用户
15.echo 1 > /proc/sys/net/ipv4/tcp_syncookies
打开TCP同步标签(syncookie),内核必须打开了 CONFIG_SYN_COOKIES项进行编译
同步标签(syncookie)可以防止一个套接字在有过多试图连接到达时引起过载
16.防止ip欺骗攻击
关注/etc/hosts.equiv, ~/.hosts等文件,通常系统下是没有这些文件的
17.重新设置/etc/rc.d/init.d/目录下所有文件的许可权限检查命令
最好只将执行权限赋值给相应的服务用户,其他用户都不允许执行
18.保护/etc/services文件chattr +i /etc/services
记录网络服务和其对应的端口以及协议
19.禁用nfs,xinetd
systemctl disable xinetd
20.另外还有一些
Sendmail设置检查
SSH配置
删除不必要的用户和组
检查路由.
开启历史记录时间显示
# 安全重定向,开启时只接受来自网关的重定向包
net.ipv4.conf.default.secure_redirects = 0
net.ipv4.conf.all.secure_redirects = 0
# 开启时,忽略广播的ping包
net.ipv4.icmp_echo_ignore_broadcasts = 1
# 不接受重定向
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
# 见上面的条目15
net.ipv4.tcp_syncookies = 1
#对于那些依然还未获得客户端确认的连接请求,需要保存在队列中最大数目。
# 对于超过 128Mb 内存的系统,默认值是 1024,低于 128Mb 的则为 128。
# 如果服务器经常出现过载,可以尝试增加这个数字。
net.ipv4.tcp_max_syn_backlog = 4096
# 反省过滤技术,在网口接收到了某个程序的ip包,如果正常情况下应用不是通过此端口发送数据包时,本机会拒绝
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1
# 不接收含有源路由信息的包,充当网关时可打开,正常情况下应关闭
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.default.accept_source_route = 0
# 关闭转发功能
net.ipv4.ip_forward = 0
# 关闭重定向
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
# 忽略错误应答
net.ipv4.icmp_ignore_bogus_error_responses = 1