如前所述,X 本质上是一种具有图形显示功能的网络协议。 这带来了一些有趣的用法可能性。 并且还意味着存在固有的安全考虑,就像任何网络环境一样。 如果您曾经连接到互联网,那么您就身处一个非常庞大、充满敌意的网络中 ;-)
X 客户端通过各种网络协议(包括 TCP/IP)连接到 X 服务器。 即使只是本地连接也是如此。 此处的可能用法是在一台计算机上运行应用程序,并在另一台计算机上显示它。 或者,实际上登录到远程系统,并使其显示在您的本地屏幕上,客户端应用程序使用远程系统的 CPU 和 RAM。
如果不采取任何预防措施,这可能会让您很容易受到各种恶作剧和滥用。 例如,任何登录到您系统的人都可以访问您的“显示器”,这意味着如果他们愿意,他们可以看到您在做什么。 值得庆幸的是,最近的大多数 Linux 版本都启用了一些默认的安全预防措施。 但最好自己确保受到保护。
X 网络和安全都在 The Remote X Apps Mini HOWTO 中得到了很好的介绍,因此我们无需在此处尝试重新讨论它。 推荐阅读。 请参阅下面附录的链接部分中的其他参考文献。
一些推荐的预防措施
永远、永远不要以 root 身份运行 X。 以 root 身份登录时,可能发生的糟糕事情的数量会急剧增加。 学习尽可能以普通用户身份运行,仅在需要时才 su 到 root。 这听起来可能像是很多额外的工作(并且起初可能是这样),但是一旦学会了“正确”的做事方式,它很快就会成为第二天性。
来自朋友的一个简短轶事:他有一个客户的新系统停止“工作”。 奇怪的是,他发现整个/dev目录丢失了,他重新安装了它,一切又都好了。 几天后他回来了,发现系统以 root 身份登录到 X,并且有人点击了/dev在文件管理器中,并将其拖到桌面上。 高招!
如果您曾经连接到包含不受信任用户的网络,请务必在您和他们之间设置防火墙。 这对于互联网来说更是如此。 防火墙超出了本文档的范围,但在许多其他地方都有介绍,包括您供应商的网站。http://linuxdoc.org 有几个安全 HOWTO 可以提供帮助。http://linuxsecurity.com/docs/ 是另一个值得一看的好地方。
您可以使用 "-nolisten tcp" 命令行 X 服务器开关禁用 TCP 连接。 但这对本地连接没有帮助。 对于 xinit/startx
exec X :0 -dpi 100 -nolisten tcp |
放置在~/.xserverrc。 对于 xdm,在/usr/lib/X11/xdm/Xservers:
:0 local /usr/X11R6/bin/X :0 -nolisten tcp |