全面讲解Linux安全设定

运维 系统运维
过去的一年微软重磅出击推出了windows 7,不过,而Linux的发展非常迅速,有赶超微软的趋势。这里介绍Linux的知识,让你学好应用Linux系统。今天一讲Linux安全设定,希望你记住Linux安全设定。

过去的一年微软重磅出击推出了windows 7,不过,而Linux的发展非常迅速,有赶超微软的趋势。这里介绍Linux的知识,让你学好应用Linux系统。今天一讲Linux安全设定,希望你记住Linux安全设定。

1.禁止Ctrl+Alt+Delete重新启动机器命令

修改/etc/inittab文件,将"ca::ctrlaltdel:/sbin/shutdown -t3 -r now"一行注释掉。

2.禁止在ssh下直接用root登录

编辑/etc/ssh/sshd_config文件

把PermitRootLogin yes前面的“#”去掉,把“yes”改为“no”

3.限制su名单

编辑/etc/pam.d/su文件,加入:

auth required /lib/security/$ISA/pam_wheel.so use_uid

(不少Linux发行版中可能省略pam_wheel.so文件的路径名,为节省篇幅,下文也可能省略路径,但使用绝对路径是不会错的!)

执行下面语句将用户user1加入wheel组:

#gpasswd -a user1 wheel

这将使wheel组中的用户才可以执行su命令,root例外。

auth       sufficient   /lib/security/$ISA/pam_wheel.so trust use_uid

此行使wheel组的用户在执行su时不用输入密码,很方便,但是很危险!!慎用!

说明:pam_wheel.so是专门用于su的模块,用来阻止非指定组成员执行su,默认为GID 0,可使用选项group=group_name来指定某个组的用户可以su,或再加上选项deny来“取反”,即禁止某些组使用su。上文中的“use_uid”是系统中就定义好的,具体什么意思/etc/pam.d/su文件里有说明。

4.限制 ssh 使用者名单

编辑/etc/pam.d/sshd 文件,(其中/etc/ssh_users为使用者名单的文件名)

auth required pam_listfile.so item=user sense=allow file=/etc/ssh_users onerr=fail

建立/etc/ssh_users文件,执行以下语句:

echo user1 >> /etc/ssh_users

只有/etc/ssh_users文件中列出的用户能用ssh登录主机。

说明:

item选项表示指定文件中数据的类型。可用值为:user,group,tty,shell,ruser,rhost。一般用user或group,四个值不常用,有兴趣自己测试。

sense选项表示对指定文件中的数据的访问权限。可用值为deny和allow,不用介绍了吧。

file选项表示存放相关数据的文件位置。

onerr=fail表示本pam模块的认证出现任何错误,则返回拒绝访问。注意:返回值不是“访问失败”,而且返回“拒绝访问”不一定能阻止或允许用户登录,还要看第二个字段的参数。本例中使用了required,如果返回值为拒绝访问,则直接阻止用户登录。

该模块常用于ssh、rlogin、ftp等认证:

ssh:直接放入/etc/pam.d/sshd文件。

rlogin:需要放入/etc/pam.d/rlogin,/etc/pam.d/remote、/etc/pam.d/login。配置rlogin必须注意下面内容!(这是redhat官方回答,测试发现不需要修改login文件即可实现)

上文中已经提到2个pam的实例了,下面解释一下pam配置文件中第二个字段的参数:

sufficient    如果该模块允许用户访问,则跳过栈中的其余任何模块,并返回认证成功值给服务。

requisite    如果该模块拒绝访问,则返回认证失败值给服务,并跳过栈中的其余模块。

 required    该模块必须允许访问,才能使整个认证过程成功。

optional    如果没有其他模块起决定作用,则该模块的结果将用于决定是否可以访问。

前面两个关键词很容易理解,它们直接允许或拒绝访问,并当即终止认证过程。该模块必须有一个允许访问,且其他required的模块都没有拒绝,才能使整个认证过程成功。最后两个关键词表示是否为认证的基本和必须部分。如果栈中已执行的模块没有拒绝或允许访问,则认证成功与否由综和所有所需模块的结果来决定。如果至少其中一个模块允许访问,且其他模块都没有拒绝,则认证成功。若所需模块没有达成明确决定时,则使用可选模块。

例如/etc/pam.d/rlogin文件的前几行是这样的话:

  1. auth       required     pam_nologin.so  
  2. auth       required     pam_securetty.so  
  3. auth       required     pam_env.so  
  4. auth       required     pam_listfile.so item=user sense=allow file=/etc/rlogin_users onerr=fail 
  5. auth       sufficient   pam_rhosts_auth.so 

  1. auth       required     pam_nologin.so  
  2. auth       required     pam_securetty.so  
  3. auth       required     pam_env.so  
  4. auth       sufficient   pam_rhosts_auth.so  
  5. auth       required     pam_listfile.so item=user sense=allow file=/etc/rlogin_users onerr=fail 

这会有很大区别,使用后者的话,如果需要服务器上有/etc/hosts.equiv文件,且该文件里包含客户端的主机名,则最后一句将无法禁止该客户端上的所有用户登录!即使那个用户列在/etc/rlogin_users文件中,因为前一句指示“只要远程主机在信任主机列表里,就不再继续下面的认证,直接放行!”

5.登录终端设置

/etc/securetty文件指定了允许root登录的tty设备,由/bin/login程序读取,

其格式是一个被允许的名字列表,你可以编辑/etc/securetty且注释掉如下的行。

# tty1

这时,root就不可在tty1终端登录。以上就是Linux安全设定的介绍。

【编辑推荐】

  1. 全面了解四种级别攻击Linux服务器的方式
  2. 六点Linux安全方法应用
  3. 为什么Linux操作系统和MacOS成长在微软的光环下?
  4. 未来十年Linux操作系统会怎样呢?
  5. 轻松让Linux成为路由器的方法
责任编辑:小霞 来源: CSDN
相关推荐

2010-03-16 17:53:23

2009-10-23 10:50:04

CLR安全性

2010-03-16 15:28:40

Ubuntu linu

2009-10-19 17:10:37

Linux文件命令

2010-03-10 12:59:08

Linux安装飞信

2009-10-23 18:47:35

GNULinux

2010-01-06 11:06:07

2010-01-06 10:02:10

Linux服务器

2009-10-23 18:29:02

linux Debia

2009-10-19 16:39:19

Linux虚拟化

2009-12-16 13:42:56

Mandriva Li

2010-01-07 16:02:41

2010-04-08 10:04:59

free命令Linux系统内存监控

2009-10-27 17:10:05

Linux安全模块

2009-09-24 10:50:31

Hibernate主键

2009-09-23 15:50:21

Hibernate u

2009-09-29 10:12:03

Hibernate A

2009-12-17 15:01:21

Linux系统多用户

2010-01-07 11:10:00

cron配置计划

2010-05-06 09:45:18

Linux虚拟化
点赞
收藏

51CTO技术栈公众号