系统安全及应用(命令)

目录

一、账号安全控制

[1.1 系统账号清理](#1.1 系统账号清理)

[1.2 密码安全控制](#1.2 密码安全控制)

[1.3 历史记录控制](#1.3 历史记录控制)

[1.4 终端自动注销](#1.4 终端自动注销)

二、系统引导和登陆控制

[2.1 限制su命令用户](#2.1 限制su命令用户)

[2.2 PAM安全认证](#2.2 PAM安全认证)

[示例一:通过pam 模块来防止暴力破解ssh](#示例一:通过pam 模块来防止暴力破解ssh)

[2.3 sudo机制提升权限](#2.3 sudo机制提升权限)

[2.3.1 sudo命令(root授权其他用户的命令权限)](#2.3.1 sudo命令(root授权其他用户的命令权限))

[2.3.2 配置sudo授权](#2.3.2 配置sudo授权)

示例一:基础的普通用户的用户创建

示例二:普通用户的建立网卡

示例三:alias用户别名***

示例四:启用sudo操作日志

[2.4 开关机安全控制](#2.4 开关机安全控制)

[2.4.1 调整BIOS引导设置](#2.4.1 调整BIOS引导设置)

[2.4.2 GRUB限制](#2.4.2 GRUB限制)

方法一:

方法二:

[2.4.3 终端登陆安全控制](#2.4.3 终端登陆安全控制)

三、弱口令检测

[3.1 John the Ripper](#3.1 John the Ripper)

示例一:无字典

示例二:有字典

四、端口扫描------NMAP

[4.1 NMAP](#4.1 NMAP)

[4.2 NMAP扫描](#4.2 NMAP扫描)

示例一

​编辑


一、账号安全控制

1.1 系统账号清理

①将非登录用户的Shell设为/sbin/nologin

恢复

②锁定长期不使用的账号

③删除无用的账号

④锁定账号文件passwd、shadow

恢复

1.2 密码安全控制

①设置密码有效期

  • 新用户:

第一个:30天之后要修改密码

第二个:距离上一次修改密码时间0天之内不可修改

第三个:密码最小长度不小于5位

第四个:密码到期前七天会提醒

  • 老用户:

②要求用户下次登陆时修改密码

chage -d 0 用户名

1.3 历史记录控制

①减少记录的命令条数

在vi /etc/profile中

②注销时自动清理历史命令

1.4 终端自动注销

二、系统引导和登陆控制

2.1 限制su命令用户

注意:对这两行添加注释,表示是否启用

第一行:root用户是否有使用su命令的权限

第五行:wheel组中的用户是否有使用su命令的权限

(启用pam_wheel 认证以后,未加入到 wheel 组内的其他用户将无法使用 su 命令)

例:

2.2 PAM安全认证

  • 定义:Linux-PAM,是linux可插拔认证模块,是一套可定制、 可动态加载的共享库,使本地系统管理员可以随意选择程序的认证方式
  • 原理:

PAM认证一般遵循的顺序: Service (服务) --> PAM (配置文件) --> pam_ *.so

②PAM认证首先要确定哪一项应用服务,然后加载相应的PAM的配置文件(位于/etc/pam.d 下),最后调用认证模块(位于/lib64/security/下)进行安全认证

③用户访问服务器的时候,服务器的某一个服务程序把用户的请求发送到PAM模块进行认 证。不同的应用程序所对应的PAM模块也是不同的

注:ls /etc/pam.d:查看某个程序是否支持PAM 认证

第一列代表PAM认证模块类型

auth: 对用户身份进行识别,如提示输入密码,判断是否为root
account:: 对账号各项属性进行检查,如是否允许登录系统,帐号是否已经过期,是否达到最 大用户数等
password: 使用用户信息来更新数据,如修改用户密码。
session: 定义登录前以及退出后所要进行的会话操作管理,如登录连接信息,用户数据的打 开和关闭,挂载文件系统。

第二列代表PAM控制标记

**required:**表示需要返回一个成功值,如果返回失败,不会立刻将失败结果返回,而是继续进行 同类型的下一验证,所有此类型的模块都执行完成后,再返回失败

**requisite:**与required类似,但如果此模块返回失败,则立刻返回失败并表示此类型失败

**sufficient:**如果此模块返回成功,则直接向程序返回成功,表示此类成功,如果失败,也不影响 这类型的返回值

optional:: 不进行成功与否的返回,一般不用于验证,只是显示信息(通常用于session类型),
include: 表示在验证过程中调用其他的PAM配置文件

比如很多应用通过完整调用/etc/pam.d/system-auth(主要负责用户登录系统的认证工作)

来实现认证而不需要重新逐一去写配置项。

第三列代表PAM模块

(默认是在/lib64/security/目录下,如果不在此默认路径下,要填写绝对路径)

同一个模块,可以出现在不同的模块类型中,它在不同的类型中所执行的操作都不相同,这是由于每个模块针对不同的模块类型编制了不同的执行函数。

第四列代表PAM模块的参数

这个需要根据所使用的模块来添加。传递给模块的参数。参数可以有多个,之间用空格分隔开

示例图演示:

|------|------------|-----|------|------|------|------|
| | | | 用户1 | 用户2 | 用户3 | 用户4 |
| auth | required | 模块1 | pass | fail | pass | pass |
| auth | sufficient | 模块2 | pass | pass | fail | pass |
| auth | required | 模块3 | pass | pass | pass | fail |
| | | 结果 | pass | fail | pass | pass |

示例一:通过pam 模块来防止暴力破解ssh

auth required pam_tally2.so deny=3 unlock_time=600 even_deny_root root_unlock_time=1200

说明:尝试登陆失败超过3次,普通用户600秒解锁,root用户1200秒解锁

注解:

  • deny:指定最大几次认证错误,如果超出此错误,将执行后面的策略。如锁定N秒,如果后面没有其他策略指定时,默认永远锁定,除非手动解锁。
  • lock_time:锁定多长时间,按秒为单位;
  • unlock_time:指定认证被锁后,多长时间自动解锁用户;
  • even_deny_root root:用户在认证出错时,一样被锁定
  • root_unlock_time root:用户在登录失败时,锁定多长时间。该选项一般是配合even_deny_root 一起使用的

失败三次自动锁定

[root@fzx ~l# pam tally2 --user=root

Login Failures Latest failure From

root 6 07/01/24 18:46:39 192.17.20.66

[root@benet22 ~l# pam tally2 --user=root --reset

Login Failures Latest failure From

root 6 07/01/24 18:46:39 192.17.20.66

2.3 sudo机制提升权限

2.3.1 sudo命令(root授权其他用户的命令权限)

sudo [参数选项] 命令

  • -l:列出用户在主机上可用的和被禁止的命令;一般配置好/etc/sudoers后,要用这个命令来 查看和测试是不是配置正确的
  • -v:验证用户的时间戳;如果用户运行sudo 后,输入用户的密码后,在短时间内可以不用输 入口令来直接进行sudo 操作;用-v 可以跟踪最新的时间戳;
  • -u:指定以以某个用户执行特定操作;
  • -k:删除时间戳,下一个sudo 命令要求用求提供密码

2.3.2 配置sudo授权

示例一:基础的普通用户的用户创建

操作方法:直接在最后一行添加

注意:在其它用户用root用户通过sudo命令给的权限时

命令形式为:sudo 绝对路径 命令 参数 目标

示例二:普通用户的建立网卡
示例三:alias用户别名***

用处:当使用相同授权的用户较多,或者授权的命令较多时,可以采用集中定义的别名

示例四:启用sudo操作日志

最后用tail -f 加路径 进行动态观察

或者直接

2.4 开关机安全控制

2.4.1 调整BIOS引导设置

  • 将第一引导设备设为当前系统所在硬盘
  • 禁止从其他设备(光盘、U盘、网络)引导系统
  • 将安全级别设为setup,并设置管理员密码

2.4.2 GRUB限制

  • 使用grub2-mkpasswd-pbkdf2生成密钥
  • 修改/etc/grub.d/00 header文件中,添加密码记录
  • 生成新的grub.cfg配置文件
方法一:
方法二:

2.4.3 终端登陆安全控制

  • 限制root只在安全终端登录

安全终端配置:/etc/securetty

  • 禁止普通用户登录

建立/etc/nologin文件

删除nologin文件或重启后即恢复正常

三、弱口令检测

3.1 John the Ripper

  • 简称为 JR一款密码分析工具
  • 支持字典式的暴力破解通过对shadow文件的口令分析,可以检测密码强度
  • 官方双站:http://www.openwall.com/john/

示例一:无字典

  • 首先先上传压缩包

示例二:有字典

四、端口扫描------NMAP

4.1 NMAP

  • 一款强大的网络扫描、安全检测工具
  • 官方网站:http://nmap.org
  • CentOS 7.7光盘中安装包 nmap-6.40-7.el7.x86 64.rpm

4.2 NMAP扫描

nmap [扫描类型] [选项]

  • -p:指定扫描的端口
  • -n:禁用反向 DNS 解析(以加快扫描速度)
  • -sS:TCP的SYN扫描(半开扫描),只向目标发出SYN数据包,如果收到SYN/ACK响应包 就认为目标端口正在监听,并立即断开连接;否则认为目标端口并未开放
  • -sT:TCP连接扫描,这是完整的TCP扫描方式(默认扫描类型),用来建立一个TCP连接, 如果成功则认为目标端口正在监听服务,否则认为目标端口并未开放
  • -sF:TCP的FIN扫描,开放的端口会忽略这种数据包,关闭的端口会回应RST数据包。许多 防火墙只对SYN数据包进行简单过滤,而忽略了其他形式的 TCP 攻击包。这种类型的 扫描可间接检测防火墙的健壮性
  • -sU:UDP 扫描,探测目标主机提供哪些 UDP 服务,UDP 扫描的速度会比较慢
  • -sP:ICMP 扫描,类似于 ping 检测,快速判断目标主机是否存活,不做其他扫描
  • -P0:跳过ping检测,这种方式认为所有的目标主机是存活的,当对方不响应ICMP请求时, 使用这种方式可以避免因无法 ping 通而放弃扫描

nmap -p 139,445 192.168.4.100-200

//检测 IP 地址位于 192.168.4.100~200 的主机是否开启文件共享服务

注:

SYN(synchronous建立联机)

ACK(acknowledgement 确认)

PSH(push传送)

FIN(finish结束)

RST(reset重置)

URG(urgent紧急)

Sequence number(顺序号码)

Acknowledge number(确认号码)

端口的取值范围是:0-65535

示例一

补充:

永久禁PING:vim /etc/sysctl.conf

禁止:net.ipv4.icmp_echo_ignore_all = 1

启用:net.ipv4.icmp_echo_ignore_all = 0

相关推荐
Hacker_xingchen15 分钟前
天融信Linux系统安全问题
linux·运维·系统安全
黑客老陈25 分钟前
新手小白如何挖掘cnvd通用漏洞之存储xss漏洞(利用xss钓鱼)
运维·服务器·前端·网络·安全·web3·xss
代码改变世界ctw7 小时前
如何学习Trustzone
安全·trustzone·atf·optee·tee·armv8·armv9
WTT00119 小时前
2024楚慧杯WP
大数据·运维·网络·安全·web安全·ctf
群联云防护小杜12 小时前
如何给负载均衡平台做好安全防御
运维·服务器·网络·网络协议·安全·负载均衡
ihengshuai12 小时前
HTTP协议及安全防范
网络协议·安全·http
黑客Jack13 小时前
防御 XSS 的七条原则
安全·web安全·xss
o(╥﹏╥)13 小时前
linux(ubuntu )卡死怎么强制重启
linux·数据库·ubuntu·系统安全
云云32114 小时前
怎么通过亚矩阵云手机实现营销?
大数据·服务器·安全·智能手机·矩阵
神一样的老师14 小时前
面向高精度网络的时间同步安全管理架构
网络·安全·架构