Linux 上用于 mysql 服务器私有接口的 IPtables

Linux 上用于 mysql 服务器私有接口的 IPtables

想要为 Web 服务器制作一个 mysql 数据库服务器。该服务器有一个公共和私有接口,我需要一些帮助来编写规则。

我只想允许通过私有接口使用 SSH、mysql,并关闭公共接口

iptables -nL -v --行号

如果由服务器发起,则允许公开和私有。

iptables -I INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT

允许环回到本地主机

iptables -A 输入 -i lo -j 接受

阻止通过公共接口的所有传入流量。

??

通过公共接口阻​​止所有 SSH

iptables -A INPUT -i eth0 -p tcp --目标端口 22 -j DROP

允许从 1 IP 通过私有接口进行 SSH。

iptables -A 输入 -p tcp -s私有 IP–dport 22 -i eth1 -j 接受

允许特定 IP 通过私有接口访问 mysql。拒绝通过 eth0(公共)访问 mysql

iptables -A 输入 -i eth1 -p tcp --dport mysql -s私有 IP-j 接受

iptables -A INPUT -i eth0 -p tcp -m tcp --dport mysql -j REJECT

允许在 eth1(私有)上进行 Ping,但不允许在 eth0(公共)上进行 Ping

iptables -A 输入 -i eth1 -p icmp -j 接受
iptables -A 输入 -i eth0 -p icmp -j 拒绝

删除公共连接

iptables -A 输入 -i eth0 -j DROP

我是否已经做好了一切准备?

答案1

我是否已经做好了一切准备?

当谈到面向公众的服务器时,人们不应该认为最终安全的; 除此之外,我会为 INPUT 链设置 DROP 策略,然后只允许真正需要的内容。例如,在

iptables -P INPUT DROP

没有必要指定

iptables -A INPUT -i eth0 -p tcp -m tcp --dport mysql -j REJECT

答案2

如果您不打算使用该界面,为什么不禁用它(或不启动它)?

您没有说您正在使用哪个发行版,但它们都应该有一种在系统启动时不启动界面的方法。

对于 RHEL/CentOS 等,您可以ONBOOT=no在相关文件中进行设置/etc/sysconfig/network-scripts

对于 Debian/Ubuntu 等,您可以iface InterfaceName inet manual在 /etc/network/interfaces 中进行设置。

接口激活发生在启动过程的早期,sssd|mysqld 没有要绑定的接口,但建议将 sshd 和 mysqld 配置为仅监听相关地址,请查看其各自文档中的ListenAddress和选项。bind-address

ip ifconfig您还可以使用(已弃用)从命令行禁用接口。

ip link set eth1 down

或者

ifconfig eth0 down

相关内容