使用samba实现文件共享+openssl部署(https)

Valky
阅读19 喜欢0 教程 更新2019-11-26

认证CA实现https访问web站点

主机1

环境:RHEL7(虚拟机) ip地址:192.168.10.11 安装服务:samba、samba_client

主机2

环境:RHEL7(虚拟机) ip地址:192.168.10.12 安装服务:http、https、mod_ssl

配置主机1

1、添加一块20G 的硬盘,格式化为xfs格式,使用UUID永久挂载至/smb_apache目录。添加的硬盘设备名为/dev/sdb,格式化为xfs格式

#mkfs.xfs /dev/sdb

查看/dev/sdb的uuid并永久挂载到/smb_apache目录

#mkdir /smb_apache //先创建目录 
#blkid //查看uuid
 

使用UUID实现自动挂载/dev/sdb,挂载目录为smb_apache,格式为xfs 使用mount -a挂载并查看是否挂载成功 2、配置samba文件共享服务,共享名为smbapache

#yum install samba//安装samba服务

使用grep命令后面添加-v参数(反向选择),分别去掉所有以井号(#)和分号(;)开头的注释信息行,对于剩余的空白行可以使用^$参数来表示并进行反选过滤,最后把过滤后的可用参数信息通过重定向符覆盖写入到原始文件名称中,便于查看重要参数

#mv smb.conf smb.conf.bak#cat smb.conf.bak | grep -v "#" | grep -v ";" | grep -v "^$" /etc/samba/smb.conf#cat smb.conf

 

 添加以下配置参数 文件共享目录为/smb_apache

 

 注释信息为:This directory is used to share smb to apache

 

 使用apache用户共享,管理者为apache,允许写入操作


 

配置后(可根据实际情况添加参数)

 

#systemctl restart samba //开启samba服务#systemctl enable samba //开机自启动#setenforce 0 //关闭selinux

 
 3、查看防火墙状态
4、查看samba服务共享内容 使用smbclient命令查看共享内容
#smbclient -L 192.168.10.11 -U apache

5、到网站下载一个html5的模板解压缩放入/smb_apache目录下 (httpd配置文件默认访问引用目录下的index.html文件,如果有需要的话可到httpd主配置文件中修改)

配置主机2

1、将主机1共享的samba目录永久挂载到/web目录下
#mkdir /web //创建目录
#vim auth.smb //创建记录账户密码的文件

#vim /etc/fstab //自动挂载服务#//192.168.10.11/smbapache /web cifs credentials=/root/auth.smb 0 0 //内容依次为远程共享信息、本地挂载目录、文件系统类型、认证文件以及开机自检选项

使用mount -a命令找不到地址

   

关闭服务端与客户端的防火墙,就能成功挂载(或者关闭相应的防火墙策略)

 

 2、进入到/web目录下 查看到共享文件

   

 3、配置CA认证机构 生成CA私钥

#openssl genrsa -out /etc/pki/CA/private/cakey.pem
生成CA自签证书
(注意:信息根据自己的实际情况填写,后面生成httpd请求证书的信息与这里一致)


#openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 365 创建文件 #touch /etc/pki/CA/{index.txt,serial}#touch /etc/pki/CA/{index.txt,serial}#echo 01 > /etc/pki/CA/serial

 
 导入受信任的根证书颁发机构
#cat /etc/pki/CA/cacert.pem >> /etc/pki/tls/certs/ca-bundle.crt 
生成httpd的私钥
#mkdir /etc/httpd/ssl
#openssl genrsa -out /etc/httpd/ssl/httpd.key
生成httpd请求证书
(注意:填写的信息应该与之前生成CA自签证书的信息一致,否则会导致出错)
#openssl req -new -key /etc/httpd/ssl/httpd.key -out /etc/httpd/ssl/httpd.csr -days 365
签署证书
#openssl ca -in /etc/httpd/ssl/httpd.csr -out /etc/httpd/ssl/httpd.crt -days 365
查看证书内容
#openssl x509 -in httpd.crt -noout -text
4、搭建apache网站,监听80端口和443端口,将网站的根目录设置为/web
#yum install httpd -y //安装httpd服务
#yum install mod_ssl -y //安装mod_ssl模块
编辑httpd子配置文件 监听80和443端口并写入证书与httpd私钥的路径 (注意:要安装mod_ssl模块)

(注意:对于443端口,在httpd子配置文件中对443端口监听但是不生效,由于在/etc/httpd/conf.d/ssl.conf文件中已开启对443端口的监听,所以443端口被占用,暂时把ssl.conf文件关闭,httpd的子配置文件才能对443端口进行监听。)

开启httpd服务设置开机自启动项 编辑hosts文件写入ip和域名
#vim /etc/hosts 
192.168.10.12 www.zrp.com 

使用RHEL虚拟机中访问 访问www.zrp.com

   


 访问https://www.zrp.com

   

使用widows端访问 在windows直接在hosts文件中写入主机2的ip和域名不能访问到web站点 尝试在主机1配置DNS服务,把windows的DNS改为主机1的ip地址 使用Windows访问web网站 访问www.zrp.com

   

 访问https://www.zrp.com 访问失败

   

尝试在RHEL端给windows端颁发证书 RHEL端给widows当ca,直接导入证书 把RHEL中/etc/pki/CA/cacert.pem传输到windows,然后重命名为cacert.crt 更改安全设置

   
 点击导入
    

击完成,导入成功。 点击证书,可以查看到证书导入成功

   

再次访问https://www.zrp.com 实现https加密传输


   

samba配置文件参数详解: http://note.youdao.com/noteshare?id=c46a4106893b28cd57599e5e5530df26&sub=WEBe71f400458b9708934c4f49d3e5b731e