我有:
请注意:我不想把它变成一场火焰战争!我知道很多人对这个主题有着坚定的信念,这在很大程度上是因为他们在防火墙解决方案上付出了很多努力,也因为他们被灌输了相信自己的必要性的观念。
但是,我正在寻找安全专家的答案。我相信这是一个重要的问题,答案不仅对我自己和我工作的公司有益。我已经运行我们的服务器网络好几年了,没有任何妥协,根本没有任何防火墙。安全无妥协,我们也有可能被防止的防火墙。
我想我在这里工作的时间太长了,因为当我说“服务器”时,我总是指“向公众提供的服务”,而不是“秘密的内部计费数据库”。因此,我们的任何规则将在任何防火墙必须允许访问整个互联网。此外,我们的公共访问服务器都位于与我们办公室分开的专用数据中心。
别人问了类似的问题,我的回答被投为负数。这让我相信,要么投票否决它的人并没有真正理解我的答案,要么我对安全性的了解不足以做我目前正在做的事情。
这是我的服务器安全方法:
在将我的服务器连接到 Internet之前,请遵循我的操作系统的安全指南 。
使用 TCP 包装器将 SSH(和其他管理服务)的访问权限限制为少数 IP 地址。
使用Munin监视此服务器的状态。并修复 Munin-node 在其默认配置中固有的严重安全问题。
Nmap 我的新服务器(也是在将我的服务器连接到 Internet 之前)。如果我要为这台服务器设置防火墙,这应该是传入连接应该被限制到的确切端口集。
将服务器安装在机房,并给它一个公网IP地址。
使用我的操作系统的安全更新功能确保系统安全。
我的理念(以及问题的基础)是基于主机的强大安全性消除了防火墙的必要性。总体安全理念表明,即使您有防火墙,仍然需要基于主机的强大安全性(请参阅安全指南)。这样做的原因是,将公共服务转发到服务器的防火墙可以使攻击者与根本没有防火墙一样多。易受攻击的是服务本身,并且由于向整个 Internet 提供该服务是其运营的要求,因此限制对它的访问并不是重点。
如果是,并非需要由整个互联网的访问,请在服务器上的可用端口,然后该软件需要在步骤1中被关闭,并逐步4.如果验证的攻击者成功打入通过易受攻击的软件服务器并自己打开一个端口,攻击者可以(并且确实)通过在随机端口上建立出站连接来轻松击败任何防火墙。安全的重点不是在成功攻击后保护自己——这已经被证明是不可能的——而是首先将攻击者拒之门外。
有人建议除了开放端口之外还有其他安全考虑因素 - 但对我来说这听起来像是在捍卫自己的信仰。无论是否存在防火墙,任何操作系统/TCP 堆栈漏洞都应该同样容易受到攻击——基于端口被直接转发到该操作系统/TCP 堆栈这一事实。同样,在服务器上运行防火墙而不是在路由器上运行(或者更糟,在两个地方)似乎增加了不必要的复杂层。我理解“安全层出不穷”的理念,但有一点就像通过将 X 层胶合板堆叠在一起然后在所有层上钻孔来建造屋顶一样。另一层胶合板不会阻止通过你的那个洞的泄漏
老实说,我认为防火墙对服务器有任何用处的唯一方法是它是否具有防止已知攻击者与所有服务器的所有连接的动态规则 - 就像垃圾邮件的 RBL(巧合的是,这几乎就是我们的邮件服务器所做的) . 不幸的是,我找不到任何可以做到这一点的防火墙。下一个最好的东西是 IDS 服务器,但它假设攻击者不会首先攻击您的真实服务器,并且攻击者在攻击之前会费心探测您的整个网络。此外,众所周知,这些会产生大量误报。
是否有单行程序可以在 PowerShell 中压缩/解压缩文件 (*.zip)?
我想附加到 OS X 上的全局 PATH 环境变量,以便所有用户 shell 和 GUI 应用程序获得相同的 PATH 环境。
我知道我可以附加到 shell 启动脚本中的路径,但是 GUI 应用程序不会继承这些设置。
到目前为止,我发现的唯一方法是在/etc/launchd.conf 中重新定义 PATH 环境变量:
setenv PATH /usr/bin:/bin:/usr/sbin:/sbin:/my/path
Run Code Online (Sandbox Code Playgroud)
我想不出一种方法来实际附加到 PATH 中的launchd.conf.
我有点担心这种方法,但到目前为止,这是唯一有效的方法。有没有更好的办法?
是否可以在 Linux 中为主机名设置别名?
jmillikin 在各种 Ubuntu 论坛上提出的问题如下:
# Real host # Aliases
realhost fakehost1 fakehost2 fakehost3
Run Code Online (Sandbox Code Playgroud)
有人回答了 ssh,但没有回答 ping 等问题。我的主要目的是将它用作Subversion服务器的别名。就我而言,realhost 位于动态 IP 地址下。因此,“/etc/hosts”别名不起作用。我想访问我的 Subversion 服务器svn://my_svnserver/my_repos而不是
svn://realhost/my_repos.
我正在将我的服务器从美国迁移到英国,从一个数据中心迁移到另一个数据中心。我的主持人说我应该能够达到每秒 11 兆字节。
操作系统为两端的Windows Server 2008。
我的平均文件大小约为 100 MB,数据分布在五个 2 TB 驱动器上。
传输这些文件的推荐方式是什么?
我不太担心安全性,因为无论如何这些都是公共文件,但我只是想要一个可以推动完整 11 MB/s 传输速率以最小化总传输时间的解决方案。
有没有办法在不重启硬件的情况下重启 Linux 系统(尤其是 Debian)?
我有一个 RAID 控制器,它需要一点时间才能在操作系统启动之前自行运行,如果有一种方法可以快速重新启动 Linux 操作系统,而不必经历重新启动 RAID 控制器的整个重新启动过程,我希望它,等等。
我已经阅读了很多关于 RAID 控制器/设置的文章,经常出现的一件事是没有缓存的硬件控制器如何提供与软件 RAID 相同的性能。真的是这样吗?
我一直认为硬件 RAID 卡即使没有缓存也能提供更好的性能。我的意思是,你有专门的硬件来执行任务。如果是这种情况,获得没有缓存的 RAID 卡(例如 LSI 9341-4i 之类的并不便宜)有什么好处。
此外,如果只有缓存才能提高性能,是否有缓存配置可以立即写入磁盘但将数据保留在缓存中以进行读取操作,从而使 BBU 不是优先事项?
配置 Windows 环境以允许我使用 DNS CNAME 来引用服务器需要什么过程?
我想这样做,以便我可以将我的服务器命名为 SRV001,但仍然\\file 指向该服务器,因此当 SRV002 替换它时,我不必更新人们拥有的任何链接,只需更新 DNS CNAME 和每个人将指向新服务器。
有没有我可以用来验证公钥(id_rsa.pub)的命令,只是格式而已。
有时我添加了一个新的换行符,有时文件缺少ssh-rsa前缀,那么是否有一个命令来验证?
linux ×3
alias ×2
raid ×2
compression ×1
debian ×1
file-sharing ×1
firewall ×1
hostname ×1
large-data ×1
lsi ×1
mac-osx ×1
netbios ×1
path ×1
performance ×1
powershell ×1
rsa ×1
security ×1
ssh ×1
ssh-keys ×1
usb ×1
windows ×1
windows-7 ×1