当前位置: 首页 > news >正文

Linux---系统安全

文章目录

  • 系统安全
    • 系统账号清理
    • 密码安全控制
    • 命令历史限制
    • 终端自动注销
      • 如设置时间短的处理方式
    • 使用su命令切换用户
      • 用途及用法
      • 密码验证
      • 限制使用su命令的用户
      • 查看su操作记录
      • 限制使用su命令的用户
      • 查看su操作记录
      • su命令的安全隐患
    • PAM(Pluggable Authentication Modules)可插拔式认证模块
      • PAM认证原理
      • 查看某个程序是否支持PAM认证,可以用Is命令
      • 查看su的PAM配置文件:cat /etc/pam.d/su
      • 控制类型也称做Control Flags用于PAM验证类型的返回结果
    • sudo命令的用途及用法
      • 配置sudo授权
      • 查看sudo操作记录
      • 查询授权的sudo操作
    • 限制root只在安全终端登录
      • 禁止普通用户登录
    • 网络扫描-----NMAP

系统安全

系统账号清理

将非登录用户的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 lisichage -d 0 zhangsan		#强制在下次登录时更改密码
cat /etc/shadow | grep zhangsan	#shadow文件中的第三个字段被修改为0

命令历史限制

  • 减少记录的命令条数
  • 登录时自动清空命令历史
vi /etc/profile
export HISTSIZE=200source /etc/profilevi ~/.bashrc
echo"">~/.bash history	#当前用户

终端自动注销

闲置600秒后自动注销

vi /etc/profile
export TMOUT=600source /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 wheelvi /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 httpdnetstat -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/24nmap命令常用的选项和扫描类型
-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 通而放弃扫描。

相关文章:

Linux---系统安全

文章目录 系统安全系统账号清理密码安全控制命令历史限制终端自动注销如设置时间短的处理方式 使用su命令切换用户用途及用法密码验证限制使用su命令的用户查看su操作记录限制使用su命令的用户查看su操作记录su命令的安全隐患 PAM(Pluggable Authentication Modules)可插拔式认…...

手写数字识别实战

全部代码: import matplotlib.pyplot import torch from torch import nn # nn是完成神经网络相关的一些工作 from torch.nn import functional as F # functional是常用的一些函数 from torch import optim # 优化的工具包import torchvision from matplotlib …...

二叉树遍历

二叉树的遍历是二叉树操作中的一个基本且重要的概念,它指的是按照一定的规则访问二叉树中的每个节点,并且每个节点仅被访问一次。常见的二叉树遍历方式有四种:前序遍历(Pre-order Traversal)、中序遍历(In-…...

uni app 调用前置摄像头

uniapp开发app并没有相关Api调用前置摄像头。只能使用5app的api 调用前置摄像头拍照 plus.camera.getCamera(index) 获取需要操作的摄像头对象,如果要进行拍照或摄像操作,需先通过此方法获取摄像头对象 index指定要获取摄像头的索引值,1表…...

哈工大李治军老师OS课程笔记(4)——内存管理

一 内存使用与分段(实验六) 内存是如何用起来的? 内存使用:将程序放在内存中,PC指向开始地址 重定位:修改程序中的地址(是相对地址) 什么时候完成重定位? 编译时加基址…...

代码随想录算法训练营第43天:动态规划part10:子序列问题

300.最长递增子序列 力扣题目链接(opens new window) 给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。 子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2…...

传智教育引通义灵码进课堂,为技术人才教育学习提效

7 月 17 日,阿里云与传智教育在阿里巴巴云谷园区签署合作协议,双方将基于阿里云智能编程助手通义灵码在课程共建、品牌合作及产教融合等多个领域展开合作,共同推进 AI 教育及相关业务的发展,致力于培养适应未来社会需求的高素质技…...

企业信息化建设搞得好了叫系统工程,搞不好叫面子工程

2024-06-13 09:26贝格前端工场...

程序员如何平衡日常编码工作与提升式学习?

在快速变化的编程领域中,平衡日常编码工作与个人成长确实是一个重要且富有挑战性的议题。以下是我对这一问题的看法和建议: 1. 认识到平衡的重要性 首先,理解两者之间的平衡并非零和游戏,而是相辅相成的。高效的编码工作能够为个…...

Linux---文件系统和日志分析

文章目录 文件系统和日志分析inode和block概述inode包含文件的元信息用stat命令可以查看某个文件的inode信息Linux系统文件三个主要的时间属性 目录文件的结构用户通过文件名打开文件时,系统内部的过程查看inode号码的方法硬盘分区后的结构访问文件的简单流程inode的…...

MySQL 体系架构

文章目录 一. MySQL 分支与变种1. Drizzle2. MariaDB3. Percona Server 二. MySQL的替代1. Postgre SQL2. SQLite 三. MySQL 体系架构1.连接层2 Server层(SQL处理层)3. 存储引擎层1)MySQL官方存储引擎概要2)第三方引擎3&#xff0…...

跨站脚本攻击漏洞

1.JavaScript JavaScript 是一种脚本,一门编程语言,它可以在网页上实现复杂的功能,网页展现给你的不再是简单的静态信息,而是实时的内容更新,交互式的地图,2D/3D动画,滚动播放的视频等等。 &a…...

RabbitMQ入门与进阶

