我计划很快购买一台服务器。我希望服务器尽可能安全,只打开 POP3、SMTP、SSH 和 HTTP。我知道如何编写 iptables 脚本以仅允许这些连接并丢弃其他所有连接,但我不知道如何防止攻击。
有没有可以应对尽可能多的不同攻击的示例脚本(阻止并记录)?一个可以阻止 DDoS 攻击(SYN 洪水、ICMP 洪水等)、端口扫描、暴力攻击等的脚本。一切(或尽可能接近)
答案1
安全就像洋葱,由多层组成。我将列出几个有用的组件。
失败2ban帮助您阻止和记录各种攻击,从 ssh 暴力攻击到 Apache 攻击到垃圾邮件发送者。
Apache 的 mod_security是 Apache 的重量级安全附加组件。它可以拒绝来自已知黑名单 IP 地址的请求,可以检测 SQL 注入尝试,以及许多其他攻击。
苏霍辛帮助您相当程度地保护 PHP。
SELinux或者grsecurity可以通过强化操作系统为您提供额外的保护。借助这些安全框架,某些应用程序中的漏洞可能会限制损害,甚至阻止某人获得 root 访问权限。
答案2
除了前面的建议之外,我建议你看看操作系统安全评估中心,这是一个相当不错的 IDS。它会阻止试图暴力破解你服务器的人,并在发生事件时向你发送电子邮件。它还会跟踪某些文件的哈希值,这样你就可以知道是否有可疑的内容被编辑了。我还写了一篇关于如何在我的博客。
答案3
类似这样的内容可以回答你的第一个问题:
iptables -p INPUT DROP
iptables -p OUTPUT DROP
iptables -p FORWARD DROP
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 110 -j ACCEPT
iptables -A INPUT -p tcp --dport 25 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
如果您还想要 IMAP 及其安全(SSL/TLS)版本,请添加以下规则:
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -p tcp --dport 143 -j ACCEPT
iptables -A INPUT -p tcp --dport 993 -j ACCEPT
iptables -A INPUT -p tcp --dport 995 -j ACCEPT
iptables -A INPUT -p tcp --dport 465 -j ACCEPT