一、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登錄遠程主機