标签: selinux

如何在不重启的情况下禁用 SELinux?

我需要禁用 SELinux 但无法重新启动机器

我按照这个链接我得到了波纹管命令

setenforce 0
Run Code Online (Sandbox Code Playgroud)

但是在运行这个命令后我检查了

sestatus
SELinux status:                 enabled
SELinuxfs mount:                /selinux
Current mode:                   permissive
Mode from config file:          disabled
Policy version:                 24
Policy from config file:        targeted
Run Code Online (Sandbox Code Playgroud)

还有其他选择吗?

rhel selinux

53
推荐指数
5
解决办法
23万
查看次数

由于 SELinux,httpd 无法写入文件夹/文件

有谁知道哪个 sebool 允许 httpd 对 /home/user/html 进行写访问?当我禁用SELinux时echo 0 > /selinux/enforce我可以写,所以我的问题肯定与SELinux有关。我只是不知道哪个是正确的而不打开一个大洞,而谷歌也没有太大帮助。

#[/home]ls -Z
drwxr-x---. user       apache     unconfined_u:object_r:user_home_dir_t:s0 user

#sestatus -b
Policy booleans:
abrt_anon_write                             off
abrt_handle_event                           off
allow_console_login                         on
allow_cvs_read_shadow                       off
allow_daemons_dump_core                     on
allow_daemons_use_tcp_wrapper               off
allow_daemons_use_tty                       on
allow_domain_fd_use                         on
allow_execheap                              off
allow_execmem                               on
allow_execmod                               on
allow_execstack                             on
allow_ftpd_anon_write                       off
allow_ftpd_full_access                      off
allow_ftpd_use_cifs                         off
allow_ftpd_use_nfs                          off
allow_gssd_read_tmp                         on
allow_guest_exec_content                    off
allow_httpd_anon_write                      off
allow_httpd_mod_auth_ntlm_winbind           off
allow_httpd_mod_auth_pam                    off
allow_httpd_sys_script_anon_write           off
allow_java_execstack                        off
allow_kerberos                              on
allow_mount_anyfile                         on
allow_mplayer_execstack                     off
allow_nsplugin_execmem                      on
allow_polyinstantiation                     off
allow_postfix_local_write_mail_spool …
Run Code Online (Sandbox Code Playgroud)

selinux apache-httpd

39
推荐指数
2
解决办法
12万
查看次数

SELinux 规则是在标准 linux 权限之前还是之后执行?

当 SELinux 安装在系统上时,它的规则是在标准 linux 权限之前还是之后执行?例如,如果非 root linux 用户尝试写入具有 linux 权限的文件,-rw------- root root会先检查 SELinux 规则,还是会应用标准文件系统权限并且永远不会调用 SELinux?

permissions selinux files access-control

23
推荐指数
1
解决办法
1639
查看次数

DAC(文件权限)、ACL 和 MAC(SELinux)在 Linux 文件安全中扮演什么角色?

我需要对 DAC、ACL 和 MAC 在 Linux 文件安全中扮演的不同角色进行一些澄清/确认/详细说明。

经过对文档的一些研究,这是我对堆栈的理解:

  1. SELinux 必须允许您访问文件对象。
  2. 如果该文件的访问控制列表(例如,setfaclgetfacl用于ACL安装)显式地允许/拒绝访问的对象,那么就不需要进一步的处理。
  3. 否则,这取决于文件的权限(rwxrwxrwx DAC 模型)。

我错过了什么吗?是否存在情况并非如此?

linux acl permissions selinux

22
推荐指数
3
解决办法
2万
查看次数

神话还是现实:SELinux 可以限制 root 用户?

我在某处读到或听说过(可能在LinuxCBT 的 SELinux 课程中;但我不确定)有在线 Linux 服务器,还提供了 root 用户的密码。Linux 服务器采用 SELinux 规则加固,每个人都可以使用 root 用户登录,但不会对操作系统造成任何损害。

这对我来说似乎是一个神话,但我想确定:是否有可能强化 Linux 机器(可能使用 SELinux),这样即使是 root 用户也无法对其进行特定的恶意活动?(例如:删除系统文件、清除日志文件、停止关键服务等)

这样的 Linux 机器将是构建蜜罐的一个很好的起点。

编辑: 基于一个答案(现已删除)和一点谷歌搜索,我至少得到了两个指向这种强化 Linux 服务器的链接。不幸的是,两台服务器都停机了。为了记录,我将在这里复制粘贴描述:

1) 来自http://www.coker.com.au/selinux/play.html

SE Linux 机器上的免费 root 访问权限!

要以root身份访问我的 Debian 游戏机 ssh 到play.coker.com.au,密码是...

请注意,如果您要成功运行此类机器,则需要很多技能。如果您要问是否应该运行一个,那么答案是“不”。

这样做的目的是证明 SE Linux 可以在没有任何 Unix 权限的情况下提供所有必要的安全性(但仍然建议您对真实服务器也使用 Unix 权限)。它还让您有机会登录到 SE 机器并查看它是什么样的。

当您登录 SE Linux 播放机时,请确保在登录前使用-x选项禁用 X11 转发或在 /etc/ssh/ssh_config 文件中设置ForwardX11 no。还要确保在登录之前使用 -a 选项禁用 ssh 代理转发或在 /etc/ssh/ssh_config 文件中设置ForwardAgent no。如果您没有正确禁用这些设置,那么登录游戏机将使您面临通过 …

security selinux hardening access-control

22
推荐指数
2
解决办法
9763
查看次数

Podman 卷安装:何时使用 :z 或 :Z 后缀?

Podman 手册页解释了卷安装/绑定:

\n
\n

像 SELinux 这样的标签系统要求在装载到容器中的卷\n内容上放置适当的标签。如果没有标签,安全系统可能\n会阻止容器内运行的进程使用该内容。默认情况下,Podman 不会更改操作系统设置的标签。

\n

要更改容器上下文中的标签,您可以将两个后缀\n :z:Z之一添加到卷装载。这些后缀告诉 Podman 重新标记共享卷上的文件\n对象。z选项告诉 Podman 两个容器共享卷内容。因此,Podman 使用共享\n内容标签来标记内容。共享卷标签允许所有容器读取/写入内容。\nZ选项告诉 Podman 使用私有非共享标签来标记内容。

\n
\n

然而,故障排除页面用几乎相同的词语解释了同样的事情。

\n

现在,对于 Podman 和 SELinux 相当陌生,想知道我实际上应该在什么时候使用什么?\n我知道,当我收到权限错误时,它们可能是由 SELinux 引起的,所以两个开关之一可以解决这个问题。但这两个选项(小写 z 和大写 Z)有什么区别呢?

\n

它所说的区别是:

\n
    \n
  • :z创建共享内容标签
  • \n
  • :Z创建私人非共享标签
  • \n
\n

这引入了许多新词:

\n
    \n
  • 共享和非共享(这是什么意思?)
  • \n
  • ??? vs private(再次,it\xe2\x80\x99s 不清楚这对我来说意味着什么)
  • \n
  • 它还表示一个选项为 \xe2\x80\x9ccontent label\xe2\x80\x9d ,而另一个选项仅表示 \xe2\x80\x9clabel\xe2\x80\x9d \xe2\x80\x93 这些之间有区别吗两个术语还是相同?
  • \n
\n

那么这些词在这种情况下意味着什么?\n最后一个问题:我什么时候应该使用什么?

\n

selinux container docker podman

21
推荐指数
1
解决办法
2万
查看次数

用什么来加固Linux box?Apparmor、SELinux、grsecurity、SMACK、chroot?

我打算回到 Linux 作为台式机。我想让它更安全。并尝试一些强化技术,特别是因为我计划拥有自己的服务器。

  • 什么是好的、理智的强化策略?我应该使用哪些工具 - Apparmor、SELinux、SMACK、chroot?
  • 我应该只使用一种工具,例如 Apparmor,还是上述的组合?
  • 这些工具有哪些优点/缺点?还有其他人吗?
  • 哪些具有合理的配置与安全(改进)比率?
  • 我更愿意在桌面环境中使用哪一个?服务器环境中的哪一个。

这么多的问题。

security chroot selinux grsecurity hardening

20
推荐指数
1
解决办法
8585
查看次数

SELinux 是否提供了足够的额外安全性,值得学习/设置它?

我最近在我的家用电脑上安装了 Fedora 14,并一直致力于设置不同的服务器相关功能,如 apache、mysql、ftp、vpn、ssh 等。我跑得非常快,感觉就像当我发现 SELinux 时我以前没有听说过。在做了一些研究之后,似乎大多数人都认为你应该禁用它而不是处理麻烦。就个人而言,如果它确实增加了更多的安全性,我并不反对处理学习如何适当设置它的麻烦。最终我计划打开我的网络,以便可以远程访问这台电脑,但我不想这样做,直到我确信它是安全的(或多或少)。如果您已经对其进行了设置并使其正常运行,您是否觉得值得花时间和麻烦?真的更安全吗?如果您选择不使用它,那么该决定是否也基于在我的情况下值得考虑的任何研究?

linux security selinux

17
推荐指数
2
解决办法
4926
查看次数

openvpn[]: 选项错误: 在 [CMD-LINE]:1: 打开配置文件时出错

当试图 service openvpn start

Oct 12 14:02:01 ccushing1 openvpn[9091]: Options error: In [CMD-LINE]:1: Error opening configuration file: devnet-client-vm.conf
Run Code Online (Sandbox Code Playgroud)

跑步openvpn devnet-client-vm.conf效果很好。为什么openvpn无法启动?我该如何解决?

selinux centos openvpn

17
推荐指数
3
解决办法
7万
查看次数

如何创建自定义 SELinux 标签

我写了一个服务/单个二进制应用程序,我试图在 Fedora 24 上运行它,它使用 systemd 运行,二进制文件被部署到 /srv/bot

我写的这个服务/应用程序需要在这个目录中创建/打开/读取和重命名文件。

我首先开始创建基于SELinux的新策略:允许进程在某个目录中创建任何文件

但是当我的应用程序需要重命名时,输出有一个警告:

#!!!! WARNING: 'var_t' is a base type.
allow init_t var_t:file rename;
Run Code Online (Sandbox Code Playgroud)

我搜索了一下,发现我应该使用比基本类型更具体的 SELinux 标签,但所有在线示例都向您展示了来自 httpd/nginx/etc 的现有标签。

有没有一种方法可以为我自己的应用程序创建自定义标签?

我的想法是创建类似 myapp_var_t 的东西,使用

semanage fcontext -a -t my_app_var_t '/srv/bot(/.*)?'
restorecon -R -v /srv/bot
Run Code Online (Sandbox Code Playgroud)

以及.pp将使用此自定义类型的自定义文件

如果有更好的方法来解决它,那也行。

谢谢

更新

经过更多搜索后,我认为我想要做的正确术语是创建新的types,这使我进入 https://docs.fedoraproject.org/en-US/Fedora/13/html/SELinux_FAQ/index.html#id3036916

基本上说,运行

sepolgen /path/to/binary
Run Code Online (Sandbox Code Playgroud)

我能够得到一个模板,然后我可以将其编译成一个 pp 文件并加载,但仍然会出现一些错误,但看起来我更接近我想要做的事情。

如果我让它工作,我会更新这篇文章

linux security fedora selinux

15
推荐指数
1
解决办法
8158
查看次数