linux 搭建CA服务器 http+ssl mail+ssl 扫描与抓包

搭建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服务器创建根证书
共享根证书
[[email protected] pki]# ls
CA ca-trust consumer entitlement java nssdb product product-default rpm-gpg rsyslog tls
[[email protected] ~]# 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(部门,可写可不写)
[[email protected] CA]# touch index.txt(创建证书索引文件,发出去过哪些证书)
[[email protected] CA]# echo 01 > serial(创建发放证书的编号文件)

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

[[email protected] ]# cd /etc/pki/CA/(进入CA目录)
[[email protected] 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名)
[[email protected] CA]# ls
certs crl index.txt my-ca.crt newcerts private serial

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

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

网站服务器配置:
创建私钥
使用私钥生成证书请求文件,并把证书请求文件上传给ca服务器
[[email protected] ~]# yum -y install httpd
[[email protected] ~]# echo web67 > /var/www/html/test.html
[[email protected] ~]# echo hydra > /var/www/html/index.html
[[email protected] ~]# /etc/init.d/httpd start ; chkconfig on
[[email protected] ~]# cd /etc/pki/tls/private/
[[email protected] private]# openssl genrsa 2048 > www.key(生成私钥,不需要输入密码)
[[email protected] 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
[[email protected] ~]# scp www.csr 192.168.4.10:/root/(上传证书给ca服务器)

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

网站服务器配置:
配置网站服务在运行时加载自己的私钥和数字证书,并重启网站服务
[r[email protected] ~]# yum list | grep -i ssl
mod_ssl(需要安装模块)
[[email protected] ~]# yum -y install mod_ssl
[[email protected] ~]# 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(私钥文件路径)
[[email protected] ~]# mv www.crt /etc/pki/tls/certs/(把证书移动到加载目录下)
[[email protected] ~]# vim /etc/httpd/conf.d/ssl.conf(编辑文件)
SSLCertificateFile /etc/pki/tls/certs/www.crt(改证书名字)
SSLCertificateKeyFile /etc/pki/tls/private/www.key(改私钥名字)
[[email protected] ~]# /etc/init.d/httpd restart
[[email protected] ~]# netstat -utnalp | grep http(监听80和443端口)
tcp 0 0 :::80 :::* LISTEN 2600/httpd
tcp 0 0 :::443 :::* LISTEN 2600/httpd

配置网站服务器接收到访问80端口的请求时,转发到443端口
[[email protected] ~]# 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](跳转)
[[email protected] ~]# /etc/init.d/httpd restart
客户端测试:
[[email protected] ~]# firefox http://192.168.4.10/ca(下载根证书)
[[email protected] ~]# firefox http://192.168.4.67/

实例:
配置mail+ssl
需安装postfix、dovecot、cyrus-sasl
相关协议及端口:
smtp 25 +tls/ssl
pop3 110
pop3S 995
imap 143
imaps 993
邮件服务器配置
[[email protected] ~]# cd /etc/pki/tls/private/
[[email protected] private]# openssl genrsa 2048 > mail.key(生成私钥,不需要输入密码)
[[email protected] 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
[[email protected] ~]# scp mail.csr 192.168.4.10:/root/(上传证书给ca服务器)

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

邮件服务器配置
[[email protected] ~]# mv mail.csr /etc/pki/tls/certs/(把证书文件移动到目录下)
配置加密发送邮件/etc/init.d/postfix
[[email protected] ~]# yum -y install cyrus-sasl-plain cyrus-sasl cyrus-sasl-lib(需要服务)
[[email protected] ~]# /etc/init.d/saslauthd start(开启服务)
[[email protected] ~]# 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(证书目录)
[[email protected] ~]# /etc/init.d/postfix restart

配置加密接收邮件/etc/init.d/dovecot
[[email protected] ~]# yum -y install dovecot(需安装服务)
[[email protected] ~]# cd /etc/dovecot/conf.d/
[[email protected] conf.d]# vim 10-ssl.conf(更改配置文件)
[[email protected] ~]# cd /etc/pki/tls/certs/
[[email protected] certs]# cp mail.crt /etc/pki/dovecot/certs(拷贝证书)
[[email protected] ~]# cd /etc/pki/tls/private/
[[email protected] 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(私钥名)
[[email protected] ~]# /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
示例:
[[email protected] ~]# tcpdump -A -w /tmp/mail.cap tcp port 110(抓取tcp协议上端口110的包,保存到tmp下)
[[email protected] ~]# tcpdump -r /tmp/mail.cap(读取抓包信息)

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

时间: 2024-12-25 23:07:00

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

windows server 2003搭建CA服务器并启用https(SSL)

本文简单讲解在Windows server 2003上如何搭建CA服务,并启用SSL.废话不多说,直接开始搭建环境.想要知道证书服务器CA是怎么一回事,或想要知道SSL原理的朋友,请自行百度,说的非常清楚一. 搭建证书服务器1. 在系统的控制面板中找到"添加或删除程序",点击打开2. 点击左侧"添加/删除windows组件",选中网络服务和证书服务,点击下一步这里为什么还要选择网络服务和应用程序服务呢,因为"证书服务web注册支持"依赖于IIS3

linux 搭建https 服务器 (apache)

一.  安装准备 1.    安装Openssl 要使Apache支持SSL,需要首先安装Openssl支持.这里使用的是openssl-0.9.8k.tar.gz 下载Openssl:http://www.openssl.org/source/ tar -zxf openssl-0.9.8k.tar.gz    //解压安装包 cd openssl-0.9.8k                 //进入已经解压的安装包 ./config                          //配

CA和证书(企业内网搭建CA服务器生成自签名证书,CA签署,实现企业内网基于key验证访问服务器)

一些CA基础 PKI:Public Key Infrastructure签证机构:CA(Certificate Authority)注册机构:RA证书吊销列表:CRL X.509:定义了证书的结构以及认证协议标准版本号 主体公钥序列号 CRL分发点签名算法 扩展信息颁发者 发行者签名有效期限主体名称 证书类型:证书授权机构的证书服务器用户证书获取证书两种方法:1)使用证书授权机构生成证书请求(csr)2)将证书请求csr发送给CACA签名颁发证书自签名的证书自已签发自己的公钥 证书作用 获取证书

Linux搭建DNS服务器

DNS相关概念 DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串.通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析).DNS协议运行在UDP协议之上,使用端口号53. 作用:解析域名 区域:正向区域.反向区域 记录: A记录 MX记录:搭建邮件服务器 PTR记录:反向记录,出现在反向区域中 CNAME记录:别名记录 NS记录:DNS授权服

Linux搭建SVN 服务器

Linux搭建SVN 服务器 1          安装SVN 2          使用客户端连接 2.1       使用windows的客户端 2.2       使用Linux下的命令行 3          FAQ 3.1       命令行方式连接,提示svn: No repository found in 'svn://192.168.11.229/project'错误? 3.2       执行命令# svn co svn://192.168.11.229/project时提示“

Linux 搭建SVN 服务器

一. SVN 简介 Subversion(SVN) 是一个开源的版本控制系統, 也就是说 Subversion 管理着随时间改变的数据. 这些数据放置在一个中央资料档案库 (repository) 中. 这个档案库很像一个普通的文件服务器, 不过它会记住每一次文件的变动. 这样你就可以把档案恢复到旧的版本, 或是浏览文件的变动历史. SVN中的一些概念 : (1). repository(源代码库) 源代码统一存放的地方 (2). Checkout (提取) 当你手上没有源代码的时候,你需要从r

linux搭建web服务器

linux httpd 假设服务器地址为192.168.80.20/24 1.   将准备安装的httpd软件包共享给everyone , (1)在linux上mount.cifs  //真机IP地址/共享文件夹名   /media / ls  /meidia/ 查看 tar    xjvf   httpd-2.4.10.tar.bz2    -C  /usr/src       解压至/usr/src下 下面两个插件是httpd2.4以后的版本所需要的 http://ftp.jaist.ac.

Linux 搭建SVN 服务器(转)

一. SVN 简介 Subversion(SVN) 是一个开源的版本控制系統, 也就是说 Subversion 管理着随时间改变的数据. 这些数据放置在一个中央资料档案库 (repository) 中. 这个档案库很像一个普通的文件服务器, 不过它会记住每一次文件的变动. 这样你就可以把档案恢复到旧的版本, 或是浏览文件的变动历史. SVN中的一些概念 : (1). repository(源代码库) 源代码统一存放的地方 (2). Checkout (提取) 当你手上没有源代码的时候,你需要从r

Linux搭建SVN 服务器(转)

转自:http://my.oschina.net/lionel45/blog/298305 Linux搭建SVN 服务器 作者: 沈小然    日期:2014年 8月 5日 1          安装SVN 官网下载:http://subversion.apache.org/packages.html SVN客户端:TortoiseSVN,官网下载:http://tortoisesvn.net/downloads.html # yum install subversion 1.       新建