linux常用加固方式

目录

一.系统加固

二.ssh加固

三.换个隐蔽的端口

四.防火墙配置

五.用户权限管理

六.暴力破解防护

七.病毒防护

八.磁盘加密

九.双因素认证2FA

十.日志监控

十一.精简服务


一.系统加固

第一步:打好系统补丁

sudo apt update && sudo apt upgrade -y

可以设置自动更新:

sudo apt install unattended-upgrades

sudo dpkg-reconfigure --priority=low unattended-upgrades

二.ssh加固

1.禁止root直接登录:

sudo vim /etc/ssh/sshd_config

将其改为 PermitRootLogin no

2.用秘钥代替密码登录:

先在电脑上生成密钥:

/usr/bin/ssh-keygen -t rsa -b 4096

然后把公钥放到服务器上:

手动复制:先查看自己生成的公钥内容:

cat ~/.ssh/id_rsa.pub

然后将其复制到服务器的相应文件

远程复制:

ssh-copy-id username@server_ip

关闭密码登录:

vim /etc/ssh/sshd_config~

将root登录的替换公钥:

vim /root/.ssh/authorized_keys

检测配置公钥是否有效,登录验证:

ssh -i ~/.ssh/id_rsa root@your_server_ip

三.换个隐蔽的端口

修改配置文件:

sudo vim /etc/ssh/sshd_config~

将端口22改为2222

修改防火墙允许通过2222端口

UFW防火墙:

sudo ufw allow 2222/tcp

sudo ufw reload

如果启用了22端口,直接禁用它:

sudo ufw deny 22/tcp

使用 firewalld:

sudo firewall-cmd --add-port=2222/tcp --permanent

sudo firewall-cmd --reload

禁用22端口

sudo firewall-cmd --remove-port=22/tcp --permanent

sudo firewall-cmd --reload

重启ssh服务:

sudo systemctl restart sshd/ssh

更改验证:

ssh -p 2222 username@hostname

四.防火墙配置

UFW是Ubuntu自带的防火墙

安装UFW:

sudo apt install ufw

只开放需要的端口:

sudo ufw allow 2222/tcp  # SSH端口

sudo ufw allow http

sudo ufw allow https

启动防火墙:

sudo ufw enable

查看防火墙状态

sudo ufw status

五.用户权限管理

1.创建一个新的用户:

sudo adduser newuser

2.给sudo分配权限:

sudo usermod -aG sudo newuser

3.设置sudo超时:

sudo visudo

所有用户的sudo超时时间30分钟:

添加一行:Defaults timestamp_timeout=30

特定用户的超时时间:5分钟

username ALL=(ALL) ALL, timestamp_timeout=5

六.暴力破解防护

更新软件包:

sudo apt upgrade

下载:

sudo apt install fail2ban

默认位置:

/etc/fail2ban/目录

启动Fail2ban服务:

sudo systemctl start fail2ban

设置开机自启动:

sudo systemctl enable fail2ban

查看SSH的保护状态:

sudo fail2ban-client status sshd

七.病毒防护

ClamAV是Linux下的免费杀毒软件,下载

先更新系统:

sudo apt upgrade

安装ClamAV‌:

sudo apt install clamav clamav-daemon

更新病毒库:

sudo freshclam

扫描文件:

sudo clamscan -r --bell /path/to/scan 递归扫描目录并发出声音提醒

八.磁盘加密

一般使用LUKS

步骤一:

先下载工具:

sudo apt-get install cryptsetup

创建一个文件作为加密目录:

dd if=/dev/zero of=/path/to/encrypted_container bs=1M count=100

初始化LUKS容器:

sudo cryptsetup luksFormat /path/to/encrypted_container

打开LUKS容器:

sudo cryptsetup luksOpen /path/to/encrypted_container encrypted_volume

会创建一个名为encrypted_volume的设备(通常在/dev/mapper/目录下)

步骤二:创建文件系统挂载

在加密设备上创建

sudo mkfs.ext4 /dev/mapper/encrypted_volume

你可以根据需要选择文件系统类型(如ext4、xfs等)

创建一个挂载点并挂载加密设备‌

sudo mkdir /mnt/encrypted_directory

sudo mount /dev/mapper/encrypted_volume /mnt/encrypted_directory

步骤三:配置自动挂载加密设备:

sudo nano/vim /etc/crypttab

