鉴于最近的远程PHP攻击,我决定更新我管理的几台服务器以确保它们不会受到攻击。在每种情况下,我一直在使用手动编译的PHP构建,但决定我最近太忙了,无法尝试维护更新—所以我决定安装ZendServer。我在我的笔记本电脑上使用ZendServerCE,甚至在任何最初的私人测试版之前,我都非常满意它——我现在只在需要测试特定PHP版本时编译。
不过,有一件让我一直不高兴的事情是,默认情况下ZendServer通过HTTP和HTTPS公开其管理GUI。考虑到密码可以让您访问很多敏感配置,我希望它被加密。
ZendServerGUI在lighttpd实例上运行,这意味着您可以通过lighttpd配置对GUI的访问;事实上,文档甚至详细介绍了一些保护它的方法。然而,建议是通过IP地址进行限制——如果你有一个固定的IP,这是很好的,是唯一访问管理员的人,或者从不访问,比如说,你的手机,但如果其中任何一个不是真的,就不是很有用。
不过,在Shahar的帮助下,我想出了该怎么做。我将此子句添加到我的lighttpd.conf
[1]文件中:
# Disable access via http (i.e., make admin https-only) $SERVER["socket"] == ":10081" { $HTTP["remoteip"] !~ "127.0.0.1" { $HTTP["url"] =~ "^/ZendServer/" { url.access-deny = ( "" ) } } }
以上内容基本如下:
-
如果请求来自端口10081(ZendServer管理员的默认HTTP端口)
-
并且远程地址不是localhost(IP
127.0.0.1
): -
拒绝访问任何以“/ZendServer/”开头的URL
添加节后,重新启动lighttpd[2]以使更改生效。当通过http://servername:10081/ZendServer
访问站点时,您现在应该会收到一个“403-Forbidden”页面,而通过https://servername:10082/ZendServer保持打开状态。
- 1在ZendServer的linux版本中,
/usr/local/zend/gui/lighttpd/etc/lighttpd.conf
- 2在ZendServer的linux版本中,
/usr/local/zend/bin/zendctl.shrestart-lighttpd
/李>