linux學習筆記9

dns服務器集羣

一臺dns服務器,不能知足大量用戶同時解析的需求,因此提出dns集羣概念php

至關於多臺服務器,同時分擔訪問量,高效快速。html

 

 

服務器(master172.25.254.11mysql

vim /etc/named.rfc1912.zone.interlinux

allow-transfer {172.25.254.10};sql

 

vim /etc/resolv.conf數據庫

nameserver 172.25.254.11vim

 

 

從屬服務器(slave)       172.24.25.10瀏覽器

vim /etc/named.rfc1912.zone緩存

type slave;安全

masters {172.25.254.11};

file "slaves/westos.com.zone"

 

wKioL1g-pL3g7wqoAABEAuI-rUo305.png

 

vim /etc/resolv.conf

nameserver 172.25.254.10

 

wKiom1g-pL6hODEZAAAs6vlUZkI444.png

測試

在slave主機的/var/named/slaves

出現westos.com.zone,這是由於在從屬服務器的/etc/named.rfc1912.zone中file "slaves/westos.com.zone",書寫所致。

 

wKioL1g-pL6y3KmvAAAn9hbIR1E950.png

 

在從屬服務器dig www.westos.com響應的主機爲從屬服務器,數據是從 從屬服務器的slaves/westos.com.zone文件讀取~

 

wKiom1g-pL_C9cREAAC485oNC8w556.png

 

 

 

那麼,問題來了~~~

 

若是dns主服務器,更改了某個域名的A記錄,那麼從屬服務器能不能實時得知呢?

 

 

slave自動同步masterA記錄文件

 

master:     主動通知機制

vim /etc/named.rfc1912.zone

 

allow-transfer {172.25.254.10};

also-notify {172.25.254.10};

 

wKioL1g-pMDg-WVVAABIJujowik955.png

 

vim /var/named/westos.com.inter

2016112601  serial(slave會檢測這個值,是否一致來判斷是否須要同步)

www    A   newip

 

 

注意:serial的值此時不能爲零,通常爲10位(yyyymmddcc),

由於從屬服務器,會根據serial是否爲0來判斷,是否要更新A記錄文件。

 

wKiom1g-pMDiDrGUAABX30FsdyI916.png

 

 

slave

 

打來的電話會被防火牆selinux攔截。

systemctl stop firewalld

setenforce 0

 

 

 

同步A記錄文件以前:


wKioL1g-pMHy0Hh6AABU16uTb7U374.png

 

 

沒關selinux以前不更新!!!!!!

 

wKiom1g-pMLg7PfwAAD1LA2ChoU001.png

 

關閉selinux後,A記錄被更新。


wKiom1g-pMLg7PfwAAD1LA2ChoU001.png

 

 

遠程更改主dns服務器

dns

vim /etc/nmaed.rfc1912.zone.inter

allow-update{172.25.254.11};

 

>/var/log/messages

cat /var/log/messages

 

 遠程端

nsupdate

server 172.25.254.130

update delete www.westos.com

send

 

update add www.westos.com 86400 A 172.25.254.111

send

 

86400爲最大緩存時間,一天的全部秒數86400=24*3600


 

 wKioL1hKOm_iXadlAAAkBC5CIgo370.jpg

報錯:

出現以下報錯:nameserver指定DNS錯誤

 

wKioL1g-pMSgfRg4AAAy8vHslfs525.png

 

 

出現以下報錯:chmod 770 /var/named/讓遠程端有寫入的權限


wKiom1g-pMSBbIGbAAAmc0F2Sm4326.png

 

別忘記設置setenforce 0

 

出現以下圖所示,即爲發送成功~~

 

wKiom1g-pMTBFFvkAAAlukGvveY175.png

 

 

 

[root@dns-slave mnt]# nsupdate -kKwestos.+157+51429.private

> server 172.25.254.100

> update delete www.westos.com

> send

> quit

遠程端,要關selinux

主dns,chmod 770 /var/named/,讓遠程端有寫入的權限。

 

wKioL1g-pMXh0sSiAACoJmFvRuo999.png

 

 

 

 

注意:

 

在遠程端輸入同步命令之後,

主dns服務器會生成一個/var/named/westos.com.inter.jnl

 

此時dig www.westos.com  的ip已經被修改。

也就是說系統優先讀取westos.com.inter.jnl,此時westos.com.inter尚未被修改。

 

wKioL1g-pMXyT8eXAAC0dz7832o453.png

 

在重啓服務之後,westos.com.inter.jnl會同步westos.com.inter,產生新的A記錄文件

因此,此前要作好原A記錄文件的備份

 

wKiom1g-pMfwRW8iAAC6WQTuf3g881.png

 

 

查看新的A記錄文件,www的信息已經被刪除,A記錄文件在重啓後被同步~~

 

wKioL1g-pMiTMmrKAACPm8_xZR8777.png

 

cp -p /var/named/westos.com.inter /mnt

[root@dns-slave mnt]# nsupdate -kKwestos.+157+51429.private

> server 172.25.254.100

> update delete www.westos.com

> send

> quit

 

 

加密遠程端


dnssec-keygen -a HMAC-MD5 -b 128 -n HOST westos

MD5 對稱加密

 

/etc/rndc.key 是dns的默認加密模板

 

wKiom1g-pMiRC5IfAABxj-WJfmc181.png

 

cp -p /etc/rndc.key /etc/westos.key

 

cat Kwestos.xxxxx.key

vim /etc/westos.key

 

 

key "westos"!!!

secret "xxxxxx";

 

wKioL1g-pMmw4YyaAAAoVU9J5kc224.png

 

 

vim /etc/named.conf

43 include "/etc/westos.key";

 

wKiom1g-pMnTPmvGAAAx8TmQc4Y512.png

 

 

vim /etc/named.rfc1912.zone.inter

allow-update {key westos;};

 

wKioL1g-pMnSYCO7AAArS2zEdeo666.png

 

把密碼和鑰匙發送給遠程端。

scp Kwestos.xxxxx.key Kwestos.xxxxx.privateroot@172.25.254.230:/mnt

檢測

 

遠程客戶端

nsupdate -k Kwestos.xxxxx.private

 

server 172.25.254.130

update delete www.westos.com

send

 

dns服務器

dig www.westos.com

/////

 

 

 

DNS 的動態綁定

 

每次從電信獲取ip,都是dhcp,相應的dns服務器也會同步更新主機的ip,這樣即便你變了ip,別人仍是能夠訪問到你

 

怎麼作呢?

man 5 dhcp.conf


wKiom1g-pMuyTBoeAABjI2W7K-I480.png

 

wKiom1g-pMyzQcDNAADHvZLNt8M151.png

 

關閉selinux!!!!

 

 

服務器

 

vim /etc/dhcpd/dhcp.conf

 

wKioL1g-pM2TYbDgAADMzNzM1lE565.png


7 name "westos.com"

8 name-servers 172.25.254.130

14 ddns-update-style interim;

 

wKiom1g-pM6TSenaAABCAdikAwQ302.png

 

 

wKioL1g-pM6SjKrVAABX7aYBf4M107.png

 

 

subnet 172.25.254.0 netmask 255.255.255.0{

    range172.25.254.231 172.25.254.244;

    optionrouters 172.25.254.130;

}

key westos{

    algorithmhmac-md5;

    secert XXXXX;

};

zone westos.com. { 通知DNS要更新dhcp變的ip

    primary127.0.0.1; DHCP所在的服務器,使用迴環更快。

    key westos;

    }

 

wKioL1g-pM-x0rg8AACHQ02ijqY489.png

 

客戶端

網卡配置文件

vim /etc/sysconfig/network-scripts/ifcfg-eth0

DNS1=172.25.254.130

BOOTPROTP=dhcp

vim /etc/resolv.conf

nameserver 172.25.254.130

 

檢測

服務器

systemctl restart dhcpd

systemctl restart named

 

客戶端

systemctl restart network

ifconfig

dig client.westos.com

client爲主機名

 

wKiom1g-pNCTN7fDAAEJ_O7rTnk470.png

 

最後服務器能獲取到/var/named/westos.com.inter.jnl,文件

以後systemctl restart named

cat var/named/westos.com.inter,發現client主機的信息已經被添加。

 

wKioL1g-pNHwvVt-AADRUV311CQ327.png

 

大功告成~~~~

 

 

 

數據庫   Mariadb

yum install mariadb-server.x86_64 -y

systemctl start mariadb

 

默認開啓外網mysqpl端口

netstat –antlpe

 

vim /etc/my.cnf

skip-networking=1

 

systemctl restart mariadb

netstat –antlpe

 

wKiom1g-pNLyuSx3AACSTFNVM4w794.png

 

mysql_secure_installation   安裝安全機制

一路回車,輸密碼~:

 

wKiom1g-pNSQPM0rAAEw9eLfWTE707.png

 

在安裝安全機制以前,如何進入數據庫:

1)mysql -h loalhost     -h, --host=name

 

