已经有一个 很大 的 谈论关于相对于一个安全问题cgi.fix_pathinfo与Nginx的(通常是PHP-FPM,快速CGI)使用PHP选项。
结果,默认的 nginx 配置文件曾经说:
# NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
Run Code Online (Sandbox Code Playgroud)
但是,现在,“官方”Nginx wiki声明无需禁用上述 PHP 选项即可正确处理 PATH_INFO。所以呢?
cgi.fix_pathinfo什么的吗?(官方文档只是说:“有关 PATH_INFO 的更多信息,请参阅 CGI 规范”)PATH_INFO和SCRIPT_FILENAME变量做什么?我试图在每一步都理解这个问题。例如,我不明白为什么使用 php-fpm Unix 套接字可以避免这个问题。
当有人描述如何挂载 tmpfs 或 ramfs 时,我经常在网上看到这两个选项。通常也使用 noexec,但我对 nodev 和 nosuid 特别感兴趣。我基本上讨厌在没有真正理解的情况下盲目地重复某人的建议。而且由于我只在网上看到有关此的复制/粘贴说明,因此我在这里询问。
这是来自文档:
nodev - 不要解释文件系统上的块特殊设备。
nosuid - 阻止 suid 和 sgid 位的操作。
但我想要一个实际的解释,如果我把这两个排除在外会发生什么。假设我已经配置了 tmpfs 或 ramfs(没有设置这两个提到的选项),系统上的特定(非 root)用户可以访问(读+写)。该用户可以做什么来损害系统?排除在 ramfs 的情况下消耗所有可用系统内存的情况
我喜欢通过密钥访问服务器的想法,这样我就不必每次ssh进入一个盒子时都输入我的密码,我什至锁定了我的用户(不是root)密码(passwd -l username),所以没有密钥就不可能登录。
但是如果我需要为sudo命令输入密码,所有这些都会中断。所以我很想设置无密码sudo来使事情符合无密码登录。
然而,我一直有一种直觉,它可能会以某种意想不到的方式对我产生适得其反的效果,它似乎有点不安全。这样的设置有什么注意事项吗?您是否建议/不建议为服务器上的用户帐户执行此操作?
澄清
sudo在交互式用户会话中的使用,而不是用于服务或管理脚本sudo有一个超时,在此期间我不必重新输入我的密码。但我的音乐会并不是为了浪费额外的时间来实际输入密码。我的想法是根本不必处理密码,因为我认为:
sudo. 我希望我能避免这种情况。因此,通过这个问题,我想更好地了解一种可能配置相对于其他配置的风险、警告和权衡。
跟进 1
所有的答案都说无密码sudo是不安全的,因为如果我的个人用户帐户受到威胁,它允许“轻松”提升权限。我明白那个。但另一方面,如果我使用密码,我们会承担密码的所有经典风险(太短或太常见的字符串,在不同的服务中重复等)。但是我想如果我禁用密码验证/etc/ssh/sshd_config以便您仍然必须有一个密钥才能登录,我可以使用更简单的密码只是为了sudo更容易输入?这是一个有效的策略吗?
跟进 2
如果我也有root通过 ssh登录的密钥,如果有人可以访问我的计算机并窃取我的密钥(尽管他们仍然受操作系统的密钥环密码保护!),他们也可以直接访问该root帐户,绕过sudo路径。那么访问该root帐户的策略应该是什么?
在阅读有关服务器入侵的这个问题后,我开始想知道为什么人们似乎仍然相信他们可以使用检测/清理工具或仅通过修复用于入侵系统的漏洞来恢复受损系统。
考虑到所有各种 root kit 技术和黑客可以做的其他事情,大多数专家建议您应该重新安装操作系统。
我希望能更好地了解为什么更多的人不只是从轨道上起飞并摧毁该系统。
这里有几点,我希望看到解决。
显然,鉴于我们这里有多少人是系统管理员类型的人,我们在众多系统和帐户中串列了大量密码。其中一些是低优先级的,其他的如果被发现可能会对公司造成严重损害(你不只是喜欢权力吗?)。
简单、容易记住的密码是不可接受的。唯一的选择是复杂、难以记住(和输入)的密码。那么,您使用什么来跟踪密码?您是否使用程序为您加密它们(依次需要另一个密码),或者您是否做一些不那么复杂的事情,例如随身携带的一张纸,还是介于这些选项之间?
我的文件夹中有我的cert.pem和cert.key文件/etc/apache2/ssl。
什么是最安全的权限和所有权:
/etc/apache2/ssl 目录
/etc/apache2/ssl/cert.pem 文件
/etc/apache2/ssl/cert.key 文件
(确保https://访问当然有效:)。
谢谢,
J.P
我为我工作的公司管理一些基于云的 (VPS) 服务器。
服务器是运行 LAMP 堆栈/入站数据收集 (rsync) 位的最小 ubuntu 安装。数据很大但不是个人的、财务的或类似的东西(即不是那么有趣)
显然,在这里人们永远在询问配置防火墙之类的问题。
我使用了很多方法来保护服务器,例如(但不限于)
我有丰富的 unix sys admin 经验。我相信我知道我在我的设置中做什么。我配置 /etc 文件。我从来没有觉得有必要安装防火墙之类的东西:iptables 等。
暂时搁置 VPS 的物理安全问题。
问?我无法决定我是天真还是 fw 可能提供的增量保护值得学习/安装以及服务器上的额外复杂性(包、配置文件、可能的支持等)。
迄今为止(触摸木头)我从未遇到过任何安全问题,但我也不对此自满。
我有一个 Linux 服务器,每当我连接它时,它都会向我显示更改 SSH 主机密钥的消息:
$ ssh root@host1 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@ @警告:远程主机标识已更改!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@ 有人可能正在做一些令人讨厌的事情!现在有人可能正在窃听你(中间人攻击)!也有可能 RSA 主机密钥刚刚被更改。远程主机发送的 RSA 密钥的指纹为 93:a2:1b:1c:5f:3e:68:47:bf:79:56:52:f0:ec:03:6b。请联系您的系统管理员。在 /home/emerson/.ssh/known_hosts 中添加正确的主机密钥以消除此消息。/home/emerson/.ssh/known_hosts:377 中的违规密钥
host1 的 RSA 主机密钥已更改,您已请求严格检查。主机密钥验证失败。
它让我保持登录状态几秒钟,然后关闭连接。
host1:~/.ssh # 从远程主机 host1 读取:对等端的连接重置 与 host1 的连接关闭。
有谁知道发生了什么以及我可以做些什么来解决这个问题?
在我的网站上,我有一个“隐藏”页面,显示最近访问者的列表。这个单一的 PHP 页面根本不存在任何链接,而且理论上只有我知道它的存在。我每天检查它很多次,看看我有什么新的点击。
然而,大约每周一次,我在这个据称是隐藏的页面上从 208.80.194.* 地址得到一个点击(它记录了对自己的点击)。奇怪的是:这个神秘的人/机器人没有访问我网站上的任何其他页面。不是公共 PHP 页面,而只是打印访问者的隐藏页面。它总是单次命中,并且 HTTP_REFERER 为空。其他数据总是一些变化
Mozilla/4.0(兼容;MSIE 7.0;Windows NT 5.1;YPC 3.2.0;FunWebProducts;.NET CLR 1.1.4322;SpamBlockerUtility 4.8.4;yplus 5.1.04b)
...但有时MSIE 6.0不是 7,还有其他各种插件。浏览器每次都不同,就像地址的最低位一样。
仅此而已。每周一次左右,到那一页。这个神秘的访客绝对没有触及其他页面。
whois在那个 IP 地址上做一个显示它来自纽约地区,来自“Websense”ISP。地址的最低 8 位有所不同,但它们始终来自 208.80.194.0 /24子网。
从我用来访问我的网站的大多数计算机中,traceroute对我的服务器执行的操作不包含 IP 为 208.80.* 的路由器。所以这排除了任何类型的 HTTP 嗅探,我可能认为。
这是如何以及为什么发生的?这似乎完全是良性的,但无法解释,有点令人毛骨悚然。
我想我几乎在 CentOS 5.3 系统上完成了 iptables 设置。这是我的脚本...
# Establish a clean slate
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -F # Flush all rules
iptables -X # Delete all chains
# Disable routing. Drop packets if they reach the end of the chain.
iptables -P FORWARD DROP
# Drop all packets with a bad state
iptables -A INPUT -m state --state INVALID -j DROP
# Accept any packets that have something to do with ones …Run Code Online (Sandbox Code Playgroud)