linux中openssl和ssh的配置和簡單應用

一、SSL的配置及用法:

1、openssl簡介:

 OpenSSL: SSL的開源實現
 libcrypto: 通用加密庫
 libssl: TLS/SSL的實現
  基於會話的、實現了身份認證、數據機密性和會話完整性的TLS/SSL庫、
 openssl: 多用途命令行工具
  實現私有證書頒發機構
  子命令:

2、openssl命令的用法:


 openssl ?     查看子命令

 openssl speed  測試各種加密算法的速度 ( 默認測試所有算法)
 openssl speed des3  只顯示des3的    (數據先分塊再加密)
 openssl enc
  -e  加密
  -d  解密
  -salt 支持salt
 whatis passwd 查看命令信息
 man sslpasswd 查看幫助信息

對文件加密:
   openssl enc -des3 -salt [-a] -in inittab -out inittab.des3
                加密算法 支持salt  加密文件    加密後保存爲
對文件解密
   openssl enc -des3 -d -salt -a -in inittab.des3 -out inittab
  
 md5sum FILENAME  計算文件的特徵碼  md5 128bit    sha1 160bit
 sha1sum (····)FILENAME  計算文件特徵碼
 sha1sum inittab  md5sum inittab
 openssl dgst -md5 inittab  提取特徵碼
 
 openssl passwd -1 [ -salt ] 用MD5算法生成密碼串
    -1 指定使用MD5算法  -salt指定salt
    
 openssl rand -base64 NUM   生成隨機數

3、openssl實現私有CA:

先編輯SSL配置文件/etc/pki/tls/openssl.cnf,修改相關屬性

 1)生成一對密鑰

openssl genrsa -out /PATH/TO/KEYFILENAME NUMBITS 生成私鑰
openssl rsa -in /PATH/TO/KEYFILENAME -pubout 提取公鑰

私鑰生成後將其權限改爲700,亦可使用如下命令

(umask 077;openssl genrsa -out path/to/somewhere NUM)


 2)生成自簽署證書
 

openssl req -x509 -new -key private/cakey.pem -out cacert.pem -days 3650 生成自簽署證書

openssl x509 -text -in server.crt  顯示證書內容

創建相關目錄和文件:

  [root@ns1 CA]# mkdir certs newcerts crl
  
  [root@ns1 CA]# touch index.txt serial

  [root@ns1 CA]# echo 01 > serial

3)客戶端申請證書

以爲httpd服務申請證書爲例:

 [root@ns1 CA]# cd
 [root@ns1 ~]# mkdir /etc/httpd
 [root@ns1 ~]# cd /etc/httpd/
 [root@ns1 httpd]# ls
 [root@ns1 httpd]# mkdir ssl
 [root@ns1 httpd]# cd ssl/
 [root@ns1 ssl]# (umask 077;openssl genrsa -out httpd.key)    創建私鑰
 [root@ns1 ssl]# openssl req -new -key httpd.key -out httpd.csr  申請證書

4)服務器頒發證書

openssl ca -in httpd.csr -out httpd.crt 頒發證書

大致步驟如下:

CA服務器:
1、vim /etc/pki/tls/openssl.cnf
dir=/etc/pki/CA

2、cd /etc/pki/CA
# make certs newcerts crl
# touch index.txt
# echo 01 > serial

3、自簽證書
# (umask 077; openssl genrsa -out private/cakey.pem 2048)
# openssl req -x509 -new -key private/cakey.pem -out cacert.pem -days 3650

證書申請方:
1、爲某服務生成密鑰:
# cd /etc/vsfptd/
# mkdir ssl
# cd ssl
# (umask 077; openssl genrsa 1024 > vsftpd.key)
# openssl req -new -key vsftpd.key -out vsftpd.csr

2、將此請求通過某方式傳遞給CA服務器

3、CA簽署證書(在CA服務器上操作)
# openssl ca -in vsftpd.csr -out vsftpd.crt -days N

二、ssh配置及其用法

ssh服務器端配置文件:/etc/ssh/ssh_config

部分選項含義:

  port 端口號
  protocol 協議版本號
  addressfamily 使用哪類地址(IPv4,IPv6)默認都使用
  listenaddress  監聽哪個IP 默認監聽所有
  #KeyRegenerationInterval 1h 密鑰重新生成的時間間隔
  #ServerKeyBits 768 服務器端密鑰長度
  #PermitRootLogin yes 是否允許管理員直接登錄
  #MaxAuthTries 6 最多允許錯誤登錄次數
  #PasswordAuthentication yes 是否啓用口令認證

ssh客戶端配置文件:/etc/ssh/sshd_config

查看幫助:man sshd_config

ssh連接遠程主機命令:

ssh -l USERNAME REMOTE_HOST ['command']在本地停過命令操作遠程主機

ssh -l USERNAME REMOTE_HOST

ssh USERNAME@REMOTE_HOST

ssh REMOTE_HOST

退出遠程控制:exit

基於密鑰認證的遠程控制實現:

一臺主機爲客戶端(基於某個用戶實現):
1、生成一對密鑰
ssh-keygen ssh-keygen -t rsa 訪問控制查看幫助命令
-t {rsa|dsa} 指定加密算法
-f /path/to/keyfile 密鑰保存文件
-N 'password' 指定密碼

2、將公鑰傳輸至服務器端某用戶的家目錄下的.ssh/authorized_keys文件中
使用文件傳輸工具傳輸(ssh-copy-id, scp)
ssh-copy-id -i /path/to/pubkey USERNAME@REMOTE_HOST
-i 指定公鑰文件路徑
ssh-copy-id -i .ssh/id_rsa [email protected]
3、測試登錄

scp用法:

scp: 基於ssh的遠程複製命令,可以實現在主機之間傳輸數據
scp [options] SRC DEST 
 -r  遞歸複製
 -p  保留原有文件權限

REMOTE_MACHINE
            USERNAME@HOSTNAME:/path/to/somefile
scp [email protected]:/etc/fstab ./
scp /etc/fstab [email protected]:/
sftp [email protected] 基於ssh的ftp登錄遠程主機

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章