Centos禁止写入?centos用户权限设置

这篇文章给大家聊聊关于Centos禁止写入,以及centos用户权限设置对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

centos怎样安装wireshark

centos下安装wireshark相当简单.两条命令就够了.这里.主要是记录写使用方面的东西

安装:

1、yum install wireshark。注意这样并无法使用wireshark命令和图形界面。但提供了抓包基本功能。

2、yum install wireshark-gnome。这样就可以方便的使用了。

如果能登录图形界面终端.那使用和windows下的无区别.但我们的服务器都在国外.要管理的话都是SSH登录只能用命令行了。使用wireshark的命令行工具tshark,在安装的时候会默认给安装上的,使用方法很简单,要捕捉包: tshark-wpacket.txt-i etho-q这样就会把捕捉到的网络包存放在packet.txt文件里面,要查看详情的话: tshark-rpacket.txt-x-V|more即可.

下面理一下所有参数的作用:

-a

设置一个标准用来指定Wireshark什么时候停止捕捉文件。标准的格式为 test:value,test值为下面中的一个。

duration:value

当捕捉持续描述超过Value值,停止写入捕捉文件。

filesize:value

当捕捉文件大小达到Value值kilobytes(kilobytes表示1000bytes,而不是1024 bytes),停止写入捕捉文件。如果该选项和-b选项同时使用,Wireshark在达到指定文件大小时会停止写入当前捕捉文件,并切换到下一个文件。

files:value

当文件数达到Value值时停止写入捕捉文件

-b

如果指定捕捉文件最大尺寸,因为Wireshark运行在”ring buffer”模式,被指定了文件数。在”ring buffer”模式下,Wireshark会写到多个捕捉文件。它们的名字由文件数和创建日期,时间决定。

当第一个捕捉文件被写满,Wireshark会跳转到下一个文件写入,直到写满最后一个文件,此时Wireshark会丢弃第一个文件的数据(除非将files设置为0,如果设置为0,将没有文件数限制),将数据写入该文件。

如果duration选项被指定,当捕捉持续时间达到指定值的秒数,Wireshark同样会切换到下个文件,即使文件未被写满。

duration:value

当捕捉持续描述超过Value值,即使文件未被写满,也会切换到下个文件继续写入。

filesize:value

当文件大小达到value值kilobytes时(kelobyte表示1000bytes,而不是1024bytes),切换到下一个文件。

files:value

当文件数达到value值时,从第一个文件重新开始写入。

-B

仅适合Win32:设置文件缓冲大小(单位是MB,默认是1MB).被捕捉驱动用来缓冲包数据,直到达到缓冲大小才写入磁盘。如果捕捉时碰到丢包现象,可以尝试增大它的大小。

-c

实时捕捉中指定捕捉包的最大数目,它通常在连接词-k选项中使用。

-D

打印可以被Wireshark用于捕捉的接口列表。每个接口都有一个编号和名称(可能紧跟在接口描述之后?)会被打印,接口名或接口编号可以提供给-i参数来指定进行捕捉的接口(这里打印应该是说在屏幕上打印)。

在那些没有命令可以显示列表的平台(例如Windows,或者缺少ifconfig-a命令的UNIX平台)这个命令很有用;接口编号在Windows 2000及后续平台的接口名称通常是一些复杂字符串,这时使用接口编号会更方便点。

注意,”可以被Wireshark用于捕捉”意思是说:Wireshark可以打开那个设备进行实时捕捉;如果在你的平台进行网络捕捉需要使用有特殊权限的帐号(例如root,Windows下的Administrators组),在没有这些权限的账户下添加-D不会显示任何接口。参数

-f

设置捕捉时的内置过滤表达式

-g在使用-r参数读取捕捉文件以后,使用该参数跳转到指定编号的包。

-h

-h选项请求Wireshark打印该版本的命令使用方法(前面显示的),然后退出。

-i

设置用于进行捕捉的接口或管道。

网络接口名称必须匹配Wireshark-D中的一个;也可以使用Wireshark-D显示的编号,如果你使用UNIX,netstat-i或者ifconfig-a获得的接口名也可以被使用。但不是所有的UNIX平台都支持-a,ifconfig参数。

如果未指定参数,Wireshark会搜索接口列表,选择第一个非环回接口进行捕捉,如果没有非环回接口,会选择第一个环回接口。如果没有接口,wireshark会报告错误,不执行捕捉操作。

