我正在设置一个 Ubuntu 16.04 服务器,该服务器将专门用于向某些 Web 服务器发送和接收 MySQL 数据库请求。
使用 UFW 时,我想知道我是否可以阻止所有内容,然后做出例外。我记下的一些旧笔记建议:
sudo ufw default deny incoming
sudo ufw default deny outgoing
在我进行输入后,ufw status 没有显示任何与这些规则有关的内容。
进而:
sudo ufw allow mysql
sudo ufw allow OpenSSH
sudo ufw allow 2222/tcp
sudo ufw allow from 012.34.567.89 comment ip's of web servers
我越来越:
Host 'pool-012-34-567-89.area.fios.verizon.net' is not allowed
to connect to this MySQL server
我该如何解决这个问题?规则的顺序有什么神奇之处吗?
更新:我已经设置了具有权限的用户:
CREATE USER 'usr'@'web-server_ip' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON database.* TO 'usr'@'web_server_ip';
我的 ssh 端口不是 22 端口。“2222”只是一个例证。
答案1
您的 ssh 端口是什么?您可能只需要以下其中一项:规则“ssh”与 2222 相同,但适用于端口 22。此外,如果您已经在 mysql db 服务器上允许 ssh 和 mysql,为什么还要明确允许服务器的 ips。您已经全局打开了 3306!不。ufw 规则的顺序没有什么“魔力”。
您在编辑中添加的错误意味着您创建的 mysql 帐户不允许从提到的主机进行连接。
您必须创建每个主机帐户,或者非常不安全地允许帐户使用 % 通配符从任何主机进行连接。
如果您想实现 mysql db 服务器,您最好阅读文档!
在您更新 2 之后,我不得不说,您实际上并没有按照您写的内容操作,或者池……verizon.net 不是您在 mysql create user 语句中添加的同一主机。尝试使用另一个名称创建另一个用户,然后执行两次,使用主机名和 IP 地址,当然还要使用相同的密码,如果您没有弄乱任何东西,它必须工作。
再次,阅读文档。此时,您可能已经犯了至少 3 个错误,关于分区和挂载、数据库服务器的配置以及太松散的防火墙,第四个是权限授予。