您的位置:首页 > 运维架构 > Linux

如何通过用户账户来保证Linux系统安全

2013-04-12 09:57 961 查看
技巧一 建立不允许登录系统的服务账号。

以搭建服务器操作为例,前一段时间用Linux搭建了mail服务器,系统账号即邮件账号。也就是说你要给你的同事开一个zhangsan@linux.com的邮件账号,你只要在你搭建的邮件服务器上建立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。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息