管道名即可以是FIFO(已命名管道),也可以使用”-”读取标准输入。从管道读取的数据必须是标准的libpcap格式。

-k

-k选项指定Wireshark立即开始捕捉。这个选项需要和-i参数配合使用来指定捕捉产生在哪个接口的包。

-l

打开自动滚屏选项,在捕捉时有新数据进入,会自动翻动”Packet list”面板(同-S参数一样)。

-m

设置显示时的字体(编者认为应该添加字体范例)

-n

显示网络对象名字解析(例如TCP,UDP端口名,主机名)。

-N

对特定类型的地址和端口号打开名字解析功能;该参数是一个字符串,使用m可以开启MAC地址解析,n开启网络地址解析,t开启传输层端口号解析。这些字符串在-n和-N参数同时存在时优先级高于-n,字母C开启同时(异步)DNS查询。

-o设置首选项或当前值,覆盖默认值或其他从Preference/recent file读取的参数、文件。该参数的值是一个字符串,形式为 prefname:value,prefnmae是首选项的选项名称(出现在preference/recent file上的名称)。value是首选项参数对应的值。多个-o可以使用在单独命中中。

设置单独首选项的例子:

wireshark-o mgcp.display_dissect_tree:TRUE

设置多个首选项参数的例子:

wireshark-o mgcp.display_dissect_tree:TRUE-o mgcp.udp.callagent_port:2627-p

不将接口设置为杂收模式。注意可能因为某些原因依然出于杂收模式;这样,-p不能确定接口是否仅捕捉自己发送或接受的包以及到该地址的广播包,多播包

-Q

禁止Wireshark在捕捉完成时退出。它可以和-c选项一起使用。他们必须在出现在-i-w连接词中。

-r

指定要读取显示的文件名。捕捉文件必须是Wireshark支持的格式。

-R

指定在文件读取后应用的过滤。过滤语法使用的是显示过滤的语法,,不匹配的包不会被显示。

-s

设置捕捉包时的快照长度。Wireshark届时仅捕捉每个包字节的数据。

-S

Wireshark在捕捉数据后立即显示它们,通过在一个进程捕捉数据,另一个进程显示数据。这和捕捉选项对话框中的”Update list of packets in real time/实时显示数据”功能相同。

-t

设置显示时间戳格式。可用的格式有

r相对的,设置所有包时间戳显示为相对于第一个包的时间。

a absolute,设置所有包显示为绝对时间。

ad绝对日期,设置所有包显示为绝对日期时间。

d delta设置时间戳显示为相对于前一个包的时间

e epoch设置时间戳显示为从epoch起的妙数(1970年1月1日 00:00:00起)

-v

请求Wireshark打印出版本信息,然后退出

-w

在保存文件时以savefile所填的字符为文件名。

-y

如果捕捉时带有-k参数,-y将指定捕捉包中数据链接类型。The values reported by-L are the values that can be used.

-X

设置一个选项传送给TShark模块。eXtension选项使用extension_key:值形式,extension_key:可以是:

lua_script:lua_script_filename,它告诉Wireshark载入指定的脚本。默认脚本是Lua scripts.

-z

得到Wireshark的多种类型的统计信息,显示结果在实时更新的窗口。

用LogParser分析WireShark的包

centos怎么上传文件

使用Vsftpd服务传输文件。

你可以配置一个vsftpd服务,具体步骤参考如下:

[root@linuxprobe~]# yum install vsftpd-y

Loaded plugins: langpacks, product-id, subscription-manager

………………省略部分输出信息………………

=

iptables防火墙管理工具中默认禁止了ftp传输协议的端口号,因此咱们在正式配置vsftpd服务程序前还需要清空一下iptables防火墙的默认策略,并将当前已经被清理的防火墙策略状态保存下来:

[root@linuxprobe~]# iptables-F

[root@linuxprobe~]# service iptables save

iptables: Saving firewall rules to/etc/sysconfig/iptables:[ OK ]

vsftpd服务程序的主配置文件(/etc/vsftpd/vsftpd.conf)中参数总共有123行左右,但大多数都是以#(井号)开头的注释信息,咱们可以用grep命令的-v参数来过滤并反选出没有包含#(井号)的参数行,也就是把所有的注释信息都过滤掉,这样再通过输出重定向符写会到原始的主配置文件名称中即可:

[root@linuxprobe~]# mv/etc/vsftpd/vsftpd.conf/etc/vsftpd/vsftpd.conf_bak

