搭建CA服务器
CA服务是给服务器发放数字证书,被通信双方信任,独立的第三方机构

国内常见的CA机构
中国金融认证中心(CFCA)
中国电信安全认证中心(CTCA)
北京数字证书认证中心(BJCA)

PKI公钥基础设施
一套标准的密钥管理平台
通过公钥加密,数字证书技术确保信息安全

PKI体系的基本组成
权威认证机构(CA)
数字证书库,密钥备份及恢复系统
证书作废系统,应用接口

——————————————————————————————————————————————
OpenSSL加密工具

实现ssl/tls协议及各种加密应用
创建并管理私钥,公钥,证书,证书服务
使用公钥加解密
使用各种算法进行加解密
计算信息摘要

对称加密:
enc 算法 -e -in 输入文件 -out 输出文件(-e加密)
enc 算法 -d -in 输入文件 -out 输出文件(-d解密)

实例:
在ceshiji(192.168.4.10)上部署ca服务器
思路:
配置ca签署环境
为ca服务器生成私钥
为ca服务器创建根证书
共享根证书
[root@ceshiji pki]# ls
CA ca-trust consumer entitlement java nssdb product product-default rpm-gpg rsyslog tls
[root@ceshiji ~]# vim /etc/pki/tls/openssl.cnf(配置ca签署环境)
40 [ CA_default ]
42 dir = /etc/pki/CA(ca签署工作目录)
43 certs = $dir/certs(发出去的证书存放处)
44 crl_dir = $dir/crl
45 database = $dir/index.txt(证书索引文件,默认在目录下没有)
50 certificate = $dir/my-ca.crt(根证书存放位置及名字,名字自定义,)
51 serial = $dir/serial(证书编号文件,默认在目录下没有)
55 private_key = $dir/private/ca.key(私钥存放处和私钥名字,名字可以自定义)
84 [ policy_match ](申请的证书请求是否一样,match必须,supplied可选)
85 countryName = match(国家)
86 stateOrProvinceName = match(省/州)
87 organizationName = match(公司名)
88 organizationalUnitName = optional
89 commonName = supplied
128 [ req_distinguished_name ]
129 countryName = Country Name (2 letter code)
130 countryName_default = CN(国家)
131 countryName_min = 2
132 countryName_max = 2
135 stateOrProvinceName_default = beijing(省份)
138 localityName_default = beijing(市)
141 0.organizationName_default = hydra(单位)
148 organizationalUnitName_default = ope(部门,可写可不写)
[root@ceshiji CA]# touch index.txt(创建证书索引文件,发出去过哪些证书)
[root@ceshiji CA]# echo 01 > serial(创建发放证书的编号文件)

[root@ceshiji ~]# cd /etc/pki/CA/private/(进入目录)
[root@ceshiji private]# man openssl(查看帮助)
[root@ceshiji private]# openssl genrsa -des3 2048 > ca.key(为CA服务器生成私钥,私钥名字要和配置文件里的一样)
Enter pass phrase:(输入保护私钥的密码)
Verifying - Enter pass phrase:(确认密码)
[root@ceshiji private]# chmod 600 ca.key (安全起见。设置权限)

