两个易被忽视的linux安全权限配置问题

安全 网站安全
本文谈两个很容易被忽视,又偶尔会突然蹦出来,给我们配置服务器造成困扰的权限管理问题。

本文谈两个很容易被忽视,又偶尔会突然蹦出来,给我们配置服务器造成困扰的权限管理问题。

1、太宽的权限

有些服务对权限的要求会是一个区间,小了不行,大了也不行。如果这个文件被赋予的权限不够,那么肯定不能使用;但是,如果这个文件被赋予的权限太多了,同样不能正常使用。

举例:

问题现象:test帐号使用key无法登录某ssh服务器,而同机器下的test2帐号却可以登录。

查看文件权限:

test@client:~$ls-l~/.ssh/

-rw-------1testtest 16752010-03-2515:15id_rsa

查看了客户端及服务器端的.ssh目录下的公钥与私钥权限,可以看出,并没有问题。

私钥必须是600权限,而公钥至少是644或者更严格的权限,这都符合,但依然无法登录。

test@server:~$ls-la~|grep-w.ssh

drwxr-xr-x2testtest4.0K12-2316:59.ssh

查看了服务器端的.ssh目录权限,是755,也是没问题的,ssh服务器要求在使用key登录时.ssh目录的权限必须是其他用户不可写。

一开始实在想不明为啥test2帐号使用key可以登录,test帐号使用key无法登录,ssh_config和sshd_config。

在检查了多遍后确实没有问题,最后在服务器端对比两个帐号的不同时,发现了可疑的地方。

$ls-l/home/

drwxrwxrwx 3testtest4096 2009-12-31 17:31test

drwxr-xr-x 6 test2 test2 4096 2010-03-23 15:59test2

两个帐号的home目录权限不同,test帐号是777,test2帐号是755,会不会是这里不同导致的?在服务器端把test目录修改成755后,解决问题。

原因解释:

ssh服务器的key方式登录对权限要求严格。对于客户端:私钥必须为600权限或者更严格权限(400),一旦其他用户可读,私钥就不起作用(如640),表现为系统认为不存在私钥。

对于服务器端:要求必须公钥其他用户不可写,一旦其他用户可写(如660),就无法用key登录,表现为:Permission denied(publickey)。

同时要求.ssh目录其他用户不可写,一旦其他用户可写(如770),就无法使用key登录,表现为:Permission denied(publickey)。

不仅.ssh目录,更上层的目录的权限同样会有影响。

home中用户目录的可写,表示其他用户对.ssh子目录也有改写的权限(删除或重命令),也就导致ssh判断.ssh为其他用户可写,拒绝使用key登录。

2、悄悄启动的selinux

如果你配置某项服务,但是不论怎么定义配置文件,有些端口始终不能打开,或者文件无法访问到,那么这时你要小心是selinux在捣鬼。

举例:

问题现象:配置apache上的目录可以访问,却始终提示你没有权限。

apache上的配置:

Alias/hello.html/web/hello.html

<Directory/web>

Order deny,allow

Allow from all

</Directory>

怎么查都没有问题,文件权限也对,这时可以考虑查一下selinux的权限。

#ls-Z/web/

-rw-r--r--.root root unconfined_u:object_r:admin_home_t:s0hello.html

原来/web目录不能被apache内建的用户访问。

原因解释:

默认情况下,selinux限制了apache可以访问的目录,默认仅能在/var/www/下面读写文件。这也难怪,我们只配置apache和文件权限没有任何作用了。

要想实现对/web/目录下的文件读取,必须修改selinux的配置。

其实不止是文件权限,包括服务可以使用的端口、消息接口等,selinux都有默认限制。如果你配置服务遇到莫名其妙的问题,看一下selinux吧

责任编辑:吴玮 来源: FreeBuf
相关推荐

2013-10-24 15:15:45

Linux配置问题

2010-04-29 16:36:19

Oracle数据库

2019-08-30 12:01:48

2009-12-03 11:10:32

SMONARCHOracle

2018-10-18 09:20:27

云计算配置错误

2023-11-06 18:02:28

Linux实用命令

2019-09-24 09:00:22

RedisCPU内存

2009-12-03 11:03:23

2011-08-17 10:04:13

vSphere 5虚拟化

2011-01-14 15:14:58

2011-05-13 10:47:01

2013-04-16 14:16:35

2017-11-27 12:08:10

后端服务spring mvc项目

2010-01-28 10:11:18

IT金饭碗

2017-03-27 21:54:16

2023-08-08 14:28:02

2017-08-15 17:09:31

Linux命令

2022-07-18 13:37:10

网络安全数据泄露

2022-10-20 07:47:46

2019-11-04 09:32:50

云计算数据中心技术
点赞
收藏

51CTO技术栈公众号