我需要禁用 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)
还有其他选择吗?
有谁知道哪个 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 安装在系统上时,它的规则是在标准 linux 权限之前还是之后执行?例如,如果非 root linux 用户尝试写入具有 linux 权限的文件,-rw------- root root
会先检查 SELinux 规则,还是会应用标准文件系统权限并且永远不会调用 SELinux?
我需要对 DAC、ACL 和 MAC 在 Linux 文件安全中扮演的不同角色进行一些澄清/确认/详细说明。
经过对文档的一些研究,这是我对堆栈的理解:
setfacl
,getfacl
用于ACL安装)显式地允许/拒绝访问的对象,那么就不需要进一步的处理。我错过了什么吗?是否存在情况并非如此?
我在某处读到或听说过(可能在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。如果您没有正确禁用这些设置,那么登录游戏机将使您面临通过 …
Podman 手册页解释了卷安装/绑定:
\n\n\n像 SELinux 这样的标签系统要求在装载到容器中的卷\n内容上放置适当的标签。如果没有标签,安全系统可能\n会阻止容器内运行的进程使用该内容。默认情况下,Podman 不会更改操作系统设置的标签。
\n要更改容器上下文中的标签,您可以将两个后缀\n :z或:Z之一添加到卷装载。这些后缀告诉 Podman 重新标记共享卷上的文件\n对象。z选项告诉 Podman 两个容器共享卷内容。因此,Podman 使用共享\n内容标签来标记内容。共享卷标签允许所有容器读取/写入内容。\nZ选项告诉 Podman 使用私有非共享标签来标记内容。
\n
然而,故障排除页面用几乎相同的词语解释了同样的事情。
\n现在,对于 Podman 和 SELinux 相当陌生,想知道我实际上应该在什么时候使用什么?\n我知道,当我收到权限错误时,它们可能是由 SELinux 引起的,所以两个开关之一可以解决这个问题。但这两个选项(小写 z 和大写 Z)有什么区别呢?
\n它所说的区别是:
\n:z
创建共享内容标签:Z
创建私人非共享标签这引入了许多新词:
\n那么这些词在这种情况下意味着什么?\n最后一个问题:我什么时候应该使用什么?
\n我打算回到 Linux 作为台式机。我想让它更安全。并尝试一些强化技术,特别是因为我计划拥有自己的服务器。
这么多的问题。
我最近在我的家用电脑上安装了 Fedora 14,并一直致力于设置不同的服务器相关功能,如 apache、mysql、ftp、vpn、ssh 等。我跑得非常快,感觉就像当我发现 SELinux 时我以前没有听说过。在做了一些研究之后,似乎大多数人都认为你应该禁用它而不是处理麻烦。就个人而言,如果它确实增加了更多的安全性,我并不反对处理学习如何适当设置它的麻烦。最终我计划打开我的网络,以便可以远程访问这台电脑,但我不想这样做,直到我确信它是安全的(或多或少)。如果您已经对其进行了设置并使其正常运行,您是否觉得值得花时间和麻烦?真的更安全吗?如果您选择不使用它,那么该决定是否也基于在我的情况下值得考虑的任何研究?
当试图 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无法启动?我该如何解决?
我写了一个服务/单个二进制应用程序,我试图在 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 文件并加载,但仍然会出现一些错误,但看起来我更接近我想要做的事情。
如果我让它工作,我会更新这篇文章