ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 系统安全

系统安全

原创 Linux操作系统 作者:眼镜男 时间:2009-07-08 19:33:04 0 删除 编辑

这里我只讲一些比较高级的系统安全设定。至于基本的档案权限rwx,完全可以自学。但我要简单的介绍一下我们容易混淆的档案权限。

一 基本权限设定

目录权限:当具有w权限的时候,目录“下的文件”是可以“强制”的写,也就是说即使文件没有w的权限,我们也可也强制的写。

chattr 设定档案的隐藏属性:这里只介绍几个常用的参数。

-a 只可以追加内容,不能删除或者修改。

-i 档案不能被删除和做任何的更改(重命名文件,对文件内容的改动)

查看隐藏属性用lsattr(ls+attribute这样记忆容易些)。

提示一下,我们最好记忆一些常用的计算机英语,对我们学习IT只是很用用的,因为这些东西毕竟是老外写的,题外话。

Set UID 当用户执行这个文件时,它将具有这个文件拥有者的权限。

我们可以这么记忆, Set UID 中文意思是设置UID。也就当我们执行这个文件的时候,会自动为我们设置成文件拥有者的UID了,当然也就可以执行了,注意这里它替换的是x权限,因此这个文件应该是可执行文件。

Set GID 同理,切换到文件所属组来执行,还有一点它可以针对目录来使用。

当针对目录来使用时,在这个目录下创建的文件所属组将和目录的所属组一样。

Stick Bit 这个权限是针对目录的,而且是针对目录的other位来设定,当一个用户在这个目录下建档案是,只有自己和root用户才可以删除,记得一定要把这个设定咋目录上,设定在文件上是没有作用的。

二 grub密码设定

grub密码设定很简单了,就是修改我们的grub.conf配置文件,文件中title的前一行或者下面一行加上password = *** *代表密码。如果我们想对密码进行加密可以用这个名利grub-md5-crypt + ***转换就可以了。

三 进程访问的控制。

系统中并不是所有的进程都可以进行访问安全控制。我们可以同过这样的命令来查看是否被我们所限制。

ldd ‘ which sendmail’ |grep wrap 如果有信息表示可以进行安全访问控制。

找到进程后,怎样来控制它呢。这时需要涉及到两个配置文件,分别为/etc/hosts.allow        /etc/hosts.deny 我们从文件的名字就可以猜个差不多了,一个是设定哪些主机可以访问进程,一个是设定不可以访问进程,默认是允许的。


基本语法:

deamon_list:clien_list[:shell command]

举例

在allow配置文件中加入:sshd:192.168.1.9

在deny配置为额间中加入:sshd:all

表是只允许192.168.1.9这台主机通过ssh的登录我这台主机。

这个还有另外一种写法

在deny配置文件中加入ALL:ALL EXCEPT 192.168.1.9,当然我们就不用再allow配置文件设置了。

例2在allow中加入

sshd:192.168.1.:spawn echo "`date` %a access your sshd" >>/var/log/allowlog

表示允许192.168.1网段的所有主机登录,同时记录到allowlog日志当中

这里有点要注意:

in.telnetd:192.168.1.9

sshd:192.168.1.9

第一行的telnetd进程名前多了个in.什么时候加这个呢。这就要看是否是独立进程了。如果是独立进程不需要加,否则需要加in.

说一下独立进程的概念:由init"直接"控制的进程都叫独立进程,我们用pstree自己查看一下哪些是由init直接控制的。

四 pam验证《转载自一位美女老师》

