我刚刚在Amazon EC2实例上安装了LAMP和Virtualmin。 我的域名映射到外部IP,现在一切正常。 但我觉得这不是很安全。 当我访问我的外部IP时,它只显示与我的域相同的页面。 我应该隐藏它吗? 而当我去mydomain.com/phpmyadmin,PHP页面不运行,它被下载到我的电脑。
当我访问我的外部IP时,它只显示与我的域相同的页面。 我应该隐藏它吗?
你为什么要隐藏它? 知识产权和您的网站是公共信息。 试图隐藏也无法获得安全。
而当我去mydomain.com/phpmyadmin,PHP页面不运行,它被下载到我的电脑。
你是如何安装phpmyadmin的?
这个问题表明,PHP脚本没有configuration为在该虚拟服务器中执行。
如果使用apt-get进行安装,那么Virtualmin默认configuration(尽pipe你会得到一个501错误而不是下载文件)肯定不会工作,因为Virtualmin为所有虚拟服务器设置了suexec。 Suexec是一种安全function,它使脚本作为虚拟服务器帐户的所有者而不是Apache用户来执行。 Debian / Ubuntu apt仓库中的phpmyadmin软件包从默认文档根目录运行,需要以apache用户身份运行。 因此,您需要为要运行它的虚拟服务器禁用suexec,设置虚拟服务器专门用于已禁用suexec的phpmyadmin安装,或者将phpmyadmin安装在所需的虚拟服务器的public_html目录中在该用户下运行并由其拥有。 Suexec 不会运行不属于域所有者或suexec docroot之外的应用程序(并且你的phpmyadmin大概是由apache用户所拥有,并且在suexec docroot之外)。
但是,你的具体问题是php脚本没有被安装在phpmyadmin的位置执行。
至于安全性方面,有三件事情是野外被利用的服务器最常见的来源,并且与您的任何问题都没有关系:
单单这三件事就会阻止我在15年系统pipe理中看到的被利用系统的99%。 安全剧院不要分心,直到你完成了这三件事情,并使他们成为你日常系统pipe理员例程的一部分。 之后,你可以担心所有你想要的其他东西(但它可能不会在你的服务器的安全性担心一堆其他的东西很大的差异)。
编辑主php.ini以确保某些值(例如,在我的virtualmin中,disable_functions默认为空),如果您确实需要安全性并且用户可以活着,那么甚至可能会拒绝php.ini编辑。
如果您对邮件没有任何特殊需求,请完全禁用邮件并使用谷歌应用程序,然后再考虑限制(例如, http : //www.google.com/support/a/bin/answer.py ?answer = 166852 && hl = en )
正如在这里引用 – 我怎样才能防止Virtualmin存储在明文的密码? – 现在可以散列密码,考虑这一点。
请看看Centos专用服务器安全问题
只是谷歌正常良好的安全方法(例如拒绝远程root ssh访问)
对于phpmyadmin问题,可能无法正确安装。 如果服务器未configuration为运行,则会提示您下载代码。 你需要检查你的configuration,或者你可以尝试重新安装phpmyadmin。
为了保证你的web服务器像apache一样,你可以这样做:
应该有更多的事情来检查/做。