wKiom1g-pNThAcuNAACCgxSV6Bg226.png

2)mysql

 

wKioL1g-pNXTWjN-AAB8nOFeW4E480.png

  

 


mysql的使用

 

1)DATABASE   數據庫

SHOW DATABASES;                     顯示數據庫

USE MYSQL;                          進入數據庫

SHOW TABLES;                        顯示數據庫中的表

FLUSHprivileges;                   刷新數據庫信息

SELECT Host,user,passwd FROM user;  查詢表user中的Host,user,passwd

 

 

實例:

SHOW DATABASES;

wKiom1g-p7mhZCGpAACAjlxCHh4899.png

USE MYSQL;

SHOW TABLES;


wKioL1g-p7rioNpwAAB7ZnNU6tA877.png

 

SELECT * FROM user;

 

wKiom1g-p7qThuaMAABRSlNGsoU666.png

 

SELECT Host,user,passwd FROM user;

 

wKiom1g-p7uQk31EAABw_4gGlg8600.png

 

 

2)建立TABLE 

DESC UTAB;                                 查看UTAB表的數據結構      description

 

CREATE DATABASE lalala;         建立lalala數據庫

USE lalala;

CREATE TABLE UTAB(              建立表,username,password字段

username varchar(10) not null,

password varchar(50) not null,

age varchar(4)

);

 