添加一行:encrypted_volume /path/to/encrypted_container none luks

sudo nano/vim /etc/fstab

添加一行:/dev/mapper/encrypted_volume /mnt/encrypted_directory ext4 defaults 0 2

3.可以选择性更新initramfs

sudo update-initramfs -u

步骤四:存储和访问数据

你可以将重要数据复制到 /mnt/encrypted_directory 目录中。完成操作后,可以卸载和关闭加密设备:

卸载加密目录:

sudo umount /mnt/encrypted_directory

关闭加密设备:

sudo cryptsetup luksClose encrypted_volume

九.双因素认证2FA

安装Google认证器:

sudo apt install libpam-google-authenticator

配置PAM模块:

修改/etc/pam.d/sshd 在文件末尾加:auth required pam_google_authenticator.so

配置ssh服务:

修改/etc/ssh/sshd_config 确保ChallengeResponseAuthentication和UsePAM设置为yes

重启ssh服务:

sudo systemctl restart sshd

初始化Google Authenticator

生成二维码和秘钥:

google-authenticator,按照提示进行操作

使用手机上的Google Authenticator应用扫描二维码进行配置

十.日志监控

更新软件包:

sudo apt update

sudo apt install logwatch

sudo logwatch --detail high --mailto your-email@example.com

安装完成,主配置文件通常在:

/usr/share/logwatch/default.conf/logwatch.conf

/etc/logwatch/conf/logwatch.conf

写上自己电子邮箱

sudo logwatch --detail high --mailto your-email@example.com

手动运行:

sudo logwatch --output file --filename /var/log/logwatch.log

可以配置计划任务运行:

* * * * * /usr/sbin/logwatch --detail High --mailto your-email@example.com --service all --range today

十一.精简服务

没用的服务关掉

# 查看运行的服务

systemctl list-units --type=service --state=running

# 关闭不需要的服务

sudo systemctl stop service_name

sudo systemctl disable service_name

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/960108.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

const的用法

文章目录 一、C和C中const修饰变量的区别二、const和一级指针的结合const修饰的量常出现的错误是:const和一级指针的结合总结:const和指针的类型转换公式 三、const和二级指针的结合 一、C和C中const修饰变量的区别 C中:const必须初始化,叫常…

Arduino大师练成手册 -- 控制 MH-SD 卡模块

要在 Arduino 上控制 MH-SD 卡模块,你可以按照以下步骤进行: 硬件连接 VCC:连接到 Arduino 的 3.3V 或 5V 引脚(根据模块的要求)。 GND:连接到 Arduino 的 GND 引脚。 CS:连接到 Arduino 的…

Android OpenGL(六) 纹理

纹理 纹理是一个2D图片(甚至也有1D和3D的纹理), 它可以用来添加物体的细节;你可以想象纹理是一张绘有砖块的纸,无缝折叠贴合到你的3D的 房子上,这样你的房子看起来就像有砖墙外表了 纹理环绕方式 纹理坐…

一文大白话讲清楚webpack基本使用——18——HappyPack

文章目录 一文大白话讲清楚webpack基本使用——18——HappyPack1. 建议按文章顺序从头看,一看到底,豁然开朗2. 啥是HappyPack3. 怎么使用HappyPack 一文大白话讲清楚webpack基本使用——18——HappyPack 1. 建议按文章顺序从头看,一看到底&a…

深入 Rollup:从入门到精通(二)Rollup简介

