目录

DNS 域名系统

定义

域名系统是域名和IP地址相互映射的一个分布式数据库,能够是用户更方便的访问互联网。不用去记住能够被机器直接读取的IP。

域名分类

域是分层管理的

# 根域: [.]
# 顶级域:
按性质: [.org\.net\.com\.edu\.gov]
按国家: [.cn\.tw\.hk]
# 普通域
比如: [.baidu]

解析流程

本地DNS缓存 -> 本地hosts文件 -> 指定的DNS服务器

如果指定的DNS服务器没有找到对应的域名,会返回到客户端,客户端会向上一级DNS服务器继续发送请求。直至查询到或者顶级服务器也没查询到。

DNS分类

1. 主DNS服务器:存储原始资料
2. 从DNS服务器:自动更新注DNS服务器的数据
3. 缓存服务器:转发来自客户端的请求,但是会缓存查询回来的结果
4. 转发器:不向根域发送请求,而是直接发给其他的服务器,并不缓存结果

资源记录

格式

域名 生存期 类别 类型 值

1. 域名:指定这条记录适用于哪个域
2. 生存期:指定该条记录的稳定程度单位秒
3. 类别:互联网信息都是 IN
4. 类型:每个资源记录类型
5. 值:对应的值

资源记录类型

1. SOA Star of authority 起始授权 必须是第一行 只能有一个
2. A IPV4 address
3. AAAA IPV6 address
4. MX Mail exchange
5. NS Name Server
6. CNAME Canonical name 可以将域名转换,别名
7. PTR 方向解析
...还有很多

bind搭建一台DNS服务器

我们在RHEL1上搭建DNS服务器

安装bind

yum install bind bind-utils

创建自己的zone文件

# 可以使用如下命令查看 包 bind 影响的文件夹以及文件夹
[root@rhel1 Desktop]# rpm -ql bind
# 在 /var/named 文件下创建 node.com.zone
[root@rhel1 named]# cat node.com.zone
$TTL 1D # $TTL指令表示一个资源记录在其他DNS服务器
# $ORIGIN指令表示该zone文件用来描述的域(domain)名称
@ IN SOA @ admin.qq.com. (
20191128;serial版本号
1D;refresh 刷新时间,每隔多久去查看版本号
1H;retry 重新刷新时间
1W;expire 过期时间
3H;否定答案缓存时间) # 配置SOA。它定义了一个域的全局特性,必须是出现在zone文件中的第一个资源记录,而且一个zone文件中必须只有一个SOA资源记录。
@ IN NS server # 配置NS
server IN A 192.168.143.10 #配置server地址
control1 A 192.168.143.10 #配置控制接口的域名
control2 A 192.168.143.11 #配置控制接口的域名
control3 A 192.168.143.12 #配置控制接口的域名
net121 A 192.168.140.10 #配置12服务器连接接口的域名
net122 A 192.168.140.11 #配置12服务器连接接口的域名
net231 A 192.168.245.10 #配置23服务器连接接口的域名
net232 A 192.168.245.11 #配置23服务器连接接口的域名

在主配置文件中,增加自己的zone

# 编辑配置文件 /etc/named.rfc1912.zones 添加如下内容
[root@rhel1 named]# tail -4 /etc/named.rfc1912.zones
zone "node.com." IN {
type master;
file "node.com.zone"
};
### 这个位置正常些文件名字就可以,如果named启动不了改成绝对路径/etc/named/node.com.zone
# 也可以在 /etc/named.conf 文件中增加

检测是否配置成功

#  检测是否配置成功
[root@rhel1 named]# named-checkzone node.com. node.com.zone
zone node.com/IN: loaded serial 20191128
OK
# 启动named
[root@rhel1 named]# systemctl start named
[root@rhel1 named]# systemctl enable named

测试配置的结果

