正如标题所述,我有一个 linux 盒子。据我所知,我可以使用 hosts.allow / hosts.deny 或 iptables 来保护。有什么不同?是否有另一种机制可以使用?
我一直在尝试组合一个基本的服务器 iptables 脚本,该脚本适用于大多数使用 HTTP(S) 和 SSH(端口 80、443 和 22)运行基本网络服务器的站点。毕竟,大多数VPS只需要这些起始端口规则,以后可以根据需要添加邮件或游戏端口。
到目前为止,我有以下规则集,我想知道是否有人知道更好的脚本或可以添加的任何改进。
*filter
# Allows all loopback (lo0) traffic and drop all traffic to 127/8 that doesn't use lo0
-A INPUT -i lo -j ACCEPT
-A INPUT ! -i lo -d 127.0.0.0/8 -j REJECT
# Accepts all established inbound connections
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Allows all outbound traffic
# You can modify this to only allow certain traffic
-A OUTPUT -j ACCEPT
# Allows HTTP and HTTPS …Run Code Online (Sandbox Code Playgroud) 我使用的服务器是 Ubuntu 10.10。为了确保安全,我想编辑服务器发送给客户端的横幅。
如果我通过端口 22 telnet 到我的主机,它会告诉我我正在运行的 SSH 的确切版本 (SSH-2.0-OpenSSH_5.3p1 Debian-3ubuntu4)。MySQL 和 Cyrus 的情况相同。
有什么建议?至少对于SSH?
谢谢
一般来说,什么时候应该创建一个新的用户帐户来在服务器上运行一个面向互联网的软件?
例如,假设我使用共享的 Debian 服务器(例如通过 Dreamhost)并且我想使用 WordPress 运行一些网站,一些使用 Redmine,一些使用 Ruby on Rails,也许一些使用 Django,我想为 Mercurial 提供服务存储库也是。
在 Dreamhost 服务器和许多其他类似设置的服务器上,这一切都可以在单个用户帐户下完成,但我可以看到这种方法的一些缺点:
另一方面,拥有大量用户帐户可能会变得有点难以跟踪,特别是如果其中一些在安装软件方面具有相同的要求。例如,为每个运行 WordPress 的网站设置一个帐户可能有点矫枉过正。
最佳做法是什么?这仅仅是一个与偏执程度成比例地减少每个用户帐户的托管站点(或托管存储库等)数量的问题吗?
请发表您对此的看法,并说明理由。
此外,如果您有任何理由认为在私人服务器或 VPS 上采用的方法应该与在共享服务器上采用的方法不同,请概述它们是什么,并再次说明您的理由。
如何不仅通过用户名/密码而且通过客户端证书来限制 (RDP) 对 Windows Server 的访问?
想象一下,创建一个证书并将其复制到我希望能够从中访问服务器的所有计算机。
这不会像基于 IP 的规则那样受到限制,但另一方面会增加一些灵活性,因为并非每台计算机/笔记本电脑都在某个域中或固定 ip 范围。
我想将我的根服务器的访问权限授予外部系统管理员,但我想确保仔细检查他对我的服务器所做的事情,例如复制我不希望他们做的数据等等。我还想跟踪访问的任何文件,即使是只读且未编辑的文件。
我怎样才能做到这一点?
我正在考虑需要公开我的远程桌面服务器(终端服务)以供从我们的网络外部访问。目前,它只能从我们的网络内部访问。
我知道打开防火墙并转发端口很容易。
但是,我如何保护机器本身以及围绕此问题的最佳实践是什么?我担心的是黑客能够入侵它。
任何最佳实践指南/建议将不胜感激。
编辑:
关于我发现的产品的问题:
按 IP、MAC 地址、计算机名称等过滤传入的 RDP 连接
任何人都可以评论这个的安全性吗?看起来我也可以用它来限制机器名称/mac的访问?还有人用过吗?
是否可以通过计算机管理控制台或命令行来确定用户密码何时到期?
注意:我是针对不属于域的服务器问这个问题的。
我有一个通过 ssh 运行的 git 服务器,每个用户在系统上都有一个 unix 帐户。
鉴于两个用户有权访问一个 repo,我如何确定哪个用户执行了哪个提交,因为提交用户名和电子邮件是由 git 客户端提交和控制的。
我担心用户可能会尝试冒充另一个用户,即使他们拥有相同的授权权限。
除了定期的现场备份(保存在防火保险箱中)之外,我们还每月一次将磁带发送到场外,并使用 AES 加密。因此,如果我们的站点有一天被外星热射线蒸发了,我们至少应该有一个最近的备份来恢复。
除了 128 位加密密钥仅存储在现场。因此,在真正发生灾难的情况下,我们实际上会留下一个加密备份,而无法对其进行解密。
问题:异地存储加密密钥的最佳策略是什么?
我们选择的任何方法都需要通过安全审核,所以“在家里保留一份副本”是不够的,而“将其与异地磁带一起保留”显然违背了首先加密它们的目的!我们正在考虑的几个选项包括:
当然,第二个选项带来了另一个问题:我们如何保持该密码的安全。
security ×10
linux ×4
iptables ×2
audit ×1
backup ×1
certificate ×1
encryption ×1
firewall ×1
freebsd ×1
git ×1
rdp ×1
web-server ×1