RabbitMQ入门与进阶 基础篇1. 为什么需要消息队列?2. 什么是消息队列?3. RabbitMQ体系结构介绍4. RabbitMQ安装5. HelloWorld6. RabbitMQ经典用法(工作模式)7. Work Queues8. Publish/Subscribe9. Routing10. Topics 进阶篇1. RabbitMQ整合SpringBoot2. 消息可靠性投递故障情…...

Unity新输入系统 之 InputActions(输入配置文件)

本文仅作笔记学习和分享,不用做任何商业用途 本文包括但不限于unity官方手册,unity唐老狮等教程知识,如有不足还请斧正​ 首先你应该了解新输入系统的基本单位Unity新输入系统 之 InputAction(输入配置文件最基本的单位&#xff0…...

Linux运维篇-误删/bin,/sbin目录怎么修复系统

这里写自定义目录标题 前言实例挂载镜像,重启系统进入救援模式拷贝镜像系统中的/bin和/sbin目录到原系统重启系统 总结 前言 当你看到这篇文章的时候,你的系统可能已经无法登录,或者正在处于登录状态但是不能执行任何常规的命令,…...

构建高效外贸电商系统的技术探索与源码开发

在当今全球化的经济浪潮中,外贸电商作为连接国内外市场的桥梁,其重要性日益凸显。一个高效、稳定、功能全面的外贸电商系统,不仅能够助力企业突破地域限制,拓宽销售渠道,还能提升客户体验,增强品牌竞争力。…...

Java设计模式:中介者模式详解与最佳实践

Java设计模式:中介者模式详解与最佳实践 1. 引言 在软件开发过程中,特别是复杂系统的构建中,模块间的交互往往成为影响代码质量的重要因素。当模块之间耦合度过高时,系统的维护、扩展和理解成本都会显著增加。为了降低模块之间的…...

Matlab绘制像素风字母颜色及透明度随机变化动画

本文是使用 Matlab 绘制像素风字母颜色及透明度随机变化动画的教程 实现效果 实现代码 如果需要更改为其他字母组合,在下面代码的基础上简单修改就可以使用。 步骤:(1) 定义字母形状;(2) 给出字母组合顺序;(3) 重新运行程序&#…...

C:每日一题:二分查找

1、知识介绍: 1.1 概念: 二分查找是一种在有序数组中查找某一特定元素的搜索算法 1.2 基本思想: 每次将待查找的范围缩小一半,通过比较中间元素与目标元素的大小,来决定是在左半部分还是右半部分继续查找。 举个生…...

python Django中使用ORM进行分组统计并降序排列

python Django中使用ORM进行分组统计并降序排列 # 使用supplier和Count进行分组统计,其中supplier为MyModel的一个字段 supplier_counts MyModel.objects.values(supplier).annotate(countCount(supplier)).order_by(-count) # 输出统计结果 for supplier_count in supplier_…...

python打卡day49

知识点回顾: 通道注意力模块复习空间注意力模块CBAM的定义 作业:尝试对今天的模型检查参数数目,并用tensorboard查看训练过程 import torch import torch.nn as nn# 定义通道注意力 class ChannelAttention(nn.Module):def __init__(self,…...

剑指offer20_链表中环的入口节点

链表中环的入口节点 给定一个链表,若其中包含环,则输出环的入口节点。 若其中不包含环,则输出null。 数据范围 节点 val 值取值范围 [ 1 , 1000 ] [1,1000] [1,1000]。 节点 val 值各不相同。 链表长度 [ 0 , 500 ] [0,500] [0,500]。 …...

Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器

第一章 引言:语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域,文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量,支撑着搜索引擎、推荐系统、…...

Keil 中设置 STM32 Flash 和 RAM 地址详解

文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...

在Ubuntu中设置开机自动运行(sudo)指令的指南

在Ubuntu系统中,有时需要在系统启动时自动执行某些命令,特别是需要 sudo权限的指令。为了实现这一功能,可以使用多种方法,包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法,并提供…...

Mac软件卸载指南,简单易懂!

刚和Adobe分手,它却总在Library里给你写"回忆录"?卸载的Final Cut Pro像电子幽灵般阴魂不散?总是会有残留文件,别慌!这份Mac软件卸载指南,将用最硬核的方式教你"数字分手术"&#xff0…...

NLP学习路线图(二十三):长短期记忆网络(LSTM)

在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...

CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云

目前已有本地上传、阿里云OSS上传、腾讯云COS上传、七牛云上传扩展 扩展入口文件 文件目录 crmeb\services\upload\Upload.php namespace crmeb\services\upload;use crmeb\basic\BaseManager; use think\facade\Config;/*** Class Upload* package crmeb\services\upload* …...

Caliper 配置文件解析:config.yaml

Caliper 是一个区块链性能基准测试工具,用于评估不同区块链平台的性能。下面我将详细解释你提供的 fisco-bcos.json 文件结构,并说明它与 config.yaml 文件的关系。 fisco-bcos.json 文件解析 这个文件是针对 FISCO-BCOS 区块链网络的 Caliper 配置文件,主要包含以下几个部…...

高防服务器能够抵御哪些网络攻击呢?

高防服务器作为一种有着高度防御能力的服务器,可以帮助网站应对分布式拒绝服务攻击,有效识别和清理一些恶意的网络流量,为用户提供安全且稳定的网络环境,那么,高防服务器一般都可以抵御哪些网络攻击呢?下面…...