赞
踩
在Linux系统测评过程中,查看系统版本是非常重要的,因为它可以帮助我们了解系统的基本情况,包括内核版本、发行版类型等等。以下是几种常见的查看Linux系统版本的方法:
一、使用 lsb_release命令:
输入以下命令查看系统版本信息:
lsb_release -a
该命令会显示完整的系统版本信息,包括发行版名称、版本号和发行日期。
二、使用 cat命令查看 /etc/*-release文件:
输入以下命令查看系统版本信息:
cat /etc/*-release
该命令会显示包含系统版本信息的文件内容。在大多数Linux发行版中,/etc/*-release文件包含了系统版本的详细信息。
三、使用 uname命令:
输入以下命令查看内核版本信息:
uname -a
该命令会显示包括内核版本在内的系统信息。内核版本可以提供有关系统版本的一些线索。
四、使用 hostnamectl命令(仅适用于Systemd系统):
输入以下命令查看系统版本信息:
hostnamectl
该命令会显示关于主机的信息,包括操作系统和内核版本。
请注意,具体命令和输出可能会因Linux发行版的不同而有所不同,但这些方法适用于大多数常见的Linux发行版。
采用用户名、口令方式进行身份鉴别。
在Linux系统中,用户标识符通常被称为用户ID(User ID),简称为UID。UID是用于在Linux环境中唯一标识一个用户的整数。默认每个登录的用户都有一个唯一的UID。
输入以下命令查看所有用户信息,查看第三字段(UID)不存在相同数字、用户名不存在相同名称:
cat /etc/password
存在空口令用户;
在/etc/passwd中用户的密码是被保护的状态,即使用了*号来隐藏。而实际的密码内容是加密后保存在/etc/shadow文件中了,我们确认是否存在空口令的用户就确认该文件中密码对应字段的长度是否为0,如果为0则证明该用户密码为空。
输入以下命令查看shadow文件信息:
cat /etc/shadow
格式内容如下:
shadow文件简析: 1、登录名 是与/etc/passwd文件中的登录名相一致的用户账号。 2、口令 字段存放的是加密后的用户口令,长度为13个字符。如果为空,则对应用户没有口令,登录时不需要口令;如果含有不属于集合{./0-9A-Za-z}中的字符,则对应的用户不能登录。 一般存放的字符串就是加密过的密码文件。就是实际密码经过hash算法后的值。开头的数表示他用的是哪一种hash(可以在 man crypt 中查看到): 以$6$开头的,表明是用SHA-512加密的; 以$1$开头的,表明是用MD5加密的; 以$2$开头的,表明是用Blowfish加密的; 以$5$开头的,表明是用 SHA-256加密的。星号代表帐号被锁定; 如果是"*"或者"!"开头,则代表该账户已锁定、或者禁用,一般不能登录。 3、最后一次修改时间 表示的是从某个时刻起,到用户最后一次修改口令时的天数。时间起点对不同的系统可能不一样。一般这个时间起点是1970年1月1日。 4、密码不可被更动的天数 第四个栏位记录了这个帐号的密码需要经过几天才可以被变更!如果是 0 的话, 表示密码随时可以更动的意思。这的限制是为了怕密码被某些人一改再改而设计的! 5、密码需要重新变更的天数 由于害怕密码被某些‘有心人士’窃取而危害到整个系统的安全,所以有了这个栏位的设计。 你必须要在这个时间之内重新设定你的密码,否则这个帐号将会暂时失效。 而如果像上面的 99999 的话,那就表示,啊哈,密码永远不需要重新输入啦! 6、密码需要变更期限前的警告期限 当帐号的密码失效期限快要到的时候, 就是上面那个‘必须变更密码’的那个时间时, 系统会依据这个栏位的设定,发出‘警告’言论给这个帐号,提醒他‘再过 n 天你的密码就要失效了,请尽快重新设定你的密码呦!’,如上面的例子,则是密码到期之前的 7 天之内,系统会警告该用户。 7、密码过期的恕限时间 如果用户过了警告期限没有重新输入密码, 使得密码失效了,也就是说,你在‘必须变更密码的期限前,并没有变更你的密码!’ 那么该组密码就称为‘失效的密码’啰~怎么办?没关系,还有这个栏位的天数设计啊~ 意思就是说,当密码失效后,你还可以用这个密码在 n 天内进行登入的意思。 而如果在这个天数后还是没有变更密码,那么恭喜您的帐号已经失效了! 8、帐号失效日期 这个日期跟第三个栏位一样,都是使用 1970 年以来的总日数设定。这个栏位表示: 这个帐号在此栏位规定的日期之后,将无法再使用。 这个栏位会被使用通常应该是在‘收费服务’的系统中, 你可以规定一个日期让该帐号不能再使用啦!(坑) 9、 保留 最后一个栏位是保留的,看以后有没有新功能加入。
输入以下命令查看login.defs文件信息:
cat /etc/login.defs
或
grep 'PASS_MAX_DAYS' /etc/login.defs
1)PASS_MAX_DAYS=90(密码登录有效期时间)
2)PASS_MIN_DAYS=0(密码最短修改时间)
3)PASS_MIN_LEN=8(密码最小长度)
4)PASS_WARN_AGE=7(密码过期前提前多少天提醒)
查看/etc/pam.d/system-auth 文件
grep 'deny' /etc/pam.d/system-auth
//没图就不放查询结果图了
pam_tally2.so模块参数解读:
onerr=fail #表示连续错误
deny=n #表示连续登录失败次数超过n次后拒绝访问
unlock_time=300 #表示连续登录失败后锁定的时间(秒数)为300秒
no_magic_root #表示连root用户也在限制范围内
even_deny_root #root用户失败登录次数超过deny=n次后拒绝访问
root_unlock_time=300 #与even_deny_root相对应的选项,如果配置该选项,则root用户在登录失败次数超出限制后被锁定指定时间为300秒
查看/etc/pam.d/sshd文件
grep 'deny' /etc/pam.d/sshd
查看/etc/profile系统文件
grep 'TMOUT' /etc/profile
注:
export TMOUT=0 #0代表永不自动退出 ,针对所有用户
readonly TMOUT # 将值设置为readonly 防止用户更改,在shell中无法修改TMOUT
Linux系统可以通过SSH服务和telnet服务;SSH是一个安全的远程连接,它的数据信息是加密的,端口号为22,SSH服务默认可以为root用户连接。telnet是一个不安全的远程连接,它的数据信息为明文,端口号为23,默认不可以用root用户连接。该项应核查ssh服务、telnet服务是否运行;ssh服务应为运行,telnet服务应为关闭。
1、是否运行SSHD服务
service --status-all |grep sshd
2、是否打开SSHD服务对应端口22端口
netstat -an |grep 22
//查看22端口是否正在被SSHD监听
3、是否打开了Telnet服务
systemctl list-unit-files |grep telnet
//查看命令结果是否存在telen服务(应为不存在)
4、是否打开了Telnet服务的对应端口23端口
netstat -an |grep 23
//查看23端口是否正在被Telnet监听(应为不存在)
该项应询问管理员或在测评过程中发现,除了输入口令登录还有什么方式能够进行身份鉴别,这个方法有没有采用密码技术。
umask
//查看服务器的umask=0027(0027代表 -----w-rwx (只看后三位))
linux服务器中文件最大权限为666,而目录最大权限为777,通过umask改变新建文件或文件夹权限。
创建的文件默认权限:
对于目录,默认权限=777-umask
对于文件,默认权限=666-umask(文件默认无执行权限)
以umask=0027为例;
0027代表 -----w-rwx (只看后三位)
文件夹最高权限为777即rwxrwxrwx
文件最高权限为666 即rw-rw-rw-
more /etc/shadow
//查看命令返回结果 第二字段为(!*)表示该账户已锁定
more /etc/shadow
//查看命令结果,是否存在默认无用账户。
//默认情况下一般都没更改
询问管理员是否重命名默认账户与更改默认口令。默认账户一般为root、admin、system等。
more /etc/shadow
//询问管理员,是否每个账号对应到个人
//禁用或删除不需要的系统默认账户
more /etc/shadow
//过期的账户已删除。
3、避免账户共用现象存在;
询问管理员,是否一人一号登录系统
询问管理员是否建立了,系统管理员、安全管理员、审计管理员账户
more /etc/passwd
//第三个字段用户ID(0代表超级用户,普通用户不为0)
more /etc/sudoers
//查看 /etc/sudoers 文件,找到下面一行,确保系统管理员权限只分配了root用户。
//Allow root to run any commands anywhere
//root ALL=(ALL) ALL
询问系统管理员, 核查是否由指定授权人对操作系统的访问控制权限进行配置。
核查账户权限配置, 了解是否依据安全策略配置各账户的访问规则
使用普通用户查看是否能够访问/etc/shadow文件
通过强制访问控制(MAC)机制,实现细粒度的访问控制功能,即进程级的访问控制。并且系统使用强认证的安全管理员设置的安全标记,通过对重要信息资源设置安全标记,来决定主体以何种权限对客体进行操作,实现强制访问控制机制。
详情请看网友文:https://zhuanlan.zhihu.com/p/569683621
more /etc/selinux/config
//查看SELinux是否开启
//SELinux配置
SELINUX=disable表示Selinux关闭
=ecforcing强制模式
=permissive宽容模式
service rsyslog status
service auditd status
//查看命令结果Active: active (running) 表示正在运行
1、通过service rsyslog/auditd status查看;通过cat /etc/rsyslog.conf查看配置,确保审计功能覆盖到每个用户的行为和重要安全事件;
2、查看/etc/audit/audit.rules文件 ,查看是设置了具体的审计规则。
3、若未开启系统安全审计功能,则确认是否部署了第三方安全审计工具(cat /etc/rsyslog.conf文件),并进行相应的核查。
tail -20/var/log/audit/audit.log
//查看最近20行日志
//审计记录应包括事件的日期、时间、类型、主体标识、客体标识和结果type(消息类型),msg(时间、事件ID),syscall(系统调用类型),success(此次syscall是否成功),exe(进程文件的执行路径)。
ls -l /var/log/audit
//查看审计文件权限
ls -l /var/log
//查看目录权限
//文件可以有读取权限,但不允许有写入权限。
//询问管理员,查看相关配置。
切换普通用户:service auditd stop停止守护进程
//使用普通用户,结束审计进程失败
//部署了第三方审计工具, 可以实时记录审计日志, 管理员不可以对日志进行删除操作
yum list installed
//询问管理员当前的安装包是否存在多余、无用的服务
systemctl list-units --type=service --all
//询问管理员是否存在多余服务。
netstat -ntlp
//询问管理员是否存在多余端口,不存在telnet 23
1、查看是否在hosts.deny和hosts.allow文件中进行限制;
more /etc/hosts.deny
more /etc/hosts.allow
//查看文件中是否存在ALL:ALL(禁止所有连接)
//sshd:192.168.1.10/255.255.255.0(允许这个IP连接)
2、是否采用了从防火墙设置了对接入终端的限制;
systemctl status firewalld
//查看防火墙是否开启(Active: active (running)正在运行 )
firewall-cmd --zone=public --list-rich-rules
//查看防火墙是否有策略
详细请看网友:https://www.cnblogs.com/coolyang/p/17182664.html
使用工具对资产进行扫描
more/var/log/secure | grep refused
rpm -qa |grep patch
//查看安全日志中入侵日志
//查看patch版本
more/var/log/secure | grep refused)
//查看安全日志中入侵日志
询问管理员并查看是否安装入侵检测软件
询问管理员,是否提供了入侵报警功能,如何报警
systemctl status firewalld
//查看防火墙是否开启(Active: active (running)正在运行 )
询问管理员是否安装了防恶意代码软件或相应功能的软件,定期进行升级和更新防恶意代码库
记录杀毒工具,软件版本、病毒库版本
查看杀毒软件,杀毒记录
不符合
核查重要数据在传输的时候使用什么协议(Linux一般使用SSH协议)
用校验技术或密码技术保证重要数据在存储过程中的完整性
核查重要数据在传输的时候使用什么协议(Linux一般使用SSH协议)
抓取数据包,查看是否鉴别数据加密
核查重要配置数据在传输的时候使用什么协议(Linux一般使用SSH协议)
询问管理员是否设置了备份策略(时间、备份地点、备份策略(增量、全量))
查看备份策略
查看备份结果
询问管理员,近期是否进行了备份恢复测试。
询问管理员是否有异地备份,备份策略是什么(时间、备份地点、策略(全量、增量))
应核查重要数据处理系统,是否采用热冗余方式部署。
默认符合
默认符合
不适用
不适用
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。