mirror of
https://github.com/LCTT/TranslateProject.git
synced 2025-01-25 23:11:02 +08:00
Merge remote-tracking branch 'LCTT/master'
This commit is contained in:
commit
48cb5cc796
@ -0,0 +1,196 @@
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: (Acceleratorrrr)
|
||||
[#]: reviewer: (wxy)
|
||||
[#]: publisher: (wxy)
|
||||
[#]: url: (https://linux.cn/article-12217-1.html)
|
||||
[#]: subject: (How to secure your Linux email services with SSL/TLS)
|
||||
[#]: via: (https://opensource.com/article/20/4/securing-linux-email)
|
||||
[#]: author: (Marc Skinner https://opensource.com/users/marc-skinner)
|
||||
|
||||
如何利用 SSL/TLS 保护你的 Linux 邮件服务
|
||||
======
|
||||
|
||||
> 通过理解安全证书来保护你的 Linux 邮件服务。
|
||||
|
||||
![](https://img.linux.net.cn/data/attachment/album/202005/13/215637khaogmririavnrlk.jpg)
|
||||
|
||||
通常,不管你是通过<ruby>简单邮件传输协议<rt>Simple Mail Transport Protocol</rt></ruby>(SMTP)或者<ruby>互联网消息访问协议<rt>Internet Message Access Protocol</rt></ruby>(IMAP)或<ruby>邮局协议<rt>Post Office Protocol</rt></ruby>(POP)发送或者接受邮件,邮件服务默认都是以无保护的明文来传输数据。近来随着数据加密成为越来越多程序的共识,你需要<ruby>安全套接层<rt>Secure Sockets Layer</rt></ruby>/<ruby>传输层安全性<rt>Transport Layer Security</rt></ruby>(SSL/TLS)的安全证书来保护你的邮件服务。
|
||||
|
||||
首先,快速回顾一下邮件服务和协议的基本流程。邮件通过 SMTP 从 TCP 端口 25 发出。这个协议依靠 DNS <ruby>邮件交换服务器<rt>Mail eXchanger</rt></ruby>(MX)记录的地址信息来传输邮件。当邮件到达邮件服务器后,可以被以下两种服务中的任意一种检索:使用 TCP 端口 143 的 IMAP,或者使用 TCP 端口 110 的 POP3(邮局协议第 3 版)。然而,以上服务都默认使用明文传输邮件和认证信息。这非常的不安全!
|
||||
|
||||
为了保护电子邮件数据和认证,这些服务都增加了一个安全功能,使它们可以利用 SSL/TLS 证书对数据流和通讯进行加密封装。SSL/TLS 是如何加密数据的细节不在本文讨论范围,有兴趣的话可以阅读 [Bryant Son 关于互联网安全的文章][2]了解更多细节。概括的说,SSL/TLS 加密是一种基于公钥和私钥的算法。
|
||||
|
||||
通过加入这些安全功能后,这些服务将监听在新的 TCP 端口:
|
||||
|
||||
服务 | 默认 TCP 端口 | SSL/TLS 端口
|
||||
---|---|---
|
||||
SMTP | 25 | 587
|
||||
IMAP | 143 | 993
|
||||
POP3 | 110 | 995
|
||||
|
||||
### 生成 SSL/TLS 证书
|
||||
|
||||
[OpenSSL][3] 可以生成免费的 SSL/TLS 证书,或者你也可以从公共<ruby>证书颁发机构<rt>Certificate Authoritie</rt></ruby>(CA)购买。过去,生成自签发证书十分简单而且通用,但是由于安全被日益重视,大部分的邮件客户端是不信任自签发证书的,除非手动设置。
|
||||
|
||||
如果你只是自己使用或者做做测试,那就使用自签发证书省点钱吧。但是如果很多人或者客户也需要使用的话,那最好还是从受信任的证书颁发机构购买。
|
||||
|
||||
不管是哪种情况,开始请求新证书的过程是使用 Linux 系统上的 OpenSSL 工具来创建一个<ruby>证书签发请求<rt>Certificate Signing Request</rt></ruby(CSR):
|
||||
|
||||
```
|
||||
$ openssl req -new -newkey rsa:2048 -nodes -keyout mail.mydomain.key -out mail.mydomain.csr
|
||||
```
|
||||
|
||||
这个命令会为你想保护的服务同时生成一个新的 CSR 文件和一个私匙。它会询问你一些证书相关的问题,如:位置、服务器的<ruby>完全合规域名<rt>Fully Qualified Domain Name</rt></ruby>(FQDN)、邮件联系信息等等。当你输入完这些信息后,私钥和 CSR 文件就生成完毕了。
|
||||
|
||||
#### 如果你想生成自签发证书
|
||||
|
||||
如果你想要生成自签发证书的话,在运行以上 CSR 命令之前,你必须先创建一个[自己的根 CA][4]。你可以通过以下方法创建自己的根 CA。
|
||||
|
||||
```
|
||||
$ openssl genrsa -des3 -out myCA.key 2048
|
||||
```
|
||||
|
||||
命令行会提示你输入一个密码。请输入一个复杂点的密码而且不要弄丢了,因为这将会是根 CA 私钥的密码,正如其名称所示,它是你的证书中所有信任关系的根。
|
||||
|
||||
接下来,生成根 CA 证书:
|
||||
|
||||
```
|
||||
$ openssl req -x509 -new -nodes -key myCA.key -sha256 -days 1825 -out myCA.pem
|
||||
```
|
||||
|
||||
在回答完一些问题后,你就拥有一个有效期为 5 年的根 CA 证书了。
|
||||
|
||||
用之前生成的 CSR 文件,你可以请求生成一个新证书,并由您刚才创建的根 CA 签名。
|
||||
|
||||
```
|
||||
$ openssl x509 -req -in mail.mydomain.csr -CA myCA.pem -CAkey myCA.key -CAcreateserial -out mail.mydomain.pem -days 1825 -sha256
|
||||
```
|
||||
|
||||
输入你的根 CA 私钥的密码来创建和签署证书。
|
||||
|
||||
现在你有了配置电子邮件服务以增强安全性所需的两个文件:私匙文件 `mail.mydomain.key` 和公开证书文件 `mail.mydomain.pem`。
|
||||
|
||||
#### 如果你愿意购买证书
|
||||
|
||||
如果你愿意从机构购买证书,则需要上传 CSR 文件到证书颁发机构的系统中,它将会被用于生成 SSL/TLS 证书。证书可作为文件下载,比如 `mail.mydomain.pem`。很多 SSL 机构也需要你下载一个中间证书。如果是这样的话,你必须把这个两个证书合并成一个,这样电子邮件服务就可以将这两个证书结合起来处理。可以使用以下命令把你的证书和第三方中间证书合并在一起:
|
||||
|
||||
```
|
||||
$ cat mail.mydomain.pem gd_bundle-g2-g1.crt > mail.mydomain.pem
|
||||
```
|
||||
|
||||
值得一提的是 `.pem` 文件后缀代表<ruby>隐私增强邮件<rt>Privacy-Enhanced Mail</rt></ruby>。
|
||||
|
||||
现在你就有全部的设置邮件服务安全所需文件了:私匙文件 `mail.mydomain.key` 和组合的公开证书文件 `mail.mydomain.pem`。
|
||||
|
||||
### 为你的文件生成一个安全的文件夹
|
||||
|
||||
不管你是的证书是自签发的或者从机构购买,你都需要生成一个安全的,管理员拥有的文件夹用于保存这两个文件。可以使用以下命令来生成:
|
||||
|
||||
```
|
||||
$ mkdir /etc/pki/tls
|
||||
$ chown root:root /etc/pki/tls
|
||||
$ chmod 700 /etc/pki/tls
|
||||
```
|
||||
|
||||
在复制文件到 `/etc/pki/tls` 后,再次设置这些文件的权限:
|
||||
|
||||
```
|
||||
$ chmod 600 /etc/pki/tls/*
|
||||
```
|
||||
|
||||
### 配置你的 SMTP 和 IMAP 服务
|
||||
|
||||
接下来,让 SMTP 和 IMAP 服务使用新的安全证书。我们用 `postfix` 和 `dovecot` 来作为例子。
|
||||
|
||||
用你顺手的编辑器来编辑 `/etc/postfix/main.cf` 文件。添加以下几行:
|
||||
|
||||
```
|
||||
smtpd_use_tls = yes
|
||||
smtpd_tls_cert_file = /etc/pki/tls/mail.mydomain.pem
|
||||
smtpd_tls_key_file = /etc/pki/tls/mail.mydomain.key
|
||||
```
|
||||
|
||||
### 自定义选项
|
||||
|
||||
以下选项可以启用或禁用各种加密算法,协议等等:
|
||||
|
||||
```
|
||||
smtpd_tls_eecdh_grade = strong
|
||||
smtpd_tls_protocols= !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
|
||||
smtpd_tls_mandatory_protocols= !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
|
||||
smtpd_tls_mandatory_ciphers = high
|
||||
smtpd_tls_security_level=may
|
||||
smtpd_tls_ciphers = high
|
||||
tls_preempt_cipherlist = yes
|
||||
smtpd_tls_mandatory_exclude_ciphers = aNULL, MD5 , DES, ADH, RC4, PSD, SRP, 3DES, eNULL
|
||||
smtpd_tls_exclude_ciphers = aNULL, MD5 , DES, ADH, RC4, PSD, SRP, 3DES, eNULL
|
||||
smtp_tls_mandatory_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
|
||||
smtp_tls_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
|
||||
```
|
||||
|
||||
编辑 `/etc/dovecot/dovecot.conf` 文件,添加以下三行:
|
||||
|
||||
```
|
||||
ssl = required
|
||||
ssl_cert = </etc/pki/tls/mail.mydomain.pem
|
||||
ssl_key = </etc/pki/tls/mail.mydomain.key
|
||||
```
|
||||
|
||||
添加下列更多选项来启用或禁用各种加密算法、协议等等(我把这些留给你来理解):
|
||||
|
||||
```
|
||||
ssl_cipher_list = EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+SHA384:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA384:EECDH+aRSA+SHA256:EECDH+aRSA+RC4:EECDH:EDH+aRSA:ALL:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS:!RC4:!SSLv2
|
||||
ssl_prefer_server_ciphers = yes
|
||||
ssl_protocols = !SSLv2 !SSLv3 !TLSv1 !TLSv1.1
|
||||
ssl_min_protocol = TLSv1.2
|
||||
```
|
||||
|
||||
### 设置 SELinux 上下文
|
||||
|
||||
如果你的 Linux 发行版启用了 SELinux,请为你的新证书文件设置正确的 SELinux 上下文。
|
||||
|
||||
对于 Postfix 设置 SELinux:
|
||||
|
||||
```
|
||||
$ chcon -u system_u -t cert_t mail.mydomain.*
|
||||
```
|
||||
|
||||
对于 Dovecot 设置 SELinux:
|
||||
|
||||
```
|
||||
$ chcon -u system_u -t dovecot_cert_t mail.mydomain.*
|
||||
```
|
||||
|
||||
重启这些服务,并与你相应更新过的电子邮件客户端配置连接。有些电子邮件客户端会自动探测到新的端口,有些则需要你手动更新。
|
||||
|
||||
### 测试配置
|
||||
|
||||
用 `openssl` 命令行和 `s_client` 插件来简单测试一下:
|
||||
|
||||
```
|
||||
$ openssl s_client -connect mail.mydomain.com:993
|
||||
$ openssl s_client -starttls imap -connect mail.mydomain.com:143
|
||||
$ openssl s_client -starttls smtp -connect mail.mydomain.com:587
|
||||
```
|
||||
|
||||
这些测试命令会打印出很多信息,关于你使用的连接、证书、加密算法、会话和协议。这不仅是一个验证新设置的好方法,也可以确认你使用了适当的证书,以及在 postfix 或 dovecot 配置文件中定义的安全设置正确。
|
||||
|
||||
保持安全!
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/20/4/securing-linux-email
|
||||
|
||||
作者:[Marc Skinner][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[Acceleratorrrr](https://github.com/Acceleratorrrr)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/marc-skinner
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/newsletter_email_mail_web_browser.jpg?itok=Lo91H9UH (email or newsletters via inbox and browser)
|
||||
[2]: https://linux.cn/article-11699-1.html
|
||||
[3]: https://www.openssl.org/
|
||||
[4]: https://en.wikipedia.org/wiki/Root_certificate
|
@ -1,13 +1,13 @@
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: (geekpi)
|
||||
[#]: reviewer: ( )
|
||||
[#]: publisher: ( )
|
||||
[#]: url: ( )
|
||||
[#]: reviewer: (wxy)
|
||||
[#]: publisher: (wxy)
|
||||
[#]: url: (https://linux.cn/article-12216-1.html)
|
||||
[#]: subject: (Fixing “Unable to parse package file /var/lib/apt/lists” Error in Ubuntu and Other Linux Distributions)
|
||||
[#]: via: (https://itsfoss.com/unable-to-parse-package-file/)
|
||||
[#]: author: (Abhishek Prakash https://itsfoss.com/author/abhishek/)
|
||||
|
||||
修复 Ubuntu 和其他 Linux 发行版中的 “Unable to parse package file /var/lib/apt/lists” 错误
|
||||
修复 Ubuntu 中的 “Unable to parse package file” 错误
|
||||
======
|
||||
|
||||
过去,我已经讨论了许多 [Ubuntu 更新错误][1]。如果你[使用命令行更新 Ubuntu][2],那可能会遇到一些“错误”。
|
||||
@ -16,15 +16,19 @@
|
||||
|
||||
在本文中,我将向你展示如何解决在更新系统或安装新软件时可能遇到的以下错误:
|
||||
|
||||
**Reading package lists… Error!
|
||||
```
|
||||
Reading package lists… Error!
|
||||
E: Unable to parse package file /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_bionic_InRelease
|
||||
E: The package lists or status file could not be parsed or opened.**
|
||||
E: The package lists or status file could not be parsed or opened.
|
||||
```
|
||||
|
||||
在 Debian 中可能会遇到类似的错误:
|
||||
|
||||
**E: Unable to parse package file /var/lib/apt/extended_states (1)**
|
||||
```
|
||||
E: Unable to parse package file /var/lib/apt/extended_states (1)
|
||||
```
|
||||
|
||||
即使遇到 “**The package cache file is corrupted**” 也完全不必惊慌。这真的很容易“修复”。
|
||||
即使遇到 `The package cache file is corrupted` 也完全不必惊慌。这真的很容易“修复”。
|
||||
|
||||
### 在基于 Ubuntu 和 Debian 的 Linux 发行版中处理 “Unable to parse package file” 错误
|
||||
|
||||
@ -32,11 +36,13 @@ E: The package lists or status file could not be parsed or opened.**
|
||||
|
||||
以下是你需要做的。仔细查看 [Ubuntu][4] 报错文件的名称和路径。
|
||||
|
||||
```
|
||||
Reading package lists… Error!
|
||||
**E: Unable to parse package file /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_bionic_InRelease**
|
||||
E: Unable to parse package file /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_bionic_InRelease
|
||||
E: The package lists or status file could not be parsed or opened.
|
||||
```
|
||||
|
||||
例如,上面的错误是在报 /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_bionic_InRelease 文件错误。
|
||||
例如,上面的错误是在报 `/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_bionic_InRelease` 文件错误。
|
||||
|
||||
这让你想到这个文件不正确。现在,你需要做的就是删除该文件并重新生成缓存。
|
||||
|
||||
@ -44,7 +50,7 @@ E: The package lists or status file could not be parsed or opened.
|
||||
sudo rm <file_that_is_not_parsed>
|
||||
```
|
||||
|
||||
因此,这里我可以使用以下命令:**sudo rm /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_bionic_InRelease**,然后使用 sudo apt update 命令重建缓存。
|
||||
因此,这里我可以使用以下命令:`sudo rm /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_bionic_InRelease`,然后使用 `sudo apt update` 命令重建缓存。
|
||||
|
||||
#### 给初学者的分步指导
|
||||
|
||||
@ -81,13 +87,13 @@ sudo apt update
|
||||
|
||||
#### 解释这为何能解决问题
|
||||
|
||||
/var/lib/apt 是与 apt 软件包管理器相关的文件和数据的存储目录。/var/lib/apt/lists 是用于保存系统 source.list 中指定的每个软件包资源信息的目录。
|
||||
`/var/lib/apt` 是与 apt 软件包管理器相关的文件和数据的存储目录。`/var/lib/apt/lists` 是用于保存系统 `source.list` 中指定的每个软件包资源信息的目录。
|
||||
|
||||
简单点来说,/var/lib/apt/lists 保存软件包信息缓存。当你要安装或更新程序时,系统会在此目录中检查该软件包中的信息。如果找到了该包的详细信息,那么它将进入远程仓库并实际下载程序或其更新。
|
||||
简单点来说,`/var/lib/apt/lists` 保存软件包信息缓存。当你要安装或更新程序时,系统会在此目录中检查该软件包中的信息。如果找到了该包的详细信息,那么它将进入远程仓库并实际下载程序或其更新。
|
||||
|
||||
当你运行 “sudo apt update” 时,它将构建缓存。这就是为什么即使删除 /var/lib/apt/lists 目录中的所有内容,运行更新也会建立新的缓存的原因。
|
||||
当你运行 `sudo apt update` 时,它将构建缓存。这就是为什么即使删除 `/var/lib/apt/lists` 目录中的所有内容,运行更新也会建立新的缓存的原因。
|
||||
|
||||
这就是处理文件无法解析问题的方式。你的系统报某个软件包或仓库信息以某种方式损坏(下载失败或手动更改 sources.list)。删除该文件(或所有文件)并重建缓存即可解决此问题。
|
||||
这就是处理文件无法解析问题的方式。你的系统报某个软件包或仓库信息以某种方式损坏(下载失败或手动更改 `sources.list`)。删除该文件(或所有文件)并重建缓存即可解决此问题。
|
||||
|
||||
#### 仍然有错误?
|
||||
|
||||
@ -100,7 +106,7 @@ via: https://itsfoss.com/unable-to-parse-package-file/
|
||||
作者:[Abhishek Prakash][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[geekpi](https://github.com/geekpi)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
@ -1,5 +1,5 @@
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: (mr-ping)
|
||||
[#]: translator: ( )
|
||||
[#]: reviewer: ( )
|
||||
[#]: publisher: ( )
|
||||
[#]: url: ( )
|
||||
|
@ -1,5 +1,5 @@
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: ( )
|
||||
[#]: translator: (geekpi)
|
||||
[#]: reviewer: ( )
|
||||
[#]: publisher: ( )
|
||||
[#]: url: ( )
|
||||
|
@ -1,77 +0,0 @@
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: (geekpi)
|
||||
[#]: reviewer: ( )
|
||||
[#]: publisher: ( )
|
||||
[#]: url: ( )
|
||||
[#]: subject: (Can’t Install Deb File on Ubuntu 20.04? Here’s What You Need to do!)
|
||||
[#]: via: (https://itsfoss.com/cant-install-deb-file-ubuntu/)
|
||||
[#]: author: (Abhishek Prakash https://itsfoss.com/author/abhishek/)
|
||||
|
||||
Can’t Install Deb File on Ubuntu 20.04? Here’s What You Need to do!
|
||||
======
|
||||
|
||||
_**Brief: Double clicking on the deb file doesn’t install it via the software center in Ubuntu 20.04? You are not the only one facing this issue. This tutorial shows how to fix it.**_
|
||||
|
||||
On the “[things to do after installing Ubuntu 20.04][1]” article, a few readers mentioned that they had trouble [installing software from the Deb file][2].
|
||||
|
||||
I found that strange because installing a program using the deb file is one of the simplest methods. All you have to do is to double click the downloaded file and it opens (by default) with the Software Center program. You click on install, it asks for your password and within a few seconds/minute, the software is installed.
|
||||
|
||||
I had [upgraded to Ubuntu 20.04 from 19.10][3] and hadn’t faced this issue with it until today.
|
||||
|
||||
I downloaded the .deb file for installing [Rocket Chat messenger][4] and when I double clicked on it to install this software, the file was opened with the archive manager. This is not what I expected.
|
||||
|
||||
![DEB files opened with Archive Manager instead of Software Center][5]
|
||||
|
||||
The “fix” is simple and I am going to show it to you in this quick tutorial.
|
||||
|
||||
### Installing deb files in Ubuntu 20.04
|
||||
|
||||
For some reasons, the default software to open the deb file has been set to Archive Manager tool in Ubuntu 20.04. The Archive Manager tool is used for [extract zip][6] and other compressed files.
|
||||
|
||||
The solution for this problem is pretty simple. You [change the default application in Ubuntu][7] for opening DEB files from Archive Manager to Software Install. Let me show you the steps.
|
||||
|
||||
**Step 1:** Right click on the downloaded DEB file and select **Properties**:
|
||||
|
||||
![][8]
|
||||
|
||||
**Step 2:** Go to “**Open With**” tab, select “**Software Install**” app and click on “**Set as default**“.
|
||||
|
||||
![][9]
|
||||
|
||||
This way, all the deb files in the future will be opened with Software Install i.e. the software center applications.
|
||||
|
||||
Confirm it by double clicking the DEB file and see if it open with the software center application or not.
|
||||
|
||||
#### Ignorant bug or stupid feature?
|
||||
|
||||
Why is deb files are supposed to be opened with Archive Manager is beyond comprehension. I do hope that this is a bug, not a weird feature like [not allowing drag and drop files on the desktop in Ubuntu 20.04][10].
|
||||
|
||||
Since we are discussing deb file installation, let me tell you about a nifty tool [gdebi][11]. It’s a lightweight application with the sole purpose of installing DEB file. Not always but some times, it can also handle the dependencies.
|
||||
|
||||
You can learn more about [using gdebi and making it default for installing deb files here][12].
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://itsfoss.com/cant-install-deb-file-ubuntu/
|
||||
|
||||
作者:[Abhishek Prakash][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://itsfoss.com/author/abhishek/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://itsfoss.com/things-to-do-after-installing-ubuntu-20-04/
|
||||
[2]: https://itsfoss.com/install-deb-files-ubuntu/
|
||||
[3]: https://itsfoss.com/upgrade-ubuntu-version/
|
||||
[4]: https://rocket.chat/
|
||||
[5]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2020/05/error-opening-deb-file.png?ssl=1
|
||||
[6]: https://itsfoss.com/unzip-linux/
|
||||
[7]: https://itsfoss.com/change-default-applications-ubuntu/
|
||||
[8]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2020/05/open-deb-files.png?ssl=1
|
||||
[9]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2020/05/deb-file-install-fix-ubuntu.png?fit=800%2C454&ssl=1
|
||||
[10]: https://itsfoss.com/add-files-on-desktop-ubuntu/
|
||||
[11]: https://launchpad.net/gdebi
|
||||
[12]: https://itsfoss.com/gdebi-default-ubuntu-software-center/
|
@ -1,5 +1,5 @@
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: ( )
|
||||
[#]: translator: (robsean)
|
||||
[#]: reviewer: ( )
|
||||
[#]: publisher: ( )
|
||||
[#]: url: ( )
|
||||
|
@ -1,201 +0,0 @@
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: (Acceleratorrrr)
|
||||
[#]: reviewer: ( )
|
||||
[#]: publisher: ( )
|
||||
[#]: url: ( )
|
||||
[#]: subject: (How to secure your Linux email services with SSL/TLS)
|
||||
[#]: via: (https://opensource.com/article/20/4/securing-linux-email)
|
||||
[#]: author: (Marc Skinner https://opensource.com/users/marc-skinner)
|
||||
|
||||
如何利用 SSL/TLS 保护你的Linux邮箱服务
|
||||
======
|
||||
|
||||
通过理解安全证书来保护你的Linux邮箱服务。
|
||||
![email or newsletters via inbox and browser][1]
|
||||
|
||||
通常,不管你是通过简单邮件传输协议(SMTP)或者邮局协议(POP)发送或者接受邮件,邮箱服务默认使用无保护明文来传输数据。近来随着数据加密成为越来越多程序的共识,你需要传输层安全性协议 / 安全套接层(SSL/TLS)的安全证书来保护你的邮箱服务。
|
||||
|
||||
首先,快速回顾一下邮箱服务和协议的基本流程。邮件通过简单邮件传输协议从端口25发出。这个协议依靠DNS邮件交换服务器里的地址信息来传输邮件。当邮件到达邮件服务器后,可以被以下两种服务中的任意一种检索:因特网信息访问协议(IMAP)使用端口143,或者邮局协议第3版本(POP3)使用端口110。然而,以上服务默认默认使用明文传输邮件和验证信息。这非常的不安全!
|
||||
|
||||
以上服务已经添加了安全功能来保护邮件内容和验证信息,使它们可以利用SSL/TLS证书包裹和加密数据流。SSL/TLS如何加密数据的细节不在本文讨论范围,有兴趣的话可以阅读[布莱恩特关于网络安全的文章][2]。概括的说,SSL/TLS 加密本质是一种基于公钥和私钥的算法。
|
||||
|
||||
通过加入新的安全功能后,这些服务可以监听新的TCP端口:
|
||||
|
||||
服务 | 默认TCP端口 | SSL/TLS 端口
|
||||
---|---|---
|
||||
SMTP | 25 | 587
|
||||
IMAP | 143 | 993
|
||||
POP3 | 110 | 995
|
||||
|
||||
### 生成 SSL/TLS 证书
|
||||
|
||||
[OpenSSL][3] 可以生成免费的 SSL/TLS 证书,或者你也可以从根证书颁发机构购买。过去,生成自签发证书十分简单而且通用,但是由于安全被日益重视,大部分的邮箱客户端是不信任自签发证书的,除非手动设置。
|
||||
|
||||
如果你只是自己使用或者做做测试,那就使用自签发证书省点钱吧。但是如果很多人或者客户也需要使用的话,那最好还是从受信任的根证书颁发机构购买。
|
||||
|
||||
总之,Linux 系统里的 OpenSSL 工具需要一个证书来生成凭证签发请求文件(CSR):
|
||||
|
||||
```
|
||||
`$ openssl req -new -newkey rsa:2048 -nodes -keyout mail.mydomain.key -out mail.mydomain.csr`
|
||||
```
|
||||
|
||||
这个命令会为你想保护的服务同时生成一个新的 CSR 文件和一个私匙。它会询问你一些证书相关的问题,如:路径,服务器的完整网络域名,邮件联系信息等等。当你输入完这些信息后,密匙和CSR文件就生成完毕了。
|
||||
|
||||
#### 如果你想生成自签发证书
|
||||
|
||||
如果你想要生成自签发证书的话,在运行以上 CSR 命令之前,你必须先创建一个[自签发证书机构][4]。
|
||||
|
||||
```
|
||||
`$ openssl genrsa -des3 -out myCA.key 2048`
|
||||
```
|
||||
|
||||
命令行会提示你输入密码。请输入一个复杂点的密码而且不要弄丢了,因为这将会是自签发证书机构的密码,并且决定了其签发证书的受信任度。
|
||||
|
||||
接下来,生成自签发证书机构:
|
||||
|
||||
```
|
||||
`$ openssl req -x509 -new -nodes -key myCA.key -sha256 -days 1825 -out myCA.pem`
|
||||
```
|
||||
|
||||
在回答完一些问题后,你就拥有一个有效期为5年的自签发证书机构了。
|
||||
|
||||
用之前生成的 CSR 文件,你可以向刚生成的自签发证书机构请求生成一个新的证书。
|
||||
|
||||
```
|
||||
`$ openssl x509 -req -in mail.mydomain.csr -CA myCA.pem -CAkey myCA.key -CAcreateserial -out mail.mydomain.pem -days 1825 -sha256`
|
||||
```
|
||||
|
||||
输入自签发证书机构的密码来生成和签发证书。
|
||||
|
||||
现在你还需要两个文件来设置你的邮箱服务安全:私匙文件 **mail.mydomain.key**, 和证书文件 **mail.mydomain.pem**。
|
||||
|
||||
#### 如果你愿意购买证书
|
||||
|
||||
If you purchase a certificate from a vendor, it will ask you to upload that CSR to its system, as it is used as the input to generate the SSL/TLS certificate. The certificate will be accessible as a file (such as **mail.mydomain.pem**). Many SSL vendors also require you to download an intermediate certificate. If this is the case, you must combine the two certificate files into one, so the email service can process them both in combination. You can combine your certificate with a third-party intermediate certificate with:
|
||||
如果你愿意从机构购买证书,则需要上传 CSR 文件到机构的系统中,它将会被用于生成 SSL/TLS 证书。证书可作为文件下载,比如 **mail.mydomain.pem**。很多SSL机构也需要你下载一个中间证书。这样的话,你必须把这个两个证书合并称一个,邮件服务才能够正常运行。可以使用以下命令把你的证书和第三方中间证书合并在一起:
|
||||
|
||||
```
|
||||
`$ cat mail.mydomain.pem gd_bundle-g2-g1.crt > mail.mydomain.pem`
|
||||
```
|
||||
|
||||
值得一提的是 **.pem** 文件后缀代表隐私增强邮件。
|
||||
|
||||
Now you have the two files you need to configure your email services for enhanced security: the private key file, **mail.mydomain.key**, and the public combined certificate file, **mail.mydomain.pem**.
|
||||
现在你就有全部的设置邮箱服务安全所需文件了:私匙文件 **mail.mydomain.key**, 和证书文件 **mail.mydomain.pem**。
|
||||
|
||||
### 为你的文件生成一个安全的文件夹
|
||||
|
||||
不管你是的证书是自签发的或者从机构购买,你都需要生成一个安全的,管理员权限级别的文件夹用于保存这两个文件。可以使用以下命令来生成:
|
||||
|
||||
```
|
||||
$ mkdir /etc/pki/tls
|
||||
$ chown root:root /etc/pki/tls
|
||||
$ chmod 700 /etc/pki/tls
|
||||
```
|
||||
|
||||
在复制文件到 **/etc/pki/tls** 后,再次设置这些文件的权限:
|
||||
|
||||
```
|
||||
`$ chmod 600 /etc/pki/tls/*`
|
||||
```
|
||||
|
||||
### 配置你的 SMTP 和 IMAP 服务
|
||||
|
||||
接下来,让 SMTP 和 IMAP 服务使用新的安全证书。我们用 **postfix** and **dovecot** 来作为例子。
|
||||
|
||||
Edit ***/_****etc****_/*****postfix/main.cf** in your preferred text editor. Add the following lines:
|
||||
用你顺手的编辑器来编辑 ***/_etc_/postfix/main.cf** 文件。添加以下几行:
|
||||
|
||||
```
|
||||
smtpd_use_tls = yes
|
||||
smtpd_tls_cert_file = /etc/pki/tls/mail.mydomain.pem
|
||||
smtpd_tls_key_file = /etc/pki/tls/mail.mydomain.key
|
||||
```
|
||||
|
||||
### 自定义选项
|
||||
|
||||
以下选项可以启用或禁用各种加密算法,协议等等:
|
||||
|
||||
```
|
||||
smtpd_tls_eecdh_grade = strong
|
||||
smtpd_tls_protocols= !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
|
||||
smtpd_tls_mandatory_protocols= !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
|
||||
smtpd_tls_mandatory_ciphers = high
|
||||
smtpd_tls_security_level=may
|
||||
smtpd_tls_ciphers = high
|
||||
tls_preempt_cipherlist = yes
|
||||
smtpd_tls_mandatory_exclude_ciphers = aNULL, MD5 , DES, ADH, RC4, PSD, SRP, 3DES, eNULL
|
||||
smtpd_tls_exclude_ciphers = aNULL, MD5 , DES, ADH, RC4, PSD, SRP, 3DES, eNULL
|
||||
smtp_tls_mandatory_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
|
||||
smtp_tls_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
|
||||
```
|
||||
|
||||
**/etc/dovecot/dovecot.conf** 文件添加以下三行:
|
||||
|
||||
```
|
||||
ssl = required
|
||||
ssl_cert = </etc/pki/tls/mail.mydomain.pem
|
||||
ssl_key = </etc/pki/tls/mail.mydomain.key
|
||||
```
|
||||
|
||||
添加更多选项来启用或禁用各种加密算法,协议等等(可选):
|
||||
|
||||
```
|
||||
ssl_cipher_list = EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+SHA384:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA384:EECDH+aRSA+SHA256:EECDH+aRSA+RC4:EECDH:EDH+aRSA:ALL:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS:!RC4:!SSLv2
|
||||
ssl_prefer_server_ciphers = yes
|
||||
ssl_protocols = !SSLv2 !SSLv3 !TLSv1 !TLSv1.1
|
||||
ssl_min_protocol = TLSv1.2
|
||||
```
|
||||
|
||||
### 安全增强式Linux上下文设置
|
||||
|
||||
如果使用安全增强式Linux发行版,你需要给新证书文件配置正确的安全上下文。
|
||||
|
||||
Postfix SELinux 用户:
|
||||
|
||||
```
|
||||
`$ chcon -u system_u -t cert_t mail.mydomain.*`
|
||||
```
|
||||
|
||||
Dovecot SELinux 用户:
|
||||
|
||||
```
|
||||
`$ chcon -u system_u -t dovecot_cert_t mail.mydomain.*`
|
||||
```
|
||||
|
||||
Restart both services and connect with your updated email client configurations. Some email clients will auto-detect the new port numbers; others will require you to update them.
|
||||
重启这些服务,然后联接上更新后的邮箱客户端。有些邮箱客户端会自动探测到新的端口,有些则需要你手动升级。
|
||||
|
||||
### 测试
|
||||
|
||||
用 **openssl** 命令行和 **s_client** 插件来简单测试一下:
|
||||
|
||||
```
|
||||
$ openssl s_client -connect mail.mydomain.com:993
|
||||
$ openssl s_client -starttls imap -connect mail.mydomain.com:143
|
||||
$ openssl s_client -starttls smtp -connect mail.mydomain.com:587
|
||||
```
|
||||
|
||||
These test commands will show a plethora of data about the connection, certificate, cipher, session, and protocol you're using. This is not only a good way to validate that the new configuration is working but also to confirm you're using the appropriate certificate and security settings you defined in the **postfix** or **dovecot** configuration files.
|
||||
这些测试命令会打印出很多信息,关于你使用的联接,证书,加密算法,会话和协议。这不仅是一个验证新设置的好方法,也可以检查你是否使用了适当的证书,以及 **postfix** 或者 **dovecot** 配置文件里的安全设置是否生效。
|
||||
|
||||
Stay secure!
|
||||
保持安全!
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/20/4/securing-linux-email
|
||||
|
||||
作者:[Marc Skinner][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[Acceleratorrrr](https://github.com/Acceleratorrrr)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/marc-skinner
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/newsletter_email_mail_web_browser.jpg?itok=Lo91H9UH (email or newsletters via inbox and browser)
|
||||
[2]: https://opensource.com/article/19/11/internet-security-tls-ssl-certificate-authority
|
||||
[3]: https://www.openssl.org/
|
||||
[4]: https://en.wikipedia.org/wiki/Root_certificate
|
@ -0,0 +1,77 @@
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: (geekpi)
|
||||
[#]: reviewer: ( )
|
||||
[#]: publisher: ( )
|
||||
[#]: url: ( )
|
||||
[#]: subject: (Can’t Install Deb File on Ubuntu 20.04? Here’s What You Need to do!)
|
||||
[#]: via: (https://itsfoss.com/cant-install-deb-file-ubuntu/)
|
||||
[#]: author: (Abhishek Prakash https://itsfoss.com/author/abhishek/)
|
||||
|
||||
无法在 Ubuntu 20.04 上安装 Deb 文件?这是你需要做的!
|
||||
======
|
||||
|
||||
_**简介:双击 deb 文件后无法通过 Ubuntu 20.04 的软件中心安装?你不是唯一遇到此问题的人。本教程展示了解决方法**_
|
||||
|
||||
在“[安装 Ubuntu 20.04 之后要做的事][1]”一文中,一些读者提到他们[用 Deb 文件安装软件][2]遇到了麻烦。
|
||||
|
||||
我发现这很奇怪,因为使用 deb 文件安装程序是最简单的方法之一。你要做的就是双击下载的文件,它会在软件中心中打开(默认情况下)。单击安装,它要求你输入密码,并在几秒钟/分钟内安装了该软件。
|
||||
|
||||
我[从 19.10 升级到 Ubuntu 20.04] [3]直到今天都没有遇到这个问题。
|
||||
|
||||
我下载了 .deb 文件来安装 [Rocket Chat Messenger][4],然后双击该文件安装时,文件用存档管理器打开。这不是我所期望的。
|
||||
|
||||
![DEB files opened with Archive Manager instead of Software Center][5]
|
||||
|
||||
“修复”很简单,我将在本教程中向你展示。
|
||||
|
||||
### 在 Ubuntu 20.04 中安装 deb 文件
|
||||
|
||||
由于某些原因,在 Ubuntu 20.04 中 deb 文件的默认打开程序被设置为存档管理器。存档管理器是用于[解压 zip][6] 和其他压缩文件。
|
||||
|
||||
解决此问题的方法非常简单。[在 Ubuntu 中更改默认应用][7],将打开 DEB 文件从“存档管理器”改到“软件安装”。让我告诉你步骤。
|
||||
|
||||
**步骤 1:**右键单击下载的 DEB 文件,然后选择**属性**:
|
||||
|
||||
![][8]
|
||||
|
||||
**步骤 2:**进入“**打开方式**”标签,选择“**软件安装**”,然后点击“**设置为默认**”。
|
||||
|
||||
![][9]
|
||||
|
||||
这样,以后所有的 deb 文件都将通过“软件安装”即软件中心打开。
|
||||
|
||||
双击 DEB 文件确认,看看是否在软件中心中打开。
|
||||
|
||||
#### 忽视的 bug 还是愚蠢的功能?
|
||||
|
||||
为什么会用存档管理器打开 deb 文件让人无法理解。我确实希望这是一个 bug,而不是像[在 Ubuntu 20.04 中不允许在桌面上拖放文件][10]这样的怪异功能。
|
||||
|
||||
既然我们在讨论 deb 文件的安装,就让我告诉你一个不错的工具 [gdebi][11]。它是一个轻量级应用,其唯一目的是安装 DEB 文件。有时它也可以处理依赖关系。
|
||||
|
||||
你可以了解更多有关[使用 gdebi 并默认设为安装 deb 文件的工具][12]。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://itsfoss.com/cant-install-deb-file-ubuntu/
|
||||
|
||||
作者:[Abhishek Prakash][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[geekpi](https://github.com/geekpi)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://itsfoss.com/author/abhishek/
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://itsfoss.com/things-to-do-after-installing-ubuntu-20-04/
|
||||
[2]: https://itsfoss.com/install-deb-files-ubuntu/
|
||||
[3]: https://itsfoss.com/upgrade-ubuntu-version/
|
||||
[4]: https://rocket.chat/
|
||||
[5]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2020/05/error-opening-deb-file.png?ssl=1
|
||||
[6]: https://itsfoss.com/unzip-linux/
|
||||
[7]: https://itsfoss.com/change-default-applications-ubuntu/
|
||||
[8]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2020/05/open-deb-files.png?ssl=1
|
||||
[9]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2020/05/deb-file-install-fix-ubuntu.png?fit=800%2C454&ssl=1
|
||||
[10]: https://itsfoss.com/add-files-on-desktop-ubuntu/
|
||||
[11]: https://launchpad.net/gdebi
|
||||
[12]: https://itsfoss.com/gdebi-default-ubuntu-software-center/
|
Loading…
Reference in New Issue
Block a user