再说一遍, 我们都犯错了 ,而我刚刚犯了一个错误 。 简单的历史logging:当我注意到一些奇怪的行为时,我在租用的VPS(Debian)上做了一些事情。 使用netstat命令,我看到一个通过SSH的非授权连接。 我不知道该怎么做,所以我决定使用iptablesclosures他的连接: iptables -A INPUT -p tcp –dport ssh -s IP -j DROP 但是我累了,我写了 iptables -A INPUT -p tcp –dport ssh -j DROP 我踢了自己(和其他人) 我该如何解决?
我有什么理由要这么做 iptables -A INPUT -j REJECT 代替 iptables -A INPUT -j DROP
我正在安装直接连接到Internet的Debian服务器。 显然我想尽可能保证安全。 我希望你们/女士join你的想法来保护它,以及你使用什么程序。 我希望这个问题的一部分能够涵盖你作为防火墙使用什么? 只是手动configurationiptables或你使用某种软件来帮助你? 什么是最好的方法? 阻止一切,只允许需要什么? 有没有可能为这个主题的初学者提供很好的教程? 你改变你的SSH端口? 你使用类似Fail2Ban的软件来防止暴力攻击吗?
需要打开哪些防火墙端口才能访问外部git存储库?
在Windows平台上,我必须检查本地计算机上的端口(例如3306)(如localhost )上的本地选项是否被阻止?
请注意:我没有兴趣把它变成一场火焰战争! 我知道很多人对这个问题持有强烈的信念,其中很大一部分是因为他们在防火墙解决scheme上付出了很多的努力,也因为他们已经灌输了相信他们的必要性。 但是,我正在寻找安全专家的答案。 我相信这是一个重要的问题,答案不仅仅是我自己和我工作的公司。 我一直在运行我们的服务器networking几年没有妥协,没有任何防火墙。 我们所拥有的安全妥协都不能通过防火墙来防止。 我想我在这里工作太久了,因为当我说“服务器”时,我一直是指“提供给公众的服务”,而不是“秘密的内部计费数据库”。 因此,任何防火墙的规则都必须允许访问整个互联网。 另外,我们的公共访问服务器都在独立于我们办公室的专用数据中心。 其他人问了一个类似的问题,我的答案被投入负数。 这使我相信,投票的人不是真正理解我的答案,或者我不了解安全性,足以做我现在正在做的事情。 这是我的服务器安全方法: 在将我的服务器连接到Internet 之前,请遵循我的操作系统的安全指南 。 使用TCP包装器将对SSH(和其他pipe理服务)的访问限制为less量的IP地址。 用Munin监视这个服务器的状态。 并修复默认configuration中Munin-node固有的极端安全问题。 Nmap我的新服务器(也将我的服务器连接到Internet之前)。 如果我要防火墙这个服务器,这应该是传入连接应该限制到的端口的确切集合。 在服务器房间安装服务器,并给它一个公共IP地址。 使用我的操作系统的安全更新function保证系统的安全。 我的哲学(和问题的基础)是强大的基于主机的安全性消除了防火墙的必要性。 总体安全理念指出,即使您有防火墙,仍然需要强大的基于主机的安全性(请参阅安全指导原则 )。 这样做的原因是,将公共服务转发到服务器的防火墙使攻击者可以根本就没有防火墙。 服务本身是脆弱的,而且由于向整个互联网提供服务是其运营的一个要求,限制访问它并不是重点。 如果服务器上有不需要整个Internet访问的端口,则需要在步骤1中closures该软件,并通过步骤4进行validation。如果攻击者通过易受攻击的软件成功入侵服务器并自己打开一个端口,攻击者可以(也可以)通过在一个随机端口上build立一个出站连接来轻松击败任何防火墙。 安全的关键不是在成功的攻击之后为自己辩护 – 这已经被certificate是不可能的 – 那就是把攻击者放在首位。 有人build议,除开放端口之外,还有其他的安全考虑 – 但对我来说,这听起来像是捍卫自己的信仰。 无论是否存在防火墙,任何操作系统/ TCP堆栈漏洞都应该同样易受攻击 – 基于端口直接转发到该操作系统/ TCP堆栈的事实。 同样,在服务器本身上运行防火墙,而不是在路由器上(或者更糟糕的是,在两个地方)运行防火墙似乎会增加不必要的复杂层次。 我了解“安全层出不穷”的理念,但是有一个问题就像build造一个屋顶,把多个胶合板层叠在一起,然后在它们上面钻一个洞。 另一层胶合板不会阻止你故意制造的漏洞。 说实话,我认为防火墙只能用于服务器,如果它有dynamic的规则阻止所有服务器连接到已知的攻击者 – 比如垃圾邮件的RBL(这恰好与我们的邮件服务器差不多) 。 不幸的是,我找不到任何防火墙。 第二好的是IDS服务器,但是假设攻击者不首先攻击你的真实服务器,而攻击者在攻击之前费力地探测你的整个networking。 此外,这些已知会产生大量的误报。
我在服务器上使用Fail2Ban,我想知道如何正确解除IP。 我知道我可以直接使用IPTables: iptables -D fail2ban-ssh <number> 但是有没有办法与fail2ban-client做到这一点? 在手册中,它指出类似于: fail2ban-client get ssh actionunban <IP> 。 但是这不起作用。 此外,我不想/etc/init.d/fail2ban restart因为这将失去列表中的所有禁令。
我刚刚检查了我的服务器的/var/log/auth.log ,发现我每天收到超过500次失败的密码/闯入尝试通知! 我的网站很小,而且它的url很模糊。 这是正常的吗? 我应该采取什么措施?