unix – 为什么端口低于1024特权?

我听说这是一个安全功能,但它往往似乎是一个安全问题。如果我想编写一个使用特权端口的服务器,我不仅需要担心我的代码是多么安全,我必须特别担心我是否使用setuid权限和丢弃权限。
真正。但这也意味着任何与你交谈的人都知道你必须具有root权限才能运行该服务器。当您在端口22(例如)上登录到服务器时,您知道您正在与root运行的进程(安全问题除外)进行通信,因此您可以使用该系统的密码或其他信息不信任该系统上有用户帐户的任何人。

参考:http://www.w3.org/Daemon/User/Installation/PrivilegedPorts.html

编辑详细阐述推理:很多最重要的网络服务 – telnet(是的,它仍然使用 – 令人惊讶的是),SSH,许多HTTP服务,FTP等等 – 涉及通过电线发送重要的数据,如密码。在安全设置中,某种加密(无论是协议中固有的(SSH)还是包裹在其中(stunnel,IPSec))保护数据不被窥探,但所有这些保护都在服务器结束。

为了正确保护您的数据,您需要确保您正在与“真实”服务器通信。今天,安全证书是在网络(和其他地方)执行此操作的最重要的方式:您假设只有“真实”服务器可以访问证书,因此如果您验证您正在通话的服务器具有该证书,相信它。

特权端口以非常类似的方式工作:只有root可以访问特权端口,因此如果您正在与特权端口通信,您知道您正在与root通信。这在现代网络上不是非常有用:重要的是服务器的身份,而不是其IP。在其他类型的网络中,情况并非如此:例如,在学术网络中,服务器通常由安全室中受信任的工作人员实际控制,但学生和工作人员可以作为用户完全自由访问。在这种情况下,通常可以安全地假定您可以始终信任root,因此您可以安全地登录并将私有数据发送到特权端口。如果普通用户可以在所有端口上侦听,则需要一个额外的层来验证特定程序是否信任某些数据。

相关文章

用的openwrt路由器,家里宽带申请了动态公网ip,为了方便把2...
#!/bin/bashcommand1&command2&wait从Shell脚本并行...
1.先查出MAMP下面集成的PHP版本cd/Applications/MAMP/bin/ph...
1、先输入locale-a,查看一下现在已安装的语言2、若不存在如...
BashPerlTclsyntaxdiff1.进制数表示Languagebinaryoctalhexa...
正常安装了k8s后,使用kubect工具后接的命令不能直接tab补全...