解读黑客入侵你Linux服务器的一万种玩法( 二 )


su 命令:是一个切换用户的工具 , 经常用于将普通用户切换到超级用户下 , 当然也可以从超级用户切换到普通用户 。
为了保证服务器的安全 , 几乎所有服务器都禁止了超级用户直接登录系统 , 而是通过普通用户登录系统 , 然后再通过 su 命令切换到超级用户下 , 执行一些需要超级权限的工作 。
通过 su 命令能够给系统管理带来一定的方便 , 但是也存在不安全的因素 , 例如:系统有 10 个普通用户 , 每个用户都需要执行一些有超级权限的操作 , 就必须把超级用户的密码交给这 10 个普通用户 。
如果这 10 个用户都有超级权限 , 通过超级权限可以做任何事 , 那么会在一定程度上对系统的安全造成了威协 。
因此 su 命令在很多人都需要参与的系统管理中 , 并不是最好的选择 , 超级用户密码应该掌握在少数人手中 , 此时 sudo 命令就派上用场了 。
 
sudo 命令:允许系统管理员分配给普通用户一些合理的“权利” , 并且不需要普通用户知道超级用户密码 , 就能让他们执行一些只有超级用户或其他特许用户才能完成的任务 。
比如:系统服务重启、编辑系统配置文件等 , 通过这种方式不但能减少超级用户登录次数和管理时间 , 也提高了系统安全性 。
因此 , sudo 命令相对于权限无限制性的 su 来说 , 还是比较安全的 , 所以 sudo 也被称为受限制的 su , 另外 sudo 也是需要事先进行授权认证的 , 所以也被称为授权认证的 su 。
sudo 执行命令的流程是:将当前用户切换到超级用户下 , 或切换到指定的用户下 , 然后以超级用户或其指定切换到的用户身份执行命令 。
执行完成后 , 直接退回到当前用户 , 而这一切的完成要通过 sudo 的配置文件 /etc/sudoers 来进行授权 。
sudo 设计的宗旨是:赋予用户尽可能少的权限但仍允许它们完成自己的工作 , 这种设计兼顾了安全性和易用性 。
因此 , 强烈推荐通过 sudo 来管理系统账号的安全 , 只允许普通用户登录系统 , 如果这些用户需要特殊的权限 , 就通过配置 /etc/sudoers 来完成 , 这也是多用户系统下账号安全管理的基本方式 。
⑤删减系统登录欢迎信息
系统的一些欢迎信息或版本信息 , 虽然能给系统管理者带来一定的方便 , 但是这些信息有时候可能被黑客利用 , 成为攻击服务器的帮凶 。
为了保证系统的安全 , 可以修改或删除某些系统文件 , 需要修改或删除的文件有四个 , 分别是:

  • /etc/issue
  • /etc/issue.net
  • /etc/redhat-release
  • /etc/motd
/etc/issue 和 /etc/issue.net 文件都记录了操作系统的名称和版本号 , 当用户通过本地终端或本地虚拟控制台等登录系统时 , /etc/issue 的文件内容就会显示 。
当用户通过 ssh 或 telnet 等远程登录系统时 , /etc/issue.net 文件内容就会在登录后显示 。
在默认情况下 /etc/issue.net 文件的内容是不会在 ssh 登录后显示的 , 要显示这个信息可以修改 /etc/ssh/sshd_config 文件 , 在此文件中添加如下内容即可:Banner /etc/issue.net 。
其实这些登录提示很明显泄漏了系统信息 , 为了安全起见 , 建议将此文件中的内容删除或修改 。
/etc/redhat-release 文件也记录了操作系统的名称和版本号 , 为了安全起见 , 可以将此文件中的内容删除 。
/etc/motd 文件是系统的公告信息 。每次用户登录后 , /etc/motd 文件的内容就会显示在用户的终端 。
通过这个文件系统 , 管理员可以发布一些软件或硬件的升级、系统维护等通告信息 , 但是此文件的最大作用就是可以发布一些警告信息 , 当黑客登录系统后 , 会发现这些警告信息 , 进而产生一些震慑作用 。
看过国外的一个报道 , 黑客入侵了一个服务器 , 而这个服务器却给出了欢迎登录的信息 , 因此法院不做任何裁决 。
远程访问和认证安全①远程登录取消 telnet 而采用 SSH 方式
telnet 是一种古老的远程登录认证服务 , 它在网络上用明文传送口令和数据 , 因此别有用心的人就会非常容易截获这些口令和数据 。


推荐阅读