Patrick H. Mullins 发布的文章

安装精简版树莓派系统,让你的树莓派更加轻盈。

你有一个运行 树莓派系统 Raspberry Pi OS (以前称为 Raspbian)操作系统的 树莓派 Raspberry Pi ,你肯定知道,它是一个非常棒的小型电脑,有一个很好的操作系统,对于初学者来说,它包括了你可能想要的一切。然而,一旦你熟悉了它,并且想用它干一些别的事情的时候,你可能不想要那个默认囊括了一切组件的操作系统。

在这种情况下,你两个选择:要么你可以绞尽脑汁地把所有你不需要的东西都删干净,要么你还可以用 精简版树莓派系统 Raspberry Pi OS Lite 来构建专门为你的需求而定制的轻量级操作系统。我的建议是,用第二种方法,既简便又节省时间。

Raspberry Pi OS Lite

精简版 Lite ”的 树莓派系统 Raspberry Pi OS 其实没什么特别的,就是一个基于最新版本的 Debian 的最小化镜像。这个镜像仅包含了操作系统核心和启动到命令行的部分,而不会进入图形桌面。可以将这个作为你的定制树莓派系统的基础。这之后的所有东西都是建立在这个核心之上的。

前往树莓派基金会的网站上下载这个轻量级镜像。下载完成后,查看详细的安装指南,这里面介绍了在 Linux、Windows 或者 macOS 下如何烧制树莓派操作系统的 SD 卡。

如果你计划用树莓派作为一个极简系统来运行一些脚本和服务的话,差不多这么多就够了。如果你还想干更多事,那继续往下读。

X Window

首先,如果偶尔需要通过图形用户界面(GUI)连接到你的树莓派,安装一个窗口系统还是不错的。

X Window 系统,有时候称为 X11,是 Unix 操作系统上一个常见的基本窗口系统。X11 提供了一套 GUI 桌面环境的基本框架。它可以让你通过窗口、鼠标和键盘与计算机交互。

安装 X Window

下面这一行安装了能让 X11 运行的最少的包。

sudo apt install -y --no-install-recommends xserver-xorg-core xserver-xorg xfonts-base xinit

如果使用 --no-install-recommends,则只安装了主要的一些依赖(Depends 字段中的包)。这样可以节省很多空间,因为没有安装那些建议却不一定需要的包。

进阶:使用 Xfce 桌面环境

如果你愿意,可以就此停下了,然后开始使用 X Window 作为你的桌面。不过,我并不建议这么做。X Window 自带的这种最小化的窗口管理工具走的是极简主义风格,某种程度上让人感觉过时了。相反,我建议安装现代化的桌面环境,比如说像 Xfce、GNOME 或者 KDE。当用在微型计算机上时,我更倾向于 Xfce 而不是其他的,因为它就是为资源有限的系统设计的,而且你可以通过主题、图标或者其他东西对它进行定制。

安装 Xfce

安装 Xfce 桌面环境相当简单。只需要:

sudo apt install -y --no-install-recommends xfce4 desktop-base lightdm

这就够了。你现在安装了 X Window(X11)和 Xfce 了。现在是时候来定制一下环境并且安装一些核心应用了。

核心应用

目前为止,你已经安装了 X Window(X11)、Xfce 桌面环境和 LightDM(一个 Xfce 自带的显示管理器)。现在,你已经有了一个可以启动并且正常使用的轻量级的完整系统。不过,在彻底完成之前,我还是喜欢装一些核心应用。

下面这条命令安装了一个终端程序、Audacious 音频播放器、Ristretto 图像浏览器、Mousepad 文本编辑器、File Roller存档管理器和 Thunar 容量管理器。

sudo apt install -y --no-install-recommends xfce4-terminal audacious ristretto
sudo apt install -y --no-install-recommends mousepad file-roller thunar-volman

其他可选项

其他一些你可能想安装的东西,包括一个好的网络管理器、任务管理器、PDF 阅读器和通知工具,以及桌面背景管理器、截图工具、一些新的图标和光标主题。简单来说,如果树莓派是你的首选系统,这些都算是日常工作的一些补充。

sudo apt install -y --no-install-recommends network-manager xfce4-taskmanager xfce4-notifyd
sudo apt install -y --no-install-recommends  xpdf gnome-icon-theme dmz-cursor-theme

下一步该做什么?

如果一切都正常工作的话,你现在就有一个基于 Xfce 和 Debian Lite 超轻量级操作系统的树莓派了。我建议现在你去 Xfce 网站上查看其它很酷的好东西,这些你都可以安装并使用。下一步做什么完全由你决定!


via: https://opensource.com/article/20/6/custom-raspberry-pi

作者:Patrick H. Mullins 选题:lujun9972 译者:Yufei-Yan 校对:wxy

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

使用 Tiny Tiny RSS 来保护你阅读新闻馈送时的隐私。

Tiny Tiny RSS(TT-RSS)是一个自由开源的基于 Web 的新闻 馈送 feed (RSS/Atom)阅读器和聚合工具。它非常适合那些注重隐私,并且仍然依赖 RSS 来获取日常新闻的人。TT-RSS 是自行托管的软件,因此你可以 100% 的掌控你的服务器、数据以及你的全部隐私。它还支持大量的插件、扩展和主题。你喜欢黑暗模式的界面?没问题。想基于关键词过滤发来的消息?TT-RSS 也能让你得偿所愿。

 title=

现在你知道 TT-RSS 是什么了,那么为什么你可能会想用它。我会讲述要把它安装到树莓派或 Debian 10 服务器上你需要了解的所有的东西。

安装和配置 TT-RSS

要把 TT-RSS 安装到树莓派上,你还需要安装和配置最新版本的 PHP(本文撰写时 PHP 最新版本是 7.3)、后端数据库 PostgreSQL、Nginx web 服务器、Git,最后才是 TT-RSS。

1、安装 PHP 7

安装 PHP 7 是整个过程中最复杂的部分。幸运的是,它并不像看起来那样困难。从安装下面的支持包开始:

$ sudo apt install -y ca-certificates apt-transport-https

现在,添加存储库 PGP 密钥:

$ wget -q https://packages.sury.org/php/apt.gpg -O- | sudo apt-key add -

下一步,把 PHP 库添加到你的 apt 源:

$ echo "deb https://packages.sury.org/php/ buster main" | sudo tee /etc/apt/sources.list.d/php.list

然后更新你的存储库索引:

$ sudo apt update

最后,安装 PHP 7.3(或最新版本)和一些通用组件:

$ sudo apt install -y php7.3 php7.3-cli php7.3-fpm php7.3-opcache php7.3-curl php7.3-mbstring php7.3-pgsql php7.3-zip php7.3-xml php7.3-gd php7.3-intl

上面的命令默认你使用的后端数据库是 PostgreSQL,会安装 php7.3-pgsql。如果你想用 MySQL 或 MariaDB,你可以把命令参数改为 php7.3-mysql

下一步,确认 PHP 已安装并在你的树莓派上运行着:

$ php -v

现在是时候安装和配置 Web 服务器了。

2、安装 Nginx

可以用下面的命令安装 Nginx:

$ sudo apt install -y nginx

修改默认的 Nginx 虚拟主机配置,这样 Web 服务器才能识别 PHP 文件以及知道如何处理它们。

$ sudo nano /etc/nginx/sites-available/default

你可以安全地删除原文件中的所有内容,用下面的内容替换:

server {
        listen 80 default_server;
        listen [::]:80 default_server;

        root /var/www/html;
        index index.html index.htm index.php;
        server_name _;

        location / {
                try_files $uri $uri/ =404;
        }

        location ~ \.php$ {
          include snippets/fastcgi-php.conf;
          fastcgi_pass unix:/run/php/php7.3-fpm.sock;
        }

}

Ctrl+O 保存修改后的配置文件,然后按 Ctrl+X 退出 Nano。你可以用下面的命令测试你的新配置文件:

$ nginx -t

如果没有报错,重启 Nginx 服务:

$ systemctl restart nginx

3、安装 PostgreSQL

接下来是安装数据库服务器。在树莓派上安装 PostgreSQL 超级简单:

$ sudo apt install -y postgresql postgresql-client postgis

输入下面的命令看一下数据库服务器安装是否成功:

$ psql --version

4、创建 Tiny Tiny RSS 数据库

在做其他事之前,你需要创建一个数数据库,用来给 TT-RSS 软件保存数据。首先,登录 PostgreSQL 服务器:

sudo -u postgres psql

下一步,新建一个用户,设置密码:

CREATE USER username WITH PASSWORD 'your_password' VALID UNTIL 'infinity';

然后创建一个给 TT-RSS 用的数据库:

CREATE DATABASE tinyrss;

最后,给新建的用户赋最高权限:

GRANT ALL PRIVILEGES ON DATABASE tinyrss to user_name;

这是安装数据库的步骤。你可以输入 \q 来退出 psql 程序。

5、安装 Git

安装 TT-RSS 需要用 Git,所以输入下面的命令安装 Git:

$ sudo apt install git -y

现在,进入到 Nginx 服务器的根目录:

$ cd /var/www/html

下载 TT-RSS 最新源码:

$ git clone https://git.tt-rss.org/fox/tt-rss.git tt-rss

注意,这一步会创建一个 tt-rss 文件夹。

6、安装和配置Tiny Tiny RSS

现在是安装和配置你的新 TT-RSS 服务器的最后时刻了。首先,确认下你在浏览器中能打开 http://your.site/tt-rss/install/index.php。如果浏览器显示 403 Forbidden,那么就证明 /var/www/html 文件夹的权限没有设置正确。下面的命令通常能解决这个问题:

$ chmod 755 /var/www/html/ -v

如果一切正常,你会看到 TT-RSS 安装页面,它会让你输入一些数据的信息。你只需要输入前面你创建的数据库用户名和密码;数据库名;主机名填 localhost;端口填 5432

点击“Test Configuration”。如果一切正常,你会看到一个标记着“Initialize Database”的红色按钮。点击它来开始安装。结束后,你会看到一个配置文件,你可以把它复制到 TT-RSS 的目录,另存为 config.php

安装过程结束后,浏览器输入 http://yoursite/tt-rss/ 打开 TT-RSS,使用默认的凭证登录(用户名:admin,密码:password)。登录后系统会提示你修改密码。我强烈建议你尽快修改密码。

配置 TT-RSS

如果一切正常,你现在就可以开始使用 TT-RSS 了。建议你新建一个非管理员用户,使用新用户名登录,并开始导入你的馈送、订阅,按照你的意愿来配置它。

最后,并且是超级重要的事,不要忘了阅读 TT-RSS 维基上的 Updating Feeds 部分。它讲述了如何创建一个简单的 systemd 服务来更新馈送。如果你跳过了这一步,你的 RSS 馈送就不会自动更新。

总结

呵!工作量不小,但是你做完了!你现在有自己的 RSS 聚合服务器了。想了解 TT-RSS 更多的知识?我推荐你去看官方的 FAQ支持论坛,和详细的安装笔记。如果你有任何问题,尽情地在下面评论吧。


via: https://opensource.com/article/20/2/ttrss-raspberry-pi

作者:Patrick H. Mullins 选题:lujun9972 译者:lxbwolf 校对:wxy

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

通过七个简单的步骤来加固你的 Linux 服务器。

这篇入门文章将向你介绍基本的 Linux 服务器安全知识。虽然主要针对 Debian/Ubuntu,但是你可以将此处介绍的所有内容应用于其他 Linux 发行版。我也鼓励你研究这份材料,并在适用的情况下进行扩展。

1、更新你的服务器

保护服务器安全的第一件事是更新本地存储库,并通过应用最新的修补程序来升级操作系统和已安装的应用程序。

在 Ubuntu 和 Debian 上:

$ sudo apt update && sudo apt upgrade -y

在 Fedora、CentOS 或 RHEL:

$ sudo dnf upgrade

2、创建一个新的特权用户

接下来,创建一个新的用户帐户。永远不要以 root 身份登录服务器,而是创建你自己的帐户(用户),赋予它 sudo 权限,然后使用它登录你的服务器。

首先创建一个新用户:

$ adduser <username>

通过将 sudo 组(-G)附加(-a)到用户的组成员身份里,从而授予新用户帐户 sudo 权限:

$ usermod -a -G sudo <username>

3、上传你的 SSH 密钥

你应该使用 SSH 密钥登录到新服务器。你可以使用 ssh-copy-id 命令将预生成的 SSH 密钥上传到你的新服务器:

$ ssh-copy-id <username>@ip_address

现在,你无需输入密码即可登录到新服务器。

4、安全强化 SSH

接下来,进行以下三个更改:

  • 禁用 SSH 密码认证
  • 限制 root 远程登录
  • 限制对 IPv4 或 IPv6 的访问

使用你选择的文本编辑器打开 /etc/ssh/sshd_config 并确保以下行:

PasswordAuthentication yes
PermitRootLogin yes

改成这样:

PasswordAuthentication no
PermitRootLogin no

接下来,通过修改 AddressFamily 选项将 SSH 服务限制为 IPv4 或 IPv6。要将其更改为仅使用 IPv4(对大多数人来说应该没问题),请进行以下更改:

AddressFamily inet

重新启动 SSH 服务以启用你的更改。请注意,在重新启动 SSH 服务之前,与服务器建立两个活动连接是一个好主意。有了这些额外的连接,你可以在重新启动 SSH 服务出错的情况下修复所有问题。

在 Ubuntu 上:

$ sudo service sshd restart

在 Fedora 或 CentOS 或任何使用 Systemd 的系统上:

$ sudo systemctl restart sshd

5、启用防火墙

现在,你需要安装防火墙、启用防火墙并对其进行配置,以仅允许你指定的网络流量通过。(Ubuntu 上的)简单的防火墙(UFW)是一个易用的 iptables 界面,可大大简化防火墙的配置过程。

你可以通过以下方式安装 UFW:

$ sudo apt install ufw

默认情况下,UFW 拒绝所有传入连接,并允许所有传出连接。这意味着服务器上的任何应用程序都可以访问互联网,但是任何尝试访问服务器的内容都无法连接。

首先,确保你可以通过启用对 SSH、HTTP 和 HTTPS 的访问来登录:

$ sudo ufw allow ssh
$ sudo ufw allow http
$ sudo ufw allow https

然后启用 UFW:

$ sudo ufw enable

你可以通过以下方式查看允许和拒绝了哪些服务:

$ sudo ufw status

如果你想禁用 UFW,可以通过键入以下命令来禁用:

$ sudo ufw disable

你还可以(在 RHEL/CentOS 上)使用 firewall-cmd,它已经安装并集成到某些发行版中。

6、安装 Fail2ban

Fail2ban 是一种用于检查服务器日志以查找重复或自动攻击的应用程序。如果找到任何攻击,它会更改防火墙以永久地或在指定的时间内阻止攻击者的 IP 地址。

你可以通过键入以下命令来安装 Fail2ban:

$ sudo apt install fail2ban -y

然后复制随附的配置文件:

$ sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

重启 Fail2ban:

$ sudo service fail2ban restart

这样就行了。该软件将不断检查日志文件以查找攻击。一段时间后,该应用程序将建立相当多的封禁的 IP 地址列表。你可以通过以下方法查询 SSH 服务的当前状态来查看此列表:

$ sudo fail2ban-client status ssh

7、移除无用的网络服务

几乎所有 Linux 服务器操作系统都启用了一些面向网络的服务。你可能希望保留其中大多数,然而,有一些你或许希望删除。你可以使用 ss 命令查看所有正在运行的网络服务:(LCTT 译注:应该是只保留少部分,而所有确认无关的、无用的服务都应该停用或删除。)

$ sudo ss -atpu

ss 的输出取决于你的操作系统。下面是一个示例,它显示 SSH(sshd)和 Ngnix(nginx)服务正在侦听网络并准备连接:

tcp LISTEN 0 128 *:http *:* users:(("nginx",pid=22563,fd=7))
tcp LISTEN 0 128 *:ssh *:* users:(("sshd",pid=685,fd=3))

删除未使用的服务的方式因你的操作系统及其使用的程序包管理器而异。

要在 Debian / Ubuntu 上删除未使用的服务:

$ sudo apt purge <service_name>

要在 Red Hat/CentOS 上删除未使用的服务:

$ sudo yum remove <service_name>

再次运行 ss -atup 以确认这些未使用的服务没有安装和运行。

总结

本教程介绍了加固 Linux 服务器所需的最起码的措施。你应该根据服务器的使用方式启用其他安全层。这些安全层可以包括诸如各个应用程序配置、入侵检测软件(IDS)以及启用访问控制(例如,双因素身份验证)之类的东西。


via: https://opensource.com/article/19/10/linux-server-security

作者:Patrick H. Mullins 选题:lujun9972 译者:wxy 校对:wxy

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

fd 命令提供了一种简单直白的搜索 Linux 文件系统的方式。

fd 是一个超快的,基于 Rust 的 Unix/Linux find 命令的替代品。它不提供所有 find 的强大功能。但是,它确实提供了足够的功能来覆盖你可能遇到的 80% 的情况。诸如良好的规划和方便的语法、彩色输出、智能大小写、正则表达式以及并行命令执行等特性使 fd 成为一个非常有能力的后继者。

安装

进入 fd GitHub 页面,查看安装部分。它涵盖了如何在macOSDebian/Ubuntu Red HatArch Linux 上安装程序。安装完成后,你可以通过运行帮助来获得所有可用命令行选项的完整概述,通过 fd -h 获取简明帮助,或者通过 fd --help 获取更详细的帮助。

简单搜索

fd 旨在帮助你轻松找到文件系统中的文件和文件夹。你可以用 fd 带上一个参数执行最简单的搜索,该参数就是你要搜索的任何东西。例如,假设你想要找一个 Markdown 文档,其中包含单词 services 作为文件名的一部分:

$ fd services
downloads/services.md

如果仅带一个参数调用,那么 fd 递归地搜索当前目录以查找与莫的参数匹配的任何文件和/或目录。使用内置的 find 命令的等效搜索如下所示:

$ find . -name 'services'
downloads/services.md

如你所见,fd 要简单得多,并需要更少的输入。在我心中用更少的输入做更多的事情总是对的。

文件和文件夹

您可以使用 -t 参数将搜索范围限制为文件或目录,后面跟着代表你要搜索的内容的字母。例如,要查找当前目录中文件名中包含 services 的所有文件,可以使用:

$ fd -tf services
downloads/services.md

以及,找到当前目录中文件名中包含 services 的所有目录:

$ fd -td services
applications/services
library/services

如何在当前文件夹中列出所有带 .md 扩展名的文档?

$ fd .md
administration/administration.md
development/elixir/elixir_install.md
readme.md
sidebar.md
linux.md

从输出中可以看到,fd 不仅可以找到并列出当前文件夹中的文件,还可以在子文件夹中找到文件。很简单。

你甚至可以使用 -H 参数来搜索隐藏文件:

fd -H sessions .
.bash_sessions

指定目录

如果你想搜索一个特定的目录,这个目录的名字可以作为第二个参数传给 fd

$ fd passwd /etc
/etc/default/passwd
/etc/pam.d/passwd
/etc/passwd

在这个例子中,我们告诉 fd 我们要在 etc 目录中搜索 passwd 这个单词的所有实例。

全局搜索

如果你知道文件名的一部分,但不知道文件夹怎么办?假设你下载了一本关于 Linux 网络管理的书,但你不知道它的保存位置。没有问题:

fd Administration /
/Users/pmullins/Documents/Books/Linux/Mastering Linux Network Administration.epub

总结

fdfind 命令的极好的替代品,我相信你会和我一样发现它很有用。要了解该命令的更多信息,只需浏览手册页。


via: https://opensource.com/article/18/6/friendly-alternative-find

作者:Patrick H. Mullins 选题:lujun9972 译者:geekpi 校对:wxy

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