首页 > 代码库 > linux学习笔记9

linux学习笔记9

dns服务器集群

一台dns服务器,不能满足大量用户同时解析的需求,所以提出dns集群概念

相当于多台服务器,同时分担访问量,高效快速。

 

 

服务器(master172.25.254.11

vim /etc/named.rfc1912.zone.inter

allow-transfer {172.25.254.10};

 

vim /etc/resolv.conf

nameserver 172.25.254.11

 

 

从属服务器(slave)       172.24.25.10

vim /etc/named.rfc1912.zone

type slave;

masters {172.25.254.11};

file "slaves/westos.com.zone"

 

技术分享

 

vim /etc/resolv.conf

nameserver 172.25.254.10

 

技术分享

测试

在slave主机的/var/named/slaves

出现westos.com.zone,这是因为在从属服务器的/etc/named.rfc1912.zone中file "slaves/westos.com.zone",书写所致。

 

技术分享

 

在从属服务器dig www.westos.com响应的主机为从属服务器,数据是从 从属服务器的slaves/westos.com.zone文件读取~

 

技术分享

 

 

 

那么,问题来了~~~

 

如果dns主服务器,更改了某个域名的A记录,那么从属服务器能不能实时得知呢?

 

 

slave自动同步masterA记录文件

 

master:     主动通知机制

vim /etc/named.rfc1912.zone

 

allow-transfer {172.25.254.10};

also-notify {172.25.254.10};

 

技术分享

 

vim /var/named/westos.com.inter

2016112601  serial(slave会检测这个值,是否一致来判断是否需要同步)

www    A   newip

 

 

注意:serial的值此时不能为零,一般为10位(yyyymmddcc),

因为从属服务器,会根据serial是否为0来判断,是否要更新A记录文件。

 

技术分享

 

 

slave

 

打来的电话会被防火墙selinux拦截。

systemctl stop firewalld

setenforce 0

 

 

 

同步A记录文件之前:


技术分享

 

 

没关selinux之前不更新!!!!!!

 

技术分享

 

关闭selinux后,A记录被更新。


技术分享

 

 

远程更改主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

 

 

报错:

出现如下报错:nameserver指定DNS错误

 

技术分享

 

 

出现如下报错:chmod 770 /var/named/让远程端有写入的权限


技术分享

 

别忘记设置setenforce 0

 

出现如下图所示,即为发送成功~~

 

技术分享

 

 

 

[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/,让远程端有写入的权限。

 

技术分享

 

 

 

 

注意:

 

在远程端输入同步命令以后,

主dns服务器会生成一个/var/named/westos.com.inter.jnl

 

此时dig www.westos.com  的ip已经被修改。

也就是说系统优先读取westos.com.inter.jnl,此时westos.com.inter还没有被修改。

 

技术分享

 

在重启服务以后,westos.com.inter.jnl会同步westos.com.inter,产生新的A记录文件

所以,此前要做好原A记录文件的备份

 

技术分享

 

 

查看新的A记录文件,www的信息已经被删除,A记录文件在重启后被同步~~

 

技术分享

 

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的默认加密模板

 

技术分享

 

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

 

cat Kwestos.xxxxx.key

vim /etc/westos.key

 

 

key "westos"!!!

secret "xxxxxx";

 

技术分享

 

 

vim /etc/named.conf

43 include "/etc/westos.key";

 

技术分享

 

 

vim /etc/named.rfc1912.zone.inter

allow-update {key westos;};

 

技术分享

 

把密码和钥匙发送给远程端。

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


技术分享

 

技术分享

 

关闭selinux!!!!

 

 

服务器

 

vim /etc/dhcpd/dhcp.conf

 

技术分享


7 name "westos.com"

8 name-servers 172.25.254.130

14 ddns-update-style interim;

 

技术分享

 

 

技术分享

 

 

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;

    }

 

技术分享

 

客户端

网卡配置文件

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为主机名

 

技术分享

 

最后服务器能获取到/var/named/westos.com.inter.jnl,文件

之后systemctl restart named

cat var/named/westos.com.inter,发现client主机的信息已经被添加。

 

技术分享

 

大功告成~~~~

 

 

 

数据库   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

 

技术分享

 

mysql_secure_installation   安装安全机制

一路回车,输密码~:

 

技术分享

 

在安装安全机制之前,如何进入数据库:

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

 

技术分享

2)mysql

 

技术分享

  

 


mysql的使用

 

1)DATABASE   数据库

SHOW DATABASES;                     显示数据库

USE MYSQL;                          进入数据库

SHOW TABLES;                        显示数据库中的表

FLUSHprivileges;                   刷新数据库信息

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

 

 

实例:

SHOW DATABASES;

技术分享

USE MYSQL;

SHOW TABLES;


技术分享

 

SELECT * FROM user;

 

技术分享

 

SELECT Host,user,passwd FROM user;

 

技术分享

 

 

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)

);

 

技术分享

 

技术分享

 

DESC user;              查看user表的数据结构   description

 

技术分享

 

 

3)插入,更新字段  

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

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

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

 

技术分享

 

 

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

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

 

ALTER TABLE linux DROP class;          删除class字段 

 

