我刚刚检查了服务器的服务器/var/log/auth.log
,发现每天每天收到超过500个失败的密码/侵入尝试通知!我的网站很小,URL也不清楚。这正常吗?我应该采取任何措施吗?
我刚刚检查了服务器的服务器/var/log/auth.log
,发现每天每天收到超过500个失败的密码/侵入尝试通知!我的网站很小,URL也不清楚。这正常吗?我应该采取任何措施吗?
Answers:
在当今的互联网上,这很可悲。大量僵尸网络试图登录整个IP网络中找到的每台服务器。通常,他们对知名帐户(例如root或某些应用程序帐户)使用简单的字典攻击。
不能通过Google或DNS条目找到攻击目标,但是攻击者只是尝试在某个子网(例如,已知的根服务器托管公司)中的每个IP地址。因此,URL(因此是DNS条目)相当晦涩,这没关系。
这就是为什么如此重要的原因:
此外,您可以安装fail2ban,它将扫描身份日志,如果它从某个IP找到一定数量的失败登录尝试,它将继续将该IP添加到/etc/hosts.deny
或iptables / netfilter中,以将攻击者锁定几分钟。
除了SSH攻击外,扫描您的Web服务器以查找易受攻击的Web应用程序(某些博客应用程序,CMS,phpmyadmin等)也变得很普遍。因此,请确保也将它们保持最新并进行安全配置!
action.d/iptables.conf
。
几百个就好了...上个月,我发现我的一台服务器尝试了40k次失败。我经历了绘制它们的麻烦:地图
一旦我更改了ssh端口并实施了Port Knocking,该数字便降至0 :-)
grep 'Failed password' /var/log/secure* | grep sshd | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' | sort | uniq
(如果要允许重复,请在最后删除| uniq)。然后,您可以将它们放入CSV并将其上传到zeemaps.com。我见过的最好的地图,然后我的,在那里他们将使用计数彩色地图(绿变红每县尝试的次数),但我还没有想通喷,一出
除了仅允许公共密钥身份验证和禁止root登录之外,我还使用了“ tarpit”。
在netfilter
其中有一个recent
模块,您可以将其与(INPUT
chain)一起使用:
iptables -A INPUT -i if0 -p tcp --dport 22 -m state --state NEW -m recent --set --name tarpit --rsource
iptables -A INPUT -i if0 -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 180 --hitcount 6 --name tarpit --rsource -j DROP
iptables -A INPUT -i if0 -p tcp --dport 22 -j ACCEPT
这样做是因为,recent
使用IP和其他名称的模块以“ tarpit”的名称列出了每次尝试连接到端口22的尝试(如果您很好奇,请参阅/proc/net/xt_recent/tarpit
)。显然,您可以使用其他名称。
要列出或取消列出IP,请使用:
echo "+123.123.123.123" > /proc/net/xt_recent/tarpit
echo "-123.123.123.123" > /proc/net/xt_recent/tarpit
这将尝试的速率限制为300秒内5次。请注意,具有现有连接的用户不会受到该限制的困扰,因为他们已经建立了连接并且可以创建更多的连接(甚至超过速率限制)。
根据自己的喜好调整规则,但请确保按该顺序添加规则(即,添加时按此顺序使用,插入时按相反的顺序使用)。
这极大地降低了噪音。它也提供了实际的安全性(针对暴力破解),这与更改端口的安全性有所不同。但是,如果您的环境可行,我仍然建议您更改端口。它将大大降低噪音水平...
您仍然可以将它与fail2ban结合使用,尽管没有它和上面的规则我一直运行得很好。
编辑:
可以阻止自己这样做,因此您可以添加类似以下内容的内容,以使您可以通过敲击特定端口来清除禁令:
iptables -A INPUT -i if0 -p tcp --dport <knockport> -m state --state NEW -m recent --name tarpit --remove
您可以实现fail2ban或类似的方法,例如将SSH锁定到IP。可悲的是,僵尸程序一直试图强行访问,因此这很正常,您需要确保输入正确的密码。
是的。如今这很正常。
如有可能,请仅出于管理目的使用公钥身份验证。在您的工作站上生成一个私钥:
$ ssh-keygen -t dsa
将〜/ .ssh / id_dsa.pub的内容复制粘贴到服务器〜/ .ssh / authorized_keys(和/root/.ssh/authorized_keys,如果需要直接root登录)。
将服务器/ etc / ssh / sshd_config配置为仅接受公共密钥身份验证:
PubkeyAuthentication yes
PasswordAuthentication no
PermitRootLogin without-password
如果服务器太多,则可以使用Puppet对它们运行公钥和配置。
查看Denyhosts和fail2ban以阻止重复的SSH登录尝试,如果需要完整的IDS / IPS ,请参阅Snort。
使用http://denyhosts.sourceforge.net/
是的,您应该使用公共密钥身份验证并禁用密码身份验证。
尝试是机械化的,所以数字似乎还可以(是的,与某些站点相比,该数字较高,而与其他站点相比,该数字较低)。您应该采取通常必须采取的步骤:即使没有检测到攻击,每天也都将站点视为攻击目标。未检测到攻击,并不表示它不存在。
这很普遍,但这并不意味着您不应该打好仗。以下是一些有关如何使服务器更安全的步骤。
通过在与域名关联的任何IP地址上禁用SSH访问,可以在共享或共置环境中大大减少此数目。未列出的非域IP地址将收到较少的此类流量,因此请购买未列出的IP,并且仅将此IP用于SSH访问。
如果您所在的环境中可以在服务器环境中对私有网络实施IPsec / VPN,那么这是理想的选择。禁用所有SSH Internet访问,确保您具有集成的熄灯解决方案。设置您的VPN,并且仅允许从您的VPN进行SSH访问。
如果不选择VLAN,则将路由器或防火墙规则配置为仅允许来自已知IP地址范围的SSH连接。
如果您按照这些步骤操作,您将在夜晚睡得很香,因为知道有人必须破坏您的托管公司网络才能通过SSH访问服务器。
看到数百个失败的SSH连接很正常。
如果您可以选择,我只需将SSH端口更改为非标准端口即可。它不一定使您的服务器更加安全,但可以确保清理日志(并让您看到有人故意闯入!)
除了使用诸如fail2ban之类的自动锁定机制外,您还有一个选择:实际联系攻击者的滥用地址ISP。这似乎完全是徒劳的,但对于脚本小子来说,他们的ISP更愿意对它们采取行动。
要查找滥用地址,请从arin.net开始,然后使用whois查找IP地址。您可能会被重定向到另一个区域注册表,但最终您可以找到包含该地址的IP块的负责ISP。查找滥用@地址,或仅邮寄技术联系人。
向他们发送带有相关日志文件条目的礼貌消息(确保删除所有私人信息),并要求他们对有问题的主机采取措施。
是的,很正常。我通过小型网站告诉客户您的情况。
随时准备被黑客入侵。
在开发服务器上拥有您网站的副本。这可以是使用XAMPP的Windows桌面,您可以免费获取。
始终对开发服务器进行更改,然后将其上传到实时网站。如果它是像Wordpress这样的CMS,请在开发服务器上发布您的帖子,然后将其复制并粘贴到实时服务器中。
切勿将任何内容从您的实时网站下载到您的开发服务器。
定期监视您的网页,查看是否有未做的更改。具体来说,是指向毒品或“增强”产品的隐藏链接。您可以找到许多浏览器插件和程序来为您完成此任务。
如果您受到损害。通知您的主机,删除所有内容,更改所有密码,然后将干净的开发服务器上传到现在空的Web服务器。与主机一起工作以防止再次发生。
对于小型站点,您不需要安全团队。那就是您的主机应该提供的。如果不这样做,那么在拥有开发服务器而不是尝试移动实时服务器的情况下,获得另一台主机就容易得多。
希望这可以帮助。
停止它的另一种方法(我个人不喜欢移动SSH端口):确定是否能够列出要登录的所有网络,然后仅允许它们访问SSH端口。
本地ISP的WHOIS条目帮助我将攻击减少到一个月1-2次登录尝试(当时大约是每天1k)。我仍然通过使用denyhosts来检测到这些。
除了您已经收到的其他出色建议之外,如果适用于给定服务器,我还喜欢使用AllowUsers指令。这仅允许指定的用户通过SSH登录,这大大降低了通过不安全配置的来宾/服务/系统帐户获得访问权限的可能性。
例:
AllowUsers admin jsmith jdoe
选项AllowUsers指定并控制哪些用户可以访问ssh服务。可以指定多个用户,以空格分隔。
可悲的是,这很正常。您应该考虑在系统中添加诸如fail2ban之类的内容,以自动检测并禁止攻击者。如果您还没有这样做,还应该考虑仅将ssh与公共密钥一起使用,并且不允许通过ssh进行root登录。如果使用ftp将文件传输到系统,请考虑改用scp / sftp。
我曾经pam_abl
临时将暴力暴力者列入黑名单,而且效果很好。我认为在PAM中使用自己的数据库进行授权要好于依赖于hosts.deny
或iptables
。
另一个优点是pam_abl
不依赖于扫描日志文件。