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
浙公网安备 33010602011771号