DNS服务与邮件服务器
规划节点
部署服务的节点规划:
IP |
主机名 |
节点 |
192.168.100.11 |
|
Mail服务器、DNS从服务器 |
192.168.100.12 |
dns |
DNS主服务器 |
基础准备
使用VMWare Workstation软件安装CentOS 7.5操作系统,镜像使用提供的CentOS-7-x86_64-DVD-1908。最小化CentOS 7.5虚拟机一台,另需要DNS服务器一台,YUM源使用本地系统源。
基础配置
1.修改mail节点与dns节点主机名:
[root@controller ~]# hostnamectl set-hostname mail
[root@controller ~]# su
[root@mail ~]#
[root@compute ~]# hostnamectl set-hostname dns
[root@compute ~]# su
[root@dns ~]#
2.为了方便测试,关闭防火墙与安全策略:
[root@mail ~]# systemctl stop firewalld
[root@mail ~]# systemctl disable firewalld
[root@mail ~]# setenforce 0
[root@dns ~]# systemctl stop firewalld
[root@dns ~]# systemctl disable firewalld
[root@dns ~]# setenforce 0
3.测试本地yum源:
[root@dns ~]# yum list
[root@mail ~]# yum list
安装与配置DNS服务器
1.使用命令安装DNS服务器:
# yum -y install bind-chroot bind-utils
2.启动DNS服务
# systemctl restart named
[root@mail ~]# systemctl status named
● named.service - Berkeley Internet Name Domain (DNS)Loaded: loaded (/usr/lib/systemd/system/named.service; disabled; vendor preset: disabled)Active: active (running) since 日 2020-02-23 11:31:27 CST; 13s agoProcess: 51903 ExecStart=/usr/sbin/named -u named -c ${NAMEDCONF} $OPTIONS (code=exited, status=0/SUCCESS)Process: 51900 ExecStartPre=/bin/bash -c if [ ! "$DISABLE_ZONE_CHECKING" == "yes" ]; then /usr/sbin/named-checkconf -z "$NAMEDCONF"; else echo "Checking of zone files is disabled"; fi (code=exited, status=0/SUCCESS)Main PID: 51905 (named)CGroup: /system.slice/named.service└─51905 /usr/sbin/named -u named -c /etc/named.conf2月 23 11:31:27 mail named[51905]: network unreachable resolving './DNS...53
2月 23 11:31:27 mail named[51905]: network unreachable resolving './NS/...53
2月 23 11:31:27 mail named[51905]: network unreachable resolving './DNS...53
3.查看端口是否启动
# netstat -lntp | grep named
tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN 51905/named
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 51905/named
tcp6 0 0 ::1:953 :::* LISTEN 51905/named
tcp6 0 0 ::1:53 :::* LISTEN 51905/named
4.修改主服务器DNS的配置文件named.conf(记住修改配置每个分号都不能少)
域名解析服务Bind的程序名称叫做named,服务程序的配置文件如下:
数据配置文件目录 |
/var/named |
主配置文件 |
/etc/named.conf |
区域配置文件 |
/etc/named.rfc1912.zones |
修改named.conf以下配置:(从服务器也是一样!)
listen-on port 53 { any; }; // 监听所有的53号端口,此处可以根据需要设置需要监听的IP
also-notify { any;}; // 允许所有的查询
5.配置正向解析与反向解析
正向解析和反向解析含义:
- 正向解析:根据主机名(域名)查找对应的IP地址。
- 反向解析:根据IP地址查找对应的主机名(域名)。(方向解析的作用实际那个用户提交的IP地址解析为对应的域名信息,他一般用于对某个IP地址上绑定的所有域名进行整体屏蔽,屏蔽由某些域名发送的垃圾邮件,也可以判断某虚拟主机上运行了多少个网站。)
正向区域:
1.创建转发域:
拷贝模板文件named.localhost到testmail.com.zone:
# cp -rf /var/named/named.localhost /var/named/testmail.com.zone
2.编辑testmail.com.zone文件:
# vi testmail.com.zone
$TTL 1D //生存周期为1天
@ IN SOA testmail.com. dns.testmail.com. (0 ; serial( 定义序列号的值,同步辅助名称服务器数据时使用)1D ; refresh( 更新时间间隔值。定义该服务器的辅助名称服务器隔多久时间更新一次)1H ; retry ( 辅助名称服务器更新失败时,重试的间隔时间)1W ; expire ( 辅助名称服务器一直不能更新时,其数据过期的时间)3H ) ; minimum ( 最小默认TTL的值,如果第一行没有$TTL,则使用该值)IN NS dns.testmail.com. // 域名服务器记录IN MX 10 mail //邮箱交换记录
dns IN A 192.168.100.11 //地址记录
mail IN A 192.168.100.11 //地址记录
www IN A 192.168.100.11
smtp IN A 192.168.100.11
3.赋予test.com.zone所有权限:
# chmod 777 testmail.com.zone
4.修改区域配置文件/etc/named.rfc1912.zones:
# vi /etc/named.rfc1912.zones
#正向解析
zone "testmail.com" IN { // 定义zone文件,这里是定义的根域的文件位置 type master; #主dns解析file "testmail.com.zone"; #定义区域解析库文件名字
};
名词解析:
type:master指的是主dns解析、slave指的是从dns解析、hint指的是根域名解析(根提示域)、forward指的是转发,转发不使用file;
file:定义区域解析库文件名字(位置默认在/var/named下面),file的前缀通常和zone的名字通常对应起来,然后加一个.zone的后缀。
5.检查配置,如下所示:
# named-checkzone testmail.com testmail.com.zone //zone文件检测工具
zone testmail.com/IN: loaded serial 0
OK
# named-checkconf /etc/named.conf //named.conf文件检查工具
反向区域:
1.修改区域配置文件/etc/named.rfc1912.zones
#反向解析
zone "100.168.192.in-addr.arpa" IN { //区域名称:是网络地址的反写.in-addr.arpa. type master;file "11.100.168.192.in-addr.local";
};
2.配置11.100.168.192.in-addr.local:(不需要MX、A、AAAA,要有NS记录,以PTR记录为主。)
# cp -p testmail.com.zone 11.100.168.192.in-addr.local
# vi 11.100.168.192.in-addr.local
$TTL 1D
@ IN SOA ns.testmail.com. admin.testmail.com. (0 ; serial1D ; refresh1H ; retry1W ; expire3H ) ; minimumIN NS dns.testmail.com.
30 IN PTR mail.testmail.com.
30 IN PTR www.testmail.com.
#chmod 755 11.100.168.192.in-addr.local
3.检查配置,如下所示:
# named-checkzone mail.testmail.com 11.100.168.192.in-addr.local
zone testmail.com/IN: loaded serial 0
OK
4. 重启生效配置:
# systemctl restart named
5.添加/etc/resolv.conf域名服务器IP:
# vi /etc/resolv.conf
# Generated by NetworkManager
nameserver 192.168.100.12
nameserver 8.8.8.8
6.测试DNS解析是否正常:
# ping www.testmail.com
PING www.testmail.com (192.168.100.11) 56(84) bytes of data.
64 bytes from www.testmail.com (192.168.100.11): icmp_seq=1 ttl=64 time=0.337 ms
64 bytes from www.testmail.com (192.168.100.11): icmp_seq=2 ttl=64 time=0.284 ms
64 bytes from www.testmail.com (192.168.100.11): icmp_seq=3 ttl=64 time=0.474 ms
--- www.testmail.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 0.284/0.365/0.474/0.080 ms
配置主从DNS服务
1.配置从节点服务器:
# yum -y install bind-chroot bind-utils
2.修改配置named.conf(与主服务器一致):
listen-on port 53 { any; }; // 监听所有的53号端口,此处可以根据需要设置需要监听的IP
also-notify { any;}; // 允许所有的查询
3.修改区配置文件:
vi /etc/named.rfc1912.zones
zone "testmail.com" IN {type slave; //master为主服务;slave为从服务;file "slaves/slavertestmail.com.zone"; masters {192.168.100.12;}; //指定主dns服务器的IP
};
zone "100.168.192.in-addr.arpa" IN {type slave;file "slaves/11.100.168.192.in-addr.local";masters {192.168.100.12;};
};
4.修改/etc/reslove.conf
vi /etc/resolv.conf
nameserver 192.168.100.12
nameserver 192.168.100.11
5.重启服务:
# systemctl restart named
6.测试:
主服务器那边关闭named服务:
# systemctl stop named
测试dns解析结果:
[root@compute named]# nslookup dns.testmail.com
Server: 192.168.100.11
Address: 192.168.100.11#53Name: dns.testmail.com
Address: 192.168.100.12
*显示解析到的服务器目前的位置在192.168.100.11
[root@controller ~]# ll /var/named/slaves/
总用量 8
-rw-r--r-- 1 named named 341 2月 18 09:29 11.100.168.192.in-addr.local
-rw-r--r-- 1 named named 317 2月 18 09:29 slavertestmail.com.zone
DNS检测工具
1.nslookup命令是常用域名查询工具,就是查DNS信息用的命令。
一般格式:
nslookup [-option] [name | -] [server]
参数说明:
- option:表示一些选项。这些选项可以通过set命令设置修改。
- name:表示查询的域名。
- server:可以指定DNS主机IP
set命令说明:
- set all:打印当前的选项值。
- set calss=value:设置查询的类型,一般情况下为Internet。
- set debug:设置调试模式。
- set d2:设置详细调试模式。
- set domin=name:设置默认的域名。
- set port=value:设置DNS端口。
- set quertype=value:改变查询的信息的类型。默认的类型为A记录。
- set type=value:和set querytpe一样。
- set recurse:设置查询类型为递归;若为set norecurse,查询类型为跌代;缺省为前者
- set retry=number:设置重试的次数。
- set timeout=number:设置等待应答的限制时间(单位为秒),超出即为超时,如果还可以重试,就会将超时值加倍,重新查询。
- set vc:通过tcp方式查询。
格式:nslookup -nameserver/ip。例如:
[root@controller ~]# nslookup 192.168.100.11
11.100.168.192.in-addr.arpa name = dns.testmail.com.
11.100.168.192.in-addr.arpa name = mail.testmail.com.
2.dig命令主要用来从dns域名服务器查询主机地址信息,是安装bind自带的工具。
一般格式:
dig [@global-server] [domain] [q-type] [q-class] {q-opt} {d-opt}
参数说明:
- @global-server:默认是以/etc/resolv.conf作为DNS查询的主机,这里可以填入其它DNS主机IP。
- domain:要查询的域名。
- q-type:查询记录的类型,例如a、any、mx、ns、soa、hinfo、axfr、txt等,默认查询a。
- q-class:查询的类别,相当于nslookup中的set class。默认值为in(Internet)。
- q-opt:查询选项,可以有好几种方式,比如:-f file为通过批处理文件解析多个地址;-p port指定另一个端口(缺省的DNS端口为53),等等。
- d-opt:dig特有的选项。使用时要在参数前加上一个“+”号。
- d-opt常用选项:
(1)+vc:使用TCP协议查询。
(2)+time=###:设置超时时间。
(3)+trace:从根域开始跟踪查询结果。
dig nameserver/IP 例如:
[root@controller ~]# dig dns.testmail.com
dig 命令默认的输出信息比较丰富,大概可以分为5个部分。
① 显示dig命令的版本和输入的参数。
② 显示服务返回的一些技术详情,比较重要的是status。如果status的值为NOERROR则说明本次查询成功结束。
③ 中的QUESTION SECTION显示我们要查询的域名。
④ 中的ANSWER SECTION是查询到的结果。
⑤ 则是本次查询的一些统计信息,比如用了多长时间,查询了哪个DNS服务器,在什么时间进行的查询等等。
熟悉常见DNS记录的类型如下图所示:
3.host查询
hosts文件包含了IP地址和主机名之间的映射,还包括主机名的别名。在没有域名服务器的情况下,系统上的所有网络程序都通过查询该文件来解析对应于某个主机名的IP地址。通常可以将常用的域名和IP地址映射加入到hosts文件中,实现快速访问。
语法:host [ 选项] name [server]
选项列表解释:
- -a:查询所有的信息
-c:设置查询类型
-C:查询完整的SOA记录
-d | -v:显示详细过程
-l:列表模式
-t:选择查询类型。如CNAME、NS、SOA、SIG、KEY、AXFR
-w:永久等待
-W:设置等待超时
例如:
[root@controller ~]# host 192.168.100.11
11.100.168.192.in-addr.arpa domain name pointer mail.testmail.com.
11.100.168.192.in-addr.arpa domain name pointer dns.testmail.com.
部署安装Postfix并配置
1.CentOS 7版本默认安装Postfix,检测是否安装Postfix:
# rpm -q postfix
如果没有安装,输入如下命令:
# yum -y install postfix
2.检查Postfix是否支持cyrus dovecot功能:
# postconf -a
cyrus
Dovecot
3.编辑Postfix的配置文件,查找并修改对应配置项:
# cat /etc/postfix/main.cf
myhostname = mail.testmail.com //本机主机名
mydomain = testmail.com //服务器域名
myorigin = $mydomain //初始域名
mail_owner = postfix
inet_interfaces = all //监听接口
inet_protocols = all //监听网络版本
mydestination = $myhostname, localhost.$mydomain, localhost //目标域
unknown_local_recipient_reject_code = 550
mynetworks = 192.168.200.0/24, 127.0.0.0/8 //修改可接收邮件的主机名和域名,可被中继的主机192.168.200.0为我自己定义的网段
home_mailbox = Maildir/ //邮件目录,在用户家目录下
mynetworks_style = host //指定信任网段类型
relay_domains = $mydestination //指定允许中转邮件的域名
4.检查配置文件是否有语法错误
# postfix check //没有输出错误,证明配置文件没有问题
其他Postfix运维命令:
- newaliases:重建别名数据库
- postalias /etc/postfix/aliases:创建或查询别名数据库
- postcat:显示队列文件内容
- postconf:修改main.cf配置文档
- postqueue:査看postfix队列
- postsuper:管理员管理postfix队列
- postmap:创建查询表的DB数据库或查询查询表内容
5.重启服务:
# systemctl restart postfix
6.检测服务进程以及端口是否正常:
# netstat -lntp | grep 25
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 10405/master
tcp6 0 0 ::1:25 :::* LISTEN 10405/master
# ps -ef | grep postfix | grep -v grep
root 10405 1 0 11:13 ? 00:00:00 /usr/libexec/postfix/master -w
postfix 10406 10405 0 11:13 ? 00:00:00 pickup -l -t unix -u
postfix 10407 10405 0 11:13 ? 00:00:00 qmgr -l -t unix -u
邮件简单外发测试
1.邮件服务器简单发信测试
Postfix可以调用本地系统的账户和密码,因此在本地系统创建常规账户即可。
useradd wyc
echo "111111" | passwd --stdin wyc
安装Telnet服务:
# yum -y install telnet
测试发信:
# telnet mail.testmail.com 25 //远程登录25端口,如报错连接不上,重启Postfix
Trying 192.168.100.11...
Connected to mail.testmail.com.
Escape character is '^]'.
220 mail.testmail.com ESMTP Postfix
mail from:zxa@testmail.com //发件人
250 2.1.0 Ok
rcpt to:9728xxxx@qq.com //外发给QQ收件人
250 2.1.5 Ok
data
354 End data with <CR><LF>.<CR><LF>
zzzzz
.
250 2.0.0 Ok: queued as 7AF443994AFA
quit
221 2.0.0 Bye
Connection closed by foreign host.
2.查询发信结果:
# grep 7AF443994AFA /var/log/maillog
Feb 18 13:43:40 controller postfix/smtpd[4165]: 7AF443994AFA: client=mail.testmail.com[192.168.100.11]
Feb 18 13:43:45 controller postfix/cleanup[4168]: 7AF443994AFA: message-id=<20200218054340.7AF443994AFA@mail.testmail.com>
Feb 18 13:43:45 controller postfix/qmgr[3874]: 7AF443994AFA: from=<zxa@testmail.com>, size=333, nrcpt=1 (queue active)
Feb 18 13:43:47 controller postfix/smtp[4169]: 7AF443994AFA: to=<9728xxxx@qq.com>, relay=mx3.qq.com[183.232.93.177]:25, delay=9.8, delays=7.9/0/0.17/1.7, dsn=2.0.0, status=sent (250 Ok: queued as )
Feb 18 13:43:47 controller postfix/qmgr[3874]: 7AF443994AFA: removed
3.邮件传输的过程
① 客户机调用用户代理来编辑要发送的邮件。用户代理用SMTP将邮件传送给发送端邮件服务器
② 发送端邮件服务器将邮件放入邮件缓存队列中,等待发送。
③ SMTP按照C/S方式工作。运行在发送端邮件服务器的SMTP客户进程,发现在邮件缓存中有待发送的邮件,就向运行在接收端邮件服务器的SMTP服务器进程发起TCP连接的建立
④ 当TCP连接建立后,SMTP客户进程开始向远程的SMTP服务器发送邮件。如果有多个邮件在邮件缓存中,则SMTP客户一一将它们发送到远程的SMTP服务器。当所有的待发送邮件发完了,SMTP就关闭所建立的TCP连接
⑤ 运行在接收端邮件服务器中的SMTP服务器进程收到邮件后,将邮件放入收信人的用户邮箱中,等待收信人在他方便时进行读取
⑥ 收信人调用用户代理,使用POP3(或IMAP)协议将自己的邮件从接收端邮件服务器的用户邮箱中取回。
DNS服务与邮件服务器相关推荐
- DNS 服务与邮件服务器应用--配置DNS正向解析与反向解析
配置DNS正向解析与反向解析: 什么叫正向解析和反向解析: 正向解析:根据主机名(域名)查找对应的 IP 地址. 反向解析:根据 IP 地址查找对应的主机名(域名).( 反向解析的作用是将用户提交的 ...
- Linux网络服务_邮件服务器-Redhat Enterprise 5.9
Linux网络服务_邮件服务器-Redhat Enterprise 5.9 案例环境: 邮件服务器:mail.tarena.com192.168.1.100 邮件域:@tarena.com 邮件账号: ...
- DNS服务(主从服务器)
目录 1.DNS域名的分层结构: 2.DNS解析过程: 3.DNS服务的协议及端口号: 4.构建域名为aa.com,主机名www的域名,构建主备DNS服务器,客户机通过主备DNS服务器可以正常解析域名 ...
- 2.架设邮件服务器-windows 2003 POP3服务,SMTP服务收发邮件
1.默认安装的系统是没有安装POP3组件,SMTP组件,搞个盘过来,或从网上下载一个i386(下载地址:http://down.spdns.com/i386.rar ). (1)从"控制面板 ...
- 第21章,DNS服务
更多内容请点击: Linux学习从入门到打死也不放弃,完全笔记整理(持续更新,求收藏,求点赞~~~~) https://blog.51cto.com/13683480/2095439 第21章,DNS ...
- 邮件服务器的基础知识概述
邮件服务器中的协议: SMTP:SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式.SMT ...
- linux邮件实验,linux邮件服务器实验报告
<linux邮件服务器实验报告>由会员分享,可在线阅读,更多相关<linux邮件服务器实验报告(11页珍藏版)>请在人人文库网上搜索. 1.实 验 报 告专业: 计算机科学与技 ...
- 关于邮件服务器应用系统安全SSL ×××(强身份认证)方案
随着信息化建设的深入,越来越多的业务都是通过电子商务的手段来实现,电子邮件营销的兴起,使这些信息化的系统为商业用户提供了众多的方便,也进一步提高了商业用户的办公效率. 但是网上肆虐的病毒.***.蠕虫 ...
- TurboMail邮件服务器腾云驾务云化邮件办公
2019独角兽企业重金招聘Python工程师标准>>> 诚然从整个大的市场环境来讲,基于云的应用越来越多,像google眼镜这样的东西,它的背后如果没有云计算去支撑它的话,恐怕人类科 ...
最新文章
- Linux 用户进程内存空间详解
- 6、MySQL慢查询日志(Slow Query Log)
- 解决Windows10搜索框空白的问题
- project 模板_不会绘制横道图?18个施工进度计划横道图模板,可一键自动生成,方便快捷易操作,直观形象,相当好用...
- leetcode132. 分割回文串 II
- Numpy数据二进制化
- epub电子书--目录结构介绍
- 高频谐振小信号放大器仿真分析
- 图片如何无损放大?图片放大不失真的神器
- 将心比心,我要有点骨气
- dw中css制作导航,四点告诉你Dreamweaver中制作漂亮导航条的方法
- Android Studio入门级教程(详细)【小白必看】
- WiFi技术概述:WiFi那些事
- 大湾区国际创客峰会暨MFSZ2021重磅回归!
- c语言随机数字密码生成器,在线随机数生成器,批量随机数生成工具 - dute.org
- 又是暴力裁员?腾讯 7 年老员工一朝被裁,官方回应了...
- JSP-简单的练习省略显示长字符串
- OWASP Top 10 安全漏洞详解
- golang Use of package XXX without selector
- 【Microsoft Azure 的1024种玩法】四十二. 通过Windows Admin Center快速创建Azure Virtual Machines
热门文章
- 深思 | 2018,全民微投票平台--全面升级又干掉了哪些趋势?
- EFM32例程——ACMP
- 美团工作两年程序员总结:为什么美团那么抠、福利那么差
- [iOS微博项目 - 2.1] - 获得新浪授权接口
- gulp-uglify插件最新pump使用教程
- 读到无知人士与考据癖之间——Leo鉴书(21)
- 【源码】Spring AOP 4 Pointcut
- BING: Binarized Normed Gradients for Objectness Estimation at 300fps
- 个人请假条格式(六篇)
- 一对一直播app源码实现短信验证码发送功能的详细步骤