分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 技术分享

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

发布时间:2023-09-06 01:11责任编辑:沈小雨关键词:http

搭建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 扫描与抓包

原文地址:http://www.cnblogs.com/Hydraxx/p/7522295.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved