zhousir1991

让开源路人皆知~!
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

selinux,kernel参数,mount参数 略述

Posted on 2011-07-30 10:23  zhousir1991  阅读(1400)  评论(0编辑  收藏  举报
企业6单用户修改密码,禁用selinux
echo westos | passwd --stdin root

关于内核的文档: 

[root@desktop26 ~]# rpm -q kernel-doc
package kernel-doc is not installed
 

[root@desktop26 ~]# yum install kernel-doc         //这些是内核参数的文档

[root@desktop26 ~]# cd /usr/share/doc/kernel-doc-2.6.32/Documentation/
[root@desktop26 ~]# less kernel-parameters.txt
[root@desktop26 Documentation]# less kernel-parameters.txt  
 
三个传递内核参数的实验:
console=ttyS0    //这里注意字母S是大写,后面是数字0    ,这里是串口
setenforce=0||1
selinux=0||1   
当值为0时,getenfore的结果是:Disabled
当值为1时,getenfore的结果是:Enforcing                 //据我观察,开机时间比较长。
init=/bin/bash   获得一个 bash-4.1#   的shell
图形界面下,FTP服务管理:
服务起来后默认在 /var/ftp/路径下的文件,都可以通过ftp协议进行发布
[root@desktop26 ~]# grep local_enable /etc/vsftpd/vsftpd.conf   //这里grep的用法也值得学习一下,老师写的,很灵活,我都用管道,很死板
local_enable=NO                                                                  //这里为了增强安全性禁止本地用户登录,否则能直接查看根目录,相当不安全
图形界面下,httpd服务管理:
默认发布目录是 /var/www/html/ (以下软链接)可以将ftp发布的内容用Apache来进行发布
[root@desktop26 html]# ln -s /var/ftp/pub/  /var/www/html/
安全机制Selinux初期探索:(与Apache服务结合实验,看效果)
[root@localhost mnt]# pwd
/mnt
[root@localhost mnt]# ll -Z         //-Z 参数是用来查看selinux安全上下文的。
-rw-r--r--. root root unconfined_u:object_r:mnt_t:s0   index.html
[root@localhost mnt]# cp index.html /var/www/html/
[root@localhost html]# ll -Z index.html 
-rw-r--r--. root root unconfined_u:object_r:httpd_sys_content_t:s0 index.html
可以发现此时通过拷贝两者的安全上下文已经不一样了,说明通过了selinux的允许。浏览器访问成功。
而如果刚刚是剪切过去,通过以下命令查看,两者的安全上下文的结果是一样的,这是selinux所不允许的。
[root@localhost html]# ll -Z
-rw-r--r--. root root unconfined_u:object_r:mnt_t:s0   index.html     
                    //通过对比发现剪切过去是一样的,收到selinux的限制,浏览器访问失败。
这就是selinux的一个典型的实验。
另外selinux的日志文件在 /var/log/audit/ 下名为 audit.log 的文件。内容很多:(其中一条记录如下)
type=USER_END msg=audit(1311993601.089:61): user pid=5322 uid=0 auid=0 ses=5 subj=system_u:system_r:crond_t:s0-s0:c0.c1023 msg='op=PAM:session_close acct="root" exe="/usr/sbin/crond" hostname=? addr=? terminal=cron res=success'
关于挂载选项略叙:
[root@localhost ~]#  mount         // 可以发现我们本机的挂载有很多的选项:
/dev/mapper/VolGroup-LogVol01 on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0")
/dev/sda9 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
/dev/sdb1 on /media/5B35-2C7B type vfat (rw,nosuid,nodev,uhelper=udisks,uid=500,gid=500,shortname=mixed,dmask=0077,utf8=1,flush)
[root@localhost ~]# cat /etc/fstab            //其中一条记录,如下,注意 defaults 选项
proc    /proc     proc    defaults        0 0
通过查看man文档,获得一些帮助:
defaults :  Use  default  options:  rw,  suid,  dev, exec, auto, nouser, and async.
等等,有很多的默认的选项,老师给出一个示例,个人觉得还比较典型:
[root@localhost ~]# cd /boot/                //这里以/boot/分区做测试
[root@localhost boot]# vi file
echo `date`
[root@localhost boot]# chmod +x file 
[root@localhost boot]# ll file 
-rwxr-xr-x. 1 root root 12 Jul 29 23:00 file
[root@localhost boot]# ./file 
Fri Jul 29 23:01:15 EDT 2011               // 在当前挂载的情况下,是可以执行该文件的。
[root@localhost boot]# mount -o remount,noexec /boot/    //这里将分区重新挂载,加上 noexec参数
[root@localhost boot]# ./file
-bash: ./file: Permission denied           //再执行的时候已经不允许了,说明 noexec参数已经生效
[root@localhost boot]# mount -o remount,exec /boot/
[root@localhost boot]# ./file 
Fri Jul 29 23:04:41 EDT 2011               //再重新挂载,加上 exec参数,又可以了,其他参数可以继续研究。
################################  这里实际上是增加了安全性,避免黑客上传可执行脚本  #########################
顺便说一下,搜索的艺术,通过自己架一些服务,比如ftp的发布目录pub,可以得到一些启示:
比如在Google中搜索的时候: Index of /pub 、Index of /linux 、等可以获得很多的资源,另外
如果想在某一个站点内搜索,可以加关键字site,例如:Samba site:www.ibm.com.