《Linux就该这么学》学习笔记——Day17

本文详细介绍DHCP协议及在Linux系统中配置dhcpd服务的方法,同时覆盖SMTP、POP3、IMAP4邮件协议,以及使用Postfix和Dovecot在Linux中部署邮件系统的过程。

简介

本次课程讲解了DHCP协议(Dynamic Host Configuration Protocol,动态主机配置协议)及在Linux系统中配置部署dhcpd服务程序的方法;同时介绍SMTP、POP3、IMAP4等常见的电子邮件协议及MUA、MTA、MDA这三种服务角色的作用,实验演示在Linux系统中使用Postfix和Dovecot服务程序配置电子邮件系统服务的方法,并结合BIND服务程序提供的DNS域名解析服务来验证客户端主机与服务器之间的邮件收发功能。

详情可参考:
使用DHCP动态管理主机地址
使用Postfix与Dovecot部署邮件系统

命令行详解可参考:
https://www.linuxcool.com

动态主机地址管理协议

动态主机配置协议(DHCP)是一种基于UDP协议且仅限于在局域网内部使用的网络协议.
应用场景:大型的局域网环境或者存在较多移动办公设备的局域网环境中
主要用途:批量生成网卡信息,如IP地址,网管,子网掩码

DHCP涉及的常见术语:
作用域:一个完整的IP地址段,DHCP协议根据作用域来管理网络的分布、分配IP地址及其他配置参数。
超级作用域:用于管理处于同一个物理网络中的多个逻辑子网段。超级作用域中包含了可以统一管理的作用域列表。
排除范围:把作用域中的某些IP地址排除,确保这些IP地址不会分配给DHCP客户端。
地址池:在定义了DHCP的作用域并应用了排除范围后,剩余的用来动态分配给DHCP客户端的IP地址范围。
租约:DHCP客户端能够使用动态分配的IP地址的时间。
预约:保证网络中的特定设备总是获取到相同的IP地址。

部署dhcpd服务程序

dhcpd是Linux系统中用于提供DHCP协议的服务程序。

dhcpd服务程序的配置步骤:
Yum软件仓库安装dhcpd服务程序

yum install dhcp

标准的dhcpd服务程序的配置文件(/etc/dhcp/dhcpd.conf)应该包括全局配置参数、子网网段声明、地址配置选项以及地址配置参数。
全局配置参数用于定义dhcpd服务程序的整体运行参数;子网网段声明用于配置整个子网段的地址属性。

dhcpd服务程序配置文件中使用的常见参数以及作用:
参数 作用
ddns-update-style 类型 定义DNS服务动态更新的类型,类型包括:
none(不支持动态更新)、interim(互动更新模式)与ad-hoc(特殊更新模式)
allow/ignore client-updates 允许/忽略客户端更新DNS记录
default-lease-time 21600 默认超时时间
max-lease-time 43200 最大超时时间
option domain-name-servers 8.8.8.8 定义DNS服务器地址
option domain-name “domain.org” 定义DNS域名
range 定义用于分配的IP地址池
option subnet-mask 定义客户端的子网掩码
option routers 定义客户端的网关地址
broadcast-address 广播地址 定义客户端的广播地址
ntp-server IP地址 定义客户端的网络时间服务器(NTP)
nis-servers IP地址 定义客户端的NIS域服务器的地址
hardware 硬件类型 MAC地址 指定网卡接口的类型与MAC地址
server-name 主机名 向DHCP客户端通知DHCP服务器的主机名
fixed-address IP地址 将某个固定的IP地址分配给指定主机
time-offset 偏移差 指定客户端与格林尼治时间的偏移差

自动管理IP地址

DHCP协议的设计初衷是为了更高效地集中管理局域网内的IP地址资源。DHCP服务器会自动把IP地址、子网掩码、网关、DNS地址等网络信息分配给有需要的客户端,而且当客户端的租约时间到期后还可以自动回收所分配的IP地址,以便交给新加入的客户端。

机房所用的网络地址以及参数信息:
参数名称 值
默认租约时间 21600秒
最大租约时间 43200秒
IP地址范围 192.168.10.50~192.168.10.150
子网掩码 255.255.255.0
网关地址 192.168.10.1
DNS服务器地址 192.168.10.1
搜索域 linuxprobe.com

DHCP服务器以及客户端的配置信息:
主机类型 操作系统 IP地址
DHCP服务器 RHEL 7 192.168.10.1
DHCP客户机 RHEL 7 DHCP自动获取地址

作用域=排除范围+地址池

