Linux 主机安全
一、身份鉴别
A、登录,密码口令 cat /etc/passwd; Passwd 结果记录:
root:x:0:0:root:/root:/bin/bash
(注 释:用户名:口令:UID:GID:用户全称:用户“home”目录所在位置:用户所用 SHELL 的类型)
B、cat /etc/login.defs(查看密码策略)
cat /etc/pam.d/system-auth(复杂度)
(1)PASS_MAX_DAYS 99999#密码最大有效期、
PASS_MIN_DAYS 0#两次修改密码的最小间隔时间、
PASS_MIN_LEN 5#密码最小长度,对于 root 无效、
PASS_WARN_AGE 7#密码过期前多少天开始提示;
(2)(CentOS 版本)编辑 vi /etc/pam.d/common-password 文件,
password requisite pam_cracklib.so retry=3 minlen=10 difok=3
ucredit=-1 lcredit=-2 dcredit=-1 ocredit=-1【minlen=10 表示
最小密码长度为,至少包含一个大写字母(ucredit),两个小写字
母(lcredit),一个数字(dcredit)和一个标点符号(ocredit】
(USERGROUPS_ENAB yes #用 MD5 加密密码)
其他版本在/etc/pam.d/system-auth 下,requisite
pam_pwquality.so try_first_pass local_users_only retry=3 中
添加 authtok_type= difok=1 minlen=8 ucredit=-1 lcredit=-1
dcredit=-1,ocredit=-1,即 difok=1 为新密码中必须要有 1 个字符
和旧密码不同,minlen 为新密码的最小长度,ucredit=-1 为新密码
中至少包含 1 个大写字母, lcredit=-1 为新密码中至少包含 1 个小
写字母, dcredit=-1 为新密码中至少包含 1 个数字 ,ocredit=-1
为新密码中至少包含 1 个标点符号,
C、cat /etc/pam.d/system-auth(登录失败处理策略)
【auth required pam_tally2.so deny=3 unlock_time=150
even_deny_root root_unlock_time300 表示密码错误三次锁定用户
300 秒,root 用户输入密码错误达到 3 次,锁定 300 秒】
【】
D、询问是否需要远程登录,需要再查 service --status-all|grep
sshd(ssh 配置)service --status-all|grep running(正在运行
的服务)
rpm -aq|grep ssh;或者看是否运行 sshd 服务:service -status-all
| grep sshd;若安装则看相关端口是否打开:netstat -an|grep 22;
若未用 SSH,则看是否用 Telnet 远程:service -status-all | grep
running。
【ps -e | grep ssh(Centos7 系统命令)】、【#service --status-all |grep
running】,查看是否开启了 telnet 服务,telnet 使用明文传输信息,
应当禁用此服务。
E、cat /etc/shadow(显示用户名、唯一性)
Shadow 结果记录:
root: 1 1 1crp/dym:14296:0:99999:7:::
(注释:用户名:加密密码(如果此段为*、!则该用户无法登录系统):
上次修改口令距今时间(从 1970 年 1 月 1 日算起):最短修改口令
时间:最长口令修改时间:口令过期警告时间:口令过期后多少天禁
用此用户用户口令过期日期,为空则表明永久可用) “星号代表帐号被锁定,双叹号表示这个密码已经过期了。奇奇怪怪
的字符串是以 6 6 6开头的,表明是用 SHA-512 加密的, 1 1 1 表明是用
MD5 加密的、 2 2 2 是用 Blowfish 加密的、 5 5 5是用 SHA-256 加密的。”
二、访问控制
A、 umask、ls -l /etc/profile、passwd、shadow、
ls -l /var/log/messages
(访问控制功能)配置文件权限不能大于 644、可执行文件不能大于
755,。
B、询问管理员,并查看系统日志,确定哪些用户曾经以 root 身份
对 Linux 系统进行系统维护。角色分配,权限分离,审计、管理账
户
C、询问操作系统是否涉及数据库,如果有,看是否有账户密码
D、在 cat /etc/passwd 中查看不需要的账号 games, news, gopher,
ftp 、lp 是否被删除;查看不需要的特权账号 halt, shutdown,
reboot 、who 是否被删除;{结果描述为不需要账号未删除。}
E、存在多余、过期的账户,应为自建账户是否多余过期等
三、安全审计
A、ps -ef |grep syslogd、rsyslogd、auditd(启用了 syslogd 进
程或有第三方审计系统)
B、cat /etc/syslog.conf 或者 cat /etc/rsyslog.conf、audit.conf
(日志配置)syslog.conf 配置文件设置合理,对大多数系统行为、
用户行为进行了纪录,并存储在指定的文档中,syslong.conf 中至
少应包括*.info;mail.none;news.none;authpriv.none;
cron.none /var/log/messagesauthpriv.* /var/log/secure、
mail.-/var/log/maillog、cron. /var/log/cron*.emerg ;
C、cat /var/log/messages(审计记录时间等)、
cat /etc/audit/auditd.conf 重 点 检 查 num_logs,
max_log_file,max_log_file_actio , disk_full_action,
disk_erro_action 等字段。部分也可以在 1-3 行命令看到日志存留
期限。
D、是否部署了日志集中审计系统;
E、auditd是审计进程audit的守护进程,syslogd是日志进程syslog
的守护进程,【ps -aux|grep auditd】,以及【ps -aux|grep syslogd】
F、Linux 操作系统版本为 CentOS X,CentOS
AS 自带报表功能,输入 aureport 命令(需要配置过),发现能够根
据记录数据进行分析,并生成审计报表。输入 aureport 及加入参数
可生成报表,查看有无报表生成历史
D、超管无法保护审计记录不被删除、修改等
四、剩余信息保护(Linux 操作系统具备)
五、入侵防范
A、查看是否安装入侵防御软件(主机入侵检测系统(HIDS)或者主
机系统网络入侵检测系统(NIDS)保护。)
B、完整性:服务器是否冗余部署
C、最小安装原则:ifconfig -a、内核【uname-a】、版本
【Isb-release-a 】【cat /etc/redhat-release[centos 系
列]】
df -h(磁盘使用)、rpm -qa|gerp path(查看补丁安装情况)
【netstat -antp】、【netstat -anup】关闭端口对应服务,
21—ftp、23-telnet,25/111-sendmail,(通过 service xxx stop
关闭服务);
【service --status-all |grep running】,关闭危险网络服
务 echo、shell、login、finger、r 命令等;关闭非必须的网络服
务:talk、ntalk、pop-2、Imapd 等。
六、恶意代码防范
A、查看是否安装杀毒软件并更新;
B、查看是否安装网络版防恶意代码产品;
C、查看能否对恶意代码统一管理;
七、资源控制*:**
1、cat /etc/hosts.allow(白名单) cat /etc/hosts.deny(黑名
单)、iptables -L # 查看防火墙设置
查看 cat /etc/hosts.deny 中是否有 ALL:ALL”,禁止所有请求;cat
/etc/hosts.allow 是否有如下配置:sshd 192.x.x.x/255.;或者
IPtable 中是否有限制
2、cat /etc/profile|grep TMOUT(操作超时锁定)
3、询问能否对重要服务器进行监视,CPU、内存等使用情况
4、cat /etc/security/limits.conf(限制单用户对资源使用限度)
中参数 nproc 可设置最大进程数,其中 maxlogins 字段可设置最大登
录数
- soft core 0、* hard rss 5000(所有用户:内存 5m)、@student hard
nproc 20 (student 用户进程 20)、@faculty softnproc 20;
5、询问是否能对服务器服务水平进行检测和报警
6、是否对 USB 口、光盘驱动、串行口进行封闭或者拆除。(广电、
电力)
(生死看淡,不服就干——平头哥)