系统管理员的任务是确保一个或者多个系统方便用户使用。在Linux系统中,管理员和用户都可以是你,你和电脑的距离也不过几十厘米而已。系统管理员可能在半个地球远的地方支持网络系统,而你只是成千上万用户中的一个。系统管理员可能是利用业余时间维护系统的兼职人员,他同时也可能是这个系统的用户。
管理员也可能由几个人组成,他们都全职负责维持多个系统正常运行。 确保服务器安全 你可以通过使用TCP wrapper,或者通过建立一个chroot jail来确保服务器的安全。 TCP Wrappers客户服务器安全(hosts.allow和hosts.deny) 当你打开一个本地系统去访问远程系统……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
系统管理员的任务是确保一个或者多个系统方便用户使用。在Linux系统中,管理员和用户都可以是你,你和电脑的距离也不过几十厘米而已。系统管理员可能在半个地球远的地方支持网络系统,而你只是成千上万用户中的一个。系统管理员可能是利用业余时间维护系统的兼职人员,他同时也可能是这个系统的用户。管理员也可能由几个人组成,他们都全职负责维持多个系统正常运行。
确保服务器安全
你可以通过使用TCP wrapper,或者通过建立一个chroot jail来确保服务器的安全。
TCP Wrappers客户服务器安全(hosts.allow和hosts.deny)
当你打开一个本地系统去访问远程系统时,你必须确保满足以下条件:
- 只对你希望允许访问的系统开发本地系统。
- 允许每个远程系统只访问你允许访问的数据。
- 允许每个远程系统只能以适当的方式(只读/读写/只写)去访问数据。
TCP wrapper作为客户服务器模型的一部分,依赖/etc/hosts.allow和/etc/hosts.deny文件作为简单访问控制语言的基础,可用于任何包含了libwrap.so的daemon程序使用。访问控制语言限定的规则是:基于客户端地址和客户端试图访问的daemon程序,选择性地允许客户端访问服务器在本地系统上的daemon程序。
hosts.allow和hosts.deny文件中的每行代码都遵循以下格式:
daemon_list client_list [ command]
其中,daemon_list是一个或多个服务器daemon程序(如rpcbind、vsftpd、或sshd)的逗号分隔列表。client_list 是一个或者多个客户端的逗号分隔列表。命令是可选的,当client_list的客户端试图访问从daemon_list访问服务器daemon程序时指代被执行的命令。
当客户端请求连接一个本地服务器时,hosts.allow和hosts.deny 文件按以下方式进行查询,直到找到匹配的为止。
- 如果daemon客户端对匹配hosts.allow中一行,可以允许访问。
- 如果daemon客户端对匹配hosts.deny中一行,访问将被拒绝。
- 如果在hosts.allow文件或hosts.deny文件中都没有匹配,可以允许访问。
第一个匹配决定客户端是否允许访问服务器。当hosts.allow 和 hosts.deny 都不存在时,就意味着这个文件是空的。虽然不建议这样做,但通过删除这两个文件,你可以允许所有客户端访问所有daemon程序。
一个更安全系统的例子是,在hosts.deny写入以下语句,即可阻止所有访问。
$ cat etchosts.deny
...
ALL:ALL:echo '%c tried to connect to %d and was blocked'>> /var/log/tcpwrappers.log
...
这行语句阻止了所有试图连接到服务器上的客户端,而在hosts.allow中特别允许的客户端除外。当这条规则满足匹配时,它在名为/var/log/tcpwrappers.log的文件中增加了一行。%c是扩展到客户端的信息,%d是扩展到客户端试图连接到daemon程序的名称。
在hosts.deny文件已存在的基础上,你可以在hosts.allow写入代码,明确地允许访问指定的服务器和系统。例如,以下hosts.allow文件允许任何人连接OpenSSH的daemon程序(ssh、scp、sftp),但只允许从本地系统与192.168.子网在同一网络的远程连接。
$ cat etchosts.allow
sshd ALL
in.telnet LOCAL
in.telnet 192.168. 127.0.0.1
...
第一行允许从任何系统(ALL)连接到sshd。第二行允许与服务器(LOCAL)有相同域名的系统连接。第三行表示匹配所有IP地址以192.168.开头的系统,包括本地系统。
建立一个chroot jail
在早期的UNIX系统中,根目录在文件系统中是固定的。在包括Linux的现代UNIX中,你可以为每个进程都定义一个根目录。而chroot命令则可以允许你运行/目录以外的进程。
根目录出现在目录层次结构的顶部,没有父目录。一个进程不能访问根目录上的任何文件(因为它们不存在)。如果你运行一个程序(进程),指定它的根目录为/home/sam/jail,程序将不会意识到在/home/sam或者更上层目录还有文件的存在:jail是程序的根目录,且被标记为/(而不是jail)。
通过人工建立一个根目录,通常称为(chroot)jail,你可以从根本上阻止程序访问或者修改(可能是恶意的)文件以外的目录。为了增加安全性,你必须建立一个适当的chroot jail。如果你没有正确设置chroot jail,还不如没有chrootjail,因为你可能让恶意用户更容易成功地访问系统。
下篇文章中,我们将继续讨论如何使用chroot及其安全注意事项。
相关推荐
-
多操作系统数据中心的服务器补丁管理
如果你在运维一个多操作系统数据中心,肯定会被补丁管理折腾的心烦意乱。不要担心,选择正确的工具和方式,可以解决好这个问题。
-
企业Linux服务器必装的五款基本软件
。第一次进入开源世界,可能会不确定那些方案可供选择。Linux服务器软件的可选项非常之多,哪些才是必备品?
-
Windows管理员需要知道的Linux技巧
随着科技界的模式持续改变,Windows管理员还将继续接触和接受越来越多的Linux服务器。本文将帮助Windows管理员们快速熟悉Linux相关知识。
-
如何从大型机传输PS文件到Linux服务器?
我需要从大型机传输一个PS文件到一台Linux服务器上,有啥JCL脚本可用么?有几种方式可将PS文件从大型机迁移到Linux服务器。