技术分享

 

 

UPDATE UTAB SET class=’1’;    设置新添加的class字段的值。(不加where全部添加)

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

 

 

技术分享

 

 

技术分享

 

 

3)删除表,删除数据库      

DROP table UTAB;  

DROP DATABASES;  数据库

技术分享

 

数据库的相对访问和绝对访问

绝对访问

select * FROM mysql.user;           查询mysql库下的user表中的索引

 

技术分享

 

相对访问:

SHOW DATABASES;

USE mysql;

SHOW TABLES;

SELECT * FROM user;

 

 

创建用户

CREATE USER miao@localhost identified by ‘westos‘;  创建本地用户

CREATE USER miaomiao@‘%‘ identified by ‘westos‘;        创建远程用户

 

查看远程用户的授权

 

技术分享

 

创建本地用户

 

技术分享

 

新用户刚开始没有权限,只能登陆,什么都干不了

 

技术分享

 

用户授权

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

*.*:所有数据库的所有表

GRANT INSERT on mysql.* lalala@‘%‘ 远程

 

 

重载授权表

FLUSHPRIVILEGES;

 

查看授用户授权

SHOW GRANTS FOR lalala@localhost;

 

技术分享

 

miao用户可以创建新的数据库啦~~

 

技术分享

 

 

撤销用户权限

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

 

技术分享

 

删除用户

DROP USER lalala@localhost;

 

修改root密码

 

1)知道密码,直接修改

mysqladmin -uroot -pwestos password redhat

 

技术分享

 

2)忘记root用户密码

systemctl stop mariadb

mysqld_safe --skip-grant-tables &    绕过安全验证机制

 

mysql -uroot

 

 

SELECT * FROM mysql.user

查看用户名,密码字段书写方式。

 

 

技术分享


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

                加密密码,否则密码为明文

 

技术分享

 

密码为明文


技术分享

 

 

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

     密码被加密!!!!!!!!

 

技术分享


fg

killall -9 mysqld_safe

ps aux | grep mysql

kill -9 PID结束残留mysql进程

 

技术分享

 

数据库的备份

mysqldump –uroot –plalala xixixi            备份xixixi数据库

 

技术分享

 

技术分享

 

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)备份并删除数据库

 

技术分享

 

 

2)全部恢复


技术分享

 

3)只恢复表头


技术分享

 

 

 

 

在网页上用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


技术分享

 

2)check Documentation.txt

/Quick install


技术分享

 

3.配置方法

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

vim config.inc.php

cookie 不能为空,随便填一个

 

技术分享

 

systemctl stop firewalld

systemctl start httpd


检验

技术分享

 

 

 

在浏览器中插入一个字段~~~


技术分享

 

 

在本地数据库可以查看其添加~~

 

技术分享

 

简单邮件服务    

25:通过IP,发送传输

 

dns服务器:将域名解析为ip

 

 

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

 

vim /etc/resolv.conf

nameserver 172.25.254.11

 

技术分享

 

 

新建两个MX域:

lalala.com.zone 172.25.254.11

zoe.com.zone    172.25.254.10

 

技术分享

 

技术分享

检测

dig -t MX westos.com

dig -t MX linux.com

 

技术分享

 

技术分享

 

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

 

技术分享

 

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端口

 

技术分享

 

写了113: inet_interfaces = all 打开外网和内网的端口。

 

技术分享

 

简单命令

 

mailq           查看邮件队列

postqueue -f        重发邮件队列中的邮件

postspuser -d xxxx  删除邮件队列中只滞留的邮件  -d queue_id (delete)

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

postspuser -d xxxx

 

技术分享

 

检测

双方方可以互发邮件啦~~~

注意:接受方需要关闭防火墙,要不然收不到。

 

zoe主机给lalala主机发送!

 

技术分享

 

 

mailq为滞留的邮件,可以用postqueue–f 重新发送

 

lalala主机成功接受!

 

技术分享

 

lalala主机给zoe主机发送!

 

技术分享

 

zoe主机成功接受!

 

技术分享

 

postconf -n                     查看当前设置    -n (non-defaults)

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

postconf -d | grep innet            查看默认设置    -d(defaults)



技术分享

 

技术分享

 

 

 

 

 

收件人的别名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

 

技术分享

 

vim     /etc/moreusers

 


技术分享

 

postalias /etc/aliases          让别名生效

 

技术分享

 

技术分享

 

 

出站地址伪装

 

DNS服务器

 

vim /etc/postfix/generic

 

root@lalala.com        2222222@qq.com

真域名                          假域名


技术分享


 

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

 

技术分享

 

 

 postconf -d|grep generic  查看加密使用的参数

 

 

技术分享

 

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

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

 

检测

收件人,受到的邮件的发送方为假域名

 

发件人为lalala.com

 

技术分享

 

收件人看到的发件人为22222222@qq.com,伪装成功~~~

 

技术分享

 

 

 

 

远程登陆邮件服务器(也可以检测邮件服务器的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主机发邮件

 

技术分享

 

lalala主机收到了zoe主机发的邮件~

 

技术分享

 

 

 

 

 


本文出自 “12049878” 博客,谢绝转载!

linux学习笔记9