Day09 -postfix nullclient MariaDB

環境準備:還原 Cla***oom(DNS_Server)、Server、Desktopmysql

設置server與desktop防火牆默認區域爲trustedsql

Server:IP   172.25.0.10
Desktop:IP  172.25.0.11
DNS_Server:
    server0.example.com     172.25.0.10
    desktop0.example.com        172.25.0.11

# firewall-cmd --set-default-zone=trusted數據庫

#####################################################################################
搭建基本郵件服務器vim

電子郵件通訊
• 電子郵件服務器的基本功能
– 爲用戶提供電子郵箱存儲空間(用戶名@郵件域名)
– 處理用戶發出的郵件 —— 傳遞給收件服務器
– 處理用戶收到的郵件 —— 投遞到郵箱後端

用戶發郵件的協議 :SMTP 端口號 25
用戶收郵件的協議 :pop3 端口號 110 IMAP 端口號 143服務器

電子郵箱地址:zhsan@sina.com、lisi@sina.com網絡

快速部署postfix郵件服務器
• 裝包、配置、起服務dom

server0:搭建郵件服務(server0.example.com)
1.設置永久的主機名(server0.example.com)/etc/hostname
# echo server0.example.com >/etc/hostname #修改主機名ide

2.安裝postfix軟件包(服務端)
# rpm -q postfix #查看是否有安裝postfix工具

3.修改配置文件/etc/postfix/main.cf

# vim /etc/postfix/main.cf
  76行    myhostname = server0.example.com   #指定主機名(DNS中註冊過)
  83行    mydomain = example.com         #指定域名
  99行   myorigin = server0.example.com  #默認補全的發件人域名後綴
  116行  inet_interfaces = all         #設置監聽的網絡接口(改localhost爲all,容許全部使用)
  164行  mydestination = server0.example.com #收件人的域名後綴,判斷爲本域郵件

4.重啓postfix服務,設置爲開機自啓

# systemctl restart postfix
# systemctl enable postfix

五、建立用戶,zhang3,lisi

# useradd zhang3
# useradd lisi
# echo 123 | passwd --stdin zhang3
# echo 123 | passwd --stdin lisi

六、測試收發郵件

# mail -s 'Title test'  zhang3 lisi@server0.example.com     //發郵件
# mail -u lisi  //收郵件

desktop0:搭建郵件服務(desktop0.example.com)

1.設置永久的主機名(desktop0.example.com)/etc/hostname
# echo desktop0.example.com >/etc/hostname

2.安裝postfix軟件包
# rpm -q postfix        #查看是否有安裝postfix

3.修改配置文件/etc/postfix/main.cf
  76行    myhostname = desktop0.example.com      #指定主機名(DNS中註冊過)
  83行    mydomain = example.com         #指定域名
  99行   myorigin = desktop0.example.com         #默認補全的發件人域名
  116行  inet_interfaces = all         #設置監聽的網絡接口
  164行  mydestination = desktop0.example.com    #收件人的域名後綴,判斷爲本域郵件

4.重起postfix服務
# systemctl restart postfix
# systemctl enable postfix

server0:建立yg用戶,設置密碼123
# useradd yg
# echo 123 | passwd --stdin yg

desktop0:建立xln用戶,設置密碼123
# useradd xln
# echo 123 | passwd --stdin xln

server0: mail -s 'test01' -r  yg   xln@desktop0.example.com     //郵件主題test01,發件人yg,收件人xln
desktop0:mail -u xln

#####################################################################################
使用mail命令發信/收信
• mail 發信操做
– mail -s '郵件標題' 收件人 [@收件域]...

• mail 收信操做
– mail [-u 用戶名]

#####################################################################################
nullclient郵件服務

• nullclient,空客戶端
– 不提供任何郵箱帳號,所以不須要投遞郵件
– 可是能夠爲用戶代發郵件

環境準備:還原server、desktop

設置server與desktop防火牆默認區域爲trusted

# firewall-cmd --set-default-zone=trusted

#####################################################################################

後端常規郵件服務器(Desktop0)
空客戶端郵件服務器(Server0)

1、配置常規郵件服務器( Desktop0)

1.設置永久的主機名(desktop0.example.com)/etc/hostname
# echo desktop0.example.com >/etc/hostname

2. 修改/etc/postfix/main.cf   
 99  myorigin = desktop0.example.com        #發件來源域
 116 inet_interfaces = all                  #全部網絡
 164 mydestination = desktop0.example.com   #將投遞域設爲desktop0.example.com 

3.重起postfix服務
# systemctl restart postfix
# systemctl enable postfix

2、nullclient,空客戶端郵件服務器(Server0)

1.設置永久的主機名(server0.example.com)/etc/hostname
# echo server0.example.com >/etc/hostname

2. 修改/etc/postfix/main.cf  
 99  myorigin = desktop0.example.com        #發件來源域
 116 inet_interfaces = loopback-only        #僅本機(或localhost)
 164 mydestination =                        #將投遞域設爲空
 264 mynetworks = [::1]/128,127.0.0.0/8,172.25.0.0/24    #信任網絡 
 316 relayhost = [desktop0.example.com]     #目標郵件服務器(desktop0.example.com=172.25.0.10)

3.重起postfix服務
# systemctl restart postfix
# systemctl enable postfix

