首页 > 代码库 > linux学习笔记9
linux学习笔记9
dns服务器集群
一台dns服务器,不能满足大量用户同时解析的需求,所以提出dns集群概念
相当于多台服务器,同时分担访问量,高效快速。
服务器(master)172.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自动同步master的A记录文件
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