当前位置: 首页 > 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 通而放弃扫描。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【博主推荐】HTML5新闻,博客,官网网站源码文章瀑布流+详情页面
  • Kotlin IntelliJ IDEA 环境搭建
  • Unity | AmplifyShaderEditor插件基础(第二集:模版说明)
  • VSCode 都有哪些值得推荐的插件
  • RxJava在Android中的应用
  • dataX从orcal数据库抽取数据插入gbase 8a数据库 与 OceanBase数据库
  • MySQL-MVCC举例说明
  • 单库平滑迁移至分库分表架构方案
  • 数字营销中的人工智能 --- 完整指南 (By Hubspot)
  • 从0开始搭建vue + flask 旅游景点数据分析系统(九):旅游景点管理之增删改查
  • @Async 异步注解使用
  • 基于YOLOv10深度学习的草莓成熟度检测与识别系统【python源码+Pyqt5界面+数据集+训练代码】目标检测、人工智能
  • C# VideoCapture 多路视频播放
  • uniapp粘贴板地址识别 address-parse插件的使用
  • 20240810在荣品RK3588S-AHD开发板的预置Android13下挂载exFAT的256GB的TF卡
  • Bootstrap JS插件Alert源码分析
  • ES6简单总结(搭配简单的讲解和小案例)
  • Java,console输出实时的转向GUI textbox
  • JS创建对象模式及其对象原型链探究(一):Object模式
  • Js基础知识(一) - 变量
  • LeetCode29.两数相除 JavaScript
  • miniui datagrid 的客户端分页解决方案 - CS结合
  • tensorflow学习笔记3——MNIST应用篇
  • Webpack 4 学习01(基础配置)
  • Webpack入门之遇到的那些坑,系列示例Demo
  • 从0搭建SpringBoot的HelloWorld -- Java版本
  • 分类模型——Logistics Regression
  • 基于Android乐音识别(2)
  • 基于webpack 的 vue 多页架构
  • 批量截取pdf文件
  • 如何正确配置 Ubuntu 14.04 服务器?
  • 使用agvtool更改app version/build
  • 王永庆:技术创新改变教育未来
  • 一个项目push到多个远程Git仓库
  • 优秀架构师必须掌握的架构思维
  • 在 Chrome DevTools 中调试 JavaScript 入门
  • FaaS 的简单实践
  • MPAndroidChart 教程:Y轴 YAxis
  • 阿里云移动端播放器高级功能介绍
  • 东超科技获得千万级Pre-A轮融资,投资方为中科创星 ...
  • #宝哥教你#查看jquery绑定的事件函数
  • (8)Linux使用C语言读取proc/stat等cpu使用数据
  • (C语言)输入自定义个数的整数,打印出最大值和最小值
  • (Mac上)使用Python进行matplotlib 画图时,中文显示不出来
  • (备份) esp32 GPIO
  • (七)MySQL是如何将LRU链表的使用性能优化到极致的?
  • (三)docker:Dockerfile构建容器运行jar包
  • (五)关系数据库标准语言SQL
  • (一)C语言之入门:使用Visual Studio Community 2022运行hello world
  • .gitattributes 文件
  • .Net - 类的介绍
  • .net core 的缓存方案
  • .NET 设计一套高性能的弱事件机制
  • .net8.0与halcon编程环境构建
  • .NET的数据绑定