wKioL1g-p7uCFXyGAACNQ0GcPG8426.png

 

wKiom1g-p7yRoViNAABkSynHd2k692.png

 

DESC user;              查看user表的數據結構   description

 

wKioL1g-p7yx-CpTAABhL6gjQmI593.png

 

 

3)插入,更新字段  

INSERT INTO UTAB VALUES ('lixiaojie','123',2);  插入字段

INSERT INTO UTAB VALUES ('damowang','123',100);

INSERT INTO UTAB VALUES ('zoe','123','');

 

wKioL1g-p72jOWqEAAEXFbnrn4w541.png

 

 

ALTER TABLE UTAB ADD class varchar(8) AFTER password;

                                    添加class字段到UTAB中,在password字段後。

 

ALTER TABLE linux DROP class;          刪除class字段 

 

wKiom1g-p77RMizRAACPcMqioPI001.png

 

 

UPDATE UTAB SET class=’1’;    設置新添加的class字段的值。(不加where所有添加)

UPDATE UTAB SET class=’1’where username=zoe;

 

 

wKioL1g-p76BUYtEAABvaQ3z34M234.png

 

 

wKiom1g-p7-zXlsnAAB45XN1f1c236.png

 

 

3)刪除表,刪除數據庫      

DROP table UTAB;  

DROP DATABASES;  數據庫

wKiom1g-p7_A2kb2AACbbovXTdA441.png

 

數據庫的相對訪問和絕對訪問

絕對訪問

select * FROM mysql.user;           查詢mysql庫下的user表中的索引

 

wKioL1g-p8CTAdXVAACEkrpr-3o738.png

 

相對訪問:

SHOW DATABASES;

USE mysql;

SHOW TABLES;

SELECT * FROM user;

 

 

建立用戶

CREATE USER miao@localhost identified by 'westos';  建立本地用戶

CREATE USER miaomiao@'%' identified by 'westos';        建立遠程用戶

 

查看遠程用戶的受權

 

wKioL1g-p8DzQgEkAAA7wau7pSQ365.png

 

建立本地用戶

 

wKiom1g-p8HjuhALAAC4eZrMaiQ316.png

 

新用戶剛開始沒有權限,只能登錄,什麼都幹不了

 

wKiom1g-p8KAKOevAACohhGP_Hw477.png

 

用戶受權

GRANT INSERT,UPDATE,DELETE,SELECT, on *.* tolalala@localhost;

*.*:全部數據庫的全部表

GRANT INSERT on mysql.* lalala@'%' 遠程

 

 

重載受權表

FLUSHPRIVILEGES;

 

查看授用戶受權

SHOW GRANTS FOR lalala@localhost;

 

wKioL1g-p8LQCwWMAACYUvlUG00028.png

 

miao用戶能夠建立新的數據庫啦~~

 

wKioL1g-p8OgyN5vAAEDFOb9Y1Q880.png

 

 

撤銷用戶權限

REVOKE INSERT,UPDATE,DELETE,SELECT, on *.* tolalala@localhost;

 

wKiom1g-p8TRirA_AAEA59AWOSg831.png

 

刪除用戶

DROP USER lalala@localhost;

 

修改root密碼

 

1)知道密碼,直接修改

mysqladmin -uroot -pwestos password redhat

 

