我在Amazon EC2实例上使用了Ubuntu 12.04,并且在系统pipe理员身上是新的。 我正在做一个自己的小项目,我已经开始被僵尸程序(至less我希望它们是僵尸)。
我正在使用PHP,并在我的错误日志中,我注意到w00tw00t romanian anti-sec和/w00tw00t.at.blackhats.romanian.anti-sec: 我GOOGLE了,我发现了几个结果,如这个和这两个说明它最有可能只是一些机器人。 他们正在寻找PHPMyAdmin,PMA,MyAdmin的变体。 从我可以告诉,他们没有发现任何东西,只有一些404错误。 至于PHPMyAdmin去,我使用一个别名,我有访问限制到几个IP地址。
目前我运行UFW,我有这些规则
To Action From -- ------ ---- 80 ALLOW Anywhere 443 ALLOW Anywhere 22 ALLOW MY.IP.ADDRESS1 22 ALLOW MY.IP.ADDRESS2 22 ALLOW MY.IP.ADDRESS3 80 ALLOW Anywhere (v6) 443 ALLOW Anywhere (v6)
我在UFW上看到的所有教程只是说如何设置它,而不是configuration本身的build议。 基本上我使用SFTP和SSH(使用密钥对)在我的服务器上工作。 有什么规则是我必须有的吗?
我不明白你将如何使用UFW来避免这些types的攻击。
如果除了80/443之外的所有东西都被拒绝访问,并且你只为ssh访问指定了一些特定的IP,那么问题在于你的应用程序,而不是networkingconfiguration。
在这种情况下,甚至不要触及防火墙规则。
你需要保护自己:
为了进一步提高您的服务器安全性,您可以使Apache运行chroot,以便通过虚拟层将其与核心系统分离。
你也可以实现FIM(文件完整性pipe理),以确保不会改变的文件不会被改变(例如:apache / phpconfiguration文件)
或者你可以编写一个脚本来loggingroot / apache运行的所有命令,并定期通过电子邮件发送出去。
像这样的事情是你一旦build立防火墙(你已经完成)应该看的东西,
保护自己免受控制面板扫描的最好办法是不要运行网页控制面板。 如果你能避免这样做,你完全可以忽略这些攻击。
另一件可以保护自己免受常见攻击的方法是设置一个VPN,并将对pipe理服务(SSH,控制面板等)的访问限制在该VPN上的IP地址上。 使用防火墙确保这些stream量实际上来自VPN,并且不被欺骗(例如,丢弃来自WAN的VPN接口的stream量限制)。
如果你使用强密码,保持你的应用程序是最新的,使用最less特权的用户守护进程,并遵循这样的最佳实践,你根本无需担心这些types的自动攻击。
请记住,没有一套神奇的防火墙规则,防火墙不能保护你免受很多事情的影响。 它们被devise用来保持公共广域网的“内部”服务(请参阅我关于VPN的观点),并且可以使用它们来丢弃某些types的stream量,否则这些stream量会违反安全边界,但是它们不适用于应用程序层,您不能使用它来保护您的Web应用程序。
所有看到日志中的stream量都意味着你所看到的:你被带来某种脚本的探索。 我不会做这么大的事情,但如果你真的担心,那么使用iptables & ufw不会真的有帮助。
由于您似乎正在运行Web服务器,我build议使用ModSecurity 。
Ubuntu有一个ModSecurity的回购软件包,但是它的核心规则集(CRS)已经过时了。 所以我会build议在这里下载 。
这导致我们下降了一个兔子洞:ModSecurity不是很容易设置为新手。 我已经做了很多次了,但即使在运行时也有一些问题需要注意。 就像事件一样,由于ModSecurity运行启发式监控networkingstream量,所以有时您的Web服务器上的预期行为将因为“误报”而被阻止。
这就是说,你可能正处于一个你真的不需要担心任何事情的场景。 Web服务器和每个服务器都会一直被扫描。 根据您使用该服务器所做的工作,最好的和最真实的安全性是确保您的前置应用程序是安全的。 如果你正在编写你自己的PHP代码库,那么你几乎可以确信你是安全的。
如果您使用的是一些现成的软件,如WordPress或Joomla!,我最好的build议是这样做:只需将Apache Web授权密码放置在CMS的pipe理URL /path上即可。 严重的是,这是最好的安全措施之一。 探测网站的脚本一般会在脚本(PHP,Perl,Ruby等)编码中寻找缺陷,但通过放置一个Apaccenetworking授权密码,你几乎已经阻止了很大一部分脚本。 这种方法的缺点是现在你必须记住CMS的密码以及Apache的密码,但这与你的系统受到攻击相比,这是一个微不足道的麻烦。