# dig命令检测 dns 解析,
### 没有dig命令 请安装 `bind-utils`
[root@rhel1 named]# dig -t A control1.node.com
; <<>> DiG 9.9.4-RedHat-9.9.4-14.el7 <<>> -t A control1.node.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 61583
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2 ;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;control1.node.com. IN A ;; ANSWER SECTION:
control1.node.com. 86400 IN A 192.168.143.10 ;; AUTHORITY SECTION:
node.com. 86400 IN NS server.node.com. ;; ADDITIONAL SECTION:
server.node.com. 86400 IN A 192.168.143.10 ;; Query time: 1 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Thu Nov 28 13:31:41 CST 2019
;; MSG SIZE rcvd: 99
# 直接ping也可以
[root@rhel1 named]# ping control1.node.com
PING control1.node.com (192.168.143.10) 56(84) bytes of data.
64 bytes from 192.168.143.10: icmp_seq=1 ttl=64 time=0.027 ms
# nslookup 测试
[root@rhel1 named]# nslookup
> control1.node.com
Server: 127.0.0.1
Address: 127.0.0.1#53 Name: control1.node.com
Address: 192.168.143.10

防火墙放行

firewall-cmd --add-service=dns --permanent
firewall-cmd --add-service=dns

RHEL2上配置并测试

# 增加DNS配置
[root@rhel2 html]# tail -1 /etc/resolv.conf
nameserver 192.168.143.10
# 重启网络
[root@rhel2 html]# systemctl restart network
# 确认配置还在
[root@rhel2 html]# tail -1 /etc/resolv.conf
nameserver 192.168.143.10
### 有时候重启后配置就不在了。是因为/etc/sysconfig/network-script下的链接配置里已经配置了DNS,可以在链接配置了增加
[root@rhel2 html]# ping control1.node.com
PING control1.node.com (192.168.143.10) 56(84) bytes of data.

用 unbound搭建一个缓存服务器

安装

[root@rhel2 html]# yum install -y unbound
[root@rhel2 html]# systemctl start unbound
[root@rhel2 html]# systemctl enable unbound

更改配置

[root@rhel2 html]# vim /etc/unbound/unbound.conf
# 下面的配置在文件中都能找到,只是需要打开注释
server:
# whitespace is not necessary, but looks cleaner.
interface: 0.0.0.0
acces-control: 0.0.0.0/0 allow
domain-insecure: "node.com"
# verbosity number, 0 is least verbose. 1 is default.
verbosity: 1
forward-zone:
name: "."
forward-host: 192.168.143.10
# 检测配置
[root@rhel2 html]# unbound-checkconf
unbound-checkconf: warning: . forward-host: "192.168.143.10" is an IP4 address, and when looked up as a host name during use may not resolve.
unbound-checkconf: no errors in /etc/unbound/unbound.conf
# 重启
[root@rhel2 html]# systemctl restart unbound

防火墙放行

[root@rhel2 html]# firewall-cmd --add-service=dns --permanent
[root@rhel2 html]# firewall-cmd --add-service=dns

RHEL3上将DNS服务器配置成缓存服务器

[root@rhel3 ~]# tail -1 /etc/resolv.conf
nameserver 192.168.143.11
[root@rhel3 ~]# systemctl restart network [root@rhel3 ~]# ping control1.node.com
PING control1.node.com (192.168.143.10) 56(84) bytes of data.

注: Unboundbind都能够搭建主DNS服务器

邮件服务器

电子邮件架构

Linux服务器也会发送电子邮件,一般是出于自动用途,或者向管理员报告错误。

# 查看当前邮箱列表,可以看到有一封信
[root@rhel1 Desktop]# mail
Heirloom Mail version 12.5 7/5/10. Type ? for help.
"/var/mail/root": 3 messages 1 new 2 unread
1 user@localhost.local Fri Aug 16 19:06 830/62447 "[abrt] full crash report"
# 我们自己给自己发一封
[root@rhel1 Desktop]# mail root
Subject: test
This is test mail!!!
EOT # 按CTRL+D发送
# 查看
[root@rhel1 mail]# mail
Heirloom Mail version 12.5 7/5/10. Type ? for help.
"/var/mail/root": 2 messages 1 new
1 user@localhost.local Fri Aug 16 19:06 848/63026 "[abrt] full crash report"
>N 2 root Thu Nov 28 18:10 18/570 "test"
& 2
Message 2:
From root@rhel1.node.com Thu Nov 28 18:10:16 2019
Return-Path: <root@rhel1.node.com>
X-Original-To: root
Delivered-To: root@rhel1.node.com
Date: Thu, 28 Nov 2019 18:10:05 +0800
To: root@rhel1.node.com
Subject: test
User-Agent: Heirloom mailx 12.5 7/5/10
Content-Type: text/plain; charset=us-ascii
From: root@rhel1.node.com (root)
Status: R This is test mail!!!

