您尚未登录。

#1 2018-09-19 10:50:24

piter
SilverStar Club
所在地: 高处
注册时间: 2016-06-03
帖子: 452

长时间保持一个 root 身份的 terminal,安全性如何?

有时候,在做一些事情时(持续一天),感觉一直开一个 terminal ,使用 root 身份并保持,这样比总是 sudo 方便许多;

我知道 root 权限很大,操作失误有风险;

我想问,除了误操作这个之外,还会有其它问题么?比如来自网络的安全因素?或者别的?

最近编辑记录 piter (2018-09-19 10:50:59)

离线

#2 2018-09-19 11:36:37

xtricman
喵了个咪
注册时间: 2012-12-26
帖子: 522

Re: 长时间保持一个 root 身份的 terminal,安全性如何?

等于有个root shell一直在运行呗,而且这个进程还完全没有设计成防入侵得. sshd能防入侵是因不会说跟他通信一下他就执行你要的代码,你没密码它不产生user session.

肯定不安全的。我想办法连到你的Xorg(VNC啥的),让你觉得终端收到一个键盘事件,那我想运行啥运行啥

本地程序 应该也有办法 做IPC的,如果能入侵你的terminal,让你把pty master fd传过来我就想干嘛干嘛了(不过terminal一般没这功能),一般还是想办法产生X事件,Xorg应该有这个API能让Client产生假事件

主要是,Xorg它能接受网络连接啊!

最近编辑记录 xtricman (2018-09-19 11:45:18)

离线

#3 2018-09-19 13:28:13

piter
SilverStar Club
所在地: 高处
注册时间: 2016-06-03
帖子: 452

Re: 长时间保持一个 root 身份的 terminal,安全性如何?

查了一会儿百度,大概能理解你的意思了;
这样行不行,我启用 ufw,所有端口,只许出,不许进;在这样的情况下,理论上 Xorg 应该不接受来自外部的网络连接请求,root shell 是否就安全了?

离线

#4 2018-09-19 21:21:48

xtricman
喵了个咪
注册时间: 2012-12-26
帖子: 522

Re: 长时间保持一个 root 身份的 terminal,安全性如何?

我就想知道拒绝所有TCP UDP输入包,那你怎么上网。

离线

#5 2018-09-19 21:39:48

xtricman
喵了个咪
注册时间: 2012-12-26
帖子: 522

Re: 长时间保持一个 root 身份的 terminal,安全性如何?

没了IP网络,本地X Client也能产生模拟X事件,然后你的terminal窗口活动的时候就会收到这个事件了.  Wayland Server 也一样,应该客户端也能模拟输入事件,然后送给你的terminal,然后就是想干嘛干嘛了。

离线

#6 2018-09-19 22:43:38

依云
a.k.a. 百合仙子
所在地: 一个等待妹纸出现的地方
注册时间: 2011-08-21
帖子: 4,859
个人网站

Re: 长时间保持一个 root 身份的 terminal,安全性如何?

模拟X事件太麻烦,还容易引起人注意,查看效果还得截图,多麻烦。直接 ptrace 到终端模拟器上注入代码,把 pty master fd 偷出来~

离线

#7 2018-09-19 22:46:26

依云
a.k.a. 百合仙子
所在地: 一个等待妹纸出现的地方
注册时间: 2011-08-21
帖子: 4,859
个人网站

Re: 长时间保持一个 root 身份的 terminal,安全性如何?

X 默认是不监听 TCP 的,还好啦。而且即使开了 TCP 监听,它也不会像 vim-hug-neovim-rpc 那样完全没有鉴权的。

离线

#8 2018-09-19 23:08:10

xtricman
喵了个咪
注册时间: 2012-12-26
帖子: 522

Re: 长时间保持一个 root 身份的 terminal,安全性如何?

依云 说:

X 默认是不监听 TCP 的,还好啦。而且即使开了 TCP 监听,它也不会像 vim-hug-neovim-rpc 那样完全没有鉴权的。

没接触过ptrace,还能把人家的fd偷出来吗…要不要capability啥的。模拟事件主要就是考虑到普通进程能做的事情。

X的网络连接我也不很清楚,但是如果有VNC连接到当前的Xorg(貌似teamviewer是可以的?)应该可以直接操作你的桌面然后在root shell里乱搞,但我不知道它VNC怎么鉴别客户端身份。

最近编辑记录 xtricman (2018-09-19 23:22:12)

离线

#9 2018-09-20 11:11:34

依云
a.k.a. 百合仙子
所在地: 一个等待妹纸出现的地方
注册时间: 2011-08-21
帖子: 4,859
个人网站

Re: 长时间保持一个 root 身份的 terminal,安全性如何?

xtricman 说:

没接触过ptrace,还能把人家的fd偷出来吗…要不要capability啥的。模拟事件主要就是考虑到普通进程能做的事情。

默认不行,但是为了调试方便设置 kernel.yama.ptrace_scope = 0 的话,同用户的进程就可以。
ptrace 是可以注入代码的。

离线

#10 2018-09-20 16:47:02

piter
SilverStar Club
所在地: 高处
注册时间: 2016-06-03
帖子: 452

Re: 长时间保持一个 root 身份的 terminal,安全性如何?

xtricman 说:

我就想知道拒绝所有TCP UDP输入包,那你怎么上网。

linux我比较业余,所以,你的这个问题,去年今年加在一起,我前前后后搞了几个月,不过结果倒是能接受:

第一步是用UFW关闭所有端口,包括出/入两个方向,这样相当于完全断开网络了;
第二步是用UFW打开一个443端口,允许出/入两个方向,这样可以浏览https网站;
第三步是用UFW更改443端口,只许出,不许入,这样也可以浏览https网站;
ps:这一步我也有点疑惑,就像你说的,只许出不许入,为什么还能看网页?不过能用,我就没再想,一直用着了(想也想不明白);
因为还要看http网站,所以上面的方案还要再开一个80端口才算完善,不过考虑到软件会向外网发包,我直接进化到下一步;

第四步,改用虚拟机上网,host不连接外网,我调整了一下设置:
-host系统UFW关闭所有端口的出/入,然后开一个端口给虚拟机用,只许出,不许入;
-虚拟机不安装UFW;
这样调整之后,虚拟机可以看网页,下载东西,系统升级什么的,而host里的浏览器则无法连接网格,host系统也不能升级(需要升级或安装软件的时候临时开一下443);
ps:之所以host不许连接外网,是因为担心host里的某些软件,会自己向外网发送数据包(windows下是常见现象,linux下不太了解),由于不清楚是否存在,也不知道怎么去监控/筛查,所以干脆关闭所有端口的出/入(尤其443/80),然后开一个端口只许出不许入,给虚拟机上网用;
ps:如果这个给虚拟机用的端口被host某些想发数据包的软件扫描到,那就没啥意义了;这一点到现在也无法确认~

上面第四步的方案,我还算满意,一直在用;
我使用第四步方案的另一个主要原因是,本本有一个很显著的变化被我注意到:如果不用ufw关闭端口的话,host系统用得时间久了(比如一个月),本本会变热;而如果像第四步那样操作(关闭所有端口只留一个给虚拟机),本本就永远是温的,不会热;(多次重装系统,htop查进程,再就是折腾显卡,Arch Linux 和 Debian来回换;最后发现,系统一装就清凉了);

这个笨办法用着,自我感觉还挺良好;系统内排查发热原因对我来说,试了,还是有点难;


.
ps: "pty master fd",百度加必应,居然都搜不到......

最近编辑记录 piter (2018-09-20 16:56:10)

离线

#11 2018-09-21 13:30:24

xtricman
喵了个咪
注册时间: 2012-12-26
帖子: 522

Re: 长时间保持一个 root 身份的 terminal,安全性如何?

APUE job control章节
http://man7.org/linux/man-pages/man7/pty.7.html
大约你拒绝的是本机IP或某局域网段IP的TCP433吧,不是外网IP

离线

#12 2018-09-21 13:43:21

xtricman
喵了个咪
注册时间: 2012-12-26
帖子: 522

Re: 长时间保持一个 root 身份的 terminal,安全性如何?

不截图看效果也行吧,写个程序,开个socket跟自己通信,开个新pty,socket负责转发新pty数据出来,再开个bash,三个描述符重定到新pty。说白了就是在那个root shell里开个小sshd服务器,只不过不要完整的认证功能,我一连那边就给我开root shell。@依云

离线

#13 2018-09-21 17:15:39

piter
SilverStar Club
所在地: 高处
注册时间: 2016-06-03
帖子: 452

Re: 长时间保持一个 root 身份的 terminal,安全性如何?

xtricman 说:

APUE job control章节
http://man7.org/linux/man-pages/man7/pty.7.html
大约你拒绝的是本机IP或某局域网段IP的TCP433吧,不是外网IP

是的,在UFW里面设置的是本机网卡(enp0s25)的443~

离线

#14 2018-09-21 23:24:08

xtricman
喵了个咪
注册时间: 2012-12-26
帖子: 522

Re: 长时间保持一个 root 身份的 terminal,安全性如何?

你外面进来的包写的肯定是外面的IP啊

离线

#15 2018-09-22 16:55:16

piter
SilverStar Club
所在地: 高处
注册时间: 2016-06-03
帖子: 452

Re: 长时间保持一个 root 身份的 terminal,安全性如何?

这么说这防火墙没啥用啊,我看下...
是不是意味着外网可以随意连接我的系统了?

最近编辑记录 piter (2018-09-22 17:25:16)

离线

页脚