今天发现自己的MySQL有对外绑定的端口,感觉不太有用,因为我都是直接登陆主机运行MySQL的(MySQL的host里面都是localhost),所以想了一些方法解决这个问题。
以下是事前查询的内容。
netstat -anlp | grep mysql
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 638/mysqld
unix 2 [ ACC ] STREAM LISTENING 12305521 638/mysqld /tmp/mysql.sock
首先想了用Iptables阻挡所有对3306的连接。
# iptables -A RH-Lokkit-0-50-INPUT -p tcp --destination-port 3306 -j REJECT
可能是对Iptables学习不够,没有什么作用,还是扫描的出来有MySQL端口。
查询了CU,发现有一篇正和我意的文章:如何更改 MYsql的 監聽 地址?
里面对修改的建议是
*安全配置*
为了数据的安全,可以考虑让MySQL只守候在127.0.0.1上,这样从Internet上就无法直接访问数据库了。
修改/etc/init.d/mysql文件
在start部分找到类似下面这行
$bindir/mysqld_safe --datadir=$datadir --pid-file=$pid_file &修改成
$bindir/mysqld_safe --datadir=$datadir --pid-file=$pid_file --bind-address=127.0.0.1 &重起MySQL
/etc/init.d/mysql restart最后netstat -l确认一下:
tcp 0 0 localhost:mysql *:* LISTENOK
而我修改的应该是/usr/local/mysql/support-files/mysql.server 文件中的
$bindir/mysqld_safe --datadir=$datadir --pid-file=$pid_file >/dev/null 2>&1 & 为 $bindir/mysqld_safe --datadir=$datadir --pid-file=$pid_file --bind-address=127.0.0.1 >/dev/null 2>&1 &
重启mysql (kill了进程,然后用 /usr/local/mysql/support-files/mysql.server start)
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 1041/mysqld
unix 2 [ ACC ] STREAM LISTENING 12329772 1041/mysqld /tmp/mysql.sock
即可!
(END)
评论 (1 条)
John Mike
2005年06月15日 11:45
发表于 2005 年 06 月 15 日 11:45
好文章,谢谢了。