創建私有CA及dropbear的編譯安裝

使用openssl創建私有CA

配置文件/etc/pki/tls/openssl.cnf

certs           = $dir/certs            # Where the issued certs are kept  已經證書存放目錄

crl_dir         = $dir/crl              # Where the issued crl are kept  吊銷證書列表存放目錄

database        = $dir/index.txt        # database index file.  頒發過證書的索引(數據文件)

#unique_subject = no                    # Set to 'no' to allow creation of

                                        # several ctificates with same subject.

new_certs_dir   = $dir/newcerts         # default place for new certs.   創建新證書存放目錄

 

certificate     = $dir/cacert.pem       # The CA certificate  CA的自簽證書

serial          = $dir/serial           # The current serial number  當前證書的編號

crlnumber       = $dir/crlnumber        # the current crl number   吊銷證書編號

                                        # must be commented out to leave a V1 CRL

crl             = $dir/crl.pem          # The current CRL  當前吊銷的證書

private_key     = $dir/private/cakey.pem# The private key    CA的私鑰

RANDFILE        = $dir/private/.rand    # private random number file

default_days    = 365                           # how long to certify for   默認證書有效期一年

default_crl_days= 30                          # how long before next CRL   默認crl有效期為30

default_md      = sha256           # use SHA-256 by default     使用sha256算法

服務器端:

1、  生成秘鑰對

(umask 077 ;openssl genrsa –out private/cakey.pem 2048)

將生成的秘鑰權限設置為600的權限,僅屬主能訪問,并且生成2048位的秘鑰

如果想查看公鑰可以使用如下指令

openssl rsa -key private/cakey.pem -pubout -out key

1.jpg

2、  生成自簽證書

opensl req -new –x509 -key private/cakey.pem -out cacert.pem -days 3655

生成自簽證書此時自己就是證書的頒發機構,并且證書的有效期為10年,在生成證書的時候需要填寫國家,州或省份,城市,公司名,組織名等等信息,這里默認要求國家省份和組織名要求和CA的一樣,如果有用戶請求前三項不一樣時,可以修改openssl.cnf配置文件將下面的前三項修改optional值即可,這時就不需要要求一致了

[ policy_match ]

countryName             = match

stateOrProvinceName      = match

organizationName    = match

organizationalUnitName  = optional

commonName           = supplied

emailAddress             = optional

    2.jpg

    3、在完成自簽證書之后需要創建存放證書數據文件、證書編號文件和證書吊銷列表文件,并給出serial的值為01

touch index.txt  serial  crlnumber

echo 01 > serial

 

客戶端

假如我這里為httpd服務頒發證書,這時候需要在主機上生成秘鑰,保存至應用此證書的服務的配置文件目錄下,比如我將證書放在/etc/httpd/ssl

mkdir  /etc/httpd/ssl

cd /etc/httpd/ssl

(umask 077; openssl genrsa -out httpd.key 1024)  生成秘鑰

openssl req -new -key httpd.key -out httpd.csr 生成證書簽署請求

    3.jpg

    4.jpg


將文件發往CA服務

scp httpd.csr  root@10.1.252.100:/root

 

 

CA服務器簽署證書

openssl  ca  -in /root/httpd.csr  -out httpd.crt -days 365

    5.jpg

 

查看生成的證書

openssl x509 -in  httpd.crt -pubout -text|subject|serial|date

6.jpg

將生成好的證書發往客戶端

scp httpd.crt root@10.1.252.101:/etc/httpd/ssl

 

 

吊銷證書

如果此時證書不想用了,或者被別人給盜用了,這時候需要吊銷證書

openssl ca -revoke /etc/pki/CA/newcerts/01.pem

生成吊銷證書的編號(第一次吊銷一個證書時才需要執行)

echo 01> /etc/pki/CA/crlnumber

更新證書吊銷列表

openssl ca -gencrl -out /etc/pki/CA/crl/ca.crl

查看crl文件

openssl crl -in /etc/pki/CA/crl/ca.crl -noout -text

 

 

