[内容] Postfix 数据的加密 (通过 TLS 实现)

内容一:Postfix 不使用 TLS 加密数据传输的后果

1) 收发的邮件数据会被他人截取
2) 给 Gmail 等电子邮箱发送邮件时,会提示类似 “ *** 未对此邮件进行加密” 的信息

内容二:给 Postfix 设置 TLS 加密数据传输的方法
2.1 给 Postfix 的配置文件设置 TLS 机密数据传输的参数

# vim /etc/postfix/main.cf

添加以下内容:

......
smtpd_tls_security_level = may
smtp_tls_security_level = may
......


补充:
smtpd_tls_security_level 代表接收邮件的 TLS 安全等级
smtp_tls_security_level 代表发送邮件的 TLS 安全等级
TLS 的常用安全等级有 none、may 和 encrypt :
1) none 表示禁止使用 TLS 加密
2) may 表示可以接收不使用 TLS 加密的邮件,但是会提出支持 TLS 加密的通告。发送邮件时优先发送支持 TLS 加密的邮件
3) encrypt 表示强制使用 TLS 加密

2.2 重启 Postfix 服务

# systemctl restart postfix

[内容] DNS 客户端的设置 (Linux 版)

内容一:设置 DNS 客户端
1.1 直接在本地指定域名
1.1.1 直接在本地指定域名的方法

# vim /etc/hosts

添加以下内容:

......
<IP address> <domain name>

(注意:/etc/hosts 里记录的 DNS 优先级要比 /etc/resolv.conf 里的高)

1.1.2 直接在本地指定域名的案例

# vim /etc/hosts

添加以下内容:

......
192.154.240.64 eternalcenter.com

(补充:这里以将 192.154.240.64 解析为 eternalcenter.com 为例)

(注意:/etc/hosts 里记录的 DNS 优先级要比 /etc/resolv.conf 里的高)

1.2 使用远程的 DNS 服务器解析域名
1.2.1 使用远程的 DNS 服务器解析域名
1.2.1.1 使用远程的 DNS 服务器解析域名的方法
1.2.1.1.1 直接修改 /etc/resolv.conf 文件

# vim /etc/resolv.conf

添加以下内容:

......
nameserver <IP address of DNS server>

(注意:/etc/hosts 里记录的 DNS 优先级要比 /etc/resolv.conf 里的高)

1.2.1.1.2 使用 nmcli 命令
1.2.1.1.2.1 使用 nmcli 命令配置一个 DNS 服务器的 IP 地址

# nmcli connection modify <network card name> ipv4.dns <IP address of DNS server>

(补充:不将 /etc/NetworkManager/NetworkManager.conf 里的 [main] dns=none 参数修改为 none 的话,此参数会覆盖 /etc/resolv.conf 里的设置)


注意:
1) 此方法只对 CentOS8&RHEL8 适用
2) /etc/hosts 里记录的 DNS 优先级要比使用 nmcli 命令的高

1.2.1.1.2.2 使用 nmcli 命令配置多个 DNS 服务器的 IP 地址

# nmcli connection modify <network card name> ipv4.dns "<first IP address of DNS server>,<second IP address of DNS server>,<third IP address of DNS server>......"

(补充:不将 /etc/NetworkManager/NetworkManager.conf 里的 [main] dns=none 参数修改为 none 的话,此参数会覆盖 /etc/resolv.conf 里的设置)


注意:
1) 此方法只对 CentOS8&RHEL8 适用
2) /etc/hosts 里记录的 DNS 优先级要比使用 nmcli 命令的高

1.2.1.2 使用远程的 DNS 服务器解析域名的案例
1.2.1.2.1 直接修改 /etc/resolv.conf 文件

# vim /etc/resolv.conf

添加以下内容:

......
nameserver 8.8.8.8

(补充:这里以使用 8.8.8.8 DNS 服务器为例)

(注意:/etc/hosts 里记录的 DNS 优先级要比 /etc/resolv.conf 里的高)

1.2.1.2.2 使用 nmcli 命令

# nmcli connection modify eth0 ipv4.dns 8.8.8.8


补充:
1) 这里以给 eth0 网卡添加 8.8.8.8 DNS 服务器为例
2) 不将 /etc/NetworkManager/NetworkManager.conf 里的 [main] dns=none 参数修改为 none 的话,此参数会覆盖 /etc/resolv.conf 里的设置

(注意:/etc/hosts 里记录的 DNS 优先级要比使用 nmcli 命令的高)

1.2.2 查看正在使用远程的 DNS 服务器解析的域名

# nmcli connection show | grep -i ipv4.dns

内容二:检查 DNS 域名解析
2.1 使用 ping 命令解析域名
2.1.1 使用 ping 命令解析域名的格式

# ping <domain name>

2.1.2 使用 ping 命令解析域名的案例

# ping eternalcenter.com
PING eternalcenter.com (192.154.240.64) 56(84) bytes of data.
64 bytes from v144-48-142.ap-east.sugarhosts.net (192.154.240.64): icmp_seq=1 ttl=50 time=144 ms
64 bytes from v144-48-142.ap-east.sugarhosts.net (192.154.240.64): icmp_seq=3 ttl=50 time=70.8 ms
64 bytes from v144-48-142.ap-east.sugarhosts.net (192.154.240.64): icmp_seq=4 ttl=50 time=81.3 ms
64 bytes from v144-48-142.ap-east.sugarhosts.net (192.154.240.64): icmp_seq=5 ttl=50 time=103 ms
......

2.2 使用 host 命令解析域名
2.2.1 使用 host 命令解析域名的格式

# host <domain name>

2.2.2 使用 host 命令解析域名的案例

# host eternalcenter.com
eternalcenter.com has address 192.154.240.64

(补充:这里以解析 etenalcenter.com 域名为例)

2.3 使用 nslookup 命令解析域名
2.3.1 使用 nslookup 命令解析域名的格式

# nslookup <domain name>

2.3.2 使用 nslookup 命令解析域名的案例

# nslookup eternalcenter.com
Server:		8.8.8.8
Address:	8.8.8.8#53

Non-authoritative answer:
Name:	eternalcenter.com
Address: 192.154.240.64

(补充:这里以解析 etenalcenter.com 域名为例)

[实验] Chrony 客户端的设置 (时间同步)

注意:从 CentOS 7.2&RHEL 7.0 开始实现时间同步的程序默认从 NTP 换成了 Chrony 。 NTP 也可以继续使用,但是需要单独安装 NTP 的安装包

步骤目录:

步骤一:系统环境要求
步骤二:确保 Chrony 已经安装
步骤三:确保系统会使用 Chrony 或 NTP 的时间同步
步骤四:修改配置文件
步骤五:重启客户端的 Chrony 服务
步骤六:查看客户端时间同步的状态

具体的操作步骤:

步骤一:系统环境要求

1) 服务器的系统是 CentOS 8 版本
2) 服务器系统配置好可用的软件源

步骤二:确保 Chrony 已经安装


# yum -y install chrony

步骤三:确保系统会使用 Chrony 或 NTP 的时间同步

# timedatectl set-ntp true
# timedatectl
               Local time: Fri 2020-06-12 09:52:30 EDT
           Universal time: Fri 2020-06-12 13:52:30 UTC
                 RTC time: Fri 2020-06-12 13:51:52
                Time zone: America/New_York (EDT, -0400)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

步骤四:修改配置文件

# vim /etc/chrony.conf

将部分内容修改如下:

......
pool 2.centos.pool.ntp.org iburst

(说明:在配置文件的开头添加要进行时间同步的服务器)

步骤五:重启客户端的 Chrony 服务

# systemctl restart chronyd
# systemctl status chronyd

步骤六:查看客户端时间同步的状态

# chronyc sources -v
210 Number of sources = 4

  .-- Source mode  '^' = server, '=' = peer, '#' = local clock.
 / .- Source state '*' = current synced, '+' = combined , '-' = not combined,
| /   '?' = unreachable, 'x' = time may be in error, '~' = time too variable.
||                                                 .- xxxx [ yyyy ] +/- zzzz
||      Reachability register (octal) -.           |  xxxx = adjusted offset,
||      Log2(Polling interval) --.      |          |  yyyy = measured offset,
||                                \     |          |  zzzz = estimated error.
||                                 |    |           \
MS Name/IP address         Stratum Poll Reach LastRx Last sample               
===============================================================================
^* time.rdg.uk.as44574.net       3   8   373   153    +73ms[  +68ms] +/-  233ms

(补充:当出现 ^* 时则代表时间同步成功)

或者:

# chronyc tracking

[实验] VNC 远程桌面服务的搭建

纪念:站主于 2020 年 1 月完成了此开源实验,并将过程中的所有命令经过整理和注释以后,形成以下教程

软件准备:

在 RealVNC 官网上下载使用 VNC 服务所需软件 VNC View:

https://www.realvnc.com/en/

正文:

步骤目录:

步骤一:规划拓扑
1.1 服务器列表
1.2 服务器列表简介

步骤二:系统环境要求

步骤三:服务端安装 VNC 服务
3.1 服务端 VNC 环境准备
3.1.1 在服务端上安装桌面
3.1.2 在服务端上创建用于使用 VNC 的用户
3.1.2.1 创建用户
3.1.2.2 修改用户密码
3.2 服务端安装 VNC 服务

步骤四:配置 VNC 服务
4.1 创建 VNC 服务进程文件
4.2 编辑 VNC 服务进程文件

步骤五:开机自启 VNC 服务
5.1 刷新所有服务进程文件
5.2 开机自启 VNC 服务

步骤六:启动 VNC 服务
6.1 切换到使用 VNC 的用户
6.2 开启 VNC 服务
6.3 补充:修改 VNC 登陆密码的方法

步骤七:查看 VNC 服务是否启动成功

步骤八:客户端使用 VNC 服务
8.1 客户端使用 VNC 服务的前期工作
8.1.1 在客户端上安装桌面
8.1.2 客户端安装 VNC 服务的客户端
8.1.3 客户端启动桌面
8.2 客户端使用 VNC 服务
8.2.1 客户端启动 VNC 服务的客户端
8.2.2 连接服务端的 VNC IP 地址和端口号
8.2.3 输入服务端 VNC 用户的 VNC 密码
8.2.4 VNC 服务成功

具体的操作步骤:

步骤一:规划拓扑
1.1 服务器列表

服务端 192.168.100.10
客户端 192.168.100.11

1.2 服务器列表简介

1) 服务器提供 VNC 服务让其他设备可以远程自己的桌面
2) 客户端通过 VNC 服务远程服务器的桌面

步骤二:系统环境要求

1) 所有服务器的系统都需要是 CentOS 7 版本
2) 所有服务器都要关闭防火墙
3) 所有服务器都要关闭 SELinux
4) 所有服务器系统都要配置好可用的软件源
5) 需要按照拓扑图给对应的服务器配置好 IP 地址和主机名
6) 所有服务器都要可以相互 ping 通自己和对方的 IP 地址和主机名

步骤三:服务端安装 VNC 服务
3.1 服务端 VNC 环境准备
3.1.1 在服务端上安装桌面

(只在服务端上执行以下步骤)

# yum -y groupinstall "Server with GUI"
# yum -y groupinstall "GNOME Desktop"

3.1.2 在服务端上创建用于使用 VNC 的用户
3.1.2.1 创建用户

(只在服务端上执行以下步骤)

# useradd zhumingyu

3.1.2.2 修改用户密码

(只在服务端上执行以下步骤)

# passwd zhumingyu

3.2 服务端安装 VNC 服务

(只在服务端上执行以下步骤)

# yum -y install tigervnc tigervnc-server

步骤四:配置 VNC 服务
4.1 创建 VNC 服务进程文件

(只在服务端上执行以下步骤)

# cp /lib/systemd/system/vncserver\@.service /lib/systemd/system/vncserver\@:1.service

4.2 编辑 VNC 服务进程文件

(只在服务端上执行以下步骤)

# vi /lib/systemd/system/vncserver\@:1.service

将其中的:

......
[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target

[Service]
Type=forking

# Clean any existing files in /tmp/.X11-unix environment
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/usr/sbin/runuser -l <USER> -c "/usr/bin/vncserver %i"
PIDFile=/home/<USER>/.vnc/%H%i.pid
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'

[Install]
WantedBy=multi-user.target

修改为:

......
[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target

[Service]
Type=forking

# Clean any existing files in /tmp/.X11-unix environment
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/usr/sbin/runuser -l zhumingyu -c "/usr/bin/vncserver %i"
PIDFile=/home/zhumingyu/.vnc/%H%i.pid
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'

[Install]
WantedBy=multi-user.target

步骤五:开机自启 VNC 服务
5.1 刷新所有服务进程文件

(只在服务端上执行以下步骤)

# systemctl daemon-reload

5.2 开机自启 VNC 服务

(只在服务端上执行以下步骤)

# systemctl enable vncserver@:1.service
Created symlink from /etc/systemd/system/multi-user.target.wants/vncserver@:1.service to /usr/lib/systemd/system/vncserver@:1.service.

步骤六:启动 VNC 服务
6.1 切换到使用 VNC 的用户

(只在服务端上执行以下步骤)

# su - zhumingyu

6.2 开启 VNC 服务

(只在服务端上执行以下步骤)

$ vncserver :1

You will require a password to access your desktops.

Password:
Verify:
Would you like to enter a view-only password (y/n)? y
Password:
Verify:

New 'vnc:1 (zhumingyu)' desktop is vnc:1

Creating default startup script /home/zhumingyu/.vnc/xstartup
Creating default config /home/zhumingyu/.vnc/config
Starting applications specified in /home/zhumingyu/.vnc/xstartup
Log file is /home/zhumingyu/.vnc/vnc:1.log

6.3 补充:修改 VNC 登陆密码的方法

# su - zhumingyu
$ vncpasswd

步骤七:查看 VNC 服务是否启动成功

(只在服务端上执行以下步骤)

$ ss -ntulap | grep 5901
tcp    LISTEN     0      5         *:5901                  *:*                   users:(("Xvnc",pid=1152,fd=9))
tcp    LISTEN     0      5      [::]:5901               [::]:*                   users:(("Xvnc",pid=1152,fd=10))

步骤八:客户端使用 VNC 服务
8.1 客户端使用 VNC 服务的前期工作
8.1.1 在客户端上安装桌面

(只在客户端上执行以下步骤)

# yum -y groupinstall "Server with GUI"
# yum -y groupinstall "GNOME Desktop"

8.1.2 客户端安装 VNC 服务的客户端

(只在客户端上执行以下步骤)

# yum -y localinstall VNC-Viewer-6.19.1115-Linux-x64.rpm

(补充:这里以安装 VNC-Viewer-6.19.1115-Linux-x64.rpm 为例)

8.1.3 客户端启动桌面

(只在客户端上执行以下步骤)

# startx
(图:1)

8.2 客户端使用 VNC 服务
8.2.1 客户端启动 VNC 服务的客户端

(只在客户端上执行以下步骤)

(图:2)
(图:3)
(图:4)

8.2.2 连接服务端的 VNC IP 地址和端口号

(只在客户端上执行以下步骤)

(图:5)
(图:6)

8.2.3 输入服务端 VNC 用户的 VNC 密码

(只在客户端上执行以下步骤)

(图:7)

8.2.4 VNC 服务成功

(只在客户端上执行以下步骤)

(图:8)