MariaDB数据库 邮件服务 安全的web

环境准备:
虚拟机Server0:
# firewall-cmd --set-default-zone=trusted

虚拟机Desktop0:
# firewall-cmd --set-default-zone=trusted

################################################
安全的Web的构建

• Public Key Infrastructure,公钥基础设施
– 公钥:主要用来加密数据
– 私钥:主要用来解密数据(与相应的公钥匹配)
– 数字证书:证明拥有者的合法性/权威性(单位名称、
有效期、公钥、颁发机构及签名、......)
– Certificate Authority,数字证书授权中心:负责证书
的申请/审核/颁发/鉴定/撤销等管理工作


1.部署网站证书(营业执照)
# cd /etc/pki/tls/certs/ #默认存放网站证书路径
# wget http://classroom.example.com/pub/tls/certs/server0.crt

# ls

2.部署根证书(公安局信息)
# cd /etc/pki/tls/certs/
# wget http://classroom.example.com/pub/example-ca.crt

# ls

3.部署私钥匙(解密)
# cd /etc/pki/tls/private/
# wget http://classroom.example.com/pub/tls/private/server0.key

# ls

4.安装软件包
 yum -y install httpd
 yum -y install mod_ssl(支持加密通信)
 ls /etc/httpd/conf.d/
ssl.conf

5.修改配置文件/etc/httpd/conf.d/ssl.conf
# echo '<h1>NSD1809 Web' > /var/www/html/index.html

 vim /etc/httpd/conf.d/ssl.conf
在末行模式下 :set nu 显示行号

59 DocumentRoot "/var/www/html"
60 ServerName www0.example.com:443

指定网站证书 11:10---->11:20
100 SSLCertificateFile /etc/pki/tls/certs/server0.crt

指定私钥
107 SSLCertificateKeyFile /etc/pki/tls/private/server0.key

指定根证书
122 SSLCACertificateFile /etc/pki/tls/certs/example-ca.crt
6.重起httpd服务
systemctl restart httpd
7.验证:
 firefox https://www0.example.com
点击 了解安全的风险 ---->添加例外----->确认安全例外

#################################################
基础邮件服务

• 电子邮件服务器的基本功能
– 为用户提供电子邮箱存储空间(用户名@邮件域名)
– 处理用户发出的邮件 —— 传递给收件服务器
– 处理用户收到的邮件 —— 投递到邮箱

SMTP:用户发出的邮件的协议 默认端口 25
pop3:用户收到的邮件的协议 默认端口 110

DNS服务器:classroom.example.com

zhangsan@server0.example.com

1.安装postfix软件包,搭建为邮件服务器
 rpm -q postfix
postfix-2.10.1-6.el7.x86_64

2.修改配置文件
 vim /etc/postfix/main.cf
末行模式 :set nu 开启行号
99 myorigin = server0.example.com #默认补全的域名后缀
116 inet_interfaces = all #允许本机所有接口使用邮件服务
164 mydestination = server0.example.com
#判断为本域邮件
3.重起服务
 systemctl restart postfix

邮件测试:
1.建立邮箱的帐号
 useradd yg
 useradd xln

2.发信操作与收信操作
• mail 发信操作
– mail -s '邮件标题' -r 发件人 收件人[@收件域]...
• mail 收信操作
– mail [-u 用户名]

 mail -s 'test01' -r yg xln
haha xixi jhehe lele
.
EOT

非交互式发邮件
# echo nsd1809 | mail -s 'test02' -r yg xln

收取xln的邮件
 mail -u xln
>N 1 yg@server0.example.c Fri Oct 19 14:22 20/626
& 1 # 输入编号1

& q #退出
################################################
准备交换分区

•使用fdisk操作适合 MBR分区模式,最大容量2.2TB
1GB=1000MB (厂商)
1GiB=1024MiB (计算机)

•使用parted操作适合 GPT分区模式,支持128主分区,最大容量18EB
1EB=1000PB
1PB=1000TB
1TB=1000GB

 parted /dev/vdb
(parted) mktable gpt #指定分区模式为GPT
(parted) print #输出分区信息
(parted) mkpart #划分新的分区
分区名称? []? nsd #分区的名称
文件系统类型? [ext2]? ext4 #分区的文件系统,不起作用
起始点? 0
结束点? 2G
忽略/Ignore/放弃/Cancel? Ignore #忽略
(parted) unit GB #使用GB作为显示单位
(parted) print
(parted) mkpart
分区名称? []? nsd
文件系统类型? [ext2]? ext4
起始点? 2G
结束点? 4G

 lsblk

 

什么是交换空间
• 相当于虚拟内存
– 当物理内存不够用时,使用磁盘空间来模拟内存
– 在一定程度上缓解内存不足的问题
– 交换分区:以空闲分区充当的交换空间


 ls /dev/vdb[1-2]
/dev/vdb1 /dev/vdb2

1.格式化交换文件系统
 mkswap /dev/vdb1
blkid /dev/vdb1
 mkswap /dev/vdb2
 blkid /dev/vdb2
2.启用交换分区
swapon /dev/vdb1
swapon /dev/vdb2
 swapon -s #查看交换分区组成信息
3.停用交换分区
 swapoff /dev/vdb2
swapon -s
 swapoff /dev/vdb1
 swapon -s
4.实现开机自动启用交换分区
vim /etc/fstab
/dev/vdb1 swap swap defaults 0 0
/dev/vdb2 swap swap defaults 0 0

 swapon -a #专用于检测swap分区
 swapon -s

 swapoff /dev/vdb1
 swapoff /dev/vdb2
 swapon -s
swapon -a
 swapon -s

###############################################
MariaDB数据库
1.搭建数据库
 yum -y install mariadb-server
2.重起mariadb
 systemctl restart mariadb
3.设置数据库管理员的密码
 mysqladmin -u root password '123'
3.建立nsd库
 mysql -u root -p123
MariaDB [(none)]> create database nsd; #创建nsd库
MariaDB [(none)]> show databases; #查看所有库

4.导入数据
 wget http://classroom.example.com/pub/materials/users.sql

 mysql -u root -p123 nsd < users.sql
 mysql -u root -p123
MariaDB [(none)]> use nsd; #切换到库nsd
MariaDB [nsd]> show tables; #查看所有的表格
案例5:使用数据库查询
1. 在系统 server0 上使用数据库 nsd,并使用相
应的 SQL 查询以回答下列问题:
1)密码是 solicitous 的人的名字?
> use nsd;
> select * from base;
> select * from base where password='solicitous';
> select * from base where name='tom';
> select * from base where password='456';

2)有多少人的 姓名是 Barbara 同时居住在 Sunnyvale
> select * from base,location
where base.name='Barbara' and
location.city='Sunnyvale' and
base.id=location.id;

> select count(*) from base,location
where base.name='Barbara' and
location.city='Sunnyvale' and
base.id=location.id;

> insert base values('6','Barbara','789');
> insert location values('6','Sunnyvale');
> select * from base;
> select * from location;


2. 禁止空密码root用户访问 mariadb 数据库
> use mysql;
> desc user; #查看表结构
> select user,host,password from user;

> select user,host,password from user where password='';

> delete from user where password='';
> select user,host,password from user;

> flush privileges; #刷新user表记录

测试登陆失败,利用域名方式登陆
# mysql -u root -h server0.example.com

posted on 2018-10-19 21:57  陈钇圻  阅读(64)  评论(0)    收藏  举报

导航