ubuntu服务器 如何配置安全加固措施

下面提供一个更详细、一步步的服务器安全加固指南,适合新手操作。我们将从 Fail2Ban、SSH(密钥认证及端口更改)、Nginx 速率限制和日志轮转四个方面进行优化,同时补充一些额外的安全建议。


新的服务器,通常我们会创建一个新用户并将其加入 sudo 组,这样你就可以使用新用户登录,然后通过 sudo 命令来执行需要管理员权限的操作。下面是具体步骤:


1. 创建新用户

使用 adduser 命令创建新用户(例如用户名为 newuser):

sudo adduser newuser

系统会提示你设置密码并输入一些用户信息(可以直接回车跳过)。


2. 将新用户添加到 sudo 组

为了让新用户具有管理员权限,需要把他加入 sudo 组:

sudo usermod -aG sudo newuser

提示
在某些系统中,sudo 组可能被命名为 wheel,请根据你的发行版实际情况操作。


3. 测试新用户登录

  1. 打开一个新的终端或使用 SSH 重新连接服务器,使用新用户登录:
    ssh newuser@your_server_ip
    
  2. 登录后,尝试执行一个需要管理员权限的命令,例如:
    sudo apt update
    
    系统会提示输入新用户的密码。成功后说明配置无误。

通过这种方式,即使你禁用了 root 的直接远程登录,也能安全地以新用户身份登录,并在需要时通过 sudo 获取管理员权限。


下面是安全加固的配置措施


1. Fail2Ban 安全加固

Fail2Ban 能够自动封禁短时间内

出现多次失败登录的 IP,能有效防止暴力破解。

1.1 安装 Fail2Ban(如未安装)

sudo apt update
sudo apt install fail2ban

1.2 创建自定义配置文件

建议不要直接修改默认配置文件,而是在 /etc/fail2ban/jail.d/ 下创建自定义配置文件,比如 custom.conf

sudo nano /etc/fail2ban/jail.d/custom.conf

1.3 添加如下内容

[DEFAULT]
# 封禁时间:3600秒(1小时)
bantime = 3600
# 查找时间窗口:300秒(5分钟)
findtime = 300
# 最大失败尝试次数:5次
maxretry = 5

[sshd]
enabled = true
port = ssh  # 这里使用名称(sshd)或具体数字(如22、2222)都可以
logpath = /var/log/auth.log  # 根据系统(Ubuntu 常用 /var/log/auth.log,CentOS 则可能是 /var/log/secure)

提示

  • 如果系统使用了不同的日志路径,请根据实际情况修改。
  • 如果需要保护其他服务,可以按相似方式添加更多 jail 配置。

1.4 重启 Fail2Ban 并检查状态

sudo systemctl restart fail2ban
sudo fail2ban-client status sshd

确保看到类似封禁规则已生效的信息。


2. SSH 安全加固

加强 SSH 安全性主要包括使用密钥认证替代密码认证,并视需要修改默认端口。

2.1 生成 SSH 密钥对(本地操作)

如果你还没有 SSH 密钥,可以在客户端生成:

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

一路回车,生成的密钥通常存放在 ~/.ssh/id_rsa~/.ssh/id_rsa.pub

2.2 将公钥复制到服务器

使用 ssh-copy-id 工具上传公钥到服务器(假设 SSH 仍在默认端口 22 上):

ssh-copy-id username@your_server_ip

注意
在执行下一步前,请确保你已经能通过 SSH 密钥成功登录服务器,以免因配置错误导致无法远程连接。

2.3 修改 SSH 配置文件

编辑 /etc/ssh/sshd_config

sudo nano /etc/ssh/sshd_config

确保进行如下修改:

  • 禁用密码认证
    PasswordAuthentication no
    ChallengeResponseAuthentication no
    
  • 启用公钥认证
    PubkeyAuthentication yes
    AuthorizedKeysFile .ssh/authorized_keys
    
  • (可选)修改 SSH 监听端口:如果你想更改默认端口,取消注释并修改 Port 行。例如:
    Port 2222
    

提示:修改 SSH 端口后,记得更新防火墙规则(见下文防火墙部分),并先在新的终端测试连接。

