标签: linux

  • 使用 wp-fail2ban 提高 wordpress 站点安全性

    使用 wp-fail2ban 提高 wordpress 站点安全性

    wp-fail2ban 是 wordpress 上一款与 fail2ban 集成的,提高 wordpress 站点安全性的插件。

    安装:

    插件>安装新插件 中搜索“wp-fail2ban”,安装如上图所示插件并启用。

    安装完成后,ssh 连接到你博客的 vps 上。

    配置:

    参考插件的 配置文档 ,以使用 systemd 的 debian12 为例。

    确保你的 vps 上已经安装了 fail2ban。如果没有安装,可以参考我的这篇博文进行安装和配置。

    复制你的 网站根目录/wp-content/plugins/wp-fail2ban/filters.d/ 下的所有文件到 /etc/fail2ban/filters.d/ 目录下。

    sudo cp 网站根目录/wp-content/plugins/wp-fail2ban/filters.d/*.conf /etc/fail2ban/filter.d/

    修改你网站根目录下的 wp-config.php 文件,在末尾添加以下内容:

    // Make sure we're not using the short ("wp") tag
    define('WP_FAIL2BAN_SYSLOG_SHORT_TAG', false);
    
    // Don't include the HTTP host in the tag
    define('WP_FAIL2BAN_SYSLOG_TAG_HOST', false);
    
    /* That's all, stop editing! Happy blogging. */

    随后,保存退出。切换目录到 /etc/fail2ban/jail.d 。在该目录下新建一个名为 wordpress.conf 的配置文件,并添加以下内容:

    [wordpress-hard]
    enabled = true
    filter = wordpress-hard
    backend = systemd
    journalmatch = SYSLOG_IDENTIFIER=wordpress
    maxretry = 1
    port = http,https
    
    [wordpress-soft]
    enabled = true
    filter = wordpress-soft
    backend = systemd
    journalmatch = SYSLOG_IDENTIFIER=wordpress
    maxretry = 3
    port = http,https

    完成后,保存退出并重新加载 fail2ban 服务。

    sudo systemctl reload fail2ban

    使用命令

    systemctl status fail2ban

    查看 fail2ban 是否正常运行。使用命令

    sudo fail2ban-client status

    查看新配置是否已添加。成功添加后输出如下图:

    至此,wp-fail2ban 已经开始保护你的 wordpress 网站了。

  • debian 12 fail2ban的配置

    debian 12 fail2ban的配置

    fail2ban是一个服务器免受暴力攻击的入侵防御软件,基于auth 日志文件工作,更新防火墙规则,用于在指定的时间内拒绝特定的 IP 地址,从而有效保护服务器免受暴力攻击。

    fail2ban 的安装:

    debian12 上使用以下命令安装:

    sudo apt install fail2ban -y

    安装完成后,fail2ban会自动运行。

    fail2ban 的配置:

    如果遇到fail2ban安装完成后,使用命令

    systemctl status fail2ban

    查看fail2ban运行状态时显示失败,请参考我的这篇文章解决

    切换到目录 /etc/fail2ban ,复制 jail.conf 一份为 jail.local 或新建一份 jail.local 的配置文件,不要修改默认的 jail.conf 配置文件。

    以下是我的配置,以供参考:

    [DEFAULT]
    ignoreip = 127.0.0.1/8 ::1
    bantime = 1d
    findtime = 10m
    maxretry = 5
    
    [sshd]
    enable = true
    port=22
    bandtime=1d
    findtime=10m
    maxretry=5
    backend=systemd

    具体配置可在网络上搜索参考,完成后,使用命令:

    systemctl restart fail2ban

    重启 fail2ban 服务。

    使用

    sudo fail2ban-client status

    来查看服务状态。

  • 使用 apache 服务器 + cloudflare 配置 lx music同步服务器

    使用 apache 服务器 + cloudflare 配置 lx music同步服务器

    在 lx-music 同步服务器的官方文档中,提到了可以使用 ngnix 服务器来代理并使用 ssl 加密。不过笔者的 1h1g vps上使用的是 apache2 服务器,借助 deepseek 的力量,成功参照官方配置 ngnix 服务器的文档,使用 apache2 服务器实现代理并使用 ssl 加密。

    准备工作:

    debian 12 vps 一个,托管在 cloudflare 的域名一个,vps 已安装 apache2 服务器,若未安装,执行以下命令安装:

    sudo apt update && sudo apt install apache2 -y

    cloudflare 配置:

    进入你托管域名的仪表板,点击 dns 记录,点击添加记录,添加一条记录,类型选择 A,名称为 lx-music(可以按你的喜好替换),ipv4填你的 vps ipv4 地址,启用代理,最后保存。添加后如图所示:

    完成后,点击 ssl/tls,选择源服务器,若无证书,选择创建证书,保存对应的 key 和 pem,若已有证书,下载保存。

    将证书 key 和 pem 上传到 服务器的 /etc/ssl/you_domain(按需替换)目录下。若目录不存在,请先创建。完成后,如下图所示:

    最后,添加缓存绕过规则,避免出现问题。

    点击缓存,选择 Cache Rules,点击创建规则,如下图所示:

    完成后保存,至此,cloudflare 配置部分结束。

    apache2 服务器配置:

    使用以下命令启用必须的 apache2 服务器模块

    sudo a2enmod proxy proxy_http proxy_wstunnel headers rewrite

    在 /etc/apache2/sites-available/ 目录下,新建一个名称为 lx-music.you_domain.conf 的配置文件,名称与 cloudflare 上的 dns 记录保持一致。

    *注意⚠️:请将 lx-music.you_domain.conf 替换为你的域名!!!

    sudo vim lx-music.you_domain.conf

    向该配置文件,添加以下参考以下参考配置:

    *注意⚠️:要将对应的域名替换为你的域名!!!同时注意证书文件的路径!!!

    <IfModule mod_ssl.c>
        <VirtualHost *:443>
            ServerName lx-music.145914.xyz
    
            # SSL 配置
            SSLEngine On
            SSLCertificateFile /etc/ssl/145914.xyz/145914.xyz.crt
            SSLCertificateKeyFile /etc/ssl/145914.xyz/145914.xyz.key
            SSLCertificateChainFile /etc/ssl/145914.xyz/145914.xyz.crt
    
            # 反向代理配置
            ProxyRequests Off
            ProxyPreserveHost On
            ProxyPass / http://localhost:9527/
            ProxyPassReverse / http://localhost:9527/
    
            # 传递认证头
            RequestHeader set Authorization "expr=%{HTTP:Authorization}"
    
            # 设置请求头
            RequestHeader set Host "%{HTTP_HOST}e"
            RequestHeader set X-Real-IP "%{REMOTE_ADDR}e"
            RequestHeader set X-Forwarded-For "%{REMOTE_ADDR}e"
            RequestHeader set Upgrade "websocket" env=HTTP_UPGRADE
            RequestHeader set Connection "upgrade" env=HTTP_UPGRADE
    
            # WebSocket支持(强制升级连接)
            RewriteEngine On
            RewriteCond %{HTTP:Upgrade} =websocket [NC]
            RewriteRule /(.*) ws://127.0.0.1:9527/$1 [P,L]
    
            # 可选:设置超时和日志
            ProxyTimeout 300
            ErrorLog ${APACHE_LOG_DIR}/lx-music_error.log
            CustomLog ${APACHE_LOG_DIR}/lx-music_access.log combined
        </VirtualHost>
    </IfModule>

    完成后,启用域名并重启 apache2 服务器,检查配置文件语法:

    *注意⚠️:请将 lx-music.145914.xyz.conf 替换为你的域名!!!

    sudo a2ensite lx-music.145914.xyz.conf && sudo systemctl restart apache2 && sudo apache2ctl configtest

    检查 apache2 服务器,确保处于活跃状态:

    至此,apache2 服务器部分配置完成。

    下载并运行 lx-music sync 服务器:

    安装运行环境:

    sudo apt install nodejs -y

    安装完成后,使用

    node -v

    查看 nodejs 版本号。

    安装pm2

    sudo npm i -g pm2

    至此,完成所需运行环境的安装。

    下载 lx music 同步服务器:

    截至发文时,lx-music sync 服务器最新版本为 v2.1.2

    lx music sync 源码地址:

    https://github.com/lyswhut/lx-music-sync-server

    使用 wget 下载 最新的 lx-music sync 服务器

    wget https://github.com/lyswhut/lx-music-sync-server/archive/refs/tags/v2.1.2.tar.gz

    下载完成后,解压到当前目录:

    tar -xzvf v2.1.2.tar.gz

    解压完成后,进入服务器目录安装依赖:

    cd lx-music-sync-server-2.1.2 && npm ci --omit=dev

    完成后,编辑 config.js 文件进行配置:

    vim config.js

    取消所有选项的注释,设置name,password,修改 ‘proxy.enabled’ 为 true,其余选项保持默认。保存退出。

    启动服务器:

    npm run prd

    查看启动日志,若无错误则启动成功

    pm2 logs

    访问 https://lx-music.you_domain/hello,出现 Hello~::^-^::~v4~ 说明已经可以正常访问 lx music 同步服务器了。

    现在,一个有 ssl 加密的 lx music 同步服务器就搭建完成了。

  • debian 12 ufw 防火墙的安装和使用

    debian 12 ufw 防火墙的安装和使用

    在vps上,开启防火墙可以有效地提高服务器安全性,有效阻止来自黑客的攻击。

    UFW 或简单防火墙是一个用户友好的 iptables 前端,也是 Linux 上最好的防火墙之一。您可以轻松地在不同的 Linux 发行版(包括 Debian)上安装此防火墙管理工具。

    UFW 通过提供简化的界面和命令,简化了配置 iptables 的复杂过程。该防火墙使您能够定义处理网络流量的规则。这可确保仅允许授权连接,同时阻止潜在的安全风险。

    在 debian 12 上安装UFW:

    sudo apt update && sudo apt install ufw -y

    安装完成后,ufw并不会自动运行,运行:

    sudo ufw enable

    才能启用ufw防火墙。

    使用以下命令,查看ufw防火墙状态:

    sudo ufw status

    若防火墙处于活动状态,有类似以下输出:

    允许和阻止特定端口:

    要允许特定端口,可以使用以下命令:

    sudo ufw allow 端口号/协议

    例如,允许一个2222的ssh端口:

    sudo ufw allow 2222/tcp

    要禁止特定端口,可以使用以下命令:

    sudo deny 端口号/协议

    例如,阻止所有 TCP 端口,可以执行:

    sudo ufw deny 0.0.0.0/0 tcp

    允许或拒绝特定服务:

    允许或拒绝特定服务,可以使用以下命令:

    sudo ufw allow 服务名/协议  #允许
    sudo ufw deny 服务名/协议   #拒绝

    例如,允许https服务:

    sudo ufw allow https

    拒绝http服务:

    sudo ufw deny http

    允许特定 IP 地址访问:

    允许/拒绝特定 IP 地址访问,可以使用以下命令:

    sudo ufw allow from IP地址/掩码  #允许
    sudo ufw deny from IP地址/掩码   #拒绝

    生效规则:

    要使设置的ufw规则生效,只需重启ufw即可。

    sudo systemctl restart ufw.service

    查看ufw状态:

    显示 UFW 的状态及其活动规则:

    sudo ufw status verbose

    查看ufw默认允许的应用列表:

    sudo ufw app list

    许多常用应用ufw已默认允许。

    重置UFW规则:

    如果需要重置ufw规则为默认,请执行:

    sudo ufw reset

    卸载 UFW:

    如果需要卸载ufw,请执行:

    sudo apt purge ufw gufw -y
  • debian12上fail2ban启动失败解决办法

    debian12上fail2ban启动失败解决办法

    在 debian12 上安装完 fail2ban 后运行提示找不到 sshd 日志,原因是 fail2ban 默认 的 ssh 日志读取配置使用 rsyslog,debain12 已经默认使用 systemd 的 journalctl,有两种解决办法。

    方法一:安装 rsyslog 解决。

    sudo apt install rsyslog -y

    安装完成后 systemctl restart fail2ban 即可。

    方法二:修改 fail2ban 的 sshd 配置

    在 /etc/fail2ban 目录下,新建一个 jail.local 文件 :

    sudo vim jail.local

    可添加以下参考配置内容

    [DEFAULT]
    ignoreip = 127.0.0.1/8 ::1
    bantime = 1d
    findtime = 10m
    maxretry = 5
    
    [sshd]
    enable = true
    port=22
    bandtime=1d
    findtime=10m
    maxretry=5
    backend=systemd

    重点是添加 backend=systemd 项,告诉 fail2ban 使用 systemd 的日志后端。

    完成后重启 fail2ban 服务

    systemctl restart fail2ban

    查看 fail2ban 状态

  • Archlinux 提升 makepkg 速度

    使用并行编译,在 /etc/makepkg.conf 中找到 MAKEFLAGS,设置为:

    MAKEFLAGS="-j4"

    数字应改为电脑 CPU 核心数(或线程数),如我的电脑cpu为6核12线程,对应的修改为:

    同时,还可以禁止debug包的生成来进一步提升速度:

    OPTIONS=(strip docs !libtool !staticlibs emptydirs zipman purge !debug lto)

    只需在 options 数组选项的 debug 前面添加 !

  • flatpak wine的安装和使用

    1、安装flatpak

    debian系:

    sudo apt install flatpak

    arch系:

    sudo pacman -Syu flatpak

    2、flatpak换源

    sudo flatpak remote-modify flathub --url=https://mirror.sjtu.edu.cn/flathub

    参考https://mirror.sjtu.edu.cn/docs/flathub

    3、安装flatpak版wine

    flatpak install org.winehq.Wine

    按提示选择,回车确定。

    4、运行winetricks

    运行命令:

    flatpak run --command=bash org.winehq.Wine

    在 Wine 环境中启动一个 Bash shell,允许你直接与 Wine 环境交互。运行:

    winetricks

    使用图形界面交互,使用exit命令退出。