最近公司事情繁多,很久没有更新博客了,不知道各位技术网友最近可好。其实虽然说公司工作很忙,但是忙里偷闲一直在思考一个问题,那就是如何围绕用户账户来尽可能保证Linux系统的安全。
思考许久,用虚拟机试了一把。一方面温习一下往日的基本命令,另一方面总结了一些比较实用的用户账户安全技巧,在这里和大家分享一下。虽然很简单,但是在工作中却非常实用,可称得上简单而不简约。
技巧一
建立不允许登录系统的服务账号。
其实Linux老鸟也许对这个再熟悉不过了,尤其是搭建和维护mail服务器以及其他用户应用型服务的Linux老鸟。
那我搭建服务器操作为例,前一段时间我用Linux搭建了mail服务器,系统账号即邮件账号。也就是说你要给你的同事开一个[email protected]的邮件账号,你只要在你搭建的邮件服务器上建立zhangsan这个用户即可。但是问题来了,张三这个人既可以使用系统提供的邮件服务同时又能登录这台服务器,这样增加了系统安全风险。那么如何才能使得邮件用户既可以正常使用邮件账户但又不可以登录系统呢?下面我们就来探讨一下!
第一种情况:张三这个账号还没有建立,对于这种情况是一件非常好办的事情,我们只要再给张三建立邮件账号的时候加一个参数-s /sbin/nologin就可以解决。
例如:# useradd -s /sbin/nologin zhangsan
使用上例建立的张三用户只能使用邮件服务,如果他想用此账户登录系统那是不可能了。
第二种情况:张三这个账号已经建立,且已经使用。对于这种情况可能稍微麻烦一点,但是也不是很难。
首先我们修改账号属性,编辑/etc/passwd文件,找到zhangsan 用户名开头的那一行,修改shell参数为/sbin/nologin.
# vi /etc/passwd
Zhangsan:x:501:501::/home/zhangsan:/sbin/nologin
下划线标注的部分即为该用户更改后的shell参数。
其次更改完nologin参数后使用pwconv命令进行密码同步,然后用passwd命令设置张三的密码。
#pwconv
#passwd popuser
通过以上两种情况我们就避免了服务使用对系统存在的潜在威胁。
技巧二
查看系统登录用户信息
多用户多进程的Linux系统有可能同时或者分时的被用户使用,那么我们如何查看哪些用户在使用系统,又有哪些用户登录过系统呢?我们使用who命令和last命令就可以查看这些用户。
1、‘who’命令,查看当前系统中登录的用户。
# who
2、‘last’命令,查看最近系统使用者登录的时间。
# last
技巧三
删除不必要的系统默认账号
默认安装完Linux系统会产生许多默认账号和组。由于这些账号和组是默认且公开的,所以存在很大的安全隐患。如果确实不需要这些账号和组,我们可以把他们删除掉。
我们使用‘userdel’命令进行用户删除
例如:
# userdel adm
# userdel lp
# userdel sync
# userdel shutdown
# userdel halt
# userdel news
# userdel uucp
# userdel poerator
# userdel games ( 如果没安装X-window服务器,可以删除这个用户)
# userdel gopher
# userdel ftp (如果没有安装匿名ftp服务器,可以删除这个用户)
我们使用‘groupdel’命令进行组删除
例如:
#groupdel adm
#groupdel lp
#groupdel news
#groupdel uucp
#groupdel games ( 如果没安装X-window服务器,可以删除这个组)
#groupdel dip
#groupdel pppusers
#groupdel popusers (如果没有安装匿名ftp服务器,可以删除这个组)
#groupdel slipusers
技巧四
设置账号相关配置文件的不可改变位
长期使用linux的朋友可能多不可改变位相对比较熟悉,但是对于刚刚接触linux的朋友也许有点儿陌生。不可改变位可以用来保护文件,使其不被意外地删除重写,也可以防止有些人创建这个文件的符号连接。其实在我的通俗理解就相当于windows下的只读文件。删除/etc/passwd、/etc/shadow、/etc/group或/etc/gshadow等文件都是黑客的攻击方法。
我们可以使用下列命令给文件设置不可改变位:
# chattr +i /etc/passwd
# chattr +i /etc/shadow
# chattr +i /etc/group
# chattr +i /etc/gshadow
如果将来要在这些文件里增加和删除用户,必须先清除这些文件的不可改变位,否则你将对这些文件无法修改。
技巧四
防止任何人使用su命令成为root用户
大家在使用普通用户操作linux的时候,有时候为了某种需要直接使用su命令就可以切换到root用户,这样就增加了安全的隐患。如果你不想让其他人使用su命令成为root或者只让某些用户有权使用su命令,只要你在/etc/pam.d/su文件中加入下面两行。我的建议是你尽量限制用户通过su命令成为root。
第一步编辑su文件(vi /etc/pam.d/su),在文件的头部加入下面两行:
auth sufficient /lib/security/pam_rootok.so debug
auth required /lib/security/pam_wheel.so group=wheel
加入这两行后,“/etc/pam.d/su”文件变为,如下图
这两行的意思是只有wheel组的用户才能用su命令成为root。在这里请你注意,wheel组是系统中用于这个目的的特殊帐号,不能使用其他名字的组或组名。
例如让levinboy用户成为wheel组的用户成员:
#usermod -G10 levinboy
G是表示用户所在的其他组。10是wheel组的ID值,levinboy是加入到wheel组的用户。用同样的命令可以让其他的用户使用su命令成为root。
——————————————————————————————————
特别声明:--
一、本文为原创,著作权及使用权为(作者笔名:闪电cto)本人所有。
二、本文首发于51cto个人博客(http://xudeqiang.blog.51cto.com)。
三、本文只供互联网上的读者分享,不供共享范畴,希知。
四、未经许可严禁对本文作修改、节选、断章性质的处理。
五、可转载,但必须注明原文章首发的出处网址,及文章作者,严禁复制。
六、如若转摘用于杂志网络媒体新闻,必须通知作者得到允许后方可,需收稿费。
七、作者联系信息:QQ:306718122 邮箱[email protected]
——————————————————————————————
本文出自 “德强工作室” 博客,谢绝转载!