手机selinux是什么?

SELinux 的启动、关闭与查看

1,并非所有的 Linux distributions 都支持 SELinux 的

目前 SELinux 支持三种模式,分别如下:

•enforcing:强制模式,代表 SELinux 运作中,且已经正确的开始限制 domain/type 了;

•permissive:宽容模式:代表 SELinux 运作中,不过仅会有警告讯息并不会实际限制 domain/type 的存取。这种模式可以运来作为 SELinux 的 debug 之用;

•disabled:关闭,SELinux 并没有实际运作。

2,查看SELinux的模式

# getenforce

Enforcing <==就显示出目前的模式为 Enforcing

3,查看 SELinux 的政策 (Policy)?

[root@master oracle]# sestatus

SELinux status: enabled <==是否启动 SELinux

SELinuxfs mount: /selinux <==SELinux 的相关文件资料挂载点

Current mode: enforcing <==目前的模式

Mode from config file: enforcing <==设定档指定的模式

Policy version: 21

Policy from config file: targeted <==目前的政策为何?

4,通过配置文件调整SELinux的参数

[root@www ~]# vi /etc/selinux/config

SELINUX=enforcing <==调整 enforcing|disabled|permissive

SELINUXTYPE=targeted <==目前仅有 targeted 与 strict

5,SELinux 的启动与关闭

【重要常识】上面是预设的政策与启动的模式!你要注意的是,如果改变了政策则需要重新开机;如果由 enforcing 或 permissive 改成 disabled ,或由 disabled 改成其他两个,那也必须要重新开机。这是因为 SELinux 是整合到核心里面去的, 你只可以在 SELinux 运作下切换成为强制 (enforcing) 或宽容 (permissive) 模式,不能够直接关闭 SELinux 的!

*由 SELinux 关闭 (disable) 的状态到开启的状态也需要重新开机啦!*如果刚刚你发现 getenforce 出现 disabled 时, 请到上述文件修改成为 enforcing 吧!

【重点】如果要启动SELinux必须满足以下两个点:

*如果你要启动 SELinux 的话,请将上述的 SELINUX=enforcing 设定妥当,并且指定 SELINUXTYPE=targeted 这一个设定, 并且到 /boot/grub/menu.lst 这个文件去,看看核心有无关闭 SELinux 了呢?

[root@www ~]# vi /boot/grub/menu.lst

default=0

timeout=5

splashimage=(hd0,0)/grub/splash.xpm.gz

hiddenmenu

title CentOS (2.6.18-92.el5)

root (hd0,0)

kernel /vmlinuz-2.6.18-92.el5 ro root=LABEL=/1 rhgb quiet selinux=0

initrd /initrd-2.6.18-92.el5.img

# 如果要启动 SELinux ,则不可以出现 selinux=0 的字样在 kernel 后面!

【问题】通过上面的学习我们知道,如果将启动着的SELinux改为禁用,需要重启电脑,我们不想重启电脑又不想开启SELinux该怎么办呢?

【答案】将强制模式改为宽松模!

[root@www ~]# setenforce [0|1]

选项与参数:

0 :转成 permissive 宽容模式;

1 :转成 Enforcing 强制模式

范例一:将 SELinux 在 Enforcing 与 permissive 之间切换与查看

[root@www ~]# setenforce 0

[root@www ~]# getenforce

Permissive

[root@www ~]# setenforce 1

[root@www ~]# getenforce

Enforcing

6,查看已启动程序的type设定

[root@master oracle]# ps aux -Z

LABEL USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND

system_u:system_r:init_t root 1 0.0 0.4 2060 520 ? Ss May07 0:02 init [5

system_u:system_r:kernel_t root 2 0.0 0.0 0 0 ? S< May07>

system_u:system_r:kernel_t root 11 0.0 0.0 0 0 ? S< May07>

system_u:system_r:auditd_t root 4022 0.0 0.4 12128 560 ? S

system_u:system_r:auditd_t root 4024 0.0 0.4 13072 628 ? S

system_u:system_r:restorecond_t root 4040 0.0 4.4 10284 5556 ? Ss May07 0:00 /usr/*

说明:其实这些东西我们都不用管,都是SELinux内置的。只要学会在强制和宽松模式间转换就行了!

linux之selinux

SELinux,全称为Security Enhanced
Linux,也就是安全强化的Linux,由美国国家*(NSA)联合其他安全机构(比如SCC公司)共同开发的,旨在增强传统Linux操作系统的安全性,解决传统Linux系统中自主访问控制(DAC)系统中的各种权限问题(如root权限过高等)。
SELinux提供了3种工作模式:Disabled、Permissive和Enforcing,而每种模式都为Linux系统安全提供了不同的好处。
1、Disable工作模式(关闭模式)
在Disable模式中,SELinux被关闭,默认的DAC访问控制方式被使用。对于那些不需要增强安全性的环境来说,该模式是非常有用的。
例如,若从你的角度看正在运行的应用程序工作正常,但是却产生了大量的SELinux
AVC拒绝消息,最终可能会填满日志文件,从而导致系统无法使用。在这种情况下,最直接的解决方法就是禁用SELinux,*你也可以在应用程序所访问的文件上设置正确的安全上下文。
需要注意的是,在禁用SELinux之前,需要考虑一下是否可能会在系统上再次使用SELinux,如果决定以后将其设置为Enforcing或
Permissive,那么当下次重启系统时,系统将会通过一个自动SELinux文件重新进程标记。
关闭SELinux的方式也很简单,只需编辑配置文件/etc/selinux/config,并将文本中SELINUX=更改为SELINUX=disabled即可,重启系统后,SELinux就被禁用了。
2、Permissive工作模式(宽容模式)
在Permissive模式中,SELinux被启用,但安全策略规则并没有被强制执行。当安全策略规则应该拒绝访问时,访问仍然被允许。*此时会向日志文件发送一条消息,表示该访问应该被拒绝。
某些情况下,可使用audit2allow命令来读取SELinux审核日志并生成新的SELinux规则,从而有选择性地允许被拒绝的行为,而这也是一种在不禁用SELinux的情况下,让应用程序在Linux系统上工作的快速方法。
3、Enforcing工作模式(强制模式)
从此模式的名称就可以看出,在Enforcing模式中,SELinux被启动,并强制执行所有的安全策略规则。

相关内容扩展阅读:

linux 下的内核头文件放在哪里

linux下的内核头文件放在/usr/include/linux/和/usr/include/sys/

linux目录树:
scripts目录
该目录中不包含任何核心代码,该目录下存放了用来配置内核的脚本和应用程序源码。
lib目录
该目录主要包含两部分内容:gnuzip解压缩算法,用于在系统启动过程中将压缩的内核镜像解压缩;剩余的文件用于实现一个C库的子集,主要包括字符串和内存操作等相关函数。
mm目录
该目录包含了体系结构无关的内存管理代码,包括通用的分页模型的框架、伙伴算法的实现和对象缓冲器slab的实现代码。
include目录
这个目录包含了Linux源代码目录树中绝大部分头文件,每个体系架构都在该目录下对应一个子目录,该子目录中包含了给定体系结构所必需的宏定义和内联函数。
init目录
该目录中存放的是系统核心初始化代码,内核初始化入口函数start_kernel就是在该目录中的文件main.c内实现的。
kernel目录
该目录中存放的是Linux内核的最核心的代码,用于实现系统的核心模块,这些模块包括:进程管理、进程调度器、中断处理、系统时钟管理、同步机制等。
arch目录
该目录中的每个子目录中都与某种体系结构相对应,用于存放体系结构相关代码,向平台无关的系统核心模块提供所需的功能接口。每个体系结构对应的子目录下通常至少包含以下几个子目录:kernel子目录、lib子目录、mm子目录、boot子目录。
系统次核心组件包括:
block目录:用于实现块设备的基本框架和块设备的I/O调度算法。
usr目录:该目录中的代码为内核尚未完全启动时执行用户空间代码提供了支持
ipc目录:该目录中的文件用于实现System V的进程间通信模块。
driver目录:用于存放各类设备的驱动程序。
sound目录:存放了声音系统架构,如Open Sound System(OSS)、Advanced Linux Sound Architecture(ALSA)的相关代码和具体声卡的设备驱动程序
security目录:存放了Security-Enhanced Linux(SELinux)安全框架的实现代码
crypto目录:该目录中存放了相关的加密算法的代码。
Documentation目录:存放了与内核相关的文档。
net和fs目录:包含linux内核支持的众多网络协议和文件系统。

linux怎么限制用户只能在一个终端登录

大家都知道现在很多电脑软件都有限制用户登陆失败次数的限制,Linux也是如此,当你登录失败多次后就可以限制用户登录,从而起到保护电脑安全的作用,通过PAM模块即可实现,下面随我一起来了解下吧。Linux有一个pam_tally2.so的PAM模块,来限定用户的登录失败次数,如果次数达到设置的阈值,则锁定用户。编译PAM的配置文件# vim /etc/pam.d/login#%PAM-1.0auth required pam_tally2.so deny=3 lock_time=300 even_deny_root root_unlock_time=10auth [user_unknown=ignore success=ok ignoreignore=ignore default=bad] pam_securetty.soauth include system-authaccount required pam_nologin.soaccount include system-authpassword include system-auth# pam_selinux.so close should be the first session rulesession required pam_selinux.so closesession optional pam_keyinit.so force revokesession required pam_loginuid.sosession include system-authsession optional pam_console.so# pam_selinux.so open should only be followed by sessions to be executed in the user contextsession required pam_selinux.so open各参数解释even_deny_root 也限制root用户;deny 设置普通用户和root用户连续错误登陆的最大次数,超过最大次数,则锁定该用户unlock_time 设定普通用户锁定后,多少时间后解锁,单位是秒;root_unlock_time 设定root用户锁定后,多少时间后解锁,单位是秒;此处使用的是 pam_tally2 模块,如果不支持 pam_tally2 可以使用 pam_tally 模块。另外,不同的pam版本,设置可能有所不同,具体使用方法,可以参照相关模块的使用规则。在#%PAM-1.0的下面,即第二行,添加内容,一定要写在前面,如果写在后面,虽然用户被锁定,但是只要用户输入正确的密码,还是可以登录的!最终效果如下图这个只是限制了用户从tty登录,而没有限制远程登录,如果想限制远程登录,需要改SSHD文件# vim /etc/pam.d/sshd#%PAM-1.0auth required pam_tally2.so deny=3 unlock_time=300 even_deny_root root_unlock_time=10auth include system-authaccount required pam_nologin.soaccount include system-authpassword include system-authsession optional pam_keyinit.so force revokesession include system-authsession required pam_loginuid.so同样是增加在第2行!查看用户登录失败的次数[root@node100 pam.d]# pam_tally2 --user RedHatLogin Failures Latest failure Fromredhat 7 07/16/12 15:18:22 tty1解锁指定用户[root@node100 pam.d]# pam_tally2 -r -u redhatLogin Failures Latest failure Fromredhat 7 07/16/12 15:18:22 tty1这个远程ssh的时候,没有提示,我用的是Xshell,不知道其它终端有没提示,只要超过设定的值,输入正确的密码也是登陆不了的!上面就是Linux通过PAM模块限制用户登录次数的方法,最好设置下,以免别人用工具破解你的电脑,窃取你的隐私信息。

linux中安装了一个插件,这个插件装完后正常的情况在终端输入./phpxujh -p pid可查看当前PID的运行情况,

但是我安装完中插件后运行这个没反应, 我就想问一下linux程序在哪里可以查看运行的日志,我可以查一下到底哪里出现错误,我不知道怎么处理,求高人指点
目录
开始之前
系统环境
监控内容
所需软件包
CentOS7重要变化
配置开发环境
同步时间
关闭Selinux
使用CRT上传软件包
安装邮件服务
监控主机安装
常用到的命令
安装nagios所需要的运行环境
增加用户
安装nagios
配置权限
安装插件
安装nrpe
远程主机安装
常用到的命令
配置运行环境
安装nagios-plugin
安装nrpe
启动nrpe
监控主机安装PNP
配置开发环境
安装pnp4nagios (版本号为0.6)
配置pnp4nagios
图表展示
问题*
在首次配置了nagios监控端后,在浏览器输入地址后连接不上
启动nrpe后却不能互相通信
安装pnp4nagios后出现The requested URL /pnp4nagios/graph was not found on this server.
出现“CHECK_NRPE: Error - Could not complete SSL handshake.”的错误
执行 ./configure时报错:configure error cannot find ssl headers
解压./configure 后,在nagios-4.0.8进行make all报错
安装nrpe时执行.configure出错
错误:perfdata directory "/usr/local/pnp4nagios/var/perfdata/" is empty
开始之前
声明:本文中的命令都经过了测试,但难免有所纰漏,如果你发现命令粘贴后运行有错,可能是由于符号的格式(尤其是破折号)导致的,此时你应该自己手打一遍命令。对于本文中发现的错误和建议,请发送邮件给我:
kylinlingh@foxmail.com,请在邮件主题里注明“关于nagios的问题(建议)”。
--------------------------------------分割线 --------------------------------------
在Ubuntu下配置Mrtg监控Nginx和服务器系统资源 http://www.linuxidc.com/Linux/2013-08/88417.htm
使用 snmp+Mrtg 监控 Linux 系统 http://www.linuxidc.com/Linux/2012-11/73561.htm
Mrtg服务器搭建(监控网络流量) http://www.linuxidc.com/Linux/2012-07/64315.htm
网络监控器Nagios全攻略 http://www.linuxidc.com/Linux/2013-07/87067.htm
Nagios搭建与配置详解 http://www.linuxidc.com/Linux/2013-05/84848.htm
Nginx环境下构建Nagios监控平台 http://www.linuxidc.com/Linux/2011-07/38112.htm
在RHEL5.3上配置基本的Nagios系统(使用Nagios-3.1.2) http://www.linuxidc.com/Linux/2011-07/38129.htm
CentOS 5.5+Nginx+Nagios监控端和被控端安装配置指南 http://www.linuxidc.com/Linux/2011-09/44018.htm
Ubuntu 13.10 Server 安装 Nagios Core 网络监控运用 http://www.linuxidc.com/Linux/2013-11/93047.htm
--------------------------------------分割线 --------------------------------------
系统环境
一共3台机器,全都按照CentOS7最小化模式安装系统
系统版本号
[root@localhost ~]# cat /etc/RedHat-release
CentOS Linux release 7.0.1406 (Core)
监控主机
(一台)
IP地址:192.168.1.204
主机名称:nagios_server_204
远程主机
(两台)
IP地址:192.168.1.112
主机名称:nagios_slave_112
IP地址:192.168.1.113
主机名称:nagios_slave_113
分区情况
安装时使用默认分区(使用 df 命令来查看)
[root@localhost ~]# df -h
监控内容
要监控的服务
监控命令
cpu负载
(check_linux_state.pl -C)
当前用户登录数量
(check_users)
磁盘使用情况
(check_disk)
总进程数
(check_procs)
内存使用情况
(check_linux_stats.pl -M)
负载均衡
(check_load)
磁盘IO
(check_linux_stats.pl -I)
网络流量
(check_linux_stats.pl -N)
打开的文件数量
(check_linux_stats.pl -F)
socket连接数
(check_linux_stats.pl -S)
进程使用的内存和CPU
(check_linux_stats.pl -T)
指定的网站是否可连接
(check_http)
系统在线时长
(check_uptime)
所需软件包
监控主机
软件包
下载地址
nagios-4.0.8.tar.gz
请到我的github地址里下载:
https://github.com/Kylinlin/install_nagios_automatically/tree/master/nagios_tools_for_server
注明:我的github项目install_nagios_automatically是一个一键自动化安装nagios的项目(能运行,但还在完善中)
nagios-plugins-2.0.3.tar.gz
nrpe-2.15.tar.gz
pnp4nagios-0.6.25.tar.gz
Sys-Statistics-Linux-0.66.tar.gz
libxml2-2.7.1.tar.gz
远程主机
软件包
下载地址
nagios-plugins-2.0.3.tar.gz
请到我的github地址里下载:
https://github.com/Kylinlin/install_nagios_automatically/tree/master/nagios_tools_for_client
nrpe-2.15.tar.gz
Sys-Statistics-Linux-0.66.tar.gz
Centos7重要变化
Centos7相比较以前的Centos有一些涉及到常用命令的变化,如果不事先了解,会在使用命令的时候造成巨大的困扰
Centos7默认没有ifconfig和netstat两个命令了,ip addr命令代替了ifconfig,只要安装上net-tools包就可以继续使用ifconfig和netstat两个命令了
systemctl命令的出现(systemctl可以看作是service和chkconfig的组合),虽然仍然可以使用以前的命令,但是会重定向到新的命令中,下面以http服务为例
job
以前的系统
CentOS7
服务开机启动
chkconfig --level 3 httpd on
systemctl enable httpd.service
服务不开机启动
chkconfig --level 3 httpd off
systemctl disable httpd
服务状态
service httpd status
systemctl status httpd
所有服务的启动状态
chkconfig --list
systemctl
启动服务
service httpd start
systemctl start httpd.service
停止服务
service httpd stop
systemctl stop httpd.service
重启服务
service httpd restart
systemctl restart httpd.service
配置开发环境
同步时间
把监控系统里的所有机器都同步一次网络时间(非常重要)
[root@localhost ~]timedatectl #该命令用来检查当前时间和时区
如果发现所有机器的时区不一致,此时就要使用命令
[root@localhost ~]timedatectl list-timezones #该命令列出了所有的时区
[root@localhost ~]timedatectl set-timezone Asia/Shanghai #该命令把时区设置为上海
ntpdate time.nist.gov #该命令同步网络当前的时间
如果提示没有ntpdate命令,则安装ntp,并且配置系统自动更新时间
[root@localhost ~]# yum install ntp -y
[root@localhost ~]# /usr/*in/ntpdate time.nist.gov
[root@localhost ~]# echo '#time sync'>>/var/spool/cron/root
[root@localhost ~]# echo '*/10**** /usr/*in/ntpdate time.nist.gov >/dev/null 2>&1'>>/var/spool/cron/root
关闭Selinux
不关闭selinux可能会导致一些难以察觉的错误,为了保险起见,首先关闭selinux:
[root@localhost ~]vi /etc/selinux/config

重启机器
检查selinux是否关闭:
[root@localhost ~]getenforce #如果显示enforcing则没有关闭
使用SecureCRT上传软件包
我在这里使用的SSH连接工具是SecureCRT7.2,通过这个工具上传文件到Linux的步骤如下:
1. 首先在Linux中安装传送文件命令:
[root@localhost ~] yum install lrzsz -y
2. 然后在Linux中跳转到/usr/local/src目录下
[root@localhost ~] cd /usr/local/src
3. 运行CRT的传送文件命令

安装邮件服务
因为邮件报*务需要安装mail功能
[root@localhost ~]yum install –y mailx
[root@localhost ~]yum install –y sendmail
[root@localhost ~]systemctl restart sendmail.service
[root@localhost ~]mail –s Test xxx@xxx.com(你的邮箱地址)
#此时进入输入模式,输入完邮件内容后按ctrl + d退出并且发送
监控主机安装
常用到的命令
命令内容
命令格式
检查nagios的配置文件是否有错
/etc/init.d/nagios checkconfig
或者
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
启动nagios
systemctl start nagios.service
或者
/usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg
修改了nagios的配置文件后重新加载配置文件
/etc/init
安装nagios所需要的运行环境
[root@localhost ~]# yum install gcc glibc glibc-common -y
[root@localhost ~]# yum install php php-gd perl -y
[root@localhost ~]# yum install httpd gd gd-devel openssl openssl-devel -y
[root@localhost ~]# systemctl enable httpd.service #设置CentOS开机启动服务
增加用户
[root@localhost ~]useradd -m nagios
并将nagios以及apache用户加入到nagcmd组中
[root@localhost ~]groupadd nagcmd
[root@localhost ~]usermod -G nagcmd nagios
[root@localhost ~]usermod -a -G nagcmd apache #把apace用户添加到与nagios的一个组(apache用户会在安装apache时自动创建)
安装nagios
[root@localhost src]# tar -zxvf nagios-4.0.8.tar.gz
[root@localhost src]# cd nagios-4.0.8
首先初始化和建立编译的环境
[root@localhost nagios-4.0.8]#./configure --with-command-group=nagcmd
如果能看到下面的基本配置信息则说明初始的环境已经成功配置完成:
之后按照提示执行命令来进行编译:
[root@localhost nagios-4.0.8]# make all
[root@localhost nagios-4.0.8]# make install
[root@localhost nagios-4.0.8]# make install-init
[root@localhost nagios-4.0.8]# make install-config
[root@localhost nagios-4.0.8]# make install-commandmode
[root@localhost nagios-4.0.8]# make install-webconf
安装完成之后,在/usr/local/nagios目录下如果能够看到这些目录:
就表示Naigos安装成功了。
Nagios的样例配置文件默认安装在/usr/local/nagios/etc目录下,配置这些文件就可以使得nagios按要求运行(详细的配置过程请参考我的另一篇博文:nagios服务配置详解)
此时应该为email指定您想用来接收nagios警告信息的邮件地址,默认是本机的nagios用户:
[root@localhost]# vi /usr/local/nagios/etc/objects/contacts.cfg
email nagios@localhost #把描红的地方修改为你的email地址
创建一个登录nagios web程序的用户(用户名配置为nagiosadmin则不需要配置权限,设置为其他用户名就要配置权限),我在这里把用户名设置为kylinlin,密码为123456,这个用户帐号在以后通过web登录nagios认证时所用:
[root@localhost ~]# htpasswd -bc /usr/local/nagios/etc/htpasswd.users kylinlin 123456 #把描红的地方修改为你的用户名和密码
配置权限
如果在上面创建登陆nagios web程序的用户名不是nagiosadmin(我在上面已经设置为kylinlin),在登陆nagios的web界面后(此时我们还不能登录,但如果你忽略了这一小节的配置,那么在后面的登陆中就会看到如下的界面),点击Hosts或Services会显示图片红色的错误提示

是因为nagios默认把全部的权限给nagiosadmin,所以可以通过修改cgi.cfg文件赋予kylinlin权限,切换到/usr/local/nagios/etc目录下
[root@localhost etc]# sed -i 's#nagiosadmin#kylinlin#g' cgi.cfg #这条命令将nagiosadmin用户名替换为kylinlin
[root@localhost etc]# grep kylinlin cgi.cfg #这条命令检查是否修改成功

以上过程配置结束以后需要重新启动httpd:
[root@localhost etc]# systemctl restart httpd.service
检查其主配置文件的语法是否正确:
[root@localhost etc]# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
或者使用下面这个命令来检查语法
[root@localhost etc]# /etc/init.d/nagios checkconfig

显示错误数为0才正确
配置成功
安装插件
刚才已经提到Nagios主程序只是一个控制中心,而能够起到服务监测和系统监测等功能的是众多Nagios的插件,没有插件的Nagios系统其实只是一个空壳。因此在安装了Nagios平台之后我们还需要安装插件。
Nagios插件同样是在其官方网站下载,目前版本是1.4.15。我将下载的源码包放到/usr/local目录下,按照下面的步骤进行解压,编译和安装:
[root@localhost src]# tar zxf nagios-plugins-2.0.3.tar.gz
[root@localhost src]# cd nagios-plugins-2.0.3
[root@localhost nagios-plugins-2.0.3]# ./configure --with-nagios-user=nagios --with-nagios-group=nagios
[root@localhost nagios-plugins-2.0.3]#make
[root@localhost nagios-plugins-2.0.3]#make install
通过下面的命令查看安装了多少个插件
[root@localhost nagios-plugins-2.0.3]#ls /usr/local/nagios/libexec/|wc -l
然后把Nagios加入到服务列表中以使之在系统启动时自动启动:
[root@localhost nagios-plugins-2.0.3]# chkconfig --add nagios
[root@localhost nagios-plugins-2.0.3]# chkconfig nagios on
执行下面的命令来验证Nagios的样例配置文件:
[root@localhost ~]# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
特别提醒:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。