我注意到,这里有奇特的请求到我的网站试图找到phpMyAdmin的,像
/phpmyadmin/
/pma/
等等
现在我已经通过apt安装在Ubuntu PMA并希望通过webaddress从/ phpMyAdmin的/不同的访问它。 我能做些什么来改变它呢?
谢谢
更新
为Ubuntu 9.10和Apache2的,相应的设置位于该文件/etc/apache2/conf.d/phpmyadmin.conf
这是一个链接/etc/phpmyadmin/apache.conf
。 该文件包含
Alias /phpmyadmin /usr/share/phpmyadmin
其中,第一/phpmyadmin
应该改变的东西,如果一个人想避免不必要的活动,例如不同的:
Alias /secret /usr/share/phpmyadmin
Answer 1:
最大的威胁是,攻击者可以利用漏洞等; 目录遍历,或使用SQL注入来调用load_file()
来读取配置文件中的纯文本的用户名/密码,然后登录使用phpMyAdmin或通过TCP端口3306作为pentester我已经使用这个攻击模式来破坏系统。
下面是锁定的phpmyadmin一个伟大的方式:
- 不允许远程root登录! 相反的phpmyadmin可以被配置为使用“cookie认证”来限制哪些用户可以访问系统。 如果你需要一些root权限,创建一个可以添加/删除/创建,但不具有自定义帐户
grant
或file_priv
。 - 删除
file_priv
从每一个帐户权限。 file_priv
是在MySQL中最危险的特权之一,因为它允许攻击者读取文件或上传了一个后门。 - 白名单的IP地址谁有权访问phpMyAdmin界面。 下面是一个例子的.htaccess reulset:
Order deny,allow Deny from all allow from 199.166.210.1
Answer 2:
我的一个担忧与phpMyAdmin是在默认情况下,所有的MySQL用户可以访问数据库。 如果数据库的超级用户口令被泄露,有人可以在数据库造成严重破坏。 我想找到一种方法,以避免通过限制其MySQL的用户可以登录到phpMyAdmin。
我已经使用在phpMyAdmin AllowDeny配置是非常有用的发现。 http://wiki.phpmyadmin.net/pma/Config#AllowDeny_.28rules.29
AllowDeny允许您配置类似的方式将Apache访问phpMyAdmin。 如果设置了“订单”,以明确的,它只会授予访问权限“规则”部分定义的用户。 在规则部分,您限制谁可以访问使用phpMyAdmin的MySQL用户。
$cfg['Servers'][$i]['AllowDeny']['order'] = 'explicit'
$cfg['Servers'][$i]['AllowDeny']['rules'] = array('pma-user from all')
现在你已经限制访问用户名为PMA-用户在MySQL中,你可以授予有限的权限给该用户。
grant select on db_name.some_table to 'pma-user'@'app-server'
Answer 3:
在为用户名phpMyAdmin的访问权限较新版本+ IP的地址可以phpMyAdmin的的config.inc.php文件里进行设置。 这是限制访问(通过硬编码URL和IP地址到Apache的httpd.conf)的更好和更可靠的方法。
下面是如何切换到白名单的所有用户(此列表外的任何人将被允许访问),以及如何限制root用户只能在本地系统和网络的一个完整的例子。
$cfg['Servers'][$i]['AllowDeny']['order'] = 'deny,allow';
$cfg['Servers'][$i]['AllowDeny']['rules'] = array(
'deny % from all', // deny everyone by default, then -
'allow % from 127.0.0.1', // allow all local users
'allow % from ::1',
//'allow % from SERVER_ADDRESS', // allow all from server IP
// allow user:root access from these locations (local network)
'allow root from localhost',
'allow root from 127.0.0.1',
'allow root from 10.0.0.0/8',
'allow root from 172.16.0.0/12',
'allow root from 192.168.0.0/16',
'allow root from ::1',
// add more usernames and their IP (or IP ranges) here -
);
来源: 如何安装和安全phpMyAdmin的本地主机上的Windows
这给你比Apache的网址权限更细粒度的访问限制或.htaccess文件可以提供,在MySQL用户名的水平。
请确保您使用的登录用户,有其MySQL的Host:
字段设置为127.0.0.1
或::1
,如phpMyAdmin的和MySQL是在同一系统上。
Answer 4:
最有可能的,在某个地方你的网络服务器会是这样一个Alias指令;
Alias /phpmyadmin "c:/wamp/apps/phpmyadmin3.1.3.1/"
在我wampserver /本地主机的设置,它是在C:/wamp/alias/phpmyadmin.conf。
只需更改别名指令,你应该是好去。
Answer 5:
另一种解决方案是使用配置文件,无需任何设置。 你可能有第一次,包括你的MySQL root登录/密码,所以它可以安装所有的东西,但随后将其删除。
$ CFG [ '服务器'] [$ i]于[ 'AUTH_TYPE'] = '饼干';
$ CFG [ '服务器'] [$ i]于[ '主机'] = '本地主机';
$ CFG [ '服务器'] [$ i]于[ 'connect_type'] = 'TCP';
$ CFG [ '服务器'] [$ i]于[ '压缩'] = FALSE;
$ CFG [ '服务器'] [$ I] [ '延伸'] = 'MySQL的';
离开这样说,这没有任何的Apache / lighhtpd别名只会给你介绍一个登录屏幕。
您可以登录同根,但建议创建其他用户,并只允许本地访问根。 还记得即使短,但具有资本和特殊字符的数量来使用字符串密码。 例如!34sy2rmbr!
又名“易记2”
-编辑:一个好的密码现在是一个天其实是一样的东西的话是毫无语法意义,但你能记住,因为他们搞笑 。 或者使用KeePass的生成强随机量的很容易接触到他们
Answer 6:
如果您运行的是Linux服务器:
- 通过使用SSH,你可以禁止用户名/密码登录电子和只接受在authorized_keys文件的公钥
- 使用腻子连接到您的服务器,并打开一个远程终端
- 转发X11和本地主机带来的firefox / iceweasel到桌面(在Windows,你需要安装的Xming软件)
- 现在你确保你的phpMyAdmin的throught SSH
该系统是相当安全/得心应手 - 通常以阻止默认 - 所有端口homeservers。 你只需要转发SSH端口(不使用编号为22)。
如果你喜欢Microsoft终端服务器,你甚至可以设置一个SSH隧道到您的计算机安全地连接到你的Web服务器throught它。
随着SSH隧道 ,你甚至可以把您的远程服务器到本地端口的端口3306,并使用本地phpMyAdmin的或MySQL工作台连接。
据我所知,这个选项是矫枉过正,但作为您的私人密钥的访问安全。
Answer 7:
最简单的方法是编辑的web服务器,最有可能的一个Apache2的安装,配置和给phpmyadmin的一个不同的名称。
第二种方法将是限制的IP地址从何处phpmyadmin的可被访问(例如,仅本地LAN或本地主机)。
Answer 8:
确保phpMyAdmin的最好的办法是所有这4个组合:
1. Change phpMyAdmin URL
2. Restrict access to localhost only.
3. Connect through SSH and tunnel connection to a local port on your computer
4. Setup SSL to already encrypted SSH connection. (x2 security)
这里是如何做到这一切有:Ubuntu的16.4 + Apache的安装2 Windows电脑+腻子连接和隧道SSH连接到本地端口:
# Secure Web Serving of phpMyAdmin (change URL of phpMyAdmin):
sudo nano /etc/apache2/conf-available/phpmyadmin.conf
/etc/phpmyadmin/apache.conf
Change: phpmyadmin URL by this line:
Alias /newphpmyadminname /usr/share/phpmyadmin
Add: AllowOverride All
<Directory /usr/share/phpmyadmin>
Options FollowSymLinks
DirectoryIndex index.php
AllowOverride Limit
...
sudo systemctl restart apache2
sudo nano /usr/share/phpmyadmin/.htaccess
deny from all
allow from 127.0.0.1
alias phpmyadmin="sudo nano /usr/share/phpmyadmin/.htaccess"
alias myip="echo ${SSH_CONNECTION%% *}"
# Secure Web Access to phpMyAdmin:
Make sure pma.yourdomain.com is added to Let's Encrypt SSL configuration:
https://www.digitalocean.com/community/tutorials/how-to-secure-apache-with-let-s-encrypt-on-ubuntu-16-04
PuTTY => Source Port (local): <local_free_port> - Destination: 127.0.0.1:443 (OR localhost:443) - Local, Auto - Add
C:\Windows\System32\drivers\etc
Notepad - Run As Administrator - open: hosts
127.0.0.1 pma.yourdomain.com
https://pma.yourdomain.com:<local_free_port>/newphpmyadminname/ (HTTPS OK, SSL VPN OK)
https://localhost:<local_free_port>/newphpmyadminname/ (HTTPS ERROR, SSL VPN OK)
# Check to make sure you are on SSH Tunnel
1. Windows - CMD:
ping pma.yourdomain.com
ping www.yourdomain.com
# See PuTTY ports:
netstat -ano |find /i "listening"
2. Test live:
https://pma.yourdomain.com:<local_free_port>/newphpmyadminname/
如果你能做到这一切成功,
you now have your own url path for phpmyadmin,
you denied all access to phpmyadmin except localhost,
you connected to your server with SSH,
you tunneled that connection to a port locally,
you connected to phpmyadmin as if you are on your server,
you have additional SSL conenction (HTTPS) to phpmyadmin in case something leaks or breaks.
Answer 9:
您可以使用下面的命令:
$ grep "phpmyadmin" $path_to_access.log | grep -Po "^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}" | sort | uniq | xargs -I% sudo iptables -A INPUT -s % -j DROP
说明:
确保您的IP不会通过iptables的下降管道前上市!
这将首先找到$ path_to_access.log是有phpMyAdmin在他们的所有行,
然后从行开始用grep出来的IP地址,
然后排序和独特的他们,
然后添加一个规则,把它们在iptables中
同样,刚刚在编辑echo %
在年底,而不是iptables命令,以确保您的IP是不是在那里。 不要无意中禁止与服务器的访问!
限制
您可能需要,如果你在Mac或不使用grep -P任何系统更改命令的grep的一部分。 我不知道如果所有系统与xargs的开始,这样可能需要太安装。 如果你做了很多的bash这是超级有用呢。
文章来源: How to secure phpMyAdmin