随着 Linux 变得越来越普及, 将会变成很有吸引力的目标而吸引怪客集中精神致力於突破它。 随着一次一次的尝试,某些漏洞会被发现,然而 Linux 开放的本质往往使得这些漏洞很快的就被 修补了,而且安全注意通告被广泛地传播, 包括暂时的处理方式或更新软体的指南。 我不会假装是有关安全内容的专家, 但至少我明白这些内容,我相信致力於使某人的系统可能 的安全是战斗的更大一部份。虽然认知及致力於保持安全更新无法保系统的安全措施不会被突破, 但被突破的可能性大为减少。 虽然有些关於安全的外部服务被骇客利用来破解系统 (例如,IMAP daemon 的事件),我相信还有更多, 有决心的骇客可以从内部突破系统。与和外界通讯的少数服务相比,从 shell 可以有成千的指令和公用 程式,他们之中可能有一些漏洞可以被利用来突破安全防护 (我必须承认最近我负责维护的伺服器已经 在外部服务中做一些妥协)。 因为这个原因,即使您认为使用者完全可以信赖不必疑虑让他们存取 shell,我仍建议避免给使用者 shell 帐号除非他们绝对需要。要这麽做是因为怕使用者中有人用了薄弱的密码。一个外来的骇客,利 用这个薄弱的密码找到突破系统的途径,然後利用他们的内部空档找到进一步的弱点。 幸运地,您可以做一些大幅提高 Linux 系统安全的事。管有关系统安全的进一步讨论内容已经超出本 文围,下面清单提供一些您可以加强安全的最重要事项: 升级系统工具,应用软体,及核心 : 目前为止最常见的系统被破解的原因是未保持伺服器处於最新状态。 进行规律的系统核心,工具及公用程式升级将会确保您的系统不会充满已知可以被利用的项目,查看 第4章, 下载及安装 Red Hat 更新程式 一节,以及 第10章,保持系统处於最新状态的策略 Shadow passWords: 您确定应该使用 Shadow password ; 切换到这个密码格式很简单,查看 第6章,Linux 密码及 Shadow 档案格式有关细节 精明的密码管理: 确定密码,特别是您提供存取 shell 的使用者,是很强固而且常更换。同时如果您使用多 伺服器,不要在他们之中使用相同的密码 (如果这样做,万一怪客使用一个发现的密码侵入一部伺服器 ,他 就可以进入所有的)。 使用安全的 shell (ssh): 切换到使用 ``ssh'' 取代 ``telnet''。 Telnet 因为两个原因不安全 : 第一 , session 未加密,表示所有东西,包括使用者名称及密码,以一般文字模式传送。 第二,一个开放的 telnet port 是骇客第一个连接的 port 之一。 Ssh 提供了加密及压缩的连接,并且提供实质上比 telnet 更安全的连结。您可以在 Linux下当作 ssh 伺服端 (允许进入的安全连结)以及客户端 (送出安全的连结)。您可以找到二进位 RPM 套件,位於 ftp://ftp.replay.com/pub/replay/redhat/i386/。您会需要下面的档案 (在您阅读的时候可能有较新的版本): ssh-1.2.27-5i.i386.rpm 基本套件 ssh-clients-1.2.27-5i.i386.rpm 送出连结的客户端 ssh-extras-1.2.27-5i.i386.rpm 一些便利的 perl script ssh-server-1.2.27-5i.i386.rpm 接收连结的伺服端 注意: 上面所列的 SSH RPM 档是国际版本。 如果您住在美国或加拿大,您可以显择下载 U.S. 套件 (可能有较强的加密演算法); 这些套件在版本编号後有 ``us'' 取代 ``i'' 字尾。根据美国的法律, 输出强大的加密产品到美国或加拿大以外的地方是不合法的。希望有一天美国政府及司法会移去这个 限制 (Red Hat 因为这原因在他们发行版中不包括 SSH ) 您的 Windows 用户会因为无法再连接到您的系统而拿枪对着你,他们也会因为有一些免费给 Windows 用的用户端软体而感到高兴: “TeraTerm PRo” 用户端软体 http://hp.vector.co.jp/authors/VA002416/teraterm.html “TTSSH” 用户端软体 http://www.zip.com.au/~roca/download.html “Cryptlib” 用户端软体 http://www.doc.ic.ac.uk/~ci2/ssh “Putty” 用户端软体 http://www.chiark.greenend.org.uk/~sgtatham/putty.html 注意: 如果确定要切换到 ssh,确定您在所有的伺服器上安装使用。五部伺服器中让一部不安全只是浪费 时间,特别当您在所有的伺服器使用相同的密码时。 限制存取外部主机: 下一步您应该编辑 ``/etc/hosts.allow'' 以及``/etc/hosts.deny'' 档限制存取外部 主机的服务。这里是如何限制 telnet 及 ftp 存取的例。 首先,``/etc/hosts.allow'' 档: # hosts.allow in.telnetd: 123.12.41., 126.27.18., .mydomain.name, .another.name in.ftpd: 123.12.41., 126.27.18., .mydomain.name, .another.name 上面会允许位於 IP class C 的 123.12.41.* 及 126.27.18.* 任何的主机,以及位於 mydomain.name 及 another.name 网域的主机进行 telnet 及 ftp 连结。 下一步, ``/etc/hosts.deny'' 档: # hosts.deny in.telnetd: ALL in.ftpd: ALL 关闭及解安装不需要的服务: 编辑您的 ``/etc/inetd.conf'' 档,而且 disable (亦即 .加上 ``#'' 符号 注释) 任何不需要的服务 (如果您依照上面的建议使用 ssh,您应该关闭 ``telnet'' 服务)。当您做好後。 以 root 身分键入 ``/etc/rc.d/init.d/inet restart'' 重新启动 inetd daemon 进行变更。 安装安全侦测系统: 考虑安装安全程式,像是 ``Tripwire'' (查看 http://www.tripwiresecurity.com/) 可以侦测入侵,以及 ``Abacus Sentry'' (查看 http://www.psionic.com/abacus/) 可以帮助避免他们。 要勤劳: 注意您的系统, 随时进行安全稽核 (可以只是简单检查可疑的密码档进入,查看您的行程表,检查 log 档中可疑的项目) 可以长久地致力於保持系统安全。此外,报告任何入侵的企图到适当的层级 -- 这 样做可能很麻烦,特别是当您的系统一个月中遇到好几次这种攻击, 但这种报告确保骇客会因为惩罚的威 胁而受到吓阻,以及确保其他系统(他们可能已经让步了) 保持安全。 假设您使用``RPM''公用程式安装及升级您的系统工具及应用软体,您可以利用下面的指令查核他们是否完 整: rpm --verify -a > /tmp/rpm-audit.txt 上面的指令会检查系统 RPM 资料库的相关档案资料,并且指示哪些档案已经被修改了,显示 '5'。这里是一 些审核资料的输出例 : S.5....T /bin/ls S.5....T /usr/bin/du ......G. /dev/tty5 .....U.. /dev/vcs5 .....U.. /dev/vcsa5 S.5....T c /etc/lynx.cfg S.5....T c /etc/sendmail.cf 在上面的输出例,您可以看到七个档案的列表,其中四个档案被修改过了。现在,明显地如果您已经完全 自订过您的系统,可能有一些档案,或很多档案被修改过了。从 /etc/lynx.cfg 及 /etc/sendmail.cf 档的 简单核对,也许从是目视或从备份,可能会显示出您在系统上所做过的正当组态变更。 然而,上面例告知,有两个变更过的档案是二进位的可执行档。有可能这两个二进位档 ``ls'' 指令以 及 ``du'' 指令, 事实上是骇客所安装具有恶毒意图的特落伊档 ( 将``diff'' 指令用在任何从备份或 RPM 回存的档案上可能会显示出档案大小或其他不同点 ; 作为特落伊程式的进一步据.) (更多有关 ``RPM''的资料,查看 第10章,使用 Red Hat 套件管理程式 (RPM) 一节.) 更多有关安全议题的资讯,一本很棒的书名叫“Securing RedHat 5.x”,文件位於 http://redhat-security.ens.utulsa.edu/。一个有关 Linux 保密及相关软体的很好来源, 位在 http://replay.com/redhat/. |
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.