wKiom1g-p8Xi34ECAACInPv1LfY620.png

 

2)忘記root用戶密碼

systemctl stop mariadb

mysqld_safe --skip-grant-tables &    繞過安全驗證機制

 

mysql -uroot

 

 

SELECT * FROM mysql.user

查看用戶名,密碼字段書寫方式。

 

 

wKioL1g-p8WCjK-RAAA13JWhPTY336.png


UPDATE mysql.user set Password=password('lalala') WHERE User='root';

                加密密碼,不然密碼爲明文

 

wKioL1g-p8bRqL4-AAD8MZKNXgQ804.png

 

密碼爲明文


wKiom1g-p8bT5ypEAAAh8IQJU9Y892.png

 

 

UPDATE mysql.user set Password=password('lalala') WHERE User='root';

     密碼被加密!!!!!!!!

 

wKiom1g-p8fyMiwhAAF16_cs9Go538.png


fg

killall -9 mysqld_safe

ps aux | grep mysql

kill -9 PID結束殘留mysql進程

 

wKioL1g-p8iDARbjAAGSS3yjYhI893.png

 

數據庫的備份

mysqldump –uroot –plalala xixixi            備份xixixi數據庫

 

wKiom1g-p8jwzE_QAACdKJuJ43U006.png

 

wKioL1g-p8nDuJKOAAB5kfd62uM313.png

 

mysql -uroot -plalala -e "DROP  DATABASE xixixi"

mysqldump -uroot -plalala xixixi>/mnt/xixixi.sql    所有備份

mysqldump -uroot -plalala xixixi --no-data>/mnt/xixixi.sql  只備份表頭,沒有數據

 

mysql -uroot -plalala -e "SHOW DATABASElalala"

 

 

mysql -uroot -plalala -e "CREATE DATABASE xixixi"

mysql -uroot -plalala xixixi</mnt/xixixi.sql    恢復

 

 

備份流程

1)備份並刪除數據庫

 

wKiom1g-p8qyDF8JAAF4Lx3qB54863.png

 

 

2)所有恢復


wKioL1g-p8rRdpB-AADigH0l5qc744.png

 

3)只恢復表頭


wKiom1g-p8uSn5nXAAEWTw3OcoY626.png

 

 

 

 

在網頁上用myadmin軟件管理數據庫

1.下載

yum install httpd php-mysql  php -y

download phpadmin_.tar.brz

tar jxf phpmyadmin-*.tar.bz2 -C /var/www/html  -C 指定解壓目錄

mv phpmyadmin phpadmin

 

2.如何配置

1)check 壓縮文件的README


wKioL1g-p8uSeT3uAAAY-kyFtDA070.png

 

2)check Documentation.txt

/Quick install


wKiom1g-p8yCmCPpAAGkpggVGDM540.png

 

3.配置方法

cp -p config.sample.inc.php config.inc.php

vim config.inc.php

cookie 不能爲空,隨便填一個

 

wKiom1g-ysTCz9YcAABPGG_POCA597.png

 

systemctl stop firewalld

systemctl start httpd


檢驗

wKioL1g-ysXzqPAbAACWxwx7bYY076.png

 

 

 

在瀏覽器中插入一個字段~~~


wKioL1g-ysXC8RjWAABLKqiccNo396.png

 

 

在本地數據庫能夠查看其添加~~

 

wKiom1g-ysah6qf1AACR26JYn40974.png

 

簡單郵件服務    

25:經過IP,發送傳輸

 

dns服務器:將域名解析爲ip

 

 

dns服務器(maillalala.lalala.com)   172.25.254.11

 

vim /etc/resolv.conf

nameserver 172.25.254.11

 

wKiom1g-ysex8G02AAAe8L_geag927.png

 

 

新建兩個MX域:

lalala.com.zone 172.25.254.11

zoe.com.zone    172.25.254.10

 

wKioL1g-ysewrCLXAABSmccE4mM238.png

 

wKioL1g-ysiDDTOVAABNqrjP1pk961.png

檢測

dig -t MX westos.com

dig -t MX linux.com

 

wKiom1g-ysmzI4yqAACxtnEFfaM257.png

 

wKioL1g-ysrwlTLgAACzhK9PuZg055.png

 

vim /etc/postfix/main.cf

75 myhostname = maillinux.linux.com

99 myorigin = $mydomain

113 inet_interfaces = all

116 #inet_interfaces = localhost

164 mydestination = $myhostname, $mydomain, localhost

 

另外一個郵件服務器 mailwestos.com  172.25.254.130

 

vim /etc/resolv.conf

nameserver 172.25.254.11

 

