我不希望任何人能够从互联网上检测到我正在使用 NGINX 甚至 Ubuntu。有一些工具(例如 BuiltWith)可以扫描服务器以检测它们正在使用哪些工具。此外,一些破解工具可能有助于检测。我可以从外部隐藏所有这些信息的最佳/最接近的方法是什么?
我之所以要这样做,是因为用户使用 JavaScript 针对我们的 API 进行开发,并且一些开发人员搞砸了并导致访问者使用 AJAX 请求猛烈抨击服务器。发生这种情况时,我希望能够将 API 请求限制为每分钟 50 个请求,或者类似的效果。
注意:(特别是数据库密集型资源,所以可能在路径级别,而不是服务器范围内(例如,节流“/json_api/”,但不是“/static/”)。
我经常登录我的 Ubuntu 12.04.2 服务器(使用 Postgres 9.2.4 运行实时生产数据)并看到类似于:
4 packages can be updated.
4 updates are security updates.
Run Code Online (Sandbox Code Playgroud)
当然,这种情况每隔几天就会发生一次。我对自动更新不感兴趣(我睡着时可以更改的东西越少越好),但我有兴趣始终保持服务器最新,所以我的问题是:当我看到诸如也就是说,运行是否总是被认为是安全的apt-get upgrade,或者有时它会破坏事物。我知道补丁并不总是完美的(因此在标题中引用了“总是”),但作为一般规则,运行它是否被认为是安全的(尤其是考虑到这是一个数据库服务器,而不是仅通过 Nginx 提供 CSS 文件的东西)?
*已解决 - 请参阅这篇文章的底部 *
所以这里的问题是我几天来一直在尝试设置域密钥。我过去成功地做到了,但这次我无法让它发挥作用。
现在,我目前遇到的问题是,当我尝试在 DNS 记录中查找域密钥时,什么也没有出现。例如,当我去 protodave 并在我的域中搜索我的选择器(默认)时,我得到的是:
DNS QUERY: default._domainkey.palabama.com
QUERY STATUS: No DNS TXT Record found
TXT RECORD:
Run Code Online (Sandbox Code Playgroud)
当我尝试挖掘记录时,我没有得到答案部分。
当我去 DKIMcore 时,我得到以下信息:
This is not a good DKIM key record. You should fix the errors shown in red.
DNS query failed for 'default._domainkey.palabama.com':NOERROR
A public-key (p=) is required
Run Code Online (Sandbox Code Playgroud)
事情是,我已经在我的注册商的 DNS 上设置了 DK,这是分配的 dns (namecheap)。
经过几次不同的尝试,这是我在 namecheap 上的设置
default._domainkey.mail.palabama.com. TXT v=DKIM1; g=*; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC0kOjYjN2gAfTuQgsyS/rGUcMbZ3zg5Pf5pHyN735OufSnkLbpYgnDJcIyQTjhbeGBPoPwlvL1fOa1/TOsp2vT9fFIFtgGXg8yVpSKrttdOCX7a3CYkQIO4WQU+2MAzT+Z3IBroTBDmjS61fhRSyoUlPBhUYTECodVu3GENkoLUQIDAQAB
default._domainkey.palabama.com. TXT v=DKIM1; g=*; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC0kOjYjN2gAfTuQgsyS/rGUcMbZ3zg5Pf5pHyN735OufSnkLbpYgnDJcIyQTjhbeGBPoPwlvL1fOa1/TOsp2vT9fFIFtgGXg8yVpSKrttdOCX7a3CYkQIO4WQU+2MAzT+Z3IBroTBDmjS61fhRSyoUlPBhUYTECodVu3GENkoLUQIDAQAB
Run Code Online (Sandbox Code Playgroud)
我扔了那个mail.palabama.com。记录在想也许,因为我的 MX 记录设置为 mail.palabama.com。它会有所帮助,最初该行不在 DNS 中,并且没有任何改变。
当我在 …
我确定这是一个非常基本的问题,但我只是想了解运行基于 Rails 的站点的 Ubuntu Hardy 服务器发生了什么。似乎我有可用内存,但系统报告它仍在交换内存(除非我读错了?)。
这是free -m输出
total used free shared buffers cached
Mem: 1024 905 118 0 33 409
-/+ buffers/cache: 462 561
Swap: 2047 95 1952
Run Code Online (Sandbox Code Playgroud)
任何人都可以向我解释一些可能的原因,即它始终保持 95MB 的交换空间(它永远不会更少)?我只是在寻找一些关于我可以检查的内容的线索,这些线索会向我确切地解释 Linux 中如何利用内存。
包管理器Homebrew(我在 OS X 上,但我对基于 Unix 的安全性一般很好奇,因为它与目录权限有关)将所有者设置/usr/local/bin为我的用户(root默认情况下,对吗?),这意味着现在我可以通过简单地将它们移动到/usr/local/bin(sudo不需要)来安装可执行文件。
/usr/local/bin归root?/usr/local/bin与您的普通用户交流是不是一个巨大的安全问题,因为现在我运行的任何软件都可以代表我安装程序而无需我的密码?我正准备开始使用 PGBouncer,但我不确定是否应该在我的数据库服务器或应用程序服务器上使用它。如果它在应用程序服务器上,则必然有多个连接池,而不是一个中央连接池供应用程序服务器共享,但随后必须为每个新查询重新创建 TCP 连接,而不是也被池化,大概。哪个是使用像 PGBouncer 这样的连接查看器的“正确”方法,我对每个的观点是否有效?
对于那些偶然发现这个问题的人,请参阅PgBouncer 常见问题解答(最后一个问题)。
请注意,由于网络安全相关问题,我无法在负载平衡器上使用 SSL 终止。
我得到的客户端 IP 当然是负载均衡器的 IP。我知道负载平衡器在没有我的密钥的情况下无法修改 HTTPS 消息,但是在使用 SSL 进行负载平衡时是否有另一种方法来获取客户端 IP 地址,例如可能只是在 TCP 级别进行负载平衡,或者其他什么?
我在以下内容中看到很多/var/log/syslog:
Jun 21 14:36:15 my-server kernel: [416219.080061] iptables denied: IN=eth0 OUT= MAC=ff:ff:ff:ff:ff:ff:the-mac-address:08:00 SRC=0.0.0.0 DST=255.255.255.255 LEN=328 TOS=0x00 PREC=0x00 TTL=128 ID=10081 PROTO=UDP SPT=68 DPT=67 LEN=308
Run Code Online (Sandbox Code Playgroud)
这似乎几乎每分钟都在发生。这只是我的服务器试图广播某些东西而我自己的 iptables 拒绝它发生吗?如果是这样,什么样的服务可能会做这样的事情,我应该允许吗?我在 Ubuntu 12.04.2 上运行 Postgres 9.2.4,除了基本的预安装包之外,基本上没有其他服务。
我一直想知道sudo reboot运行 Postgres(即 9.2.4)的服务器是否会(或肯定会)导致数据丢失或其他问题(例如,无法在系统启动时再次启动服务器)。或者,确实reboot向进程发送适当的信号以允许它们正确关闭(例如,包括允许完成事务等)。
ubuntu ×4
nginx ×2
postgresql ×2
apt ×1
database ×1
dkim ×1
http-headers ×1
iptables ×1
mac-osx ×1
memory ×1
security ×1
ssl ×1
swap ×1
syslog ×1
throttling ×1
ubuntu-12.04 ×1
update ×1