标签: Debian

  • 小米 Redmi 5 Plus (vince) 刷入 postmarketOS 教程

    在 Debian 13 系统环境下完全通过命令行为小米 Redmi 5 Plus (vince) 手机刷入轻量级的 postmarketOS 移动操作系统

    1. 前提条件

    1. 您的 Redmi 5 Plus 必须已经 解锁 Bootloader
    2. 电脑已安装 Debian 13 系统。

    2. 安装必要工具

    2.1 安装 Python(推荐使用 Miniconda)

    wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
    bash ~/Miniconda3-latest-Linux-x86_64.sh
    python --version

    提示: 安装完成后,您可能需要重启终端或运行 source ~/.bashrc 让python命令生效。

    2.2 安装 fastboot

    sudo apt install android-sdk-platform-tools-common android-sdk-platform-tools

    2.3 安装 pmbootstrap

    git clone https://gitlab.postmarketos.org/postmarketOS/pmbootstrap.git
    cd pmbootstrap
    pip install .
    pmbootstrap --version

    3. 初始化 pmbootstrap 配置

    运行初始化命令并根据提示进行配置。

    pmbootstrap init

    配置选项及推荐值:

    序号选项描述 (原文/翻译)您的输入/选择目的或说明
    1Work path (工作路径)回车 (默认)默认路径通常最佳。
    2pmaports path (pmaports 路径)回车 (默认)存放 postmarketOS 软件包定义文件的路径。
    3Available postmarketOS release (选择发行版)v25.06选择您希望安装的 postmarketOS 版本。
    4Vendor (选择设备厂商)qcomRedmi 5 Plus 采用高通芯片。
    5Device codename (选择设备型号)msm8953Redmi 5 Plus 所属的平台代号。
    6Username (设置用户名)qixinlee替换为您想要的用户名。
    7Available providers for postmarketos-base-ui-wifi (选择 WiFi 后端)回车 (默认)默认选择 default 即可。
    8User interface (选择用户界面)phosh推荐 Phosh,它是一个基于 GNOME 的移动界面。
    9Install systemd? (是否安装 systemd)回车 (默认)默认选择 y
    10Change them? (y/n) (更改额外选项)回车 (默认 n)通常无需更改。
    11Extra packages (额外软件包)回车 (默认 none)暂不添加额外软件包。
    12Use this timezone instead of GMT? (使用此本地时区)回车 (默认 y)使用本地时间而非 GMT。
    13Locale (选择本地化语言环境)回车 (默认 en_US)推荐使用 en_US,以确保兼容性。
    14Device hostname (设置设备主机名)回车 (默认)设备在网络上的名称。
    15Build outdated packages? (构建过时包)回车 (默认 y)允许构建可能过时的包,提高成功率。
    16Zap existing chroots…? (清空已有 chroot)回车 (默认 y)确保配置能立即生效。

    4. 构建系统 (Install)

    开始构建 postmarketOS 系统镜像。

    pmbootstrap install

    系统会提示设置用户登录密码,请根据提示输入两次密码:

    *** SET LOGIN PASSWORD FOR: 'qixinlee' ***
    New password:
    Retype new password:

    5. 电脑连接设备进行刷写

    将手机进入 Fastboot 模式:关闭手机电源,然后同时按住 音量下键电源键,直到屏幕上出现 Fastboot 字样,连接电脑。

    5.1 确认设备已连接

    sudo fastboot devices

    提示: 如果能看到设备序列号,则连接成功。

    5.2 刷入 lk2nd (引导加载程序)

    pmbootstrap flasher flash_lk2nd

    5.3 刷入 rootfs (系统文件系统)

    pmbootstrap flasher flash_rootfs

    5.4 重启设备

    sudo fastboot reboot

    设备将自动启动进入您所选择的 postmarketOS 用户界面

  • Debian12 升级 Debian13 记录

    Debian 12 (Bookworm) 系统升级至 Debian 13 (Trixie) 的过程记录

    1. 更新当前系统

    确保你的 Debian 12 系统处于最新状态。

    # 更新软件包列表
    apt update
    
    # 升级所有已安装的软件包
    apt upgrade
    
    # 移除不再需要的软件包和依赖项
    apt autoremove

    2. 检查当前系统版本

    升级前先确认系统版本:

    # 查看系统 Debian 版本
    
    cat /etc/debian_version

    输出结果为:

    12.12

    3. 修改软件源为 Debian 13 (Trixie)

    升级到新版本需要将系统的软件包源从 bookworm 更改为 trixie

    创建备份:备份现有的软件源文件,以防万一。

    mv /etc/apt/sources.list /etc/apt/sources.list.backup

    创建新的软件源文件,使用 /etc/apt/sources.list.d/ 目录来管理软件源,这比直接修改 sources.list 更灵活

    nano /etc/apt/sources.list.d/debian.sources

    将以下内容粘贴到新创建的文件中。软件源指向 Debian 13 (Trixie) 的主仓库、更新仓库和安全仓库。

    Types: deb
    URIs: https://deb.debian.org/debian
    Suites: trixie trixie-updates
    Components: main non-free-firmware
    Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
    
    Types: deb
    URIs: https://security.debian.org/debian-security
    Suites: trixie-security
    Components: main non-free-firmware
    Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg

    4. 升级到 Debian 13

    执行更新并进行完整升级:

    # 刷新软件包列表
    apt update
    
    # 执行完整系统升级
    apt full-upgrade
    
    # 清理不再需要的软件包
    apt autoremove

    在 apt full-upgrade 过程中,如果系统询问是否保留修改过的配置文件,请仔细阅读提示。通常情况下,选择 N(保留当前版本) 是更安全的选择,以避免配置丢失或覆盖。

    5. 验证升级结果

    升级完成后,检查 Debian 版本:

    # 查看系统 Debian 版本
    
    cat /etc/debian_version

    输出:

    13.1

    说明系统已成功升级到 Debian 13.1

  • Debian12使用 Unbound 搭建本地 DNS 服务器

    搭建本地 DNS 服务器能够提升域名解析速度、增强网络安全和隐私保护。Unbound 作为一款高性能、轻量级且支持 DNSSEC 的递归解析器,非常适合用来搭建本地 DNS 服务。通过本地 DNS,用户不仅减少对外部服务器的依赖,还能实现更灵活的管理与控制,提升整体网络体验和安全性。

    1. 更新系统软件包

    确保你的系统软件包是最新的。执行以下命令更新软件包列表:

    apt update

    2. 安装必要的软件包

    我们需要安装 nano(一个轻量级文本编辑器),dnsutils(包含 dig 等DNS调试工具),以及 unbound DNS 服务器。

    apt install -y nano dnsutils
    apt install -y unbound

    3. 启动并启用 Unbound 服务

    安装完成后,启用 unbound 服务并立即启动:

    systemctl enable --now unbound

    4. 配置系统使用本地 DNS

    为了让系统使用刚刚搭建的本地 DNS 服务器,修改 /etc/resolv.conf 文件,将 DNS 服务器地址指向本机:

    echo "nameserver 127.0.0.1" > /etc/resolv.conf

    5. 验证 DNS 服务监听端口

    使用 ss 命令检查本地是否有进程监听 53 端口(DNS 默认端口):

    ss -lnptu | grep 53

    如果看到 unbound 在 53 端口监听,说明服务正常启动。

    6. 测试 DNS 解析功能

    使用 dig 命令向本地 DNS 服务器请求解析 debian.org 域名:

    dig @127.0.0.1 debian.org

    如果查询返回正确的 DNS 解析结果,则 DNS 服务器工作正常。

    7. 配置 Unbound

    编辑主配置文件 /etc/unbound/unbound.conf

    nano /etc/unbound/unbound.conf

    添加以下配置内容:

    server:
        interface: 0.0.0.0
        access-control: 192.168.1.0/24 allow
        cache-max-ttl: 86400
        cache-min-ttl: 3600
        num-threads: 4 # CPU
        msg-cache-size: 128m
        rrset-cache-size: 256m
        msg-cache-slabs: 4
        rrset-cache-slabs: 4
        infra-cache-slabs: 4
        key-cache-slabs: 4
        auto-trust-anchor-file: "/var/lib/unbound/root.key"
        root-hints: "/var/lib/unbound/root.hints"
        val-clean-additional: yes
        harden-glue: yes
        harden-dnssec-stripped: yes
        hide-identity: yes
        hide-version: yes
        do-ip4: yes
        do-tcp: yes
        do-udp: yes
        tcp-upstream: yes
        prefetch: yes
        prefetch-key: yes
    • interface: 0.0.0.0
      监听的网络接口,0.0.0.0 表示监听所有可用的IPv4接口(即对所有IP开放)。
    • access-control: 192.168.1.0/24 allow
      允许来自这个网段(192.168.1.0 到 192.168.1.255)的客户端访问DNS服务。
    • cache-max-ttl: 86400
      DNS缓存的最大存活时间(TTL),单位是秒。86400秒 = 24小时。缓存中的记录不会超过这个时间。
    • cache-min-ttl: 3600
      DNS缓存的最小存活时间(TTL),单位是秒。即使记录的TTL小于这个值,也会缓存至少3600秒(1小时)。
    • num-threads: 4 # CPU
      用于DNS查询处理的线程数量,通常设置为CPU核心数,这里是4个线程。
    • msg-cache-size: 128m
      DNS消息缓存大小,128MB。缓存解析过的DNS响应消息,提升查询效率。
    • rrset-cache-size: 256m
      RRSet缓存大小,256MB。RRSet是资源记录集合,缓存DNS记录的具体数据。
    • msg-cache-slabs: 4
      将消息缓存分成4个分片,提高并发访问性能。
    • rrset-cache-slabs: 4
      RRSet缓存分成4个分片,同样为了提高并发处理性能。
    • infra-cache-slabs: 4
      基础设施缓存分片数,4个。缓存底层的基础数据,提高性能。
    • key-cache-slabs: 4
      DNSSEC密钥缓存分片数,4个。缓存验证DNSSEC所需的密钥数据。
    • auto-trust-anchor-file: “/var/lib/unbound/root.key”
      DNSSEC自动信任锚文件路径,Unbound用来验证DNSSEC签名的根信任锚。
    • root-hints: “/var/lib/unbound/root.hints”
      根服务器提示文件路径,Unbound用来查找根DNS服务器的地址。
    • val-clean-additional: yes
      启用清理额外信息的DNSSEC验证功能,增强安全性。
    • harden-glue: yes
      加固“胶记录”的安全,防止DNS缓存投毒攻击。
    • harden-dnssec-stripped: yes
      防止中间人去除DNSSEC签名,确保DNSSEC验证的完整性。
    • hide-identity: yes
      隐藏Unbound服务器的标识信息,不向外泄漏服务器名称。
    • hide-version: yes
      隐藏版本信息,避免泄露软件版本给潜在攻击者。
    • do-ip4: yes
      启用IPv4查询支持。
    • do-tcp: yes
      启用通过TCP协议进行DNS查询,UDP有时不能传输大型响应。
    • do-udp: yes
      启用通过UDP协议进行DNS查询。
    • tcp-upstream: yes
      向上游服务器发起TCP连接查询,增强可靠性。
    • prefetch: yes
      启用预取缓存功能,缓存快要过期的记录时提前刷新,减少查询延迟。
    • prefetch-key: yes
      针对DNSSEC密钥的预取缓存功能,提高验证效率。

    8. 检查配置文件正确性

    使用 unbound-checkconf 命令检查配置文件语法是否正确:

    unbound-checkconf

    如果没有错误提示,说明配置有效。

    9. 重启 Unbound 服务

    最后,重启服务使配置生效:

    systemctl restart unbound

  • Debian 12 上使用 Fail2Ban 来增强 SSH 的安全性

    使用 Fail2Ban 来增强 SSH 安全性是一个非常有效的选择,特别是针对暴力破解攻击。Fail2Ban 可以监控系统日志并自动封禁恶意 IP 地址,减少暴力破解的尝试。以下是配置 Fail2Ban 的步骤:

    1. 安装 Fail2Ban

    Debian 12 默认软件仓库中包含 Fail2Ban,可以通过以下命令安装:

    apt update
    apt install fail2ban

    安装完成后,Fail2Ban 会自动启动。你可以使用以下命令检查其状态:

    systemctl status fail2ban

    2. 配置 Fail2Ban

    Fail2Ban 的配置文件位于 /etc/fail2ban/ 目录下。默认的全局配置文件是 /etc/fail2ban/jail.conf,但建议不要直接修改该文件,而是创建一个本地配置文件 /etc/fail2ban/jail.local 或者在 /etc/fail2ban/jail.d/ 目录下添加自定义配置。

    创建本地配置文件

    首先,复制默认配置文件并编辑:

    cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
    nano /etc/fail2ban/jail.local

    配置 SSH 防护

    jail.local 文件中,找到 [sshd] 部分,或者添加以下内容:

    [sshd]
    enabled  = true
    port     = 22
    filter   = sshd
    logpath  = /var/log/auth.log
    maxretry = 5
    bantime  = 3600
    findtime = 600

    说明:

    • enabled = true:启用 SSH 防护。
    • port = 22:SSH 默认端口(如果更改过端口,请相应调整)。
    • filter = sshd:使用内置的 SSH 过滤器。
    • logpath = /var/log/auth.log:Debian 12 中 SSH 日志的默认路径。
    • maxretry = 5:如果超过 5 次登录失败,IP 将被封禁。
    • bantime = 3600:封禁时间为 1 小时(单位:秒,视情况调整)。
    • findtime = 600:统计失败登录尝试的时间窗口为 10 分钟。

    完成后保存并退出编辑器。

    3. 启动并测试 Fail2Ban

    配置完成后,重启 Fail2Ban 以应用配置:

    systemctl restart fail2ban

    检查 Fail2Ban 是否正常运行:

    fail2ban-client status

    查看 SSH 防护的具体状态:

    fail2ban-client status sshd

    4. 监控和解禁

    你可以随时查看被封禁的 IP 地址,并手动解禁:

    查看被封禁的 IP

    fail2ban-client get sshd banip

    手动解禁某个 IP(如果误封)

    fail2ban-client unban 目标IP

    注意事项

    • 确保 SSH 服务(sshd)已启用并正常运行。
    • 如果使用了非标准日志路径,需要调整 logpath
    • 定期检查日志文件 /var/log/fail2ban.log,确保规则已生效。
  • Debian 12 部署 HIDS Wazuh 指南

    Wazuh 是一款 开源的 SIEM(安全信息和事件管理)HIDS(主机入侵检测系统) 解决方案,能够实时监控系统日志、检测安全威胁、执行合规性审计,并提供可视化安全分析。
    Wazuh可用于入侵检测、日志分析、文件完整性监控、恶意软件检测、漏洞扫描等场景。Wazuh 适用于企业安全运营中心(SOC)、服务器与终端安全、DevSecOps 以及合规性管理,帮助企业和个人提升 IT 环境的安全性。

    1. 单节点部署 Wazuh

    首先,克隆 Wazuh 官方 Docker 仓库,并切换到指定版本:

    git clone https://github.com/wazuh/wazuh-docker.git -b v4.11.1

    进入 单节点部署目录

    cd wazuh-docker/single-node

    2. 配置 Wazuh

    Wazuh 由 管理器(Manager)索引器(Indexer)仪表板(Dashboard) 组成。

    2.1 调整内核参数

    在主机(Linux)上,提升 vm.max_map_count 以支持 Wazuh 索引器(需要 root 权限):

    sysctl -w vm.max_map_count=262144

    2.2 生成 SSL 证书

    运行以下命令,生成用于组件间通信的证书:

    docker compose -f generate-indexer-certs.yml run --rm generator

    2.3 启动 Wazuh

    完成配置后,启动 Wazuh 服务:

    docker compose up -d

    2.4 访问 Wazuh 仪表板

    部署完成后,在浏览器中访问:

    https://<Wazuh_IP>

    默认的登录凭据为:

    • 用户名admin
    • 密码SecretPassword

    3. 添加 Wazuh Agent

    要将受监控的主机接入 Wazuh,请在 Web 仪表板中进行操作:

    在 Wazuh 仪表板中添加 Agent

    1. 登录 Wazuh 仪表板。
    2. 导航到 HOME — OVERVIEW — Deploy new agent。
    3. 选择要监控的操作系统。
    4. 输入要监控的服务器地址、Agent 名称和分组。
    5. 复制生成的 Agent 安装命令,并粘贴到要监控的主机中执行。

    验证 Agent 连接
    返回到 HOME — OVERVIEW 页面,您应该能够看到新添加的 Agent。

  • Debian12 安装Dify大语言模型(LLM) 应用开发平台

    Dify 是一款开源的大语言模型(LLM)应用开发平台。它融合了后端即服务(Backend as Service)和 LLMOps 的理念,使开发者可以快速搭建生产级的生成式 AI 应用。即使你是非技术人员,也能参与到 AI 应用的定义和数据运营过程中。

    Dify 内置了构建 LLM 应用所需的关键技术栈,包括对数百个模型的支持、直观的 Prompt 编排界面、高质量的 RAG 引擎、稳健的 Agent 框架、灵活的流程编排,并同时提供了一套易用的界面和 API。这为开发者节省了许多重复造轮子的时间,使其可以专注在创新和业务需求上。

    1. 安装 Docker 和 Docker Compose

    在服务器上运行以下命令安装 Docker:

    curl -fsSL https://get.docker.com -o get-docker.sh && sh get-docker.sh

    2. 安装 Dify

    2.1 克隆 Dify 源代码至本地环境

    git clone https://github.com/langgenius/dify.git --branch 1.0.1

    2.2 启动 Dify

    进入 Dify 源代码的 Docker 目录,并执行以下步骤:

    # 进入 Dify 源代码的 Docker 目录
    cd dify/docker
    
    # 复制环境配置文件
    cp .env.example .env
    
    # 启动 Docker 容器
    docker compose up -d
    
    # 最后检查是否所有容器都正常运行
    docker compose ps

    2.3 访问 Dify 进行安装

    在浏览器中访问以下地址,完成安装流程:

    http://your_server_ip/install

    3. 在 Dify 中接入模型

    在 Dify 控制面板中,进入 设置 > 模型供应商,然后点击 接入模型
    按照界面指引,输入模型供应商相关 API 信息,并完成模型的接入配置。