3、測試:
在server上發一封郵件給student,最後desktop0上student收到
在server上和desktop0上分別建立student,

# useradd student
 # echo 123 | passwd --stdin student
 # echo this is a test. | mail -s 'test01' -r  root   student       //在Server0上發送測試郵件
 # mail -u student          // 在Server0上查看,沒有郵件
 # mail -u student          // 在Desktop0上查看,有測試郵件

#####################################################################################
數據庫服務基礎

MariaDB 數據庫的管理員 root ,不一樣系統的管理員

部署mariadb數據庫服務器
• RHEL7 中的 MariaDB 相關包
– mariadb-server:提供服務端有關的系統程序
– mariadb:提供客戶端及管理工具
– mariadb數據庫服務端口:3306

[root@server0 ~]# yum -y install mariadb-server     #mariadb數據庫
[root@server0 ~]# systemctl restart mariadb         #啓動MariaDB服務
[root@server0 ~]# mysql         #打開(進入)MariaDB(默認無密碼)

MariaDB [(none)]> show  databases;           #查看全部的庫
MariaDB [(none)]> create database nsd1705;   #建立庫nsd1705
MariaDB [(none)]> show  databases;

MariaDB [(none)]> drop  database  nsd1705;   #刪除nsd1705庫
MariaDB [(none)]> show  databases;
MariaDB [(none)]> exit /quit                      #退出數據庫服務

#####################################################################################

mariadb服務端配置調整
• 禁止監聽,只服務於本機

[root@server0 ~]# vim /etc/my.cnf
[mysqld]
skip-networking     //跳過網絡監聽(只服務於本機)
.. ..
[root@server0 ~]# systemctl restart mariadb

• 爲數據庫帳號修改密碼
– mysqladmin [-u用戶名] [-p[舊密碼]] password '新密碼'

[root@server0 ~]# mysqladmin -u root   password  '123'      #配置密碼爲123

[root@server0 ~]# mysql -u root -p123       #進入MariaDB數據庫

#####################################################################################
– 使用/選擇數據庫: use 數據庫名;
– 列出庫裏有哪些表: show tables;

[root@server0 ~]# mysql -u root -p123
MariaDB [mysql]> show databases;
MariaDB [mysql]> use  mysql;        #選擇數據庫      
MariaDB [mysql]> show tables;
MariaDB [mysql]> desc user;         #顯示錶的結構

//顯示user表中user,host,password內容
MariaDB [mysql]> select user,host,password from user;

//顯示user表中user,password內容
MariaDB [none]> select user,password from mysql.user;
MariaDB [mysql]> select user,password from user;

#####################################################################################
導入/恢復到數據庫
– mysql [-u用戶名] [-p[密碼]] 數據庫名 >/< 備份文件.sql

重定向輸入: <

[root@server0 ~]# mysql -u root -p123
MariaDB [(none)]> create database nsd;
MariaDB [(none)]> show databases;
MariaDB [(none)]> exit

# wget http://172.25.254.254/pub/materials/users.sql

# mysql -u root -p123 nsd < users.sql   #導入數據到nsd庫中

[root@server0 ~]# mysql -u root -p123
MariaDB [nsd]> use nsd;
MariaDB [nsd]> show tables;
MariaDB [nsd]> select * from location;
MariaDB [nsd]> select * from base;

#####################################################################################
數據庫的受權:
– GRANT 權限列表 ON 數據庫名.表名 TO 用戶名@客戶機地址 IDENTIFIED BY '密碼';
權限列表:select、insert、updat、delete、all

– 除了 root 用戶,此數據庫nsd只能被用戶 lisi 查詢,此用戶的密碼爲123

[root@server0 ~]# mysql -u root -p123 
MariaDB [nsd]> grant select on  nsd.* to  lisi@localhost  identified  by '123'; 
MariaDB [nsd]> select user,password from mysql.user;        //查看lisi用戶是否存在

當lisi利用密碼123進行本地登錄數據庫時,將會得到nsd庫中全部表的查詢權限

[root@server0 ~]# mysql -u lisi -p123 //驗證是否可以登錄

#####################################################################################
案例5:使用數據庫查詢

1. 禁止空密碼root用戶訪問 mariadb 數據庫
MariaDB [mysql]> use mysql;
MariaDB [mysql]> select user,host,password from user;  
MariaDB [mysql]> select user,host,password from user  where user='root' and password='';
MariaDB [mysql]> delete from user  where user='root' and password='';

2. 在系統 server0 上使用數據庫 nsd,並使用相應的 SQL 查詢以回答下列問題:
1)密碼是 solicitous 的人的名字?
MariaDB [nsd]> use nsd;
MariaDB [nsd]> select *  from nsd.base where password='solicitous';
MariaDB [nsd]> select name from base where password='solicitous';
MariaDB [nsd]> select name,password from base where password='solicitous';

2)有多少人的姓名是 Barbara 同時居住在 Sunnyvale?
MariaDB [nsd]>use nsd;
MariaDB [nsd]> select * from base,location where base.name='Barbara' and location.city='Sunnyvale' and base.id=location.id;
MariaDB [nsd]> select count(*) from base,location where base.name='Barbara' and location.city='Sunnyvale' and base.id=location.id;
相關文章
相關標籤/搜索