AppArmor 是一款与SeLinux类似的安全框架/工具,其主要作用是控制应用程序的各种权限,例如对某个目录/文件的读/写,对网络端口的打开/读/写等等。

来之Novell网站的引用:

AppArmor is designed to provide easy-to-use application security for both servers and workstations. Novell AppArmor is an access control system that lets you specify per program which files the program may read, write, and execute. AppArmor secures applications by enforcing good application behavior without relying on attack signatures, so it can prevent attacks even if they are exploiting previously unknown vulnerabilities

AppArmor通过一个配置文件(即profile)来指定一个应用程序的相关权限。在大多数情况下,可以通过限制应用程序的某些不必要的权限来提升系统安全性,本人在  打造私有的DNS 服务 和 apparmor 引起自定义mysql 日志问题  就遇到了安全问题

AppArmor是 Ubuntu 的默认选择,但在默认情况下,系统自带安装的profile配置文件很少,通过命令:sudo apt-get install apparmor-profiles,可以安装额外的AppArmor-profile文件。

在Ubuntu下通过命令sudo apparmor_status可以查看当前AppArmor的状态。

执行sudo apt-get install apparmor-profiles命令之前的自带profile配置:

$ sudo  apparmor_status
apparmor module is loaded.
6 profiles are loaded.
6 profiles are in enforce mode.
   /sbin/dhclient
   /usr/lib/NetworkManager/nm-dhcp-client.action
   /usr/lib/connman/scripts/dhclient-script
   /usr/sbin/mysqld
   /usr/sbin/ntpd
   /usr/sbin/tcpdump
0 profiles are in complain mode.
4 processes have profiles defined.
4 processes are in enforce mode.
   /sbin/dhclient (471)
   /sbin/dhclient (1088)
   /usr/sbin/mysqld (886)
   /usr/sbin/ntpd (4131)
0 processes are in complain mode.
0 processes are unconfined but have a profile defined.

执行sudo apt-get install apparmor-profiles命令之后的情况:

$ sudo  apparmor_status
apparmor module is loaded.
42 profiles are loaded.
9 profiles are in enforce mode.
   /sbin/dhclient
   /usr/lib/NetworkManager/nm-dhcp-client.action
   /usr/lib/chromium-browser/chromium-browser//browser_java
   /usr/lib/chromium-browser/chromium-browser//browser_openjdk
   /usr/lib/chromium-browser/chromium-browser//sanitized_helper
   /usr/lib/connman/scripts/dhclient-script
   /usr/sbin/mysqld
   /usr/sbin/ntpd
   /usr/sbin/tcpdump
33 profiles are in complain mode.
   /sbin/klogd
   /sbin/syslog-ng
   /sbin/syslogd
   /usr/lib/chromium-browser/chromium-browser
   /usr/lib/chromium-browser/chromium-browser//chromium_browser_sandbox
   /usr/lib/chromium-browser/chromium-browser//lsb_release
   /usr/lib/chromium-browser/chromium-browser//xdgsettings
   /usr/lib/dovecot/anvil
   /usr/lib/dovecot/auth
   /usr/lib/dovecot/config
   /usr/lib/dovecot/deliver
   /usr/lib/dovecot/dict
   /usr/lib/dovecot/dovecot-auth
   /usr/lib/dovecot/dovecot-lda
   /usr/lib/dovecot/imap
   /usr/lib/dovecot/imap-login
   /usr/lib/dovecot/lmtp
   /usr/lib/dovecot/log
   /usr/lib/dovecot/managesieve
   /usr/lib/dovecot/managesieve-login
   /usr/lib/dovecot/pop3
   /usr/lib/dovecot/pop3-login
   /usr/lib/dovecot/ssl-params
   /usr/sbin/avahi-daemon
   /usr/sbin/dnsmasq
   /usr/sbin/dovecot
   /usr/sbin/identd
   /usr/sbin/mdnsd
   /usr/sbin/nmbd
   /usr/sbin/nscd
   /usr/sbin/smbd
   /usr/{sbin/traceroute,bin/traceroute.db}
   /{usr/,}bin/ping
4 processes have profiles defined.
4 processes are in enforce mode.
   /sbin/dhclient (581)
   /sbin/dhclient (1115)
   /usr/sbin/mysqld (924)
   /usr/sbin/ntpd (3684)
0 processes are in complain mode.
0 processes are unconfined but have a profile defined.

可以看到新安装了一些profile配置文件。Apparmor的profile配置文件均保存在目录/etc/apparmor.d,对应的日志文件记录在/var/log/messages。

Apparmor使用内核标准安全文件系统机制(/sys/kernel/security)来加载和监控profiles文件。而虚拟文件/sys/kernel/security/apparmor/profiles里记录了当前加载的profiles文件。

重启apparmor,Apparmor的启动、停止等操作的相关命令如下:

Start : sudo /etc/init.d/apparmor start

Stop : sudo /etc/init.d/apparmor stop

reload: sudo /etc/init.d/apparmor reload

Show status: sudo /etc/init.d/apparmor status

原文地址:Ubuntu apparmor何方神圣
标签:apparmor   ubuntu   mysql   dns

智能推荐

Ubuntu apparmor何方神圣的更多相关文章

  1. 2015年CSDN博客排名第一名,何方神圣?

    2015年CSDN博客排名第一名,何方神圣? 一.引子: 话说博主phphot,雄霸天下好多年. 俱往矣, 落花流水春去也. 斗转星移,江山易主. 详细可以参见下文: CSDN博客排名第一名,何许人也 ...

  2. IoT边缘,你究竟是何方神圣?

    摘要:IoT边缘扮演着纽带的作用,连接边缘和云,将边缘端的实时数据处理,云端的强大计算能力两者结合,创造无限的价值. 本文分享自华为云社区<IoT边缘如何实现海量IoT数据就地处理>,作者 ...

  3. Qt中无处不在的d指针为何方神圣

    在研究QCoreApplication类的代码时,无意间弄明白了“d_func()”和“d指针”的来源: class Q_CORE_EXPORT QCoreApplication#ifndef QT_ ...

  4. if __name__ == '__main__' 到底是何方神圣(转)

    想必很多初次接触python都会见到这样一个语句,if __name__ == "__main__": 那么这个语句到底是做什么用的呢?在解释之前,首先要声明的是,不管你是多么小白 ...

  5. 即将上线的Imcash是何方神圣?

    区块链的诞生,让数字资产来到这个时代,每个人的财产分布又多了一种十分重要的选择. 当下每个人最需要的就是一款优秀的数字资产管理平台,目前市面上各种平台层出不穷,在线管理.离线管理.全节点钱包.轻钱包. ...

  6. P、NP、NPC、NP-Hard问题到底是何方神圣?

    最近在做一个求解有向图中回路的问题,老师说求解图中全部回路是一个NP难问题.突然想到P.NP.NPC.NP-hard的描述一致不是很清楚,所以又学习了一下. 在解释这四个概念之前,我们需要先知道两个问 ...

  7. HTML: < 和 > 是何方神圣

    懂HTML的,都知道 < 表示 <,> 表示 >,那还有什么好写呢? 知道是知道,记不记得住是另外一回事,今天用到这两家伙,又给忘记了,还要特意查了下. 缩写不好记,如果能知道 ...

  8. token 案例,只是测试,功能并不完善(只是看看token 到底是何方神圣)

    token 简单理解就是 加密 解密的一个过程 JavaWebToken(加密解密工具) public class JavaWebToken { private static Logger log = ...

  9. self , static 都是何方神圣?

    前言: php中 this  用于代指 对象, 而代指类的却有3个:self , static , parent self , static , parrent 既然都能代指类,那么他们之间又有哪些区 ...

随机推荐

  1. matlab练习程序(最小包围矩形)

    又是计算几何,我感觉最近对计算几何上瘾了. 当然,工作上也会用一些,不过工作上一般直接调用boost的geometry库. 上次写过最小包围圆,这次是最小包围矩形,要比最小包围圆复杂些. 最小包围矩形 ...

  2. 【HTML5】拖放(Drag 和 drop)

    效果图: <!DOCTYPE HTML> <html> <head> <style type="text/css"> #div1 { ...

  3. GC日志介绍

    每一种收集器的日志形式都是由它们自身的实现所决定的,换而言之,每个收集器的日志格式都可以不一样.但虚拟机设计者为了方便用户阅读,将各个收集器的日志都维持一定的共性,例如以下两段典型的GC日志: 33. ...

  4. node基础 --全局

    全局对象: global:永远使用var 定义变量以避免引入全局变量; process:所有全局执行上下文的内容都在process对象中: 模块和包: 模块:一个Node.js 文件就是一个模块,这个 ...

  5. MVC 依赖注入扩展

    需求: 小明想要完成一个功能F,需要一把锤子T. 有两种办法可以实现: 1)小明很爱动手,精力很旺盛,于是,自己创建一个具有功能F的锤子T,并使用T来完成F: 2)小明很懒,天天睡大觉,于是,他叫小健 ...

  6. KVM切换器

    所谓KVM,就是Keyboard.Video.Mouse的缩写,正式的名称为多计算机切换器.简单的说,就是一组键盘.显示器和鼠标,控制2台.4 台.8台.16台甚至到4096台以上的计算机主机. KV ...

  7. BZOJ3838 : [Pa2013]Raper

    将选取的$A$看成左括号,$B$看成右括号,那么答案是一个合法的括号序列. 那么只要重复取出$k$对价值最小的左右括号,保证每时每刻都是一个合法的括号序列即可. 将$($看成$1$,$)$看成$-1$ ...

  8. Graph database_neo4j 底层存储结构分析(5)

    3.5 Property 的存储 下面是neo4j graph db 中,Property数据存储对应的文件: neostore.propertystore.db neostore.propertys ...

  9. java操作FTP,实现文件上传下载删除操作

    上传文件到FTP服务器: /** * Description: 向FTP服务器上传文件 * @param url FTP服务器hostname * @param port FTP服务器端口,如果默认端 ...

  10. 将textField编辑完内容作为参数发送请求

    将textField编辑完内容作为参数发送请求  首先赋值默认值  其次把编辑完的内容传给model,这样的话,model里面的数据就是编辑完之后的内容了