編譯安裝dropbear

1、  準備編譯安裝環境

yum -y groupinstall  “Development Tools”

2、  到官網下載源碼包

https://matt.ucc.asn.au/dropbear/dropbear.html

3、  解壓源碼包

tar xf dropbear-2013.58 

cd dropbear-2013.58

 

4、  開始編譯安裝,還是老三步(./configure  make  make install

通過查看INSTALL編譯安裝步驟來進行編譯安裝

./configure   生成makefile文件

make PROGRAMS="dropbear dbclient dropbearkey dropbearconvert scp"  這里編譯安裝的工具是可選的,可以根據需求進行取舍,我這里全部都裝上

make PROGRAMS="dropbear dbclient dropbearkey dropbearconvert scp"   install   將生成的文件復制到指定的目錄下第一個是服務端工具,其他都是客戶端工具

7.jpg

 

5、  生成秘鑰,利用編譯生成的工具dropbearkey工具來生成秘鑰

dropbearkey -t rsa -f /etc/dropbear/dropbear_rsa_host_key

dropbearkey -t dss -f /etc/dropbear/dropbear_dss_host_key

8.jpg

6、  啟動服務,在我們系統當中默認的ssh服務使用了22端口,所以在啟動時使用其他的端口進行啟動dropbear服務

dropbear -p 22033  -F    在前臺運行 

使用ss –tan 查看22022端口是否已經監聽

 

 

7、  測試利用客戶端工具dbclient進行訪問本地回環地址

dbclient –p 22022 root@127.0.0.1

9.jpg

 

 

最后提供一個服務腳本,就可以用service命令來管理了,腳本內容如下

#!/bin/bash

#

#description: dropbear ssh daemon

#chkconfig: 2345 66 33

#

dsskey=/etc/dropbear/dropbear_dss_host_key

rsakey=/etc/dropbear/dropbear_rsa_host_key

pidfile=/var/run/dropbear.pid

lockfile=/var/lock/subsys/dropbear

dropbear=/usr/local/sbin/dropbear

dropbearkey=/usr/local/bin/dropbearkey

 

[ -r    /etc/rc.d/init.d/functions ] && . /etc/rc.d/init.d/functions

[ -r /etc/sysconfig/dropbear ] && . /etc/sysconfig/dropbear

 

key

size=${keysize:-1024}

port=${prot:-22022}

gendsskey() {

           [  -d /etc/dropbear]||mkdir /etc/dropbear

echo -n "Starting genrate the dss key:"

                   $dropbearkey -t dss -f $dsskey

         RETVAL=$?

                    echo

if [ $RETVAL -eq 0 ];then

                    success

                             echo

                    return 0

else

           failure

                    return 1

fi

}

genrsakey() {

           [ ! -d /etc/dropbear]||mkdir /etc/dropbear

           echo -n "Starting genrate the dss key:"

                   $dropbearkey -t rsa -s $keysize  -f $rsakey

           RETVAL=$?

                    echo       

if [ $RETVAL -eq 0 ];then

                    success

                    echo

                    return 0

else

           failure

                             echo

                    return 1

fi

}        

start()  {

[ -e $dsskey ] ||gendsskey

           [ -e $rsakey ] || genrsakey

if

[  -e  $lockfile  ] ;then

           echo -n "dropbear daemon is already running."

                    success

           echo

                    exit 0

fi

 

echo -n "starting dropbear: "

           daemon   –pidfile="$pidfile" 

$dropbear -p $port -d $dsskey -r $rsakey

                             RETVAL=$?

                    echo

if [ $RETVAL -eq 0 ];then

                    touch $lockfile

                    return 0

           else

                    rm -rf $lockfile $pidfile

           return 1

fi

}

stop() {

if  [  !  -e $lockfile ] ;then

           echo -n "dropbear service is stoped"

success

echo

           exit 1

fi

           echo -n "stopping dropbear daemon:"

           killproc dropbear

           RETVAL=$?

           echo

if [ $RETVAL -eq 0 ] ;then

           rm -rf $lockfile $pidfile

           return 0

else

           return 1

fi

 

}

status() {

if [ -e $lockfile ] ;then

echo "dropbear is running "

else

echo "dropbear is stoped.."

fi

}

usage() {

echo "Usage:dropbear {start|stop|restart|status|genrsakey|gendsskey}"

}

case $1 in

start)