[root@ceshiji ]# cd /etc/pki/CA/(进入CA目录)
[root@ceshiji CA]# openssl req -new -x509 -key /etc/pki/CA/private/ca.key -days 365 > my-ca.crt(创建根证书,名字也要和配置文件里的一样)
Enter pass phrase for /etc/pki/CA/private/ca.key:(输入私钥密码)
Common Name (eg, your name or your server's hostname) []:www.Anonymous.net(ca名)
[root@ceshiji CA]# ls
certs crl index.txt my-ca.crt newcerts private serial

[root@ceshiji ~]# yum -y install httpd
[root@ceshiji ~]# mkdir /var/www/html/ca
[root@ceshiji ~]# cp /etc/pki/CA/my-ca.crt /var/www/html/ca/(共享根证书)
[root@ceshiji ~]# /etc/init.d/httpd start ; chkconfig httpd on
[root@158 ~]# firefox http://192.168.4.10/ca(客户端访问测试)

实例:
配置http+ssl
在网站服务器67上配置https默认监听443端口,实现数据加密传输

网站服务器配置:
创建私钥
使用私钥生成证书请求文件,并把证书请求文件上传给ca服务器
[root@67 ~]# yum -y install httpd
[root@67 ~]# echo web67 > /var/www/html/test.html
[root@67 ~]# echo hydra > /var/www/html/index.html
[root@67 ~]# /etc/init.d/httpd start ; chkconfig on
[root@67 ~]# cd /etc/pki/tls/private/
[root@67 private]# openssl genrsa 2048 > www.key(生成私钥,不需要输入密码)
[root@67 private]# openssl req -new -key www.key > /root/www.csr(生成证书)
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:beijing
Locality Name (eg, city) [Default City]:beijing
Organization Name (eg, company) [Default Company Ltd]:hydra
Organizational Unit Name (eg, section) []:ope
Common Name (eg, your name or your server's hostname) []:www.Anonymous.net
[root@67 ~]# scp www.csr 192.168.4.10:/root/(上传证书给ca服务器)

ca服务器配置:
签发数字证书,并把证书下发给网站服务器
[root@ceshiji ~]# cat www.csr(查看证书请求文件)
[root@ceshiji certs]# cd /etc/pki/CA/certs/
[root@ceshiji certs]# openssl ca -in /root/www.csr > www.crt(签收证书)
[root@ceshiji certs]# scp www.crt 192.168.4.67:/root/(下发证书)

网站服务器配置:
配置网站服务在运行时加载自己的私钥和数字证书,并重启网站服务
[root@67 ~]# yum list | grep -i ssl
mod_ssl(需要安装模块)
[root@67 ~]# yum -y install mod_ssl
[root@67 ~]# grep -v -E '^#|^$' /etc/httpd/conf.d/ssl.conf(查看文件)
LoadModule ssl_module modules/mod_ssl.so(实现加密传输加载的模块)
Listen 443(监听443端口)
<VirtualHost _default_:443>(虚拟主机)
SSLEngine on(on启用加密功能)
SSLCertificateFile /etc/pki/tls/certs/localhost.crt(证书文件路径)
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key(私钥文件路径)
[root@67 ~]# mv www.crt /etc/pki/tls/certs/(把证书移动到加载目录下)
[root@67 ~]# vim /etc/httpd/conf.d/ssl.conf(编辑文件)
SSLCertificateFile /etc/pki/tls/certs/www.crt(改证书名字)
SSLCertificateKeyFile /etc/pki/tls/private/www.key(改私钥名字)
[root@67 ~]# /etc/init.d/httpd restart
[root@67 ~]# netstat -utnalp | grep http(监听80和443端口)
tcp 0 0 :::80 :::* LISTEN 2600/httpd
tcp 0 0 :::443 :::* LISTEN 2600/httpd

配置网站服务器接收到访问80端口的请求时,转发到443端口
[root@67 ~]# vim /etc/httpd/conf/httpd.conf
<IfModule ssl_module>(地址重写模块,默认没有,要添加)
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
</IfModule>
RewriteEngine on(启用地址重写)
RewriteCond %{SERVER_ROOT} !^443$(规则)
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R](跳转)
[root@67 ~]# /etc/init.d/httpd restart
客户端测试:
[root@158 ~]# firefox http://192.168.4.10/ca(下载根证书)
[root@158 ~]# firefox http://192.168.4.67/

实例:
配置mail+ssl
需安装postfix、dovecot、cyrus-sasl
相关协议及端口:
smtp 25 +tls/ssl
pop3 110
pop3S 995
imap 143
imaps 993
邮件服务器配置
[root@mail ~]# cd /etc/pki/tls/private/
[root@mail private]# openssl genrsa 2048 > mail.key(生成私钥,不需要输入密码)
[root@mail private]# openssl req -new -key mail.key > /root/mail.csr(生成证书)
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:beijing
Locality Name (eg, city) [Default City]:beijing
Organization Name (eg, company) [Default Company Ltd]:hydra
Organizational Unit Name (eg, section) []:ope
Common Name (eg, your name or your server's hostname) []:www.mail.net
[root@mail ~]# scp mail.csr 192.168.4.10:/root/(上传证书给ca服务器)

ca服务器配置:
签发数字证书,并把证书下发给网站服务器
[root@ceshiji ~]# cat mail..csr(查看证书请求文件)
[root@ceshiji certs]# cd /etc/pki/CA/certs/
[root@ceshiji certs]# openssl ca -in /root/mail.csr > mail.crt(签收证书)
[root@ceshiji certs]# scp mail.crt 192.168.4.12:/root/(下发证书)

邮件服务器配置
[root@mail ~]# mv mail.csr /etc/pki/tls/certs/(把证书文件移动到目录下)
配置加密发送邮件/etc/init.d/postfix
[root@mail ~]# yum -y install cyrus-sasl-plain cyrus-sasl cyrus-sasl-lib(需要服务)
[root@mail ~]# /etc/init.d/saslauthd start(开启服务)
[root@mail ~]# vim /etc/postfix/main.cf
smtpd_use_tls = yes(开启tls加密,默认没有。要手动写)
smtpd_tls_key_file = /etc/pki/tls/private/mail.key(私钥目录)
smtpd_tls_cert_file = /etc/pki/tls/certs/mail.crt(证书目录)
[root@mail ~]# /etc/init.d/postfix restart

配置加密接收邮件/etc/init.d/dovecot
[root@mail ~]# yum -y install dovecot(需安装服务)
[root@mail ~]# cd /etc/dovecot/conf.d/
[root@mail conf.d]# vim 10-ssl.conf(更改配置文件)
[root@mail ~]# cd /etc/pki/tls/certs/
[root@mail certs]# cp mail.crt /etc/pki/dovecot/certs(拷贝证书)
[root@mail ~]# cd /etc/pki/tls/private/
[root@mail private]# cp mail.key /etc/pki/dovecot/private(拷贝私钥)
ssl = yes(去掉注释)
ssl_cert = </etc/pki/dovecot/certs/mail.crt(证书名)
ssl_key = </etc/pki/dovecot/private/mail.key(私钥名)
[root@mail ~]# /etc/init.d/dovecot restart(查看端口)
tcp 0 0 0.0.0.0:993 0.0.0.0:* LISTEN 4608/dovecot
tcp 0 0 0.0.0.0:995 0.0.0.0:* LISTEN 4608/dovecot

客户端测试(在邮件软件里设置收发邮件时使用的协议)

—————————————————————————————————————————————————————————————————————

扫描与抓包
为什么要扫描?
以获取一些公开数据/非公开数据信息为目的
检测潜在的风险
查找可攻击目标
收集设备/主机/系统/软件信息
发现可利用的安全漏洞

典型的扫描方式
Scan,主动探测
Sniff,被动监听/嗅探
Capture,数据包获取(抓包)

常见的安全分析工具
扫描器:nmap
嗅探器:ettercap
协议分析:tcpdump,wireshark

nmap简介
一款强大的网络探测工具,支持多种探测技术
ping扫描
多端口扫描
tcp/ip指纹效验
基本用法:
nmap [扫描类型] [选项] <扫描目标>
常用的扫描类型
-sS:tcp syn扫描(半开)
-sT:tcp 连接扫描(全开)
-sU:udp扫描
-sP:icmp扫描
-A:目标系统全面分析(是一个复合选项,相当于-O os检测,-sV 版本检测,-sC 脚本检测 traceroute跟踪)

当要检测的web服务器多,可以写成脚本
并把down掉的服务器发邮件给管理员
#!/bin/bash
dtime=`date +%F-%T`
for ip in 67 10 12 158
do
status=`nmap -p 80 192.168.4.$ip | grep open`
if [ ! -z "$status" ] ;then
echo "192.168.4.$ip web-server starting"
else
echo "192.168.4.$ip dtime web-server down"
echo "192.168.4.$ip web-server down" > /tmp/ip.txt
mail -s "192.168.4.$ip web-server down" root < /tmp/ip.txt
fi
done

检测主机在不在线
#!/bin/bash
x=0
for((host=1;host<=254;host++))
do
nmap -sP 192.168.4.$host | grep -q 'is up'
if [ $? -eq 0 ] ;then
echo "host 192.168.4.$host is on line"
else
x=`expr $x + 1`
fi
done
echo "no line $x "

tcpdump抓包工具
一款提取tcp数据包的命令行工具
基本用法:
tcpdump [选项] [过滤条件]
常见监控选项
-i:指定监控的网络接口
-A:转换为ACSⅡ码,以方便阅读
-w:将数据包信息保存到指定文件
-r:从指定文件读取数据包信息
过滤条件
类型:host,net,port,porteange
方向:src,dst
协议:tcp,udp,ip,wlan,arp
组合:and,or,not
示例:
[root@67 ~]# tcpdump -A -w /tmp/mail.cap tcp port 110(抓取tcp协议上端口110的包,保存到tmp下)
[root@67 ~]# tcpdump -r /tmp/mail.cap(读取抓包信息)

wireshark协议分析器
一款网络协议分析软件,前身是著名的etherreal以太网分析器
rhel6光盘中的俩个包
wireshark,wireshark-gnome

linux 搭建CA服务器 http+ssl mail+ssl 扫描与抓包的更多相关文章

  1. Linux 搭建SVN 服务器(转)

    一. SVN 简介 Subversion(SVN) 是一个开源的版本控制系統, 也就是说 Subversion 管理着随时间改变的数据. 这些数据放置在一个中央资料档案库 (repository) 中 ...

  2. 原 Linux搭建SVN 服务器2

    原 Linux搭建SVN 服务器 发表于1年前(2014-08-05 17:55)   阅读(12257) | 评论(3) 31人收藏此文章, 我要收藏 赞3 摘要 Linux搭建SVN 服务器 目录 ...

  3. 原 Linux搭建SVN 服务器

    原 Linux搭建SVN 服务器 发表于1年前(2014-08-05 17:55)   阅读(12257) | 评论(3) 31人收藏此文章, 我要收藏 赞3 摘要 Linux搭建SVN 服务器 目录 ...

  4. Linux搭建SVN 服务器

    Linux搭建SVN 服务器 1          安装SVN 2          使用客户端连接 2.1       使用windows的客户端 2.2       使用Linux下的命令行 3  ...

  5. Linux搭建SVN 服务器(转)

    转自:http://my.oschina.net/lionel45/blog/298305 Linux搭建SVN 服务器 作者: 沈小然    日期:2014年 8月 5日 1          安装 ...

  6. Linux 搭建SVN 服务器

    一. SVN 简介 Subversion(SVN) 是一个开源的版本控制系統, 也就是说 Subversion 管理着随时间改变的数据. 这些数据放置在一个中央资料档案库 (repository) 中 ...

  7. Linux搭建SVN服务器(服务端)

    Linux搭建SVN服务器(服务端) 1 安装SVN SVN客户端:TortoiseSVN,官网下载:https://tortoisesvn.net/downloads.html(客户端) # yum ...

  8. 使用Linux搭建FTP服务器实现文件共享

    使用Linux搭建FTP服务器实现文件共享... ---------------- Linux中的文件共享:FTPVSFTPDVSFTPD虚拟用户 FTP可以用在Linux与Linux 和Window ...

  9. Linux搭建DHCP服务器

    Linux搭建DHCP服务器   实验目标: 通过本实验掌握基于Linux的DHCP服务器搭建技能. 本实验包含内容为yum的认识与使用,磁盘挂载的概念与使用,DHCP原理及配置,systemctl服 ...

随机推荐

  1. 完美解决打开github速度慢的问题

    摘抄自知乎. 修改hosts(HOSTS文件路径:C:\Windows\System32\drivers\etc\hosts) 1.打开Dns检测|Dns查询 - 站长工具 2.在检测输入栏中输入ht ...

  2. js—双等号引起的类型转换过程

    一.首先看双等号前后有没有NaN,如果存在NaN一律返回false 二.再看双等号前后有没有布尔,有布尔就将布尔转换为数字.(false是0,true是1) 三.接着看双等号前后有没有字符串,有三种情 ...

  3. mybatis支持oracle批量插入

    问题:mysql使用mybatis批量插入时,通过foreach标签,将每条记录按照逗号","连接即可. 但是,oracle不支持. oracle支持如下写法: <inser ...

  4. 浅析调用JSR303的validate方法, 验证失败时抛出ConstraintViolationException

    废话不多说,直接进入正题:如何使用JSR303的validate,进行数据校验,失败后直接抛出异常加入流转信息中,并在form页面提示出来. 首先我们为了启用验证,需要向 项目中添加Bean验证的实现 ...

  5. zookeeper 实现分布式锁zookeeper 使用 Curator 示例监听、分布式锁

    下载地址: http://download.csdn.net/download/ttyyadd/10239642

  6. ABP官方文档翻译 3.3 仓储

     仓储 默认仓储 自定义仓储 自定义仓储接口 自定义仓储实现 基础仓储方法管理数据库连接 查询 获取单个实体 获取实体列表 关于IQueryable 自定义返回值 插入 更新 删除 其他 关于异步方法 ...

  7. 洛谷 [P2701] 巨大的牛棚

    首先,本题是一道最大子矩阵问题,且m,n较小,可以使用DP做, 与 洛谷 [P1387]最大正方形 做法相同. #include <iostream> #include <cstdi ...

  8. 使用Dockerfile构建镜像

    Dockerfile是一个文本格式的配置文件,用户可以使用Dockerfile快速创建自定义的镜像.它类似shell脚本,由一行行命令组成,支持以#开头的注释行.一般而言,Dockerfile分为四部 ...

  9. 从Myeclipse到Intelj Idea

    前言:经历了从eclipse到Myeclipse的时间,大学时候用Eclipse,开始工作的时候选择Myeclipse,都能体会到Java的IDE的先进和高明之处,直到最近,公司项目采git和Grad ...

  10. console那些你不曾知道的玩法

    一.console最常见的四种方法: FireFox(58) Chrome(51) 二.打印对象: 平时想输出对象属性时,可以直接打印对象,对Object使用toString方法会得到 [Object ...