Ubuntu 或 Debian 在 Nginx 下使用 fail2ban 阻止恶意扫描

/etc/fail2ban/filter.d 下新建 nginx-cc.conf

1
touch /etc/fail2ban/filter.d/nginx-cc.conf

输入:

nginx-cc.conf
1
2
3
[Definition]
failregex = ^<HOST> \- \S+ \[\] \".*\" (400|404|444) .+$
ignoreregex =.*(jpg|png)

然后在 /etc/fail2ban/jail.d/defaults-debian.conf 中加入如下几行:

defaults-debian.conf
1
2
3
4
5
6
7
[nginx-botsearch]
enabled = true
[nginx-cc]
enabled = true
filter = nginx-cc
logpath = %(nginx_access_log)s
port = http,https

unban:

1
fail2ban-client set jailname unbanip ipaddress

规则校验:

1
fail2ban-regex /var/log/nginx/*.access.log /etc/fail2ban/filter.d/nginx-cc.conf

Ubuntu 或 Debian 开启 BBR

需要 Linux 内核 4.9 及以上版本

1.修改系统变量

1
2
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf

2.保存生效

1
sysctl -p

3.查看是否已经开启

1
sysctl net.ipv4.tcp_available_congestion_control

如输出如下,含有 bbr 即可,无需在意顺序,则证明已开启

1
net.ipv4.tcp_available_congestion_control = reno cubic bbr

4.查看BBR是否启动

1
lsmod | grep bbr

显示以下即启动成功:

1
tcp_bbr                20480  20

Ubuntu 下使用 Nginx + MySQL 搭建 Wordpress

以 Ubuntu 20.04 为例,且假设你已获取到 root 权限或者使用的是 root 账号,Wordpress 与 MySQL 安装在同一台服务器上

1. Wordpress

如果你已经使用其他工具下载好了 Wordpress 则可以使用 sftp 工具或者任意工具上传到服务器 /var/www 文件夹下,跳过1.1

1.1 下载

1
curl https://cn.wordpress.org/latest-zh_CN.tar.gz -o /var/www/wordpress.tar.gz

该命令是将 中文版 的 Wordpress 下载到路径 /var/www 中,名字为 wordpress.tar.gz, 如果提示:

1
bash: curl: command not found.

则运行如下命令后再运行第一条命令下载 Wordpress:

1
apt install curl
阅读更多

MySQL 连接控制插件

最近查看服务器日志发现一堆IP尝试爆破我的 MySQL,我的数据库端口并没有修改,问题并不大,但是让这些IP无代价的爆破生成一堆日志让我很烦,所以查了一下各种解决方案,有提到 Fail2Ban,但是我服务器已经装了 DenyHosts,所以并不想再引入一个功能上有重复的包,所以使用了MySQL的 Connection-Control 插件,下面是它官网的描述:

阅读更多