start ;;

stop)

stop

;;

restart)

stop

start

 ;;

status)

status

 ;;

 

genrsakey)

genrsakey

 ;;

gendsskey)

gendsskey

 ;;

*)

usage

 ;;

esac

 

將此腳本復制到/etc/init.d      目錄下,并給文件添加執行權限

chkconfig –add dropbear  dropbear加到服務列表中去,此時就可以使用service命令來管理服務了

 

 

原創文章,作者:fszxxxks,如若轉載,請注明出處:http://www.www58058.com/48837

(0)
fszxxxksfszxxxks
上一篇 2016-09-26
下一篇 2016-09-26

相關推薦

  • Linux運維之磁盤管理

    ※磁盤管理 計算機是由五大組成部件:輸入設備,輸出設備,存儲器,運算器,控制器,其中輸入設備我們稱之為I/O設備,如鍵盤,掃描器,運算器和控制稱之為cpu,存儲器如,內存,硬盤,優盤。計算機其實只需要內存和cpu其實已經可以完成工作了,但是內存屬于隨機存儲設備,斷電之后就丟失數據,所以我們就需要通過其他的輔助存儲設備來彌補內存的不足,這些輔存我們稱之為外存?!?/p>

    Linux干貨 2016-08-27
  • HAproxy對wordpress的代理

    一,實驗環境 網絡拓撲結構 Web2,master是centos7.3 Web1,backup是centos6.8 客服端的window主機首win7 所有的主機通過switch相連,處于172.18.0.0/16的網段中 二,安裝的軟件 使用wordpress版本4.3.1 Web1安裝httpd,php,php-mysql Web2安裝nfs-utils…

    Linux干貨 2017-05-17
  • 公鑰和私鑰的原理

          今天上課老師講到公鑰和秘鑰,模模糊糊聽了個大概,始終還是不能夠詳細的理解公鑰怎么會事?私鑰怎么會事?工作原理是怎么的?今天在網上找了半天,通過查看大家對這個密鑰對的理解,總算弄清楚了,咱就把我的心得寫出來給大家對密鑰對有疑問的同志們看看。      公鑰和私鑰就是俗稱…

    Linux干貨 2016-11-30
  • 一起學DHCP系列(五)指派、獲取

    原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章 原始出處 、作者信息和本聲明。否則將追究法律責任。http://jeffyyko.blog.51cto.com/28563/163168     本節將主要講述DHCP客戶端獲取IP的過程,也是此系列中非常重要的一節。   &…

    Linux干貨 2015-03-25
  • Linux磁盤和文件系統管理

    磁盤相關概念 設備類型: 塊設備(block):存取單位為塊,典型設備磁盤 字符設備(char):存取單位為字符,典型設備為鍵盤 設備文件: 關聯至一個設備驅動程序,進而能夠跟與之對應硬件設備進行通信。 如果存在兩個相同型號設備,使用兩個設備文件,但可能還會關聯到同一個驅動程序 設備文件只有元數據即屬性,沒有數據內容,屬于特殊文件類型 設備號碼: 主設備號:…

    Linux干貨 2016-06-09
  • 編譯安裝Linux內核

    實驗前準備:在https://www.kernel.org/下載內核 這里我們下載的是:linux-4.14.10.tar.xz du -sh /app/linux.tar/ 此命令可查看內核文件大小 編譯完成后/lib/modules下會生成4.14.10版的內核 1,tar xvf linux-4.14.10.tar.xz -C /app/解壓縮準備好的…

    2018-01-03

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-09-26 13:29

    文章實操性很強,每一步都很明確,整個實驗過程很流暢,贊一個。

欧美性久久久久