邮件协议

简单邮件传输协议(SMTP)

用来发送或中转发出的电子邮件,占用25/tcp端口

第三版邮局协议(POP3)

用于将服务器上把邮件存储到本地主机,占用110/tcp端口

第四版互联网信息访问协议(IMAP4)·

用于在本地追加上访问邮件,占用143/tcp端口

电子邮件系统

单独使用Postfix服务程序不能完成收发邮件的操作。我们需要下面的软件:

  1. Postfix提供的邮件发送服务SMTP
  2. Dovercot提供的邮件收取服务,即POP3
  3. OutlookExpress客户端收发邮件工具

搭建邮件系统

创建空的Postfix服务器

RHEL1上创建空Postfix,在Redhat系统中已经默认安装了这个服务程序。

  • 查看配置文件
# 我们只需要配置下面的配置项即可
myhostname 邮局系统的主机名
mydomain 邮局系统的域名
myorigin 从本机寄出邮件的域名名称
inet_interfaces 监听的网卡接口
mydestination 可接受邮件的主机名或域名
mynetworkds 设置可转发哪些主机的邮件
relay_domains 设置可转发那些域名得邮件
  • 配置etc/postfix/main.cf为空的postfix
# 不建议直接编辑,使用`postconf`配置
### 配置本机邮件寄出的域名,会将从本机发出去的发件人域重写成配置项
[root@rhel1 ~]# postconf -e "myorigin=node.com"
### 设置成仅侦听用于发送电子邮件的回环接口
[root@rhel1 ~]# postconf -e "inet_interfaces=loopback-only"
### 设置指向的邮件服务器
### 此处的control2是上面 dns配置的服务器2的域名
[root@rhel1 ~]# postconf -e "relayhost=[control2.node.com]"
### 关闭本地电子邮件发送
[root@rhel1 ~]# postconf -e "local_transport=error:local delivery disabled"
### 本地发送不会接受收件人为本地电子邮件账户的邮件
[root@rhel1 ~]# postconf -e "mydestination="
### 源自127.0.0.0/8和[::1]/128网络的邮件能够由本地空客户端发送到主机
[root@rhel1 ~]# postconf -e "mynetworks=127.0.0.0/8 [::1]/128"
[root@rhel1 ~]# systemctl restart postfix

配置接收端

RHEL2上配置

[root@rhel2 ~]# postconf -e "inet_interfaces = all"
[root@rhel2 ~]# postconf -e "mydestination = node.com"
[root@rhel2 ~]# systemctl restart postfix.service
[root@rhel2 ~]# firewall-cmd --add-service=smtp --permanent
success
[root@rhel2 ~]# firewall-cmd --add-service=smtp

RHEL1上发送RHEL2查看

[root@rhel1 ~]# mail root
Subject: From control1.node.com
I am control1
EOT
[root@rhel2 ~]# mail
>N 5 root Thu Nov 28 06:26 21/740 "From control1.node.co"
& 5
Message 5:
From root@node.com Thu Nov 28 06:26:41 2019
Return-Path: <root@node.com>
X-Original-To: root@node.com
Delivered-To: root@node.com
Date: Thu, 28 Nov 2019 22:26:41 +0800
To: root@node.com
Subject: From control1.node.com
User-Agent: Heirloom mailx 12.5 7/5/10
Content-Type: text/plain; charset=us-ascii
From: root@node.com (root)
Status: R I am control1

配置客户端下载邮件

更改RHEL2上的 Postfix配置

[root@rhel2 ~]# postconf -e "inet_interfaces=all"
[root@rhel2 ~]# postconf -e "myhostname=control2.node.com"
[root@rhel2 ~]# postconf -e "mydomain=node.com"
[root@rhel2 ~]# postconf -e "myorigin=node.com"
[root@rhel2 ~]# postconf -e "mydestination=node.com"
[root@rhel2 ~]# systemctl restart postfix

创建一个账号

[root@rhel2 ~]# useradd test_mail_user
[root@rhel2 ~]# echo "test_mail_user" |passwd --stdin test_mail_user
Changing password for user test_mail_user.
passwd: all authentication tokens updated successfully.

配置POP3服务器

