系统安全及应用

192 阅读6分钟

image.png


账号安全基本措施

系统账号清理

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

usermod -s /sbin/nologin用户名

例如:很多程序用户只要存在即可,就需要将其设置为不可登录

锁定长期不使用的账号

锁定:
usermod -L用户名
passwd -l用户名
解锁:
usermod -U
passwd -u
查看锁定用户:
passwd -S 用户名

删除无用的账号

userdel [-r]用户名

锁定账号文件passwd、shadow

锁定文件:chattr +i /etc/passwd /etc/shadow
查看状态:lsattr /etc/passwd /etc/shadow
解锁文件:chattr -i /etc/passwd /etc/shadow

image.png

密码安全控制

设置密码有效期

新建用户密码有效期
  1. 进入/etc/login.defs image.png

  2. PASS_MAX_DAYS改成30 image.png

  3. 更改后新建用户,密码有效期都为30天 image.png

已有用户密码有效期
chage  -M  天数  用户名

image.png

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

chage  -d  0  用户名
  1. 用该命令对abc用户进行设置 image.png

  2. abc用户下次登录时,输入完密码后就会被强制要求改密码 image.png

  3. 先输入原密码,然后输入新密码即可 image.png image.png

  4. 如果密码过短,或者密码与原来太相似,无法修改成功 image.png image.png

命令历史限制

减少记录的命令条数

  1. 进入/etc/profile image.png

  2. 将HISTSIZE的数值进行更改 image.png

  3. 使用source /etc/profile刷新后,显示历史命令数量改变 image.png

登录时自动清空命令历史

临时清空记录

history -c:临时清空记录,重启后又能看到,不能永久清除 image.png

登录时清空记录

进入~/.bashrc,添加echo " " > ~/.bash_history image.png

终端自动注销

  1. 进入/etc/profile image.png

  2. 添入export TIMEOUT=600,保存退出 image.png

  3. 闲置600秒后会自动注销

su 切换用户命令

在当前目录进行切换:su 用户名 image.png

切换到指定用户家目录:su - 用户名 image.png

密码验证

  • root → 任意用户,不验证密码
  • 普通用户 → 其他用户,验证目标用户的密码

限制使用su命令的用户

  • 将允许使用su命令的用户加入wheel组
  • 启用pam_wheel认证模块
  1. 进入/etc/pam.d/su,解除第六行注释
    该行取消注释,只有加入到wheel组中才能使用su命令 image.png

  2. 此时abc已经不能切换用户

image.png

  1. 将abc加入到wheel组中,现在abc可执行切换用户命令 image.png

PAM安全认证

为了加强su命令的使用控制,可借助于PAM认证模块,只允许极个别用户使用su命令进行切换。
PAM可插拔式认证模块

  • 是一种高效而且灵活便利的用户级别的认证方式
  • 也是当前Linux服务器普遍使用的认证方式

PAM认证原理

  • 一般遵循的顺序:Service (服务) → PAM(配置文件) → pam_* .so
  • 首先要确定哪一项服务:然后加载相应的PAM的配置文件(位于letc/pam.d下),最后调用认证文件(位于/lib64/security下)进行安全认证
  • 用户访问服务器时,服务器的某一个服务程序把用户的请求发送到PAM模块进行认证
  • 不同的应用程序所对应的PAM模块是不同的

PAM认证的构成

  • 查看某个程序是否支持PAM认证,可以用ls命令
    :查看su是否支持PRM模块认证 image.png

  • 查看su的PAM配置文件:cat /etc/pam.d/su

    1. 每一行都是一个独立的认证过程
    2. 每一行可以区分为三个字段
      1. 认证类型
      2. 控制类型
      3. PAM模块及其参数

image.png

PAM安全认证流程

  1. required验证失败时仍然继续,但返回Fail
  2. requisite验证失败则立即结束整个验证过程,返回Fail
  3. sufficient验证成功则立即返回,不再继续,否则忽略结果并继续
  4. optional不用于验证,只显示信息(通常用于session类型) image.png

sudo机制提升权限

用途:以其他用户身份执行授权的命令
用法:sudo 授权命令
但使用前需要超级管理员授权
sudo -l查看当前用户获得哪些sudo权限

配置sudo授权

visudo 或者 vi /etc/sudoers 用法

  • 用户 主机名=命令程序列表
  • 用户 主机名=(用户)命令程序列表

image.png

各部分意义

  • 用户:直接授权指定的用户名,或采用“%组名”的形式(授权一个组的所有用户)
  • 主机名:使用此规则的主机名,没配置过主机名时可用localhost,有配过主机名则用实际的主机名,ALL则代表所有主机
  • (用户):用户能够以何种身份来执行命令。此项可有略,缺省时以root用户的身份来运行命令
  • 命令程序列表:允许授权的用户通过sudo方式执行的特权命令,需填写命令程序的完整路径,多个命令之间以逗号","进行分隔。ALL则代表系统中的所有命令

将几个用户加入到一个别名组中,对多用户操作直接用别名即可。主机名,命令也可设置别名。(别名必须是大写)

image.png

终端登录安全控制

限制root只在安全终端登录

安全终端配置:/etc/securetty

image.png

禁用的终端,root用户将无法再登入

image.png

禁止普通用户登录

禁止普通用户登录:touch /etc/nologin
取消上述登录限制:rm -rf /etc/nologin

注意:/etc/nologin文件时临时的,重启后就没有了

  1. 创建/etc/nologin,禁止普通用户登录 image.png

  2. 普通用户无法登录 S{_H`IO$}UU_Y@AX{UUWG{V.png

  3. 删除/etc/nologin,取消登录限制 image.png

  4. 普通用户恢复可登录 image.png

网络端口扫描

netstat和ss

常用选项

选项作用
-a显示主机中所有活动的网络连接信息(包括监听、非监听状态的服务端口)
-l显示处于监听状态的网络连接及端口信息
-n以数字的形式显示相关的主机地址、端口等信息
-t查看TCP相关的信息
-u显手UDP协议相关的信息
-p显示与网络连接相关联的进程号、进程名称信息(该选项需要 root权限)

image.png

image.png

ss和netstat相比,显示的内容差不多,只是显示的形式不同。

image.png

image.png

nmap

用于网络扫描和安全检测的工具
需要CentOS 7.3光盘中安装包:nmap-6.40-7.el7.x86_64.rpm
nmap常用选项

  1. -p:扫描指定的端口 image.png

  2. -n:禁用反向NDS解析,以加快扫描速度

  3. -sP:ICMP扫描,快速判断目标主机是否存活,不做其他扫描
    (查看哪些主机开放了80端口 ) image.png

  4. -sT:TCP连接扫描,这是完整的TCP扫描方式,用来建立一个TCP连接,如果成功则认为目标端口正在监听服务,否则认为目标端口并未开放。 image.png

  5. -sU:UDP扫描,探测目标主机提供哪些UDP服务,UDP扫描的速度会比较慢 image.png