[root@linuxprobe~]# grep-v"#"/etc/vsftpd/vsftpd.conf_bak>/etc/vsftpd/vsftpd.conf

[root@linuxprobe~]# cat/etc/vsftpd/vsftpd.conf

anonymous_enable=YES

l

刘遄老师给同学们整理出了vsftpd服务程序的主配置文件中常用的参数及作用介绍,您现在只要简单的浏览一下,接下来的实验中如果不明白再过来查阅就可以。

编辑

参数作用

listen=[YES|NO]是否以独立运行的方式监听服务。

listen_address=IP地址设置要监听的IP地址。

listen_port=21设置FTP服务的监听端口。

download_enable=[YES|NO]是否允许下载文件。

userlist_enable=[YES|NO]

userlist_deny=[YES|NO]是否启用“禁止登陆用户名单”。

max_clients=0最大客户端连接数,0为不限制。

max_per_ip=0同一IP地址最大连接数,0位不限制。

anonymous_enable=[YES|NO]是否允许匿名用户访问。

anon_upload_enable=[YES|NO]是否允许匿名用户上传文件。

anon_umask=022匿名用户上传文件的umask值。

anon_root=/var/ftp匿名用户的FTP根目录。

anon_mkdir_write_enable=[YES|NO]是否允许匿名用户创建目录。

anon_other_write_enable=[YES|NO]是否开放匿名用户其他写入权限。

anon_max_rate=0匿名用户最大传输速率(字节),0为不限制。

local_enable=[YES|NO]是否允许本地用户登陆FTP。

local_umask=022本地用户上传文件的umask值。

local_root=/var/ftp本地用户的FTP根目录。

chroot_local_user=[YES|NO]是否将用户权限禁锢在FTP目录,更加的安全。

local_max_rate=0本地用户最大传输速率(字节),0为不限制。

11.2 Vsftpd服务程序

vsftpd作为更加安全的FTP文件传输协议的服务程序,可以让用户分别通过匿名开放、本地用户和虚拟用户三种身份验证方式来登陆到FTP服务器上面,匿名开放是一种最不安全的验证模式,任何人都可以无需密码验证就登陆到FTP服务端主机,本地用户是通过Linux系统本地的帐号密码信息进行的验证模式,这种模式相比较匿名开放模式来说比较安全,配置起来也十分简单,不过如果被骇客暴力破解出FTP帐号信息,也就可以通过这个口令登陆到咱们的服务器系统中了,从而完全控制整台服务器主机,最后的虚拟用户是相比较最为安全的验证模式,需要为FTP传输服务单独建立用户数据库文件,虚拟出用来口令验证的帐户信息,这些帐号是在服务器系统中不存在的,仅供FTP传输服务做验证使用,因此这样即便骇客破解出了帐号口令密码后也无法登录到咱们的服务器主机上面,有效的降低了破坏范围和影响。

ftp命令是用来在命令行终端中对ftp传输服务进行控制连接的客户端工具,咱们需要先手动的安装一下这个ftp客户端工具,以便于接下来的实验中校验效果:

[root@linuxprobe~]# yum install ftp

Loaded plugins: langpacks, product-id, subscription-manager

………………省略部分输出信息………………

Installing:

ftp x86_64 0.17-66.el7 rhel 61 k

Transaction Summary

================================================================================

Install 1 Package

Total download size: 61 k

Installed size: 96 k

Is this ok [y/d/N]: y

Downloading packages:

Running transaction check

Running transaction test

Transaction test succeeded

Running transaction

Installing: ftp-0.17-66.el7.x86_64 1/1

Verifying: ftp-0.17-66.el7.x86_64 1/1

Installed:

ftp.x86_64 0:0.17-66.el7

Complete!

11.2.1匿名访问模式

vsftpd服务程序中匿名开放是一种最不安全的验证模式,任何人都可以无需密码验证就登陆到FTP服务端主机,这种模式一般只用来保存不重要的公开文件,尤其是在生产环境中更要注意不放敏感文件,当然也非常推荐用咱们第八章中学习的防火墙管理工具(例如Tcp_wrappers)将vsftpd服务程序的允许访问主机范围设置为企业内网,这样还算能够保证基本的安全性。

vsftpd服务程序默认已经开启了匿名访问模式,咱们需要做的就是进一步允许匿名用户的上传、下载文件的权限,以及让匿名用户能够创建、删除、更名文件的权限,这些权限对于匿名用户来讲非常的危险,咱们只是为了练习Linux系统中vsftpd服务程序的配置能力,十分不推荐在生产环境中使用,匿名用户的权限参数及介绍:

编辑

参数作用

anonymous_enable=YES允许匿名访问模式。

anon_umask=022匿名用户上传文件的umask值。

anon_upload_enable=YES允许匿名用户上传文件

anon_mkdir_write_enable=YES允许匿名用户创建目录

anon_other_write_enable=YES允许匿名用户修改目录名或删除目录

[root@linuxprobe~]# vim/etc/vsftpd/vsftpd.conf

anonymous_enable=YES

anon_umask=022

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

local_enable=YES

write_enable=YES

local_umask=022

dirmessage_enable=YES

xferlog_enable=YES

connect_from_port_20=YES

xferlog_std_format=YES

listen=NO

listen_ipv6=YES

pam_service_name=vsftpd

userlist_enable=YES

tcp_wrappers=YES

确认参数填写正确后保存并退出vsftpd服务程序的主配置文件,还需要重启vsftpd服务程序来让新的配置服务参数生效,并且同学们在生产环境中或者红帽RHCSA、RHCE、RHCA认证考试中也请记得一定要把配置过的服务程序加入到开机启动项中,以保证下次服务器重启后依然能够为用户正常提供ftp文件传输服务:

[root@linuxprobe~]# systemctl restart vsftpd

[root@linuxprobe~]# systemctl enable vsftpd

ln-s'/usr/lib/systemd/system/vsftpd.service''/etc/systemd/system/multi-user.target.wants/vsftpd.service

这样咱们就可以在客户端上面使用ftp命令连接到远程的FTP服务器上面了,FTP服务的匿名开放模式的帐号统一为anonymous,密码为空。匿名模式登陆到FTP服务器后默认所在位置为/var/ftp目录,咱们可以切换至里面的pub目录中,然后尝试创建一个新的目录文件来检验是否已经有了写入权限:

[root@linuxprobe~]# ftp 192.168.10.10

Connected to 192.168.10.10(192.168.10.10).

220(vsFTPd 3.0.2)

Name(192.168.10.10:root): anonymous

331 Please specify the password.

Password:此处敲击回车即可

230 Login successful.

Remote system type is UNIX.

Using binary mode to transfer files.

ftp> cd pub

250 Directory successfully changed.

ftp> mkdir files

550 Permission denied.

刚刚咱们已经把iptables防火墙策略清空,而且也在vsftpd服务程序的主配置文件中添加了允许匿名用户创建目录和写入文件的权限,那么为什么还会被拒绝呢?建议同学们先不要往下面看,思考后用自己的方法尝试解决下这个问题,长期这样您的Linux系统排错能力就一定会练出来的。

回想起前面操作的细节,咱们FTP服务的匿名开放模式是默认登陆到了/var/ftp目录中,查看下这个目录的权限后才发现原来只有root管理员用户才有写入权限的,怪不得会提示写入出错呢,咱们只需要把目录的所有者身份改成系统帐户ftp即可,这样就应该可以了吧~

[root@linuxprobe~]# ls-ld/var/ftp/pub

drwxr-xr-x. 3 root root 16 Jul 13 14:38/var/ftp/pub

[root@linuxprobe~]# chown-Rf ftp/var/ftp/pub

[root@linuxprobe~]# ls-ld/var/ftp/pub

drwxr-xr-x. 3 ftp root 16 Jul 13 14:38/var/ftp/pub

[root@linuxprobe~]# ftp 192.168.10.10

Connected to 192.168.10.10(192.168.10.10).

220(vsFTPd 3.0.2)

Name(192.168.10.10:root): anonymous

331 Please specify the password.

Password:此处敲击回车即可

230 Login successful.

Remote system type is UNIX.

Using binary mode to transfer files.

ftp> cd pub

250 Directory successfully changed.

ftp> mkdir files

550 Create directory operation failed.

又报错了!!此时再次使用ftp命令登入到FTP服务器主机后依然会提示写入操作失败,但细心的同学一定发现报错信息已经产生了变化,在刚刚没有写入权限的时候提示说权限拒绝(Permission denied.)所以咱们怀疑是权限的问题,但现在是提示创建目录的操作失败(Create directory operation failed.)那么咱们同学应该也能马上意识到是SELinux服务在限制这个操作了吧,查看下所有与ftp相关的SELinux域策略有那些吧:

[root@linuxprobe~]# getsebool-a| grep ftp

ftp_home_dir--> off

ftpd_anon_write--> off

ftpd_connect_all_unreserved--> off

ftpd_connect_db--> off

ftpd_full_access--> off

ftpd_use_cifs--> off

ftpd_use_fusefs--> off

ftpd_use_nfs--> off

ftpd_use_passive_mode--> off

httpd_can_connect_ftp--> off

httpd_enable_ftp_server--> off

sftpd_anon_write--> off

sftpd_enable_homedirs--> off

sftpd_full_access--> off

sftpd_write_ssh_home--> off

tftp_anon_write--> off

tftp_home_dir--> off

根据策略的名称和经验可以猜测出是哪一条规则策略,咱们在设置的时候请记得使用-P参数来让配置过的策略永久生效,保证在服务器重启后依然能够顺利写入文件,咱们可以分别尝试下创建目录文件、对文件进行改名以及删除目录文件等等操作。最后,恭喜同学们完成了这个实验课程,建议您在进行一次实验课程前还原虚拟机到最初始的状态,以免多个配置参数之间产生冲突。

[root@linuxprobe~]# setsebool-P ftpd_full_access=on

[root@linuxprobe~]# ftp 192.168.10.10

Connected to 192.168.10.10(192.168.10.10).

220(vsFTPd 3.0.2)

Name(192.168.10.10:root): anonymous

331 Please specify the password.

Password:此处敲击回车即可

230 Login successful.

Remote system type is UNIX.

Using binary mode to transfer files.

ftp> cd pub

250 Directory successfully changed.

ftp> mkdir files

257"/pub/files" created

ftp> rename files database

350 Ready for RNTO.

250 Rename successful.

ftp> rmdir database

250 Remove directory operation successful.

ftp> exit

221 Goodbye.

11.2.2本地用户模式

本地用户模式是通过Linux系统本地的帐号密码信息进行的验证方式,这种模式相比较匿名开放模式来说比较安全,不过如果被骇客暴力破解出FTP帐号信息,也就可以通过这个口令登陆到咱们的服务器系统中了,从而完全控制整台服务器主机。本地用户模式配置起来十分简单,而且既然本地用户模式确实要比匿名开放模式更加的安全,因此推荐既然开启了本地用户模式,就把匿名开放模式给关闭了吧~咱们对本地用户模式需要使用的权限参数及介绍如下表:

编辑

参数作用

anonymous_enable=NO禁止匿名访问模式。

local_enable=YES允许本地用户模式。

write_enable=YES设置可写入权限。

local_umask=022本地用户模式创建文件的umask值。

userlist_deny=YES参数值为YES即禁止名单中的用户,参数值为NO则代表仅允许名单中的用户。

userlist_enable=YES允许“禁止登陆名单”,名单文件为ftpusers与user_list。

[root@linuxprobe~]# vim/etc/vsftpd/vsftpd.conf

anonymous_enable=NO

local_enable=YES

write_enable=YES

local_umask=022

dirmessage_enable=YES

xferlog_enable=YES

connect_from_port_20=YES

xferlog_std_format=YES

listen=NO

listen_ipv6=YES

pam_service_name=vsftpd

userlist_enable=YES

tcp_wrappers=YES

当咱们确认参数信息已经填写正确就可以保存退出了,要想让新的配置参数生效还要记得重启一下vsftpd服务程序,并且在刚刚实验后还原了虚拟机的同学还请记得再把配置的服务加入到开机启动项中,让咱们的vsftpd服务程序在重启后依然能够正常使用。

[root@linuxprobe~]# systemctl restart vsftpd

[root@linuxprobe~]# systemctl enable vsftpd

ln-s'/usr/lib/systemd/system/vsftpd.service''/etc/systemd/system/multi-user.target.wants/vsftpd.service

按道理来说咱们现在就已经可以使用本地用户登陆到FTP服务器中了,但使用root用户登陆后会提示如下的错误信息:

[root@linuxprobe~]# ftp 192.168.10.10

Connected to 192.168.10.10(192.168.10.10).

220(vsFTPd 3.0.2)

Name(192.168.10.10:root): root

530 Permission denied.

Login failed.

ftp>

在咱们输入root管理员用户的密码前就已经提示被拒绝了,看来有什么东西再禁止着用户登陆,这是因为咱们vsftpd服务程序目录中默认存在着两个文件(ftpusers或user_list),这两个文件叫做禁止用户名单,不知道同学们有没有看过一个叫做“死亡笔记”的日本电影,里面就提到有一个黑色封皮的小本本,任何人的名字写进去都会死亡,其实咱们在配置的这个vsftpd服务程序的禁止文件也有类似的功能,只要里面写有某个用户的名字,那么就不再允许这个用户登陆到咱们的FTP服务器上面。

具体步骤参考文档:,可以部署一个vsftpd服务

CentOS上的安全防护软件Selinux详解

selinux简介

SELinux(Security-Enhanced Linux)是美国国家安全局(NSA)对于强制访问控制的实现,是Linux历史上最杰出的新安全子系统。NSA是在Linux社区的帮助下开发了一种访问控制体系,在这种访问控制体系的限制下,进程只能访问那些在他的任务中所需要文件。SELinux默认安装在Fedora和Red Hat Enterprise Linux上,也可以作为其他发行版上容易安装的包得到,2000年以GNU GPL发布,Linux内核2.6版本后集成在内核中

DAC:Discretionary Access Control自由访问控制

MAC:Mandatory Access Control强制访问控制

DAC环境下进程是无束缚的

MAC环境下策略的规则决定控制的严格程度

MAC环境下进程可以被限制的

策略被用来定义被限制的进程能够使用那些资源(文件和端口)

默认情况下,没有被明确允许的行为将被拒绝

selinux的工作类型

selinux一共有四种工作类型

strict:每个进程都受到selinux的控制

targeted:用来保护常见的网络服务,仅有限进程受到selinux控制,系统当中默认设置类型

minimum:这个模式在centos7上,是targeted的修改版,只对选择的网络服务,仅对选中的进程生效

mls:提供mls机制的安全性,国防级别的

selinux安全上下文

传统的linux,一切皆文件,由用户、组、权限来进行访问控制,这当中有很多的缺陷

在selinux中,一切皆对象(进程),有存放在inode的扩展属性域的安全元素所控制其访问

所有文件和端口资源和进程都具备安全标签,这就是安全上下文

安全上下文有五个元素组成

system_u:object_r:admin_home_t:s0

user:role:type:sensitivity:category

user:指示登录系统的用户类型,如root,user_u,system_u,多数本地进程都属于自由进程

role:定义文件,进程和用户的用途,文件:object_r,进程和用户:system_r

type:指定数据类型,规则重定义何种进程类型访问何种文件,target策略基于type实现,多服务功用,public_content_t

sensitivity:限制访问的需要,由组织定义的分层安全级别,如unclassified,secret,top,一个对象有且只有一个sensitivity,分0-15个级别,s0最低,target策略默认使用是s0

category:对于特定组织划分不分层的分类,如FBI secret,NSA secret,一个对象可以有多个category,c0-c1023共1024个分类,target策略不适用category

查看安全上下文

ls Z; ps-Z

期望(默认)上下文:存放在二进制的selinux策略库中

semanage fcontext l查看系统中的默认安全上下文

@font-face{

font-family:宋体;

}@font-face{

font-family: Cambria Math;

}@font-face{

font-family: Calibri;

}@font-face{

font-family:@宋体;

}p.MsoNormal, li.MsoNormal, div.MsoNormal{ margin: 0cm 0cm 0.0001pt; text-align: justify; font-size: 10.5pt; font-family: Calibri,sans-serif;}.MsoChpDefault{ font-family: Calibri,sans-serif;}div.WordSection1{}

selinux策略

对象(object):所有可以读取的对象,包括文件、目录和进程,端口等

主体:进程称为主题(subject)

selinux中对所有的文件都赋予一个type的文件类型标签,对于所有的进程也赋予各自的一个domain标签。domain标签能够执行的操作由安全策略里定义

当一个subject视图访问一个object,kernel中的粗略执行服务器将检查AVC,在AVC中,subject和object的权限被缓存,查找应用+文件的安全环境,然后根据查询结果允许或拒绝访问

安全策略:定义主体读取对象的规则数据库,规则中记录了那个类型的主体使用了那个方法读取哪一个对象是允许还是拒绝的,并且定义了那种行为是允许或拒绝

设置selinux

配置selinux

selinux是否启用

给文件重新打安全标签

给端口设置安全标签

设定某些操作的布尔型开关

selinux的日志管理

selinux的状态

enforcing:强制,每个受限的进程都必然受限

permissive:允许;每个受限的进程违规操作不会被禁止,但会被记录与审计日志

disabled:禁用,允许任何操作

getenforce:获取selinux当前状态

sestatus:查看selinux状态

setenforce 0|1

0:设置为permissive

1:设置为enforcing

配置文件

/etc/sysconfig/selinux链接文件链接到/etc/selinux/config

/etc/selinux/config

# This file controls the state of SELinux on the system.

# SELINUX= can take one of these three values:

# enforcing SELinux security policy is enforced.

# permissive SELinux prints warnings instead of enforcing.

# disabled SELinux is fully disabled.

SELINUX=enforcing

# SELINUXTYPE= type of policy in use. Possible values are:

# targeted Only targeted network daemons are protected.

# strict Full SELinux protection.

SELINUXTYPE=targeted

SELINUX=enforcing设置selinux的状态

SELINUXTYPE=targeted设置selinux的工作类型

设置selinux也可以在开机的时候设定,在/boot/grub/grub.conf文件内核那一行后面设定selinux的状态selinux=0|1,只要配置文件或内核设定为禁用,最后selinux的状态为禁用

注意:在从disabled状态切换至enforcing或permissive状态需要重启系统,这时候系统会对每一个文件一一重打标签,需要花费一定的时间。

修改selinux的安全标签

给文件重新打安全标签

chcon [OPTION] [-u USER] [-r ROLE] [-l RANGE] [-t TYPE] FILE..

chcon [OPTION] reference=RFILE FILE..

-R:递归打标,对目录而言

例如我想给自己定义的web文档根目录自定义为/htdocs

chcon-R httpd_sys_content_t/htdocs

恢复目录或文件默认的安全上下文

resotrecon [-R]/path/to/somewhere

例如:我又将web的文档根目录改为原来的目录,这时候自定义的目录的标签需要还原

restorecon-R/htdocs

恢复是根据策略库当中的策略进行还原

默认安全上下文查询与修改

semanage来自policycoreutils-python包,有些系统默认没有安装,安装次包即可使用semanage命令

查看默认的安全上下文

semanage fcontext l

添加安全上下文

semanage fcontext-a t httpd_sys_content_t/home/hadoop(/.*)?

restorecon Rv/home/hadoop此步骤一定不能忘记,它从策略库进行还原安全上下文,执行此命令才会生效

删除安全上下文

semanage fcontext d t httpd_sys_content_t/home/hadoop(/.*)?

selinux端口标签

查看端口标签

semanage port-l

添加端口

semanage port-a-t port_label p tcp|udp port

semanage port a-t htt_port_t-p tcp 8080

删除端口

semanage port-d-t port_label-p tcp|udp port

semanage port-d-t htt_port_t-p tcp 8080

修改现有(已存在)端口为新标签

semanage port-m t port_label p tcp|udp port

semanage port m t ssh_port_t p tcp 8080将ssh服务的端口改为8080

selinux布尔值

查看布尔值命令

getsebool [-a] [boolean]

semanage boolean l-C查看修改过的布尔值

设置bool值命令

setsebool [-P] boolean value(on|off|1|0)

setsebool httpd_enable_homedirs on|1开启httpd家目录访问,但不会写入策略库中

setsebool-P httpd_enable_homedirs on|1

修改bool值时后面的值可以对布尔值类型后跟=加值的设置方法

setsebool httpd_enable_homedirs=on

selinux的日志管理

需要安装settroublesshoot*安装此包需要重启系统才能生效,它会将错误日志记录到/var/log/message

grep setroubleshoot/var/log/message

sealer-l UUID

查看安全事件日志说明

sealert-a/var/log/audit/audit.log

扫描并分析日志

yum-y install selinux-policy-devel(centos7)

yum y install selinux-policy-doc(centos6)

mandb| makewhatis需要更新man帮助的数据才能查询

man-k _selinux

例如man httpd_selinux

总结:selinux在安全防护上确实起到了一定的作用,它是在内核层面来工作,往往有许多的漏洞,一旦黑客利用漏洞入侵系统后果不堪设想,还有其操作的繁琐和稳定性的欠缺的导致很多企业不愿意用到selinux,一般都会使用硬件的安全防护设备,所以我们只需要作为了解,知道有这么个东西,如何开关闭及一些简单的操作即可。

阅读剩余
THE END