wKiom1g-ysvS4G15AAAfRdEjDJ8158.png

 

vim /etc/postfix/main.cf

75 myhostname =mailwestos.westos.com   

99 myorigin = $mydomain

113 inet_interfaces = all   打開外網和內網的25端口

116 #inet_interfaces = localhost

164 mydestination = $myhostname, $mydomain, localhost

                    個人主機名   個人域名  本地郵件

 

 

 

113)

打開端口前,默認只打開了本地的25端口

 

wKioL1g-ysuyu4b3AAA7Y7Ma97M716.png

 

寫了113: inet_interfaces = all 打開外網和內網的端口。

 

wKiom1g-yszj2gfdAAB3laXCVwA966.png

 

簡單命令

 

mailq           查看郵件隊列

postqueue -f        重發郵件隊列中的郵件

postspuser -d xxxx  刪除郵件隊列中只滯留的郵件  -d queue_id (delete)

mail -u root        查看root收到的郵件

postspuser -d xxxx

 

wKiom1g-ys3yrM4GAADXRchhocs254.png

 

檢測

雙方方能夠互發郵件啦~~~

注意:接受方須要關閉防火牆,要否則收不到。

 

zoe主機給lalala主機發送!

 

wKioL1g-ys6B-50_AACrEBwyi1g313.png

 

 

mailq爲滯留的郵件,能夠用postqueue–f 從新發送

 

lalala主機成功接受!

 

wKiom1g-ys_RiRiYAAD-yIZQVO0072.png

 

lalala主機給zoe主機發送!

 

wKioL1g-ytCjqgvmAAAkoc0egi0554.png

 

zoe主機成功接受!

 

wKioL1g-ytHR5kZRAADiEiqkzQE810.png

 

postconf -n                     查看當前設置    -n (non-defaults)

postconf -e "inet_interfaces=localhost"     設置        -e(edit)

postconf -d | grep innet            查看默認設置    -d(defaults)



wKiom1g-ytKAORKsAAC55qPTKXY392.png

 

wKiom1g-ytPQEgRGAAGE9XqcUkQ586.png

 

 

 

 

 

收件人的別名alias

 

DNS服務器

vim /etc/aliases

admin:         root

more:          :include:/etc/moreusers羣發郵件

 

 

vim /etc/moreusers

student

root

 

postalias /etc/aliases          讓別名生效

systemctl restart postfix.service  

 

另外一個郵件服務器

mail admin@linux.com    即爲給root發

mail more@linux.com    即爲羣發

 

 

羣發郵件

 

vim     /etc/aliases

 

wKioL1g-ytSjuXgcAAAihoGL5g0012.png

 

vim     /etc/moreusers

 


wKiom1g-ytTxQLnMAAAJ9yLXjcM102.png

 

postalias /etc/aliases          讓別名生效

 

wKioL1g-ytWRsbI4AABCHoj57pU473.png

 

wKioL1g-ytbB2uE6AAF1krKpQv8543.png

 

 

出站地址假裝

 

DNS服務器

 

vim /etc/postfix/generic

 

root@lalala.com        2222222@qq.com

真域名                          假域名


wKiom1g-ytegHetIAAAtdEtO06w584.png


 

postmap generic給generic加密,生成generic.db

 

wKiom1g-ytjgMHzMAABgq0Gu0CE061.png

 

 

 postconf -d|grep generic  查看加密使用的參數

 

 

wKioL1g-ytmjHaqlAADwYQRcx7Q090.png

 

postconf -e "smtp_generic_maps=hash:/etc/postfix/generic"

把加密的文件寫入/etc/postfix/main.cf 主配置文件

 

檢測

收件人,受到的郵件的發送方爲假域名

 

發件人爲lalala.com

 

wKiom1g-ytqyp0WEAABRg0OXpx8077.png

 

收件人看到的發件人爲22222222@qq.com,假裝成功~~~

 

wKioL1g-ytvAcLZOAADvaNNSUfc704.png

 

 

 

 

遠程登錄郵件服務器(也能夠檢測郵件服務器的25端口)

telnet 172.25.254.10 25

ehlo hello

mail from:root@zoe.com

rcpt to:root@lalala.com

data

dsf

wqd

fdsdsf

22222222222

.

quit

 

用真機遠程登陸,zoe主機,給lalala主機發郵件

 

wKioL1g-yt3TBWV9AADfkIMkXo8406.png

 

lalala主機收到了zoe主機發的郵件~

 

wKioL1g-zJvS1v69AACv3N8ijxU453.png

相關文章
相關標籤/搜索