Linux---系统安全

文章目录

系统安全

系统账号清理

将非登录用户的Shell设为/sbin/nologin
usermod -s /sbin/nologin 用户名

锁定长期不使用的账号
usermod -L用户名
passwd -l用户名
passwd -S 用户名

删除无用的账号
userdel [-r]用户名

锁定账号文件passwd、shadow
chattr +i/etc/passwd /etc/shadow
lsattr /etc/passwd /etc/shadow		#锁定文件并查看状态
chattr -i/etc/passwd /etc/shadow	#解锁文件

密码安全控制

  • 设置密码有效期

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

    vi /etc/login.defs #修改密码配置文件,适用于新建用户

    chage -M 30 lisi #适用于已有用户
    cat /etc/shadow grep lisi

    chage -d 0 zhangsan #强制在下次登录时更改密码
    cat /etc/shadow | grep zhangsan #shadow文件中的第三个字段被修改为0

命令历史限制

  • 减少记录的命令条数

  • 登录时自动清空命令历史

    vi /etc/profile
    export HISTSIZE=200

    source /etc/profile

    vi ~/.bashrc
    echo"">~/.bash history #当前用户

终端自动注销

闲置600秒后自动注销

vi /etc/profile
export TMOUT=600

source /etc/profile

如设置时间短的处理方式

另一台虚拟机
scp /etc/profile root@时间过短的虚拟机的IP:/etc/profile

使用su命令切换用户

用途及用法

用途:Substitute User,切换用户
格式:su -目标用户

密码验证

root→任意用户,不验证密码	带-选项表示将使用目标用户的登录Shell环境
普通用户→其他用户,验证目标用户的密码
su - root
whoami

限制使用su命令的用户

  • 将允许使用su命令的用户加入wheel组
  • 启用pam wheel认证模块

PAM 系统相关的认证权限管理

Linux 系统中较为全面的安全管理的程序

gpasswd -a tsengyia wheel

vi /etc/pam.d/su
#%PAM-1.0
auth		sufficient pam rootok.so
auth		required pam wheel.so use uid

查看su操作记录

安全日志文件:/var/log/secure

限制使用su命令的用户

将允许使用su命令的用户加入wheel组

启用pam wheel认证模块

查看su操作记录

安全日志文件:/var/log/secure

su命令的安全隐患

  • 默认情况下,任何用户都允许使用su命令,有机会反复尝试其他用户(如root)的登录密码,带来安全风险
  • 为了加强su命令的使用控制,可借助于PAM认证模块只允许极个别用户使用su命令进行切换

PAM(Pluggable Authentication Modules)可插拔式认证模块

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

PAM认证原理

  • 一般遵循的顺序

    Service(服务)→PAM(配置文件)→pam *.so

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

  • 用户访问服务器时,服务器的某一个服务程序把用户的请求发送到PAM模块进行认证

  • 不同的应用程序所对应的PAM模块是不同的

1、su------》service 服务

2、加载PAM配置文件-------》/etc/pam.d/su

3、/lib64/security------->配置帮助进行安全认证生效应用完成的过程

查看某个程序是否支持PAM认证,可以用Is命令

查看su是否支持PAM模块认证
ls /etc/pam.d | grep su

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

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

控制类型也称做Control Flags用于PAM验证类型的返回结果

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

sudo命令的用途及用法

用途:以其他用户身份(如root)执行授权的命令

用法:sudo 授权命令

配置sudo授权

visudo或者vi /etc/sudoers

记录格式 用户主机名=命令程序列表

visudo

%wheel		ALL=NOPASSWD: ALL			#可以使用通配符*取反符号!
jerry		localhost=/sbin/ifconfig
syrianer	localhost=/sbin/*,!/sbin/ifconfig,!/sbin/route
Cmnd Alias	PKGTOOLS=/bin/rpm,/usr/bin/yum
mike		localhost=PKGTOOLS

查看sudo操作记录

需启用 Defaults logfile配置

默认日志文件:/var/log/sudo

visudo
Defaults logfile = "/var/log/sudo"

查询授权的sudo操作

sudo -l

限制root只在安全终端登录

vi /etc/securetty
#tty5
#tty6
禁止root用户从终端tty5、tty6登录

禁止普通用户登录

建立/etc/nologin文件

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

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

网络扫描-----NMAP

NMAP 是一个强大的端口扫描类安全评测工具,支持 ping 扫描、多端口检测等多种技术。

#一台虚拟机安装 NMAP 软件包
rpm -qa | grep nmap
yum install -y nmap

#另一台虚拟机安装 httpd 软件包
yum install -y httpd
systemctl stop firewalld
setenforce 0
systemctl start httpd
systemctl enable httpd

netstat -natp   查看正在运行的使用TCP协议的网络状态信息
netstat -naup   查看正在运行的使用UDP协议的网络状态信息

#分别查看本机开放的TCP端口、UDP端口
nmap -sT 127.0.0.1
nmap -sU 127.0.0.1

#检测192.168.4.0/24网段有哪些主机提供HTTP服务
nmap rp 80 192.168.4.0/24

#检测192.168.4.0/24网段有哪些存活主机
nmap -n -sP 192.168.4.0/24

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 通而放弃扫描。
相关推荐
wowocpp6 分钟前
ubuntu 22.04 硬件配置 查看 显卡
linux·运维·ubuntu
山河君18 分钟前
ubuntu使用DeepSpeech进行语音识别(包含交叉编译)
linux·ubuntu·语音识别
鹏大师运维22 分钟前
【功能介绍】信创终端系统上各WPS版本的授权差异
linux·wps·授权·麒麟·国产操作系统·1024程序员节·统信uos
筱源源24 分钟前
Elasticsearch-linux环境部署
linux·elasticsearch
pk_xz1234562 小时前
Shell 脚本中变量和字符串的入门介绍
linux·运维·服务器
小珑也要变强2 小时前
Linux之sed命令详解
linux·运维·服务器
Lary_Rock4 小时前
RK3576 LINUX RKNN SDK 测试
linux·运维·服务器
云飞云共享云桌面6 小时前
8位机械工程师如何共享一台图形工作站算力?
linux·服务器·网络
Peter_chq7 小时前
【操作系统】基于环形队列的生产消费模型
linux·c语言·开发语言·c++·后端
一坨阿亮8 小时前
Linux 使用中的问题
linux·运维