2.4 重启 SSH 服务

sudo systemctl restart sshd

2.5 检查 SSH 配置

在测试 SSH 连接前,建议用以下命令检查配置文件语法是否正确:

sudo sshd -t

没有输出则表示配置正确。


3. 修改 SSH 端口与防火墙设置(可选)

改变 SSH 端口可以降低被自动化攻击的概率,但务必更新防火墙规则。

3.1 更新 SSH 配置文件

如上一步已在 /etc/ssh/sshd_config 中修改 Port 参数(例如设置为 2222)。

3.2 更新防火墙规则

如果使用 UFW(Ubuntu 常用),允许新的 SSH 端口并删除旧端口:

sudo ufw allow 2222/tcp
sudo ufw delete allow 22/tcp
sudo ufw reload

若使用其他防火墙(如 iptables),请根据实际情况调整规则。


4. Nginx 速率限制配置

限制请求速率能有效防止恶意请求或 DDoS 攻击。

4.1 编辑 Nginx 主配置文件

打开 /etc/nginx/nginx.conf 文件:

sudo nano /etc/nginx/nginx.conf

http { ... } 块中添加或修改以下内容(确保放在合适的位置):

http {
    # 定义请求限制区域,基于客户端 IP 地址,每秒允许1个请求
    limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;

    server {
        listen 80;
        server_name your_domain_or_ip;

        location /search/ {
            # 对 /search/ 路径启用速率限制,允许突发5个请求
            limit_req zone=one burst=5 nodelay;
            try_files $uri $uri/ =404;
        }

        # 其他 location 配置…
    }
}

4.2 测试并重启 Nginx

测试配置文件语法:

sudo nginx -t

如果无误,重启 Nginx:

sudo systemctl restart nginx

5. 日志轮转(Logrotate)配置

定期清理和压缩日志文件能防止日志无限增长,影响系统性能。

5.1 安装 logrotate(如未安装)

sudo apt install logrotate

5.2 配置全局日志轮转

编辑 /etc/logrotate.conf,确保包含类似配置:

