今天發現幾台server的phpmyadmin有安全上的漏洞...orz..
隨便輸入個帳號,不用密碼居然也能登錄!!!
雖然沒有database可以操作,但可以改mysql的設定!!
原因是舊版的phpmyadmin在安裝時會加入下面這樣的user..
User -------Host -----Password --- Global privileges --- Grant
Any ----------- % ---------- No ---------------- USAGE ------------- No
把它砍掉後,就安全一點了~
後來我手賤把pma這個帳號也給砍了,結果造成無法登入phpmyadmin... orz..
原來舊版的phpmyadmin(很舊很舊的版本),預設是透過pma這個user來存取mysql的..
可以在/etc/phpmyadmin/config.inc.php 找到相關設定。
後來從mysql加回pma這個user才又正常...
不過最好的方法應該是更新phpmyadmin版本才對...不過gentoo我還不會用...>,<
reference:
phpMyAdmin: Multiple vulnerabilities
http://www.apachefriends.org/f/viewtopic.php?t=8829
2008/02/25
phpMyAdmin: Multiple vulnerabilities
2007/07/14
MySQL小筆記
啟動、關閉、重開mysql
/etc/init.d/mysql start
/etc/init.d/mysql stop
/etc/init.d/mysql restart
設定root密碼
mysqladmin -u root password 'xxxxx'
使用mysql
mysql -u root -p
更改密碼
mysql> SET PASSWORD FOR 'user'@'host' = OLD_PASSWORD('password');
安裝phpmyadmin
apt-get install phpmyadmin
然後在apache的DocumentRoot下
ln -s /usr/share/phpmyadmin phpmyadmin
便可用 http://ip/phpmyadmin 進入
讓遠端電腦可使用本機的mysql
~$ sudo vim /etc/mysql/my.cnf
將bind-address = 127.0.0.1 註解掉
如果要限定某個ip才能使用 port 3306 (mysql default),
可以使用iptables來設定filter, 如下:
// accept all tcp on port 3306 from localhost
~$ iptables -I INPUT 1 -i lo -p tcp --dport mysql -j ACCEPT
// accept all udp on port 3306 from localhost
~$ iptables -I INPUT 2 -i lo -p udp --dport mysql -j ACCEPT
// accept tcp on port 3306 from allowed_ip
~$ iptables -I INPUT 3 -i eth0 -p tcp --dport mysql -s allowed_ip -j ACCEPT
// accept udp on port 3306 from allowed_ip
~$ iptables -I INPUT 4 -i eth0 -p udp --dport mysql -s allowed_ip -j ACCEPT
最後記得在phpmyadmin中,將供遠端電腦登錄的user的主機來源改成allowed_ip
reference: Can't connect to [local] MySQL server