MI 正在设置一个运行 Ubuntu 的 Linux 服务器来存储 MySQL 数据库。
该服务器尽可能安全非常重要,据我所知,我主要担心的是传入的 DoS/DDoS 攻击和对服务器本身的未经授权的访问。
数据库服务器仅在端口 3000 上接收来自一个特定 IP (101.432.XX.XX) 的传入数据。我只希望该服务器能够接收来自该 IP 的传入请求,并阻止服务器发出任何传出请求。
我想知道:
- 阻止我的数据库服务器仅从 101.432.XX.XX 发出传出请求和接收传入请求的最佳方法是什么?将关闭所有端口。 3000对实现这个目标有帮助吗?
- 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 登录等操作。