我认为列出您观察到的与系统管理相关的坏习惯会很有趣。例如:
root在服务器上使用虽然我最感兴趣的是安全,但你的坏习惯不一定与安全有关。坏习惯的故事也受到欢迎。
我有一个小的 SVN 服务器,运行 debian 的旧戴尔 optiplex。我对我的服务器没有那么高的要求,因为它只是一个小小的 SVN 服务器......但确实希望它是安全的。
我刚刚将我的服务器更新到更新更好的 optiplex,并开始查看旧服务器。我在遇到问题后将其取下。当我检查日志时,它充满了蛮力尝试,不知何故有人成功进入了我的机器。此人创建了一些名为“knarkgosse”的额外卷,其中包含两个目录“root”和“swap1”之类的。不知道为什么和他们做什么,但肯定希望防止这种情况再次发生。我觉得这有点奇怪,因为我每隔几个月左右就会更改我的密码,而且密码总是随机的字母和数字组合在一起......不容易暴力破解。
我知道我可以阻止 root 登录,并使用 sudoers ......并更改 SSH 端口,但我还能做什么?
所以我有几个问题:
如何在 X 次错误尝试后阻止登录 5 分钟。还是在每次错误尝试后缓慢尝试?
服务器是否可以连接到某种中央黑名单?跟踪“不安全”且永远不应被授予访问权限的 IP 地址的黑名单?
我还能做些什么来将安全应用于我的服务器?
就像我之前说的,我正在运行带有 Apache(www-data 用户问题?)、svn、mysql、php、phpmyadmin、hudson 的 Debian 5。它位于家庭网络上,端口转发为 80、443、8080、8180、23 和 22。
我很好奇。我一直在阅读我们的 ISP 和互联网中间人如何记录和跟踪所有 DNS 请求,基本上在许多日志中留下面包屑痕迹,并且还允许出于广告目的的 DNS 劫持(我在看你 Cox Communications!)。
不管隐私/安全的其他方法如何,我特别想知道是否可以在您自己的本地网络上运行 DNS 服务器,_实际上具有根 DNS 服务器的区域信息(对于 .com、.net、. org) 域。
我知道你可以设置 DNS 基本上只是映射你域中的机器,但是基本上可以请求根 DNS 信息的副本/传输存储在你自己的 DNS 服务器上,这样你就可以绕过去互联网获取 DNS信息在所有网页浏览?
我希望我说清楚了。我不想让我的 DNS 服务器只拥有关于我的内部网络的信息——我希望它拥有大型互联网 DNS 服务器拥有的重复信息,但我希望这些信息位于我的 DNS 服务器本地。
除了 DNS 之外,是否有类似 BGP 区域传输的东西?
更新:是否有任何产品/OSS 软件可以基本上将这些信息从外部 DNS 链中大量“抓取”到本地缓存中,以便在您需要时准备好它们,而不是在您明确请求域记录时缓存它们?
是否值得运行fail2ban、sshdfilter 或类似工具,将尝试登录和登录失败的 IP 地址列入黑名单?
我已经看到有人认为这是“适当保护”服务器上的安全剧院。但是,我觉得这可能会让脚本小子移动到他们列表中的下一个服务器。
假设我的服务器“得到了适当的保护”,而且我并不担心暴力攻击实际上会成功——这些工具是简单地保持我的日志文件干净,还是我在阻止暴力攻击尝试方面获得了任何有价值的好处?
更新:很多关于密码蛮力猜测的评论 - 我确实提到我并不担心这一点。也许我应该更具体地问一下,fail2ban 对于只允许基于密钥的 ssh 登录的服务器是否有任何好处。
使用搜索引擎在 MySQL 和 fail2ban 上搜索互联网会产生很多将您的 fail2ban 日志放入 MySQL 的结果,但是我想监视失败的 MySQL 尝试登录并禁止这些 IP。
我的应用程序要求我保持 MySQL 的端口打开,但我已经更改了默认端口以增加安全性。不过,为了额外的安全性,我想使用 fail2ban 监控 MySQL 日志。
有没有人有为 MySQL 配置 fail2ban 的快速指南?我已经安装了它并且正在处理一些其他服务,因此您可以跳过安装部分并直接跳转到配置配置文件或其他任何必要的内容。
我们目前在 DMZ 中有我们的 Web 服务器。Web 服务器看不到内部网络中的任何内容,但内部网络可以看到 Web 服务器。在 DMZ 和内部网络之间的防火墙上打一个洞到 Intranet 中只有一个 Web 服务器有多安全?我们正在研究一些将与我们的几个后台应用程序(它们都在一台服务器上)交互的东西,如果我们可以直接与保存这些数据的 IBM i 服务器进行通信,那么执行这个项目会容易得多(通过网络服务)。
根据我的理解(而且我不知道品牌),我们为 DMZ 设置了一个防火墙,其外部 IP 与我们使用另一个防火墙的主 IP 不同。另一个防火墙位于 Web 服务器和 Intranet 之间。
所以像:
Web Server <==== Firewall ===== Intranet
| |
| |
Firewall Firewall
| |
| |
Internet IP1 Internet IP2
Run Code Online (Sandbox Code Playgroud) 我希望能够从 php 脚本重新启动服务。在 www-user 帐户下运行。
执行这些操作的首选方式是什么?
我认为我可以使用 que'd 命令创建一个文件,由 CRON 读取,但解决方案很痒。
我在想的是一个在 root 下运行的小服务,允许预定义的“方法”,因此无法执行任意的 root 操作。
有什么工具可以做到这一点吗?
我刚刚学习了这篇关于在 Apache 中设置基于名称的虚拟化的教程,它运行得非常好。
本教程基本上让您将配置文件添加到sites-available被调用的yourdomain.com,然后将其链接到sites-enabled.
默认情况下,apache 在sites-available、default和 中包含两个站点配置文件defualt-ssl。
您应该编辑这些文件还是从sites-enabled目录中删除链接?
在玩弄这个(本地)之后,我意识到默认情况下默认站点指向您的根/var/www目录,因此如果有人直接访问您服务器的 IP,他们是否会看到 中的所有虚拟主机和其他目录/var/www,除非默认的 vhost 配置已更改为指向不同的目录,或从sites-enabled?
我只是想知道如果服务器用于基于名称的虚拟化,默认站点通常会做什么?
对不起,如果我有一些不正确的,因为我对运行自己的网络服务器很陌生。
我用了:
usermod -L myUser
Run Code Online (Sandbox Code Playgroud)
禁用此帐户的密码。假设我不知道密码,我如何检查它是否已被禁用。
根据它放置的手册页!在加密密码的前面,但我也不知道如何检查。
我们正在运行 Jenkins CI。通常我们愿意提供
我们使用Unix 用户/组数据库和基于项目的矩阵授权策略。第 (1) 和 (2) 点效果很好,但我们无法实现 (3)。
我们已经尝试过:
tl;博士
我们想要完全开放(读取)Jenkins CI,其中一些项目完全隐藏/阻止匿名。