我想在我的Linux服务器上安装一个Web应用程序:我将首先向您解释Web应用程序的function,然后我会告诉您为了保护我的全新Linux系统,我做了些什么。
该应用程序将是一个分类广告网站(如gumtree.co.uk),用户可以出售他们的项目, 上传图像 , 发送和接收来自pipe理员的电子邮件 。 它将使用一些页面的SSL 。 我将需要SSH 。
到目前为止,我所做的确保我的股票Ubuntu(最新版本)如下:
注:我可能做了一些事情,将阻止应用程序完成所有任务,所以请让我知道这一点。 我的机器的唯一目的是托pipe网站。
(我把数字作为项目符号,所以你可以更容易地引用它们)
1)防火墙
我安装了简单的防火墙。 在默认情况下拒绝IN和OUT
规则:允许IN和OUT:HTTP,IMAP,POP3,SMTP,SSH,UDP端口53(DNS),UDP端口123(SNTP),SSL,端口443
(我不允许的是FTP,NFS,Samba,VNC,CUPS)
当我安装MySQL和Apache时,我将打开端口3306 IN&OUT。
2)确保分区
在/etc/fstab ,我在结尾添加了以下行:
tmpfs /dev/shm tmpfs defaults,rw 0 0
然后在控制台中: mount -o remount /dev/shm
3)保护内核
在文件/etc/sysctl.conf ,有几个不同的filter可以取消注释。 我不知道哪一个与networking应用程序托pipe有关。 我应该激活哪一个? 他们是以下几点:
A)打开所有接口中的源地址validation以防止欺骗攻击B)取消注释下一行以启用IPv4的数据包转发C)取消注释下一行以启用IPv6数据包转发D)不接受ICMPredirect(我们不是路由器) E)接受ICMPredirect只为我们的默认网关列表中列出的网关F)不发送ICMPredirectG)不接受IP源路由数据包(我们不是路由器) H)日志火星数据包
4)configurationpasswd文件
除了用户帐号和root帐号,用“false”replace所有帐号的“sh”。 我也为sshd账户做了这个。 我不确定是否会阻止SSH连接(我想使用)还是其他的东西。
5)configuration影子文件
在控制台中: passwd -llocking除用户帐户以外的所有帐户。
6)安装rkhunter和chkrootkit
7)安装Bum
禁用这些服务:“高性能邮件服务器”,“ 无法读取 (kerneloops)”,“ 不可读 (语音调度程序)”,“恢复DNS”(这个应该留下吗?)
8)安装Apparmor_profiles
9)安装clamav&freshclam(防病毒和更新)
我做错了什么,我该怎么做才能保护这台Linux机器?
非常感谢
你说的
我的机器的唯一目的是托pipe网站
但是你打开“IMAP,POP3”的端口。 那些运行网站的必要吗? 或者这也是一个邮件服务器。
忘记工具像rkhunter,他们充满了假阳性和假阴性。 他们寻找像“一个文件意外改变,包含一些已知的rootkit的小子集”,当“文件意外改变”应该足够的报警。 samhain是在文件更改时收到警报的好工具。
当你应该升级一个安全补丁包时,你将如何得到警报? 不要依靠这里的人来看邮件列表,或者定期检查。 你想要的东西,将积极的人员,直到安全更新执行。 icinga或nagios或类似的东西可以在这里帮助。
不允许通过ssh进行密码login。 让人们使用钥匙。 如果你让他们使用密码,他们会select不好的密码。
除了通过检测ssh bruteforce尝试来帮助确保安全, fail2ban可以configuration为帮助您的应用程序的安全性。 如果有人试图强制其他用户的密码,可以捕获它。
你可以走得更远,“安全fstab”。 / home需要exec吗? 用户是否需要readrwite? 或只读,直到你正在升级。
考虑使用诸如logwatch或logcheck之类的东西来清理系统日志文件和电子邮件pipe理员,并使用有趣的日志事件。 两者都需要大量的调整,以便它们不会成为电子邮件,每个人都很快被忽视,因为他们通常只是充满平庸的信息。
就部署而言,您看起来在安全性方面已经相当完善。 因此,下一步是考虑如何将您的安全操作维护到您在部署中build立的相同标准。
这包括:
所有这些都具有良好的运营策略 ,以维护您在部署期间build立的安全。 我可能会扩大你的问题的范围,并不意味着要提出这个问题,好像你没有想过这个,但是也许这有助于build立一个框架让你思考下一个步骤。
过去我曾经使用过一个叫Bastille的系统,可能值得一看。
安装sshgaurd来帮助抵御powershell攻击,并禁用sshd中的密码login。 只对sshd使用pubkey身份validation,因为他们使暴力攻击更不实际。