# 安装 dovecot
[root@rhel2 ~]# yum install -y dovecot
# 修改配置文件
[root@rhel2 ~]# grep "^[^#]" /etc/dovecot/dovecot.conf
protocols = imap pop3 lmtp
disable_plaintext_auth = no
login_trusted_networks = 0.0.0.0/0
# 配置邮件格式与存储位置
[root@rhel2 ~]# grep "^mail_location" /etc/dovecot/conf.d/10-mail.conf
mail_location = mbox:~/mail:INBOX=/var/mail/%u
# 创建邮件的存储目录
[root@rhel2 ~]# su - test_mail_user
[test_mail_user@rhel2 ~]$ mkdir -p mail/.imap/INBOX
[test_mail_user@rhel2 ~]$ exit
logout
# 重启dovecot服务
[root@rhel2 ~]# systemctl restart dovecot
[root@rhel2 ~]# systemctl enable dovecot
ln -s '/usr/lib/systemd/system/dovecot.service' '/etc/systemd/system/multi-user.target.wants/dovecot.service'
# 防火墙放行
[root@rhel2 ~]# firewall-cmd --add-service=smtp --permanent
success
[root@rhel2 ~]# firewall-cmd --add-port=110/tcp --permanent
success
[root@rhel2 ~]# firewall-cmd --reload
success

在物理机上打开Foxmail进行配置

1. 输入 用户名密码:test_mail_user@node.com  test_mail_user
2. 输入服务器IP两个都是`RHEL2`: 192.168.143.11
  • 在物理机发送一封邮件给root@node.com cc test_mail_user@node.com
[root@rhel2 ~]# mail
Heirloom Mail version 12.5 7/5/10. Type ? for help.
"/var/spool/mail/root": 8 messages 4 new 7 unread
1 kane@localhost.local Mon Oct 28 19:18 17/723 "*** SECURITY informat"
U 2 kane@localhost.local Mon Oct 28 19:19 17/722 "*** SECURITY informat"
U 3 root Thu Nov 28 06:24 22/742 "from rhel1 teset"
U 4 root Thu Nov 28 06:25 22/721 "11"
>N 5 root Thu Nov 28 06:26 21/740 "From control1.node.co"
N 6 root Thu Nov 28 06:34 21/711 "ttt"
N 7 root Thu Nov 28 06:34 22/711 "12"
N 8 test_mail_user@node. Thu Nov 28 19:46 49/1965 "Test Mail From Window"
& 8
Message 8:
From test_mail_user@node.com Thu Nov 28 19:46:47 2019
Return-Path: <test_mail_user@node.com>
X-Original-To: root@node.com
Delivered-To: root@node.com
Date: Fri, 29 Nov 2019 11:46:47 +0800
From: "test_mail_user@node.com" <test_mail_user@node.com>
To: root <root@node.com>
Cc: test_mail_user <test_mail_user@node.com>
Subject: Test Mail From Windows
X-Priority: 3
X-Has-Attach: no
X-Mailer: Foxmail 7.2.14.409[cn]
Content-Type: multipart/alternative;
boundary="----=_001_NextPart204586814442_=----"
Status: R Content-Type: text/plain;
charset="us-ascii" Hi root This is a test mail from Foxmail. test_mail_user@node.com
  • 在物理机上同样也可以收到这封邮件。

