主机安全基础 ---对于主机安全,你应该知道这些

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

你可能感兴趣的:(主机安全)