1. 简介 对于将rollup描述为一个打包工具,我觉得并不是很精准,稍有些笼统,未能完全展示它的功能。 我更倾向于将它定义为: 以模块化的方式加载你的 js 文件(如果使用插件,也可以支持其他静态资源文件&…

【数据结构】_C语言实现不带头非循环单向链表

目录 1. 链表的概念及结构 2. 链表的分类 3. 单链表的实现 3.1 SList.h头文件 3.2 SList.c源文件 3.3 Test_SList.c测试文件 关于线性表,已介绍顺序表,详见下文: 【数据结构】_顺序表-CSDN博客 本文介绍链表; 基于顺序表…

HTML5 Web Worker 的使用与实践

引言 在现代 Web 开发中,用户体验是至关重要的。如果页面在执行复杂计算或处理大量数据时变得卡顿或无响应,用户很可能会流失。HTML5 引入了 Web Worker,它允许我们在后台运行 JavaScript 代码,从而避免阻塞主线程,保…

Excel 技巧21 - Excel中整理美化数据实例,Ctrl+T 超级表格(★★★)

本文讲Excel中如何整理美化数据的实例,以及CtrlT 超级表格的常用功能。 目录 1,Excel中整理美化数据 1-1,设置间隔行颜色 1-2,给总销量列设置数据条 1-3,根据总销量设置排序 1-4,加一个销售趋势列 2&…

手撕Diffusion系列 - 第九期 - 改进为Stable Diffusion(原理介绍)

手撕Diffusion系列 - 第九期 - 改进为Stable Diffusion(原理介绍) 目录 手撕Diffusion系列 - 第九期 - 改进为Stable Diffusion(原理介绍)DDPM 原理图Stable Diffusion 原理Stable Diffusion的原理解释Stable Diffusion 和 Diffus…

倍频增量式编码器--角度插值法输出A,B(Aangular Interpolation)

问题是: 最大速度,周期刻度,最小细分刻度,可以计算得到: 结论: 按照最高速度采样;数字A,B输出间隔时间:按照计算角度 插入细分角度运算算时间(最快速度)&a…

基于微信小程序的助农扶贫系统设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导,欢迎高校老师/同行前辈交流合作✌。 技术范围:SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:…

嵌入式C语言:结构体对齐

目录 一、对齐的原因 1.1. 硬件访问效率 1.2. 内存管理简化 1.3. 编译器优化 1.4. 代码示例 二、对齐规则 2.1. 基本数据类型对齐 2.2. 结构体成员对齐 2.3. 结构体整体对齐 2.4. 代码示例 三、对齐控制 3.1. 使用 #pragma pack 3.2. 使用 __attribute__((packed)…

网络工程师 (1)数据的表示

一、R进制的表示及互转 R进制是一种数制表示方法,其中R代表基数,采用R个基本符号(0, 1, 2, …, R-1)表示各位上的数字,并遵循“逢R进一”的运算规则。在R进制中,每一位上的数字均不超过R-1。R进制与十进制之…

coffee销售数据集分析:基于时间趋势分析的实操练习

**文章说明:**对coffee销售数据集的简单分析练习(时间趋势分析练习),主要是为了强化利用python进行数据分析的实操能力。属于个人的练习文章。 **注:**这是我第一次使用md格式编辑博客文章,排版上还是不是很…

SQL在DBA手里-改写篇

背景 最近运营需要做月报汇总交易情况,之前一直是他们手工出的数据,他们想做成月初自动发送邮件,从而减轻他们的工作量。于是他们提供SQL我们在邮件服务器配置做定时发送任务。 表介绍(表及字段已做脱敏处理) trans…

vue3入门基础学习之搭建登录验证功能

环境准备:node.js、Visual Studio Code(也可以是其他开发工具,选自己熟悉的就行) 下载地址:https://nodejs.p2hp.com/https://code.visualstudio.com/ 新建一个vue3的项目,选一个文件夹执行以下命令 使用…

Scrapy如何设置iP,并实现IP重用, IP代理池重用

前置知识 1/3乐观锁 2/3 Scrapy流程(非全部) 3/3 关于付费代理 我用的"快代理", 1000个ip, 每个ip1min的有效期, 你用的时候, 把你的链接, 用户名填上去就行 设置代理IP 🔒 & 帮助文档: ①meta ②meta#proxy$ 语法: ①proxy的设置: Request对象中…

消息队列篇--通信协议篇--网络通信模型(OSI7层参考模型,TCP/IP分层模型)

一、OSI参考模型(Open Systems Interconnection Model) OSI参考模型是一个用于描述和标准化网络通信功能的七层框架。它由国际标准化组织(ISO)提出,旨在为不同的网络设备和协议提供一个通用的语言和结构,以…

开源智慧园区管理系统对比五款主流产品探索智能运营新模式

内容概要 在这个数字化迅速发展的时代,园区管理也迎来了全新的机遇和挑战。众所周知,开源智慧园区管理系统作为一种创新解决方案,正逐步打破传统管理的局限性。它的开放性不仅使得系统可以根据具体需求进行灵活调整,也为用户提供…

leetcode——删除链表的倒数第N个节点(java)

给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 示例 1: 输入:head [1,2,3,4,5], n 2 输出:[1,2,3,5] 示例 2: 输入:head [1], n 1 输出:[] 示例 3&#xf…