DNS 域名系统与邮件服务器的更多相关文章

  1. CentOS利用postfix搭建邮件服务器

    之前我用nodemailer通过163邮箱来发送邮件,不过没过几天就一直ETIMEDOUT,不知道什么原因,想着还是自己搭一个来发邮件可能靠谱点(flag?) 安装postfix CentOS 7 自 ...

  2. CentOS7下搭建邮件服务器(dovecot + postfix + SSL)

    CentOS   花了基本上两天的时间去配置CentOS7下的邮件服务器.其中艰辛太多了,一定得总结下. 本文的目的在于通过一系列配置,在CentOS 7下搭建dovecot + postfix + ...

  3. 转-阿里云CentOS Linux服务器上用postfix搭建邮件服务器

    http://www.cnblogs.com/dudu/archive/2012/12/12/linux-postfix-mailserver.html 注:本文的邮件服务器只用于发送邮件,也就是ST ...

  4. 【Mail】搭建邮件服务器(LAMP+Postfix+Dovcot+PostfixAdmin+Roundcubemail)

    大纲 一.mail部署说明 二.安装准备 三.LMAP环境配置 四.配置postfixadmin 五.配置postfix 六.配置dovecot 七.测试SMTP和POP3服务 八.配置Roundcu ...

  5. Windows Server 2003搭建邮件服务器

    Windows Server 2003搭建邮件服务器 由于Windows Server 2003默认是没有安装我们搭建邮件服务器所需要的POP3和SMTP服务的,因此需要我们自己来安装.方法如下: 1 ...

  6. linux邮件服务器postfix配置实例

    linux邮件服务器postfix配置实例(超级详细!!!) 2013-03-13 13:30:21 标签:邮件服务器 linux 1. 系统安装:1)centos4.3 选上MAIL组件里的全部.2 ...

  7. Windows Server 2008 R2 配置Exchange 2010邮件服务器

    windows server 服务器系统搭建邮件服务器一般两种情况: 1:Winmail server 软件 2:Exchange 参考教程:http://www.cnblogs.com/zhongw ...

  8. 用Windows Server 2003搭建企业内部邮件服务器

    公司要搭建一个邮件服务器,方便内部邮件的发送.而且要求每位员工都可以使用自己的账号和密码.领导将这份工作交给我,不过,这可难不倒我.只要借助Windows Server 2003就可以轻松建起内部邮件 ...

  9. 基于公网smtp协议实现邮件服务器

    刚开始做邮件服务器开发,一切都是茫然的.在书上网上都很难找到一套完整的邮件服务器开发教程.在个人的摸索中碰到了很多蛋疼得问题.现终于完成了,将我的开发经验分享给大家. 开发环境:vs2012 mfc ...

随机推荐

  1. [Python之路] 闭包

    一.思考一个问题 我们要给定一个x,要求一条直线上x对应的y的值.公式是y = kx+b. 我们需要用k,b来确定这条直线,则我们实现的函数应该有3个参数: def line(k, b, x): pr ...

  2. 【模板】OI常用模板(待补充)

    //PS:最近修改日期:2017-11-07 20:41:44 首先感觉这种模板类的东西写了还是很有意义的,毕竟时不时的可以拿出来借鉴一下. 现在因为刚开始写这一类的东西,所以说还不是很详细,若有读者 ...

  3. bzoj 4899 记忆的轮廓 题解(概率dp+决策单调性优化)

    题目背景 四次死亡轮回后,昴终于到达了贤者之塔,当代贤者夏乌拉一见到昴就上前抱住了昴“师傅!你终于回来了!你有着和师傅一样的魔女的余香,肯定是师傅”.众所周知,大贤者是嫉妒魔女沙提拉的老公,400年前 ...

  4. NOI2007 项链工厂

    题目链接:戳我 60pts 有一点容易写错的小细节: 比如说求全局的段数的时候,如果只有一种颜色,那么当左右端点相等时,就不要ans--了. 注意右端点小于左端点的情况. #include<io ...

  5. MySQL_(Java)分页查询MySQL中的数据

    MySQL_(Java)使用JDBC向数据库发起查询请求 传送门 MySQL_(Java)使用JDBC创建用户名和密码校验查询方法 传送门 MySQL_(Java)使用preparestatement ...

  6. 安装lanproxy服务端、客户端以及小问题解决

    准备 我们这里使用java客户端与服务端连接 1.一台公网服务器(运行proxy-server).2.一台内网客户端(运行proxy-client). 下载地址:https://seafile.cdj ...

  7. 线程系列4--Java线程范围内的共享数据(一)

    这张图片是我看传智播客的视频时的截屏,这个图片很直观的展示了线程范围内的数据共享.当同一个线程在执行三个不同业务模块时,这三个业务模块访问的数据是共享的.更直白的说,当一个执行线索在穿个每个业务模块时 ...

  8. Fastadmin 后台表单,外键关键,步骤

    1.在 public\assets\js\backend 目录中找到对应的js,修改 2.对应控制器中加上index()方法:开启关联查询 重点: protected $relationSearch ...

  9. 环信-(php)服务器端REST API

    <?php namespace Home\Controller; use Think\Controller; /** * 环信-服务器端REST API * @author limx <l ...

  10. H264编码原理以及I帧、B和P帧详解, H264码流结构分析

    H264码流结构分析 http://blog.csdn.net/chenchong_219/article/details/37990541 1.码流总体结构: h264的功能分为两层,视频编码层(V ...