/var/log/*.log {
    weekly
    rotate 4
    compress
    delaycompress
    missingok
    notifempty
}

5.3 为特定服务(如 SSH)创建日志轮转配置

创建或编辑 /etc/logrotate.d/sshd 文件:

sudo nano /etc/logrotate.d/sshd

添加如下内容(确保路径正确,如 Ubuntu 下 SSH 日志通常为 /var/log/auth.log):

/var/log/auth.log {
    weekly
    rotate 4
    compress
    delaycompress
    missingok
    notifempty
    create 640 root adm
    sharedscripts
    postrotate
        # 重载 rsyslog 服务以确保日志文件句柄正确切换
        /usr/lib/rsyslog/rsyslog-rotate
    endscript
}

提示:文件权限和日志路径需要根据实际系统进行调整。


6. 额外安全建议

6.1 配置防火墙

安装并启用 UFW(简单易用):

sudo apt install ufw
sudo ufw default deny incoming
sudo ufw default allow outgoing
# 允许 HTTP/HTTPS
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
# 允许你配置的 SSH 端口(例如2222)
sudo ufw allow 2222/tcp
sudo ufw enable
sudo ufw status verbose

6.2 定期更新系统

保持系统和软件包的更新是防止漏洞的重要手段:

sudo apt update && sudo apt upgrade -y

6.3 限制 root 远程登录

/etc/ssh/sshd_config 中设置:

PermitRootLogin no

6.4 安装 Fail2Ban 的邮件通知(可选)

可以设置 Fail2Ban 在封禁时发送邮件通知,便于及时响应攻击:

编辑 /etc/fail2ban/jail.local 或在 custom.conf 中增加:

[DEFAULT]
action = %(action_mwl)s

确保系统已安装邮件传输代理(如 Postfix)。


总结

  1. Fail2Ban:使用自定义配置文件,合理设置封禁参数,并验证是否生效。
  2. SSH 加固:生成密钥、上传公钥,禁用密码认证,必要时修改默认端口,并更新防火墙。
  3. Nginx 速率限制:通过 limit_req_zonelimit_req 限制恶意请求。
  4. 日志轮转:确保日志文件定期清理,防止硬盘占用过高。
  5. 额外建议:使用 UFW 配置防火墙、限制 root 远程登录、保持系统更新等。

按照以上步骤一步步实施后,您的服务器安全性将大大提高。建议每次修改配置后,都先用测试命令(如 nginx -tsshd -t)确认无误,并在另一个终端中测试连接,以避免误操作导致服务不可用。

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

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

相关文章

三角拓扑聚合优化器TTAO-Transformer-BiLSTM多变量回归预测(Maltab)

三角拓扑聚合优化器TTAO-Transformer-BiLSTM多变量回归预测(Maltab) 完整代码私信回复三角拓扑聚合优化器TTAO-Transformer-BiLSTM多变量回归预测(Maltab) 一、引言 1、研究背景和意义 在现代数据科学领域,时间序列…

提供可传递的易受攻击的依赖项

问题如图所示: 原因:okhttp3.version 3.14.9 版本存在部分漏洞,在 maven 仓库是可以看到的 maven 地址: maven 下图中 Vulnerabilities 即为漏洞 处理:换一个无漏洞的版本即可

使用pocketpal-ai在手机上搭建本地AI聊天环境

1、下载安装pocketpal-ai 安装github的release APK 2、安装大模型 搜索并下载模型,没找到deepseek官方的,因为海外的开发者上传了一堆乱七八糟的deepseek qwen模型,导致根本找不到官方上传的……deepseek一开源他们觉得自己又行了。 点击之…

头歌实验--面向对象程序设计

目录 实验五 类的继承与派生 第1关:简易商品系统 任务描述 答案代码 第2关:公司支出计算 任务描述 答案代码 第3关:棱柱体问题 任务描述 答案代码 实验五 类的继承与派生 第1关:简易商品系统 任务描述 答案代码 #incl…

卷积神经网络实战人脸检测与识别

文章目录 前言一、人脸识别一般过程二、人脸检测主流算法1. MTCNN2. RetinaFace3. CenterFace4. BlazeFace5. YOLO6. SSD7. CascadeCNN 三、人脸识别主流算法1.deepface2.FaceNet3.ArcFace4.VGGFace5.DeepID 四、人脸识别系统实现0.安装教程与资源说明1. 界面采用PyQt5框架2.人…

Spring IoC的实现机制是什么?

大家好,我是锋哥。今天分享关于【Spring IoC的实现机制是什么?】面试题。希望对大家有帮助; Spring IoC的实现机制是什么? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 Spring IoC(Inversion of Control…

关闭浏览器安全dns解决访问速度慢的问题

谷歌浏览器加载速度突然变慢了?检查安全DNS功能(DoH)是否被默认开启。 谷歌浏览器在去年已经推出安全DNS功能(即DoH) , 启用此功能后可以通过加密的DNS增强网络连接安全性。例如查询请求被加密后网络运营商将无法嗅探用户访问的地址,因此对于增强用户的…

【Spring AI】基于SpringAI+Vue3+ElementPlus的QA系统实现(前端)

整理不易,请不要吝啬你的赞和收藏。 1. 前言 这篇文章是 Spring AI Q&A 系统的前端实现。这篇文章将介绍如何快速搭建一个基于 vue3 ElementPlus 的前端项目,vue3 项目的目录结构介绍,如何在前端实现流式响应,如何高亮显示…

中望CAD c#二次开发 ——VS环境配置

新建类库项目&#xff1a;下一步 下一步 下一步&#xff1a; 或直接&#xff1a; 改为&#xff1a; <Project Sdk"Microsoft.NET.Sdk"> <PropertyGroup> <TargetFramework>NET48</TargetFramework> <LangVersion>pr…

Java—File

Flie对象就表示一个路径&#xff0c;可以是文件的路径、也可以是文件夹的路径这个路径可以是存在的&#xff0c;也允许是不存在的 file类常用的构造方法&#xff1a; 代码案列&#xff1a; 小结&#xff1a; file的常见成员方法 判断获取相关方法&#xff1a; 代码案例&#…

HTML的入门

一、HTML HTML&#xff08;HyperText Markup Language&#xff0c;超文本标记语言&#xff09;是一种用来告知浏览器如何组织页面的标记语言。 超文本&#xff1a;就是超越了文本&#xff1b;HTML不仅仅可以用来显示文本(字符串、数字之类)&#xff0c;还可以显示视频、音频等…

辛格迪客户案例 | 钥准医药科技GMP文件管理(DMS)项目

01 创新药企&#xff0c;崛起于启东 在我国医药行业蓬勃发展的浪潮中&#xff0c;钥准医药科技&#xff08;启东&#xff09;有限公司&#xff08;以下简称“钥准医药”&#xff09;犹如一颗冉冉升起的新星&#xff0c;闪耀着创新与活力的光芒。成立于2015年&#xff0c;钥准医…

DeepSeek本地化部署【window下安装】【linux下安装】

一、window 本地安装指导 1.1、下载window安装包 https://ollama.com/download/OllamaSetup.exe 1.2、点击下载好的安装包进行安装 检测安装是否成功&#xff1a; C:\Users\admin>ollama -v ollama version is 0.5.7有上面的输出&#xff0c;则证明已经安装成功。 配置…

【第1章:深度学习概览——1.4 深度学习的核心组件与概念解析之激活函数的作用与类型】

嘿,各位技术小伙伴们,今天咱们来聊聊深度学习中的一个超级重要的概念——激活函数。这可是深度学习模型中的“调味剂”,让模型变得更加灵活和强大。准备好了吗?咱们这就开讲! 一、激活函数是什么? 激活函数,简单来说,就是神经网络中的一层“魔法调料”。它给神经网络…

智慧升级,赋能未来——开启安全高效与绿色低碳新篇章

在数字化转型与“双碳”目标的驱动下&#xff0c;古河云科技携手全球领先的AI企业DeepSeek&#xff0c;以“AI数字孪生”为核心&#xff0c;推出全新一代智能运维与能碳管理解决方案&#xff0c;助力企业实现安全管控、设备效能优化、绿色节能与高效管理四大维度的全面升级&…

SpringCloud - Seata 分布式事务

前言 该博客为Sentinel学习笔记&#xff0c;主要目的是为了帮助后期快速复习使用 学习视频&#xff1a;7小快速通关SpringCloud 辅助文档&#xff1a;SpringCloud快速通关 源码地址&#xff1a;cloud-demo 一、简介 官网&#xff1a;https://seata.apache.org/zh-cn/ Seata …

Java面试宝典:说下Spring Bean的生命周期?

Java面试宝典专栏范围&#xff1a;JAVA基础&#xff0c;面向对象编程&#xff08;OOP&#xff09;&#xff0c;异常处理&#xff0c;集合框架&#xff0c;Java I/O&#xff0c;多线程编程&#xff0c;设计模式&#xff0c;网络编程&#xff0c;框架和工具等全方位面试题详解 每…

基于Swift实现仿IOS闹钟

仿 iOS 系统闹钟 添加闹钟效果图 收到通知效果图 更新日志 2018.09.12 由于 iOS 系统限制了注册本地推送的数量&#xff0c;最大的注册量为 64 条&#xff0c;且一旦超出 64 条&#xff0c;所有的推送都将失效&#xff0c;故而在添加推送的时候做了一个判断&#xff0c;超过…

如何使用 DeepSeek R1 构建开源 ChatGPT Operator 替代方案

开源大型语言模型&#xff08;LLMs&#xff09;的兴起使得创建 AI 驱动的工具比以往任何时候都更容易&#xff0c;这些工具可以与 OpenAI 的 ChatGPT Operator 等专有解决方案相媲美。在这些开源模型中&#xff0c;DeepSeek R1 以其强大的推理能力、自由的可访问性和适应性而脱…

力反馈设备在工厂生产中遥操作机器人的应用优势

工业自动化与智能化已经成为现代工厂提升生产效率、保障人员安全的关键手段。在这一背景下&#xff0c;Haption Virtuose力反馈设备凭借其卓越的性能和广泛的应用前景&#xff0c;在机器人遥操作领域脱颖而出&#xff0c;尤其在工厂生产中展现出了显著的应用优势。本文将深入探…