Kenneth Aaron 发布的文章

我创建了 Linux nftwatch 命令来观察防火墙的流量统计。

Netfilter 表(nftables)是现代 Linux 发行版中的默认防火墙。它在 Fedora 和 RHEL 8、最新的 Debian 和许多其他版本上都有。它取代了早期发行版中捆绑的旧版 iptables。它是一个强大的、值得的 iptables 替代品,作为一个广泛使用它的人,我欣赏它的能力和功能。

nftables 的一个特点是能够为许多元素添加计数器,例如规则。这些都是按需启用的。你需要使用 counter 参数,在每一行明确地要求它。我为我的防火墙中的特定规则启用了这些计数器,这使我能够看到这些规则。

这让我开始思考。我怎样才能实时查看这些计数器?一开始我尝试了 watch,它允许诸如刷新率之类的东西,但我不喜欢默认格式,而且它不能滚动。我发现使用 headtail 以及 awk 也不理想,并不存在一个用户友好的解决方案。所以我自己写了一个,我想与开源社区分享。

Linux 上的 nftwatch 介绍

我的解决方案,我称之为 nftwatch,做了几件事:

  • 它对 nftables 的输出进行重新排序和改写,使其更具有可读性。
  • 它允许向上或向下滚动输出。
  • 可以由用户定义的刷新率(可以实时改变)。
  • 它可以暂停显示。

你得到的不是一个表格的转储,而是显示每个规则活动的输出。

Image of nftwatch

你可以从它的 Git 仓库下载它。

它是 100% 的 Python 代码,100% 的开源,100% 的免费。它满足了所有免费的高质量程序的要求。

在 Linux 上安装 nftwatch

以下是手动安装说明:

  1. 克隆或从 git 仓库下载该项目。
  2. nftwatch.yml 复制到 /etc/nftwatch.yml
  3. nftwatch 复制到 /usr/local/bin/nftwatch 并使用 chmod a+x 授予其可执行权限。
  4. 使用 nftwatch,不带任何参数来运行它。
  5. 参见 nftwatch -m 的手册。

你也可以在没有 YAML 配置文件的情况下运行 nftwatch,在这种情况下它使用内置的默认值。

使用

nftwatch 命令显示 nftables 规则。大多数控制都是为此目的而设计的。

箭头键和等效的 Vim 的按键控制滚动。使用 FS 键来改变刷新速度。使用 P 键来暂停显示。

运行 nftwatch -m 以获得完整的说明,以及交互式按键控制的列表。

防火墙的新观点

即使你花费了时间去配置防火墙,它也会显得晦涩难懂和模糊不清。除了从日志条目中推断指标外,很难判断你的防火墙实际看到的活动类型。 使用 nftwatch,你可以看到你的防火墙在工作,并且可以更好地了解你的网络每天需要处理的流量类型。

(文内图片来自 Kenneth Aaron,CC BY-SA 4.0)


via: https://opensource.com/article/22/7/nftwatch-linux-firewall

作者:Kenneth Aaron 选题:lkxed 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

一个关于让 Linux Mint 20.2 与逻辑卷管理器(LVM)一起工作的教程。

 title=

几周前,Linux Mint 的人员发布了他们的开源操作系统的 20.2 版本。Live ISO 中内置的安装程序非常好,只需要点击几下就可以安装操作系统。如果你想定制你的分区,你甚至有一个内置的分区软件。

安装程序重点关注在简单的安装上:定义你的分区并安装到这些分区。对于那些想要更灵活的设置的人来说, 逻辑卷管理器 logical volume manager (LVM)是个不错的选择,你可以通过设置卷组(VG)并在其中定义你的逻辑卷(LV)。

LVM 是一个硬盘管理系统,允许你在多个物理驱动器上创建存储空间。换句话说,你可以把几个小驱动器“拴”在一起,这样你的操作系统就会把它们当作一个驱动器。除此之外,它还有实时调整大小、文件系统快照和更多的优点。这篇文章并不是关于 LVM 的教程(网上已经有很多 这方面不错的信息了)。相反,我的目标是贴合这篇文章的主题,只关注让 Linux Mint 20.2 与 LVM 一起工作。

作为一个桌面操作系统,其安装程序致力于简单化,在 LVM 上安装 Linux Mint 20.2 会略微复杂一些,但不会太复杂。如果你在安装程序中选择了 LVM,你会得到一个由 Linux Mint 开发者定义的设置,而且你在安装时无法控制各个卷。

然而,有一个解决方案:在临场 ISO 中,该方案只需要在终端中使用几个命令来设置 LVM,然后你可以继续使用常规安装程序来完成工作。

我安装了 Linux Mint 20.2 和 XFCE 桌面,但其他 Linux Mint 桌面的过程也类似。

分区驱动器

在 Linux Mint 临场 ISO 中,你可以通过终端和 GUI 工具访问 Linux 命令行工具。如果你需要做任何分区工作,你可以使用命令行 fdiskparted 命令,或者 GUI 应用 gparted。我想让这些操作简单到任何人都能遵循,所以我会在可能的情况下使用 GUI 工具,在必要时使用命令行工具。

首先,为安装创建几个分区。

使用 gparted(从菜单中启动),完成以下工作:

首先,创建一个 512MB 的分区,类型为 FAT32(这是用来确保系统可启动)。512MB 对大多数人来说是富余的,你可以用 256MB 甚至更少,但在今天的大容量磁盘中,即使分配 512MB 也不是什么大问题。

 title=

接下来,在磁盘的其余部分创建一个 lvm2 pv 类型(LVM 2 物理卷)的分区(这是你的 LVM 的位置)。

 title=

现在打开一个终端窗口,并将你的权限提升到 root:

$ sudo -s
# whoami
root

接下来,你必须找到你之前创建的 LVM 成员(那个大分区)。使用下列命令之一:lsblk -fpvspvscan

# pvs
PV      VG Fmt  [...]
/dev/sda2    lvm2 [...]

在我的例子中,该分区位于 /dev/sda2,但你应该用你的输出中得到的内容来替换它。

现在你知道了你的分区有哪些设备,你可以在那里创建一个 LVM 卷组(VG):

# vgcreate vg /dev/sda2

你可以使用 vgsvgscan 看到你创建的卷组的细节。

创建你想在安装时使用的逻辑卷(LV)。为了简单,我分别创建了 root 根分区(/)和 swap 交换分区,但是你可以根据需要创建更多的分区(例如,为 /home 创建一个单独的分区)。

# lvcreate -L 80G -n root vg
# lvcreate -L 16G -n swap vg

我的例子中的分区大小是任意的,是基于我可用的空间。使用对你的硬盘有意义的分区大小。

你可以用 lvslvdisplay 查看逻辑卷。

终端操作到这就结束了。

安装 Linux

现在从桌面上的图标启动安装程序:

  • 进入 “Installation type”,选择 “Something else”。
  • 编辑 512Mb 的分区并将其改为 EFI
  • 编辑根逻辑卷,将其改为 ext4(或一个你选择的文件系统)。选择将其挂载为根目录(/),并选择将其格式化。
  • 编辑 swap 分区并将其设置为交换分区。
  • 继续正常的安装过程。Linux Mint 安装程序会将文件放在正确的位置并为你创建挂载点。

完成了。在你的 Linux Mint 安装中享受 LVM 的强大。

如果你需要调整分区大小或在系统上做任何高级工作,你会感谢选择 LVM。


via: https://opensource.com/article/21/8/install-linux-mint-lvm

作者:Kenneth Aaron 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

使用 nccm 让你的终端连接 SSH 会话更快、更稳、更轻松。

OpenSSH 很常用,但没有一个知名的连接管理器,因此我开发了 ncurses SSH 连接管理器(nccm)来填补这个重要的空白。 nccm 是一个简单的 SSH 连接管理器,具有非常便于移植的终端界面(就如项目名称所示,使用 ncurses 编写)。最重要的是,它使用起来非常简单。有了 nccm,你可以花费最少的精力和最少的按键连接到你选择的 SSH 会话。

安装 nccm

最快的方式是从它的 Git 仓库克隆该项目:

$ git clone https://github.com/flyingrhinonz/nccm nccm.git

nccm.git/nccm 的文件夹中有两个文件:nccm 自身和 nccm.yml 配置文件。

首先将 nccm 脚本复制到系统目录 /usr/local/bin/ 中并添加执行权限,也可以通过使用install 命令来完成操作:

$ sudo install -m755 nccm –target-directory /usr/local/bin

文件 nccm.yml 可以拷贝到以下任意一个位置,默认从找到的第一个位置获取配置:

  • ~/.config/nccm/nccm.yml
  • ~/.nccm.yml
  • ~/nccm.yml
  • /etc/nccm.yml

nccm 需要在 Python 3 的环境中运行,这在大部分的 Linux 环境是没问题的。大多数 Python 库的依赖包已经作为 Python 3 的一部分存在,但是,有一些 YAML 的依赖包和实用程序是你必须安装的。

如果你没有安装 pip,你可以使用包管理器来安装它。在安装的同时,也请安装 yamllint 应用程序来帮助你验证 nccm.yml 文件。

在 Debian 或类似系统使用 apt 命令:

$ sudo apt install python3-pip yamllint

在 Fedora 或者类似系统使用 dnf 命令:

$ sudo dnf install python3-pip yamllint

PyYAML 也是必须安装的,可以通过使用 pip 来安装:

$ pip3 install --user PyYAML

使用 nccm

开始之前,需要修改 nccm.yml 文件来添加 SSH 连接配置,可以参照示例文件格式化 YAML 文件。仿照示例文件在开头添加连接名称,配置项使用两个空格缩进。不要忘了冒号(:),这是 YAML 的语言的格式。

不要担心你的 SSH 会话信息以何顺序排列,因为 nccm 在程序内提供了排序的方式。

如果修改完成,可以使用 yamllint 来校验配置:

$ yamllint ~/.config/nccm/nccm.yml

如果没有错误信息返回,说明文件的内容格式是正确的,可以进行下面的步骤。

如果 nccm 可以从你的路径中找到并且可以执行,那么输入 nccm 就可以启动 TUI(文本用户界面)了。如果你看到 Python 3 抛出的异常,请检查依赖包是否正确安装,任何异常都应该提到缺少的依赖包。

只要你没有在 YAML 配置文件中更改 ncm_config_control 模式,那么你可以使用以下的键盘按键来控制:

  • Up/Down 方向键 - 移动光标
  • Home/End - 跳转到文件开始和结尾
  • PgUp/PgDn - 以页为单位查看
  • Left/Right 方向键 - 水平滚动
  • TAB - 在文本框之间移动
  • 回车 - 连接选中的 SSH 会话
  • Ctrl-h - 显示帮助菜单
  • Ctrl-q/Ctrl-c - 退出
  • F1-F5! @ # $ % - 按 1-5 列排序

使用 F1F5 来按 1-5 列排序,如果你的设备占用了这些 F1 - F5 键,你可以使用! @ # $ % 来替代。默认界面显示 4 列内容,但我们将用户名和服务器地址作为单独的列来排序,这样我们就有了 5 个排序方式。你也可以通过再次按下排序的按键来逆转排序。在选中的行上按回车可以建立会话。

 title=

Filter 文本框中输入过滤内容,会用输入的内容以“与”的关系来过滤输出内容。这是不区分大小写的,而条目间用空白分隔。在 Conn 部分也是如此,但在这里按回车键可以连接到那个特定的条目编号。

这个工具还有许多功能需要你去发掘,比如专注模式,这些部分留下等待你去探索,也可以查看项目主页或者内置的帮助文档查看更多细节内容。

项目的 YAML 配置文件的文档是完善的,所以你可以查阅修改使 nccm 使用起来更加顺手。nccm 项目是非常希望得到你的反馈的,所以你可以复刻该项目然后添加更多新功能,欢迎大家提出拉取请求。

使用 nccm 来放松连接 SSH 的压力

像我一样,我希望这个工具可以对你有用,感谢能够为开源工作增加自己的贡献,请接受 nccm 作为我对开源项目自由、高效工作所做的贡献。


via: https://opensource.com/article/20/9/ssh-connection-manager

作者:Kenneth Aaron 选题:lujun9972 译者:hom 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出