注意:
1.由于VMware Workstation虚拟机软件自带DHCP服务,为了避免与自己配置的dhcpd服务程序产生冲突,将虚拟机软件自带的DHCP功能关闭。
2.DHCP客户端与服务器需要处于同一种网络模式—仅主机模式(Hostonly),否则就会产生物理隔离,从而无法获取IP地址。
3.在配置dhcpd服务程序时,配置文件中的每行参数后面都需要以分号(;)结尾,这是规定。
vim /etc/dhcp/dhcpd.conf
ddns-update-style none;	
ignore client-updates;	
subnet 192.168.10.0 netmask 255.255.255.0 {
range 192.168.10.50 192.168.10.150;
option subnet-mask 255.255.255.0;
option routers 192.168.10.1;
option domain-name "linuxprobe.com";
option domain-name-servers 192.168.10.1;
default-lease-time 21600;
max-lease-time 43200;
}

dhcpd服务程序配置文件中使用的参数以及作用
参数 作用
ddns-update-style none; 设置DNS服务不自动进行动态更新
ignore client-updates; 忽略客户端更新DNS记录
subnet 192.168.10.0 netmask 255.255.255.0 { 作用域为192.168.10.0/24网段
range 192.168.10.50 192.168.10.150; IP地址池为192.168.10.50-150(约100个IP地址)
option subnet-mask 255.255.255.0; 定义客户端默认的子网掩码
option routers 192.168.10.1; 定义客户端的网关地址
option domain-name “linuxprobe.com”; 定义默认的搜索域
option domain-name-servers 192.168.10.1; 定义客户端的DNS地址
default-lease-time 21600; 定义默认租约时间(单位:秒)
max-lease-time 43200; 定义最大预约时间(单位:秒)
} 结束符

启动服务并加入开机启动项:

systemctl start dhcpd
systemctl enable dhcpd

分配固定IP地址

“预约”,确保局域网中特定的设备总是获取到固定的IP地址。即dhcpd服务程序会把某个IP地址私藏下来,只将其用于相匹配的特定设备。
"预约"绑定需要用到这台主机的MAC地址。MAC地址是网卡上面的一串独立的标识符,具备唯一性,可使用ifconfig获取

在dhcpd服务程序的配置文件中,按照如下格式将IP地址与MAC地址进行绑定。
host 主机名称 {
hardware ethernet 该主机的MAC地址;
fixed-address 欲指定的IP地址;
}

如果不方便查看主机的MAC地址,首先启动dhcpd服务程序,为主机分配一个IP地址,这样就会在DHCP服务器本地的日志文件中保存这次的IP地址分配记录。然后查看日志文件,就可以获悉主机的MAC地址了。

tail -f /var/log/messages 

Windows系统中,MAC地址格式类似于00-0c-29-27-c6-12,间隔符为减号(-)
在Linux系统中,MAC地址的间隔符则变成了冒号(:)

vim /etc/dhcp/dhcpd.conf 
ddns-update-style none;
ignore client-updates;
subnet 192.168.10.0 netmask 255.255.255.0 {
range 192.168.10.50 192.168.10.150;
option subnet-mask 255.255.255.0;
option routers 192.168.10.1;
option domain-name "linuxprobe.com";
option domain-name-servers 192.168.10.1;
default-lease-time 21600;
max-lease-time 43200;
host linuxprobe {
hardware ethernet 00:0c:29:27:c6:12;
fixed-address 192.168.10.88;
}
}

重启dhcpd服务程序

systemctl restart dhcpd

电子邮件系统

既然要在互联网中给他人发送电子邮件,那么对方用户用于接收电子邮件的名称必须是唯一的,采用“姓名@计算机主机名称”的格式来规范电子信箱的名称。

常见的邮件协议:
简单邮件传输协议(Simple Mail Transfer Protocol,SMTP):用于发送和中转发出的电子邮件,占用服务器的25/TCP端口。
邮局协议版本3(Post Office Protocol 3):用于将电子邮件存储到本地主机,占用服务器的110/TCP端口。
Internet消息访问协议版本4(Internet Message Access Protocol 4):用于在本地主机上访问邮件,占用服务器的143/TCP端口。

邮件用户代理(Mail User Agent,MUA):为用户收发邮件的服务器(客户端的软件如outlook,Foxmail等)
邮件传输代理(Mail Transfer Agent,MTA):转发处理不同电子邮件服务供应商之间的邮件
邮件投递代理(Mail Delivery Agent,MDA):把来自于邮件传输代理的邮件保存到本地的收件箱

从新浪信箱向谷歌信箱发送一封电子邮件传输过程:
在这里插入图片描述

部署企业级的电子邮件系统注意事项:
添加反垃圾与反病毒模块:它能够很有效地阻止垃圾邮件或病毒邮件对企业信箱的干扰。
对邮件加密:可有效保护邮件内容不被黑客盗取和篡改。
添加邮件监控审核模块:可有效地监控企业全体员工的邮件中是否有敏感词、是否有透露企业资料等违规行为。
保障稳定性:电子邮件系统的稳定性至关重要,运维人员应做到保证电子邮件系统的稳定运行,并及时做好防范分布式拒绝服务(Distributed Denial of Service,DDoS)攻击的准备。

部署基础的电子邮件系统

发件服务功能:使用基于SMTP协议的Postfix服务程序
收件服务功能:使用基于POP3协议的Dovecot服务程序
在这里插入图片描述
在RHEL 5、RHEL 6以及诸多早期的Linux系统中,默认使用的发件服务是由Sendmail服务程序提供的,而在RHEL 7系统中已经替换为Postfix服务程序。相较于Sendmail服务程序,Postfix服务程序减少了很多不必要的配置步骤,而且在稳定性、并发性方面也有很大改进。

信箱地址类似于“root@linuxprobe.com”按照“用户名@主机地址(域名)”格式
可能会将它当作SSH协议的连接信息。
因此,要想更好地检验电子邮件系统的配置效果,需要先部署bind服务程序,为电子邮件服务器和客户端提供DNS域名解析服务。

第1步:配置服务器主机:

#保证服务器主机名称与发信域名保持一致
vim /etc/hostname
mail.linuxprobe.com

第2步:清空iptables防火墙默认策略,并保存策略状态,避免因防火墙中默认存在的策略阻止了客户端DNS解析域名及收发邮件:

iptables -F
service iptables save

第3步:为电子邮件系统提供域名解析。
参考上次课程bind-chroot服务程序的配置方法。

配置Postfix服务程序

第1步:安装Postfix服务程序。(RHEL7已默认安装)

yum install postfix
systemctl disable iptables

第2步:配置Postfix服务程序。
Postfix服务程序主配置文件(/etc/postfix/main.cf)重要参数:
参数 作用
myhostname 邮局系统的主机名
mydomain 邮局系统的域名
myorigin 从本机发出邮件的域名名称
inet_interfaces 监听的网卡接口
mydestination 可接收邮件的主机名或域名
mynetworks 设置可转发哪些主机的邮件
relay_domains 设置可转发哪些网域的邮件

vim /etc/postfix/main.cf#修改部分
myhostname = mail.linuxprobe.com
mydomain = linuxprobe.com
myorigin = $mydomain #调用变量避免重复写入信息以及便于日后统一修改
inet_interfaces = all
mydestination = $myhostname , $mydomain

第3步:创建电子邮件系统的登录账户。Postfix与vsftpd服务程序一样,都可以调用本地系统的账户和密码,因此在本地系统创建常规账户即可。最后重启配置妥当的postfix服务程序,并将其添加到开机启动项中。

useradd boss
echo "linuxprobe" | passwd --stdin boss
systemctl restart postfix
systemctl enable postfix

配置Dovecot服务程序

Dovecot是一款能够为Linux系统提供IMAP和POP3电子邮件服务的开源收件服务程序,安全性极高,配置简单,执行速度快,而且占用服务器硬件资源较少。

第1步:安装Dovecot服务程序软件包。大家可自行配置Yum软件仓库、挂载光盘镜像到指定目录,然后输入要安装的dovecot软件包名称即可:

yum install dovecot

第2步:配置部署Dovecot服务程序。在Dovecot服务程序的主配置文件中进行如下修改。首先是第24行,把Dovecot服务程序支持的电子邮件协议修改为imap、pop3和lmtp。然后在这一行下面添加一行参数,允许用户使用明文进行密码验证。之所以这样操作,是因为Dovecot服务程序为了保证电子邮件系统的安全而默认强制用户使用加密方式进行登录,而由于当前还没有加密系统,因此需要添加该参数来允许用户的明文登录。

vim /etc/dovecot/dovecot.conf
protocols = imap pop3 lmtp	#支持的电子邮件协议
disable_plaintext_auth = no #允许用户的明文登录
 login_trusted_networks = 192.168.10.0/24# 设置允许登录的网段地址

在主配置文件中的第48行,设置允许登录的网段地址,也就是说我们可以在这里限制只有来自于某个网段的用户才能使用电子邮件系统。如果想允许所有人都能使用,则不用修改本参数:

第3步:配置邮件格式与存储路径。

vim /etc/dovecot/conf.d/10-mail.conf
mail_location = mbox:~/mail:INBOX=/var/mail/%u

切换到配置Postfix服务程序时创建的boss账户,并在家目录中建立用于保存邮件的目录。记得要重启Dovecot服务并将其添加到开机启动项中。

su - boss
mkdir -p mail/.imap/INBOX
exit
systemctl restart dovecot 
systemctl enable dovecot 

客户使用电子邮件系统

服务器与客户端的操作系统与IP地址:
主机名称 操作系统 IP地址
电子邮件系统及DNS服务器 RHEL 7 192.168.10.10
客户端主机 Windows 7 192.168.10.30

windows上使用outlook设置发送电子邮件,详情参见使用Postfix与Dovecot部署邮件系统章节内容.

当使用Outlook软件成功发送邮件后,在电子邮件服务器上使用mail命令查看到新邮件提醒了。如果想查看邮件的完整内容,只需输入收件人姓名前面的编号即可。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值