如何首次设置 Firewalld 规则而不损害自己?

如何首次设置 Firewalld 规则而不损害自己?

CentOS我正在和Nginx(应用程序)上运行服务器nodejs

我的数据库连接过多mysql,导致网站瘫痪。

我的iotop日志显示,mysqld虽然没有任何奇怪的请求发送到应用服务器(经 Nginx 日志和应用日志确认),但读取 IO 的速度太快(每秒千兆字节)。我连接了 Cloudflare,防火墙日志确认没有奇怪的 HTTP 请求活动。

网站 (https://info-kurs.com) 每天的访问量并不多(有很多白色爬虫,但我用 robots.txt 禁止它们)。

mysqld.log告诉我有很多错误,例如:

IP address 'ХХ.ХХ.ХХ.ХХ' could not be resolved: Name or service not known

然后我的应用程序出现以下错误:

MySQL Error 1040: Too Many Connections

我读过这篇文章MySQL 警告“无法解析 IP 地址”

它建议我添加skip_name_resolvemy.cnf文件。我添加了此指令。还要设置防火墙。我选择 Firewalld。

我的问题是- 如何首次设置 Firewalld 并且不丢失与服务器/站点的 ssh 和 http/https 连接,以及如何阻止除我的办公室 IP 之外的所有互联网的 mysql:3306 连接。我使用 Workbench 来访问我的数据库。

现在我知道:

firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --permanent --add-port=443/tcp

但是如何阻止除一个 IP 之外的所有到 mysql 的连接?

相关内容