和进程访问控制相似也需要看看哪些支持pam验证。可以通过ldd ’/usr/sbin/sshd‘ |grep  pam 如果有信息,表示支持pam验证。模块位置/lib/security/pam_*.so,它们使用/etc/pam.d/*文件来调用。

PAM运作方式:1.PAM operation 2./lib/security  pam模块 3./etc/pam.d  pam配置文件
/etc/pam.d/files:文件中有四种验证类型
1.auth  主要验证使用者的帐号
2.account 确定帐号是否有效.密码是否过期并限制使用者权限.
3.password 控制使用者密码的修改
4.session当一个session在启用或关闭时被PAM调用

/etc/pam.d/files:
控制标志:控制验证过程是否成功的标准
required:必须通过,若失败继续测试
requisite:和REQUIRE相似,不同之处是它在失败后停止测试
sufficient:如果到此一直为通过,现在就返回成功,如果失败,忽略测试,继续检查
optional:测试通过与否都无关紧要
include:返回在被调用的文件中配置的测试的总体控制值
required  如果成功,最后成功于否取决于下面的测试是否成功,不成功还会往下测试,并在所有的测试完成后,返回不成功.目的是让使用者不知道是在哪一步验证失败
requisite  如果成功,会继续往下测试,并由下面的测试来决定是否成功,如没成功,会立马显示验证失败而不会再往下测试
sufficient 使用者测试时,如成功通过,会立即把成功的信息传给程序.不再往下测试.如不成功,会忽略结果继续往下测试,由以下的测试结果来决定是否成功.
optional不论结果怎么样,都不会影响结果.通常把session设置为这种标准

举例

auth required moudel1
auth required moudel2
auth required moudel3
以上三个必须成功才会成功.

auth required moudel1
auth sufficient moudel2
auth required moudel3
只要前面两个成功,则第三个不会再测试.返回成功
如果第一个失败.第二个成功,也没会再往下测试.返回测试成功
如果第一个成功,第二个失败,第二个成功,返回成功

/etc/pam.d/file
验证类型  控制标志  使用的PAM模块  要使用的参数
 
第一行记录都是一个阶段的验证测试

auth requisite pam_secutetty.so
auth  sufficient pam_unix.so
auth required  pam_deny.so
account  required  pam_unix.so
password required  pam_cracklib.so
password sufficient pam_unix.so
password required  pam_deny.so
session  required pam_unix.so
session  required pam_limits.so
session  optional pam_console.so

pam_stack 模块.应用程序用它来调用/etc/pam.d中的模块进行验证.

如果有很多应用程序要使用同样的验证科学试验来进行验证.
我们可以把它定义好,放到/etc/pam.d的子目录中
设置,再让所有需要用它验证的程序调用它.

很多程序都是用pam_stack 来调用  system-auth可以用来更改系统的标准验证方式

pam_unix它可以用在四种验证类型中.
auth 它可以取得系统中的密码.来进行了密码比对.来决定用户是否可以成功通过验证.
account 决定用户是否有效.是否过期,是否被锁定
password 用来更改密码验证.
session 记录使用者登录及登出时的日志 通过syslogd

network anthentication
pam_krb5  kerberos v
pam_ldap  LDAP
pam_smb_auth  SMB  使用的验证方式
pam_winbind  使用winbind 进行的smb

NIS 使用的是pam_unix

pam_securetty会调用 /etc/securetty看里面哪些是安全的TTY.root只能从里面有的TTY登录.
pam_nologin 会调用/etc/nologin默认不存在,如果存在,则只有ROOT才能登录成功.RHEL4中就是ROOT也不能登录系统.
pam_listfile要设置允许登录或拒绝登录的使用者名单auth required pam_listfile item=user sense=deny file=/etc/vsftpd.ftpusers nerr=succeed表示其它的使用者可以登录进来

PAM SECURITY
pam_unix MD5 把使用者的密码进行MD5算法,更不容易破解
pam_unix shadow 把重新生成过的密码放到/etc/shadow 文件当中.还会限制第个密码的有效期限
chage -M 30 username设定用户密码过期参数

密码安全性策略
password history  如使用,会把使用过的密码记录下来.
pam_unix with remember=N 会记录前N个密码.
password strength
pam_cracklib 规范密码字符串.作用复杂性密码,密码长度,不可以使用密码字典中找得到的单词等等
pam_passwdqc 同上,不会检查是否可以字典中找到
pam_tally可以监控使用者登录失败的次数.次数过多,系统会锁定它.   /var/log/faillog中跟踪失败登录的次数. /sbin/pam_tally命令可以调整用户的失败登录的总数

password required pam_cracklib.so retry=3 minlength=10 credit=1 dcredit=1 lcredit=1 ucredit=1

通过验证后,有哪些session可以限制
pam_limits 限制使用者可以使用的系统资源.
/etc/security/limits.conf可以执行的进程数,可以使用的内存等等.(可以使用ulimit设定限制值)
pam_console当使用这个的时候,系统会给它特定的权限
/etc/security/console.perms中定义console
/etc/security/console.apps/目录下的内容.
ls 查看(reboot,halt)
当它用在auth验证类型中,当使用者通过时,成功登录到系统当中的CONSOLE时,会拒绝这个使用者其它从远程登录的验证要求

除了登录系统验证身份外,当使用者要使用验证来使用应用程序
如使用su指令重新启动或者使用system-config...系统管理工具命令时,pam_rootok来验证是否有root 身份权限
pam_timestamp记录使用者在什么时候做了什么事情.它会检查记录,看是否在5分钟内验证成功过,则不用再验证.
 
我们可以检查/var/log/messages  /var/log/secure 文件是否有验证失败的地方。
最后如果我们因为错误的设置而无法登陆系统的话,从单用户模式启用,把配置文件修改回来就就可以了,建议最好备份一份配置文件。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/21996817/viewspace-608656/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 制作U盘linux系统
下一篇: 带你走进LVS1
请登录后发表评论 登录
全部评论

注册时间:2009-06-28

  • 博文量
    30
  • 访问量
    31681