域名系統是域名和IP地址相互映射的一個分佈式數據庫,可以是用戶更方便的訪問互聯網。不用去記住可以被機器直接讀取的IP。node
域是分層管理的數據庫
# 根域: [.] # 頂級域: 按性質: [.org\.net\.com\.edu\.gov] 按國家: [.cn\.tw\.hk] # 普通域 好比: [.baidu]
本地DNS緩存
-> 本地hosts文件
-> 指定的DNS服務器
vim
若是指定的DNS服務器沒有找到對應的域名,會返回到客戶端,客戶端會向上一級DNS服務器繼續發送請求。直至查詢到或者頂級服務器也沒查詢到。緩存
1. 主DNS服務器:存儲原始資料 2. 從DNS服務器:自動更新注DNS服務器的數據 3. 緩存服務器:轉發來自客戶端的請求,可是會緩存查詢回來的結果 4. 轉發器:不向根域發送請求,而是直接發給其餘的服務器,並不緩存結果
域名 生存期 類別 類型 值
bash
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服務器鏈接接口的域名
# 編輯配置文件 /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.
[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.
注: Unbound
與 bind
都可以搭建主DNS服務器markdown
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!!!
用來發送或中轉發出的電子郵件,佔用25/tcp
端口架構
用於將服務器上把郵件存儲到本地主機,佔用110/tcp
端口
用於在本地追加上訪問郵件,佔用143/tcp
端口
單獨使用Postfix
服務程序不能完成收發郵件的操做。咱們須要下面的軟件:
Postfix
提供的郵件發送服務SMTP
Dovercot
提供的郵件收取服務,即POP3
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