保护一个保存 MySQL 数据库的简单 Linux 服务器?

保护一个保存 MySQL 数据库的简单 Linux 服务器?

MI 正在设置一个运行 Ubuntu 的 Linux 服务器来存储 MySQL 数据库。

该服务器尽可能安全非常重要,据我所知,我主要担心的是传入的 DoS/DDoS 攻击和对服务器本身的未经授权的访问。

数据库服务器仅在端口 3000 上接收来自一个特定 IP (101.432.XX.XX) 的传入数据。我只希望该服务器能够接收来自该 IP 的传入请求,并阻止服务器发出任何传出请求。

我想知道:

  1. 阻止我的数据库服务器仅从 101.432.XX.XX 发出传出请求和接收传入请求的最佳方法是什么?将关闭所有端口。 3000对实现这个目标有帮助吗?
  2. Linux 环境中是否还有其他可以提高安全性的附加功能?我已经采取了非常基本的步骤来保护我的 phpmyadmin 门户(链接到 MySQL 数据库),例如限制仅访问我的个人 IP 地址。要访问数据库服务器需要 SSH 密钥(其本身受密码保护)。

答案1

要关闭所有不需要的传入和传出连接,您可以使用iptables防火墙来完成这项工作,下面是一个示例:

# To make sure that you have ssh access to the server
iptables -t filter -A INPUT -p tcp -s 101.432.XX.XX --dport 22   -j ACCEPT
# Allowing only your ip to connect to the server via specific port
iptables -t filter -A INPUT -p tcp -s 101.432.XX.XX --dport 3000 -j ACCEPT
# Drop any other requests
iptables -t filter -A INPUT -j DROP

这只是一个例子,iptables为了安全起见,你几乎可以做任何你想做的事。

为了保护您的服务器免受DoS/DDoS,我建议将其csf作为防火墙工具,它可以为您提供良好的保护,防止各种类型的攻击,有关详细信息,请csf检查以下内容:https://download.configserver.com/csf/readme.txt

答案2

一些安装还提供了用于“强化”数据库的工具:

sudo mysql_secure_installation

这将引导您完成设置新的 root 密码、删除匿名用户、禁止远程 root 登录等操作。

相关内容