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

【Linux基础知识系列】第十一篇-Linux系统安全

Linux系统安全是指通过一系列技术和管理措施,保护Linux系统免受各种威胁和攻击,确保系统的完整性、可用性和机密性。随着网络攻击手段的多样化和复杂化,Linux系统安全成为了系统管理员和开发者必须面对的重要课题。本文将从用户认证、权限管理、防火墙设置、安全工具和最佳实践等方面,详细介绍Linux系统安全的核心概念和实践方法。

核心概念

用户认证

用户认证是确认用户身份的过程,是系统安全的第一道防线。Linux系统中,用户认证通常依赖于用户名和密码,但为了增强安全性,还可以采用SSH密钥、指纹等多因素认证方式。SSH密钥认证是一种更安全的方法,因为它不依赖于密码,而是使用公钥和私钥对进行身份验证。

权限管理

权限管理是Linux系统安全的重要组成部分,它控制用户对系统资源的访问。Linux采用基于用户和组的权限管理机制,每个文件和目录都有明确的所有者和所属组,以及相应的读、写、执行权限。通过合理设置权限,可以防止未授权的用户访问敏感数据。

防火墙

防火墙是网络安全的关键组件,用于监控和控制进出系统的网络流量。Linux系统中常用的防火墙工具有iptables和firewalld。iptables是一个功能强大的防火墙工具,它通过定义一系列的规则来控制网络流量。firewalld提供了一个更易于管理的界面,支持动态配置和实时更新。

安全工具

Linux系统中有许多安全工具可以帮助管理员检测和防御各种威胁。例如,chkrootkit用于检测系统中是否存在rootkit,rkhunter用于搜索已知的安全漏洞,fail2ban用于防止暴力破解攻击等。这些工具通过定期扫描和实时监控,帮助管理员及时发现和应对安全问题。

命令与示例

用户管理

创建用户
sudo useradd -m username

这条命令创建了一个名为username的新用户,并为其创建了一个主目录。

设置用户密码
sudo passwd username

这条命令为username用户设置密码。

删除用户
sudo userdel -r username

这条命令删除了username用户及其主目录。

权限管理

查看文件权限
ls -l filename

这条命令显示了filename文件的所有者、所属组和权限。

修改文件权限
chmod 755 filename

这条命令将filename文件的权限设置为所有者可读、写、执行,所属组和其他用户可读、执行。

修改文件所有者
chown newowner:groupname filename

这条命令将filename文件的所有者改为newowner,所属组改为groupname

防火墙设置(使用iptables)

清空所有规则
sudo iptables -F
sudo iptables -X

第一条命令清空了所有自定义的规则,第二条命令清空了所有链。

允许特定端口
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT

这条命令允许所有到80端口(HTTP)的TCP流量。

拒绝特定IP访问
sudo iptables -A INPUT -s 192.168.1.100 -j DROP

这条命令拒绝了来自192.168.1.100的IP地址的所有流量。

安全工具使用

使用chkrootkit检测rootkit
chkrootkit

这条命令扫描系统以检测可能存在的rootkit。

使用rkhunter检测安全漏洞
rkhunter --check-all

这条命令运行rkhunter的所有检查,以发现系统中的安全漏洞。

使用fail2ban防止暴力破解

首先,需要安装fail2ban:

sudo apt-get install fail2ban

然后,编辑配置文件/etc/fail2ban/jail.conf,启用sshd服务:

ini

[sshd]
enabled  = true
port     = ssh
filter   = sshd
logpath  = /var/log/auth.log
maxretry = 5

这条配置启用了对sshd服务的保护,限制了失败的登录尝试次数。

常见问题

如何防止暴力破解攻击?

暴力破解攻击是指攻击者通过尝试大量的用户名和密码组合来破解账户。为了防止这种攻击,可以采取以下措施:

  • 使用强密码策略,包括大写字母、小写字母、数字和特殊字符。

  • 限制登录尝试次数,例如使用fail2ban自动封锁失败次数过多的IP地址。

  • 使用SSH密钥代替密码认证,增加安全性。

如何检测系统是否被植入rootkit?

rootkit是一种恶意软件,用于隐藏攻击者的活动并保持对系统的控制。检测rootkit可以采取以下方法:

  • 使用专业的检测工具,如chkrootkitrkhunter

  • 定期检查系统日志,寻找异常行为。

  • 监控网络流量,检测异常的出站连接。

如何确保SSH连接的安全?

SSH(Secure Shell)是一种网络协议,用于加密远程登录和其他网络服务。确保SSH连接的安全可以采取以下措施:

  • 使用SSH密钥认证,代替密码认证。

  • 禁用root用户直接登录,创建普通用户并使用sudo进行权限提升。

  • 限制SSH服务的端口范围,避免默认的22端口被扫描。

如何防止未授权的文件访问?

防止未授权的文件访问可以通过以下方法实现:

  • 合理设置文件和目录的权限,确保只有授权用户可以访问。

  • 使用访问控制列表(ACL)进一步细化权限控制。

  • 定期审计文件权限,确保没有不必要的权限开放。

实践建议

定期更新系统

定期更新系统和应用程序,修补已知的安全漏洞,是保持系统安全的基本措施。

使用强密码策略

实施强密码策略,定期更换密码,避免使用简单密码,可以显著提高系统的安全性。

限制不必要的服务

关闭不必要的服务和端口,减少系统暴露给攻击者的攻击面,降低被攻击的风险。

定期备份数据

定期备份重要数据,确保在遭受攻击时能够快速恢复,减少数据丢失的风险。

监控系统日志

定期检查系统日志,及时发现并处理可疑活动,可以有效预防和应对安全威胁。

总结

Linux系统的安全性是其稳定运行的基础。通过本文的介绍,我们了解了用户认证、权限管理、防火墙设置、安全工具最佳和实践等Linux系统安全的核心概念和实践方法。在实际应用中,我们需要根据具体的业务需求和安全策略,采取相应的安全措施。希望本文能够帮助您更好地理解和应用Linux系统的安全知识,确保系统的安全性和稳定性。随着技术的发展和安全威胁的变化,持续学习和实践安全知识是每位系统管理员和开发者的重要任务。

相关文章:

【Linux基础知识系列】第十一篇-Linux系统安全

Linux系统安全是指通过一系列技术和管理措施,保护Linux系统免受各种威胁和攻击,确保系统的完整性、可用性和机密性。随着网络攻击手段的多样化和复杂化,Linux系统安全成为了系统管理员和开发者必须面对的重要课题。本文将从用户认证、权限管理…...

02.管理数据库

管理数据库 1. 创建数据库 mysql> create database db1; Query OK, 1 row affected (0.01 sec)mysql> show databases; -------------------- | Database | -------------------- | db1 | | hellodb | | information_schema | | m…...

Webpack依赖

Webpack到底怎么对我们的项目进行打包捏? 在webpack处理应用程序时,会根据命令或者配置文件找到入口文件 从入口开始,会生成一个依赖关系图,这个依赖关系图会包含应用程序中所需的所有模块(.js、css文件、图片、字体…...

自动驾驶科普(百度Apollo)学习笔记

1. 写在前面 在过去的几年里,自动驾驶技术取得飞速发展,人类社会正逐渐走向一个新时代,这个时代中,汽车不仅仅是一个交通工具,更是一个智能的、能够感知环境、做出决策并自主导航的机器伙伴。现在正好也从事这块的工作…...

leetcode_66.加一

题目链接 这道题归类在力扣的数学类中,应该算是一道思维的简单题吧 题是这样的,根据题目我们不难理解,这个题就是在最后一位加 1 然后返回,正如示例所说的那样,当然这很符合我们人的思维,写这种算法题最重要…...

iview-admin静态资源js按需加载配置

iview-admin2.0版本默认加载所有组件的JS,实际情况下,用户访问后台并不会每个页面都浏览。这样就会造成流量及带宽的浪费。可通过修改配置文件vue.config.js来实现按需加载,具体配置如图 image © 著作权归作者所有,转载或内容合作请联系…...

【学习笔记】深入理解Java虚拟机学习笔记——第3章 垃圾收集器与内存分配策略

第3章 垃圾收集器与内存分配策略 3.1 概述 略 3.2 对象已死? “死去”即不可能以任何途径访问到 3.2.1 引用计数算法 每个对象维护一个计数器,引用即加1,引用失效便减1。 3.2.2 可达性分析算法(主流) 即根据GC…...

抖去推--短视频矩阵系统源码开发

一、开发短视频矩阵系统的源码需要以下步骤: 确定系统需求: 根据客户的具体业务目标,明确系统需实现的核心功能模块,例如用户注册登录、视频内容上传与管理、多维度视频浏览与推荐、用户互动(评论、点赞、分享&#xf…...

Windows设置之网络路由

在 Windows 系统中,可以通过配置路由表来实现特定 IP 地址通过无线网卡(Wi-Fi)连接,而其他流量通过有线以太网连接。 比如,让101.132.45.129 走无线网卡,其他的走有线以太网的具体步骤如下: 通…...

发送文件脚本源码版本

V1 适配win10和 win11 #SingleInstance Force SendMode Input SetWorkingDir %A_ScriptDir%; Global variables global TaskList : [] global CurrentFileConfig : "current_file.ini" global RemainingFilesConfig : "remaining_files.ini" global File…...

Vue部署到Nginx上及问题解决

一、Vue打包 dist文件即打包文件 二、下载Nginx,将dist内容全部复制到Nginx的html下 三、修改Nginx的nginx.conf配置文件,添加try_files $uri $uri/ /index.html; try_files $uri $uri/ /index.html; 是 Nginx 配置中的一个重要指令,用于处理…...

MCP(Model Context Protocol)与提示词撰写

随着大模型(LLM)在复杂任务中的普及,如何让模型高效调用外部工具和数据成为关键挑战。传统函数调用(Function Calling)依赖开发者手动封装 API,而 MCP(Model Context Protocol) 通过…...

每日一令:Linux 极简通关指南 - 汇总

专栏列表 💻 每日一令:Linux 极简通关指南 (25篇) 【基础】每天掌握一个Linux命令 - nsenter:深入容器与命名空间的利器 发布于 2025-06-08 22:27:04【基础】 每天掌握一个Linux命令 - journalctl:系统日志管理的得力助手 发布于…...

项目-- Json-Rpc框架

目录 项目简介环境搭建Ubuntu-22.04 第三方库使用JsonCppMuduo基础类EventLoop类TcpConnection类Buffer类TcpClient类TcpServer类 服务端基本搭建客户端基本搭建 future 项目设计通用模块设计Rpc功能模块设计发现者设计提供者设计服务注册中心设计 Topic功夫模块设计主题管理中…...

因泰立科技H1X激光雷达:因泰立科技为智慧工业注入新动力

在当今工业领域,精准测量与高效作业是推动产业升级的关键因素。因泰立科技推出的H1X三维轮廓扫描激光雷达,凭借其卓越的性能和广泛的应用场景,正成为智慧工业中不可或缺的高科技装备。 产品简介 H1X三维轮廓扫描激光雷达是因泰立科技基于二维…...

day50 随机函数与广播机制

目录 一、随机张量的生成 1.1 torch.randn() 函数 1.2 其他随机函数 1.3 输出维度测试 二、广播机制 2.1 广播机制的规则 2.2 加法的广播机制 二维张量与一维向量相加 三维张量与二维张量相加 二维张量与标量相加 高维张量与低维张量相加 2.3 乘法的广播机制 批量…...

Codeforces Educational 179(ABCDE)

前言 byd这组题纯靠感觉是吧…^_^ b题赛时举了无数个例子都没想明白&#xff0c;然后一直卡到结束&#xff0c;后面题都没看到&#xff0c;结果补题的时候c题d题直接秒了…-_-|| A. Energy Crystals #include <bits/stdc.h> using namespace std;typedef long long …...

基于 actix-web 框架的简单 demo

以下是一个基于 actix-web 框架的简单 demo&#xff0c; 如果你还没有 Rust&#xff0c;我们建议你使用 rustup 来管理你的 Rust 安装。官方 Rust 指南有一个很棒的入门部分。 Actix Web 目前支持的最低 Rust 版本 &#xff08;MSRV&#xff09; 为 1.72。运行 rustup update…...

python:Tkinter 开发邮件客户端,能编写邮件,发送邮件带附件

Python Tkinter 邮件客户端 下面是一个使用 Python Tkinter 开发的简单邮件客户端&#xff0c;支持编写邮件和发送邮件功能&#xff1a; 功能说明 这个邮件客户端包含以下功能&#xff1a; 邮件编写功能&#xff1a; 收件人地址输入抄送地址输入邮件主题输入邮件正文编辑区&…...

CMake基础:gcc/g++编译选项详解

目录 1.编译步骤 2.gcc 与 g 区别 3.gcc 命令的常用选项 3.1.基础编译选项 3.2.优化选项 3.3.调试与分析选项 3.4.链接选项 3.5.语言特性选项&#xff08;C 特化&#xff09; 3.6.安全增强选项 3.7.架构与指令集优化 3.8.其他常用选项 4.常见编译组合示例 5.常用环…...

深入解析Java21核心新特性(虚拟线程,分代 ZGC,记录模式模式匹配增强)

文章目录 前言一、虚拟线程 (Virtual Threads - JEP 444) - 并发的革命1.1 解决的核心问题&#x1f3af;1.2 工作原理与核心机制⚙️1.3 使用详解与最佳实践&#x1f6e0;️1.4 注意事项⚠️1.5 总结 &#x1f4da; 二、分代 ZGC (Generational ZGC - JEP 439) - 低延迟新高度2…...

免费批量去水印工具 - 针对文心一言生成图片

免费批量去水印工具 - 针对文心一言生成图片 工具介绍 这是一款免费的批量去水印工具&#xff0c;专门针对文心一言生成的图片进行处理。通过简单的操作&#xff0c;您可以快速去除图片中的水印。 下载链接 您可以通过以下网盘链接下载工具&#xff1a; 链接: https://pa…...

android 之 MediaExtractor

MediaExtractor 是Android多媒体处理的基础组件&#xff0c;解封装是其核心价值。 一、功能与定位 MediaExtractor 是Android多媒体框架中的媒体解封装工具&#xff0c;主要作用是从媒体文件&#xff08;如MP4、MKV、MP3&#xff09;中分离音视频轨道数据&#xff0c;为后续解…...

行业案例 | ASOS 借助 Azure AI Foundry(国际版)为年轻时尚爱好者打造惊喜体验

英国潮流电商ASOS借力微软Azure OpenAI&#xff0c;打造生成式AI购物新体验。平台整合大语言模型与推荐引擎&#xff0c;通过智能聊天交互帮年轻用户探索穿搭灵感&#xff0c;精准匹配近900个品牌的潮流单品&#xff0c;实现技术升级与个性化需求的双重突破。 使用 Azure Open…...

在WPS中如何启用宏VBA wps.vba.exe下载和安装

首先我们点击导航栏中的【工具】&#xff0c;点击左侧 运行宏&#xff0c;根据提示 点击 立即加载。加载卡在50%时间比较长&#xff0c;耐心等待。 关闭wps重新打开后&#xff0c; word和xls表格都可以使用了。 如果电脑无法联网&#xff0c;需要提前下载 WPS VBA插件 WPS VB…...

12.7Swing控件5 JProgressBar

Swing 进度条&#xff08;JProgressBar&#xff09;是用于可视化展示任务完成进度的组件&#xff0c;通常用于显示长时间运行任务的完成百分比。以下是关于 Swing 进度条的详细介绍&#xff1a; 1. 基本概念与用途 作用&#xff1a;直观展示任务完成进度&#xff0c;避免用户…...

Hardware-Efficient Attention for Fast Decoding

TL;DR 2025 年普林斯顿大学提出的硬件友好 attention 设计&#xff0c;在 MQA/GQA 与 deepseek 提出的 MLA 基础之上继续优化&#xff0c;提出 Grouped-Tied Attention (GTA) 和 Grouped Latent Attention (GLA)&#xff0c;实现更高推理效率的同时也能保持较好的模型效果。 …...

LLMs 系列科普文(13)

十三、AlphaGO 提到强化学习的历史&#xff0c;不得不提到 alphago&#xff0c;如果你不记得这是什么了&#xff0c;那你是否还曾记得&#xff0c;早些年 AI 已经可以在围棋中击败人类选手了。 AlphaGO 系统又 DeepMind 公司开发&#xff0c;你可以在网络上找到当初人机大战的…...

kubernetes jenkins pipeline优化拉取大仓库性能指定分支+深度

有时候我们历史的git仓库&#xff0c;提交了某个比较大的文件如果不限制 depth &#xff0c;就会拉取所有的历史提交记录&#xff0c;这样在历史仓库比较大的时候 clone 非常之慢&#xff0c;而实际上我们只需要最新的代码来构建就行了&#xff0c;为了优化性能&#xff0c;我们…...

element-plus 单选组件 el-radio,选不上,又没报错,直接复制官网也不行解决方案

在使用 Vue 框架开发项目时&#xff0c;Element UI 是常用的组件库。最近在开发中遇到了 Element 单选框组件el-radio的双向绑定问题&#xff0c;直接复制element官网上的的案例下来也是不得&#xff0c;经过调试和探索&#xff0c;终于找到了解决方案&#xff0c;特此记录分享…...