linux 搭建CA服務器 http+ssl mail+ssl 掃描與抓包

搭建CA服務器
CA服務是給服務器發放數字證書,被通訊雙方信任,獨立的第三方機構html

也免費的ca證書:https://certbot.eff.orgjava

國內常見的CA機構
中國金融認證中心(CFCA)
中國電信安全認證中心(CTCA)
北京數字證書認證中心(BJCA)web

PKI公鑰基礎設施
一套標準的密鑰管理平臺
經過公鑰加密,數字證書技術確保信息安全算法

PKI體系的基本組成
權威認證機構(CA)
數字證書庫,密鑰備份及恢復系統
證書做廢系統,應用接口vim

——————————————————————————————————————————————
OpenSSL加密工具安全

實現ssl/tls協議及各類加密應用
建立並管理私鑰,公鑰,證書,證書服務
使用公鑰加解密
使用各類算法進行加解密
計算信息摘要bash

對稱加密:
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 serialdom

[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

相關文章
相關標籤/搜索