小编Lap*_*sio的帖子

写入 /dev/nvram 是否危险?

我发现 nvram 用于 BIOS 刷新/备份的信息,并且它包含一些与 bios 相关的数据。会cat /dev/random > /dev/nvram永久砖电脑吗?我很想输入这个命令,但不知何故,我觉得这对我的机器来说不会很好,所以我想我想知道玩这个设备有多危险。

linux bios devices linux-kernel

19
推荐指数
3
解决办法
1万
查看次数

是否可以将 Linux 中的 TCP 隧道公开为特殊字符设备?

最近我在 QNX 文档中发现它允许通过使用串行设备 ( dev/serX)在不同物理机器上的进程之间设置基于消息的 IPC ,这让我想知道:

是否可以在 Linux 中为 TCP/UDP 隧道创建系统范围的特殊设备?像ncstdin/stdout 这样的东西在 /dev/something 下公开公开。

最后,我希望能够在一台机器上向此类文件写入一些内容并在另一端接收它,例如:

#machine1:
echo "Hello" > /dev/somedev

#machine2:
cat < /dev/somedev
Run Code Online (Sandbox Code Playgroud)

我看了一下ncman,但没有找到任何选项来指定 stdio 以外的 io 源/目标。

linux networking pipe tunneling character-special-files

10
推荐指数
3
解决办法
2202
查看次数

iptables -j REDIRECT *实际上*对数据包头做了什么?

出于好奇,我正在阅读一些关于透明 TOR 代理的教程,因为从网络的角度来看,这是一个非常有趣的话题。与仅使用tun/tap接口且我完全清楚的VPN 网关相反,TOR 代理使用单个端口。所有教程都重复魔术线:

iptables -t nat -A PREROUTING -i eth0 -p tcp --syn -j REDIRECT --to-ports 9040
Run Code Online (Sandbox Code Playgroud)

哪里eth0是输入 (LAN) 接口,9040是一些 TOR 端口。问题是,从网络的角度来看,我完全不明白为什么这样的事情是有意义的。

根据我对redirect/ dst-natchains 的理解以及它在物理路由器中的工作方式,dst-natchain 需要dst-port和dst-addr BEFORE路由决定被采取并将它们更改为其他东西。例如:

  • 之前dst-nat:192.168.1.2:46364 -> 88.88.88.88:80
  • 之后dst-nat:192.168.1.2:46364 -> 99.99.99.99:8080

并且99.99.99.99:8080是 IP 数据包流通道中的进一步链所看到的(例如filter表),这就是从现在开始离开设备后数据包的样子。

现在互联网上很多人(包括在这个stackexchange上)声称与设置为接口的本地地址redirect基本相同。有鉴于此,这条规则:dst-natdst-addr

iptables -t nat -A PREROUTING -i eth0 -p tcp --syn …
Run Code Online (Sandbox Code Playgroud)

routing iptables tor packet iptables-redirect

8
推荐指数
1
解决办法
6377
查看次数

哪些 Linux 发行版支持全盘加密(包括 /boot)?

最近我遇到了许多 Linux 发行版。在此之前,我一直在使用 OpenSUSE,所以有些事情对我来说显然是显而易见的 - 例如,在安装程序级别设置全盘加密或任意自定义挂载选项是可能且非常容易的。然而,实际上这样的选项似乎真的很奇特,除了 Arch Linux(很难称之为“安装程序支持”),可能是 Gentoo 和 OpenSUSE 我找不到任何允许你加密整个磁盘的发行版(包括 /开机)。

只是为了避免混淆 - 我在谈论设置,其中 GRUB 的第一阶段甚至在显示 GRUB 菜单以解锁 initrd 之前要求输入密码,然后 initrd 再次要求输入相同的密码以加载内核和其他内容。在 OpenSUSE 安装程序中,如果 /boot 被放置在加密的 LVM 上,它会自动执行。然而,Debian、RedHat、CentOS、Ubuntu、Mint 和可能所有使用类似安装程序的发行版都声称它的配置不正确并拒绝安装操作系统。

除了提到的 3 个支持这种安装方案的发行版之外,是否还有其他非专业的(意味着那些严格面向隐私的发行版,如 Tails 或 Whonix 不算数)?

编辑:为了回应@henriquehbr 100% 清楚我所说的全盘加密是什么意思:

在此处输入图片说明

没有单独的 /boot 分区。系统要求输入密码两次: 在 GRUB 中: 在此处输入图片说明

在 GRUB 之后: 在此处输入图片说明 在此处输入图片说明

最后只有 1 个分区是加密的 LVM: 在此处输入图片说明

然而

我知道的所有其他安装程序中都称为“加密的 LVM”: 在此处输入图片说明

是否具有单独的 /boot 分区配置。 在此处输入图片说明

尝试删除 /boot 分区会导致在 Debian 和 Ubuntu 上出现以下错误: 在此处输入图片说明 在此处输入图片说明

抱歉有很多图片,但我想让它 100% 清晰。

boot-loader distribution-choice system-installation disk-encryption

8
推荐指数
1
解决办法
4001
查看次数

/dev/mmcblk0 分区限制

我刚刚在我的笔记本电脑中安装了一个 microSD 卡,它有 17 个分区,我在 YaST 分区程序中收到以下错误:

Your disk /dev/mmcblk0 contains 17 partitions. The maximum number of partitions that the
kernel driver of the disk can handle is 7. Partitions above 7 cannot be accessed
Run Code Online (Sandbox Code Playgroud)

事实上 - 我只有/dev/mmcblkp0...7. 嗯,实际上我只有 3 个分区,因为扩展分区从分区号 5 开始,所以它是 p0、p5、p6、p7。

我已经使用另一台 PC 上的打印机中的读卡器格式化了这张卡,该 PC 将 microSD 卡暴露为/dev/sdxY并允许我创建 17 个分区。现在我将它放入带有内置读卡器的笔记本电脑中,它给出了上述错误。这是为什么?

建议使用 LVM 但拜托,microSD 上的 LVM 对可移动存储来说太过分了,而且不方便。

partition limit removable-storage linux-kernel sd-card

7
推荐指数
1
解决办法
7606
查看次数

lvmcache 和 dm-cache 有什么区别?

最近我发现一篇文章提到最近dm-cachelinux 有了显着的改进。我还发现在用户空间中您将其视为lvmcache. 这对我来说很困惑。我认为 LVM 缓存机制与dm-cache. 在我的服务器上,我dm-cache使用命令直接在设备映射器级别上进行设置dmsetup。不涉及 LVM 命令。

那么到底是什么?lvmcache仅使用 CLI就可以更轻松地dm-cache进行设置吗?使用它而不是原始dmsetup命令是更好的主意吗?

我当前的脚本如下所示:

#!/bin/bash

CACHEPARAMS="512 1 writethrough default 0"
CACHEDEVICES="o=/dev/mapper/storage c=/dev/mapper/suse-cache"
MAPPER="storagecached"

if [ "$1" == "-u" ] ; then
{
  for i in $CACHEDEVICES ; do
    if [ "`echo $i | grep \"^c=\"`" != "" ] ; then
      __CACHEDEV=${i:2}
    elif [ "`echo $i | grep \"^o=\"`" != "" ] ; then
      __ORIGINALDEV=${i:2}
  fi
  done

  dmsetup …
Run Code Online (Sandbox Code Playgroud)

cache lvm device-mapper

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

启动时显式加载内核模块

我正在使用 grsecurity 内核,它不允许自动加载内核,因此多个 systemd 服务无法工作。手动加载模块并modprobe重新启动模块后,一切正常,但这是一个相当肮脏的解决方案。我想在启动过程中“正确”地做到这一点。

操作系统是带有 grsec 内核的 Arch linux。

startup grsecurity kernel-modules

5
推荐指数
1
解决办法
8502
查看次数

我是否需要在 NFSv4 中显式启用巨型帧?

我使用 NFS 在虚拟机之间共享数据。我已经在虚拟机和主机之间设置了工作巨型帧。我的问题是 - 我是否需要以某种方式明确告诉 nfs 使用巨型帧,或者它只会检测自动使用它们的可能性?

所有网络接口的 MTU 设置为 9000。ping -M do -s 8000工作完美。

networking nfs high-performance

5
推荐指数
1
解决办法
4356
查看次数

cryptsetup - 它如何绕过标准输出/标准输入重定向打印提示?

我只是注意到,无论将哪些cryptsetupFD 转发给/dev/null它,它仍然会显示输入密码的提示。例如这仍然显示提示:

cryptsetyp luksOpen /dev/sdXY name >/dev/null 2>/dev/null

如何在无法使用标准重定向重定向到文件的终端消息中显示?

我想在 bash 脚本中获得这样的功能,因为我使用 stdout 将结果返回给母脚本,但我仍然想显示交互式提示 - 是否可以使用 bash 这样做?

file-descriptors

4
推荐指数
1
解决办法
695
查看次数

Btrfs - 最大 xattr 大小?

btrfs xattr 实际允许的最大大小是多少?我尝试在几个系统上对此进行测试,并得到完全不同的结果(在 11kB 和 15kB 之间),所以我不确定实际上是什么决定了这个大小以及我是否能够在分配之前验证它?(暴力二分搜索除外)

linux btrfs xattr

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