mysql-iptables规则过滤
如何限制某个主机对mysql的访问
临时方案直接kill
mysql> show processlist; +----+-------------+--------------------+----------+---------+------+-------+------------------+ | Id | User | Host | db | Command | Time | State | Info | +----+-------------+--------------------+----------+---------+------+-------+------------------+ | 49 | application | 192.168.44.1:51718 | XXXXXXXX | Sleep | 183 | | NULL || | 55 | application | 192.168.44.1:51769 | XXXXXXXX | Sleep | 148 | | NULL | | 56 | application | 192.168.44.1:51770 | XXXXXXXX | Sleep | 148 | | NULL | | 57 | application | 192.168.44.1:51771 | XXXXXXXX | Sleep | 148 | | NULL | | 58 | application | 192.168.44.1:51968 | XXXXXXXX | Sleep | 11 | | NULL | | 59 | root | localhost | NULL | Query | 0 | NULL | show processlist | +----+-------------+--------------------+----------+---------+------+-------+-------------- mysql> kill 52; Query OK, 0 rows affected (0.00 sec)
使用mySQL GRANT
mysql> GRANT USAGE ON *.* TO 'user'@'<blockIP>';
使用iptables过滤
这个比较复杂,而且因为是机器层面的,所以要特别小心。
有两种方式,一种是只允许某些IP,其他的都block,即白名单的方式:
允许
iptables -A INPUT -p tcp -s 192.168.100.0/24 --dport 3306 -j ACCEPT # 允许那个网段ip可以访问 iptables -A INPUT -p tcp -s 192.168.100.100 --dport 3306 -j ACCEPT # 允许那个ip可以访问 iptables -A INPUT -p tcp -s 127.0.0.1 --dport 3306 -j ACCEPT # 允许自己可以访问自己 iptables -A INPUT -p tcp --dport 3306 -j DROP # 拒绝所有可以访问 # 相当于设置白名单
另一种反过来,不允许某些IP,其他的都允许,即设置黑名单:
iptables -A INPUT -p tcp -s IPaddress1/32 --dport 3306 -j DROP # 拒绝那个ip 或网段访问
iptables -A INPUT -p tcp -s IPaddress2/32 --dport 3306 -j DROP
iptables -A INPUT -p tcp -s IPaddress3/32 --dport 3306 -j DROP
iptables -A INPUT -p tcp --dport 3306 -j ACCEPT # 允许所有网段访问
# 相当于设置黑名单
本博客所有文章是以学习为目的,如果有不对的地方可以一起交流沟通共同学习 邮箱:1248287831@qq.com!