所以我有:
#include <tunables/global>
/usr/bin/python2.7 {
/** mixrw,
deny /** lwk,
}
/usr/lib/jvm/java-6-openjdk/jre/bin/java {
/** mixrw,
deny /** lwk,
}
/var/www/service/usercode/*/a.out {
/** mixrw,
#deny /** lwk,
}
Run Code Online (Sandbox Code Playgroud)
我怎么能让它像这样:
#include <tunables/global>
/usr/bin/python2.7
/usr/lib/jvm/java-6-openjdk/jre/bin/java
/var/www/service/usercode/*/a.out
{
/** mixrw,
deny /** lwk,
}
Run Code Online (Sandbox Code Playgroud) 我想在 mysql 启动时运行一个 SQL 脚本,但我无法在 Ubuntu 11.10 中运行它。
我在 mysql 配置文件中添加了一个“ init-file ”选项:
> sudo emacs -nw /etc/mysql/my.cnf
...
[mysqld]
init-file=/etc/mysql/mysqlinit.sql
...
Run Code Online (Sandbox Code Playgroud)
但是当我重新启动 mysql 时,它失败并显示“找不到文件”错误:
> tail /var/log/mysql/error.log
111111 7:41:06 [ERROR] /usr/sbin/mysqld: File '/etc/mysql/mysqlinit.sql' not found (Errcode: 13)
111111 7:41:06 [ERROR] Aborting
Run Code Online (Sandbox Code Playgroud)
但该文件肯定存在并且是可读的:
> ls -l /etc/mysql/mysqlinit.sql
-rwxr-xr-x 1 mysql mysql 30 2011-11-09 05:06 /etc/mysql/mysqlinit.sql
Run Code Online (Sandbox Code Playgroud)
任何想法如何解决这个问题?这是 Ubuntu 的怪癖还是我做了一些愚蠢的事情?
信息:
我正在运行 Ubuntu 11.10 和 MySQL 5.1。
> mysqld --version
mysqld Ver 5.1.58-1ubuntu1 for debian-linux-gnu on x86_64 ((Ubuntu))
Run Code Online (Sandbox Code Playgroud) 我有以下容器设置。
在裸机服务器上安装并运行了两个 Docker 守护进程。
我想让客户访问Plugin Docker Daemon的 API (2376),以便客户可以部署/启动/停止他自己的容器。客户只能访问 API,而不能访问主机 (SSH)。
我目前面临的问题是,如果客户运行的容器执行诸如docker run -v /:/host/root Ubuntu rm -rf /host/root
.
我的问题是我能做些什么来防止插件 Docker 守护程序挂载根目录/
或外部的任何其他目录/home/user/
,
/home/user/
?--userns-remap
帮助我实现我的目标吗?服务器完全属于单个客户。因此,安全性或数据泄漏不是我的主要关注点。我真正想防止的是Plugin Daemon中的某个人正在做一些愚蠢的事情,这会影响我在Main Docker Daemon中运行的容器。我想保持精益并坚持仅使用 docker 的工作流程,并且不会为 VM 创建设置额外的工作流程。
在 Ubuntu 12.04 上运行 apache2,使用 mod-apparmor 支持 change-hat。
我已经安装并验证变化帽子是工作,但它不工作了外部包括帽子等提供的例如帽子phpSysInfo
由mod-apparmor
包。
我很好奇为什么这个特定的外部包含不起作用,当其他类型的包含(即:“抽象”)正在工作时。奇怪的是,如果它不起作用,包维护者会以这种方式设置它。
如果帽子不是作为“包含”提供,而是直接写入apache2
配置文件,则它可以正常工作。
相关的配置文件布局如下:
/etc/
| apparmor.d/
| | apache2.d/
| | | phpsysinfo
| | usr.lib.apache2.mpm-prefork.apache2
Run Code Online (Sandbox Code Playgroud)
并且这些帽子包含在这样的 apache 配置文件中,由包维护者提供:
/etc/
| apparmor.d/
| | apache2.d/
| | | phpsysinfo
| | usr.lib.apache2.mpm-prefork.apache2
Run Code Online (Sandbox Code Playgroud)
帽子文件 ( apache2.d/phpsysinfo
) 如下所示:
/usr/lib/apache2/mpm-prefork/apache2 flags=(complain) {
#include <apache2.d>
}
Run Code Online (Sandbox Code Playgroud) ntpd 抱怨它无法访问自己的日志
# ntpd -qgddd
...
11 Sep 16:23:00 ntpd[7262]: can't open /var/log/ntpstats/peerstats.20130911: Permission denied
...
11 Sep 16:23:01 ntpd[7262]: can't open /var/log/ntpstats/peerstats.20130911: Permission denied
...
11 Sep 16:23:01 ntpd[7262]: can't open /var/log/ntpstats/loopstats.20130911: Permission denied
Run Code Online (Sandbox Code Playgroud)
strace 表示同意
open("/var/log/ntpstats/loopstats.20130911", O_WRONLY|O_CREAT|O_APPEND, 0666) = -1 EACCES (Permission denied)
Run Code Online (Sandbox Code Playgroud)
根据 syslog apparmor 阻止它这样做
[526597.819210] type=1400 audit(1378909374.692:91): apparmor="DENIED" operation="open" parent=1013 profile="/usr/sbin/ntpd" name="/usr/local/sbin/" pid=7262 comm="ntpd" requested_mask="r" denied_mask="r" fsuid=0 ouid=0
[526597.819277] type=1400 audit(1378909374.692:92): apparmor="DENIED" operation="open" parent=1013 profile="/usr/sbin/ntpd" name="/usr/local/bin/" pid=7262 comm="ntpd" requested_mask="r" denied_mask="r" fsuid=0 ouid=0
[526597.819330] type=1400 audit(1378909374.692:93): …
Run Code Online (Sandbox Code Playgroud) 我正在为nginx
Ubuntu 14.04构建 AppArmor 策略,如果不启用该dac_override
功能,我将无法使其工作。
是否nginx
真的需要启用此功能或有什么方法可以解决它?覆盖所有自由访问控制看起来有风险,但在 AppArmor 约束中这可能很常见。
nginx
不受限制地运行良好,所以我认为没有权限问题,但我是 AppArmor 的新手,所以我可能是错的。
我正在 Debian 上使用 nginx 和 php-fpm 运行共享托管服务器。
一切正常,php-fpm 为作为单独用户运行的每个用户提供了单独的池,并且他们每个人都有自己的袜子。
然而,Nginx 作为 www-data 运行,因为我不想为每个用户拥有单独的 nginx 进程。
这意味着为了让 nginx 能够访问用户数据,/home 的权限必须是 drwxr-x--x。问题是,所有用户都可以访问其他用户的文件。
在不授予其他用户访问权限的情况下,让 nginx 访问用户文件的最佳方法是什么。以 root 身份运行 nginx 不是一种选择。但是 AppArmor 会有帮助吗?
我在 Ubuntu 12.04 上运行的 Unicorn 服务器很少,我希望保护它们免受提供远程 shell 的攻击。
我主要关心的是,部署 ModSecurity 是否有意义?
另一件事是,我看到 Unicorn 通常从端口 8080 运行,并将其转发到用作反向代理的 Apache/NginX 服务器端口 80。
我在想我可以使用以下内容:
我想知道,是否有另一个像 PHP Suhosin 这样的 RoR 强化框架/补丁。