OpenSSH :
ssh : secure shell protocal , 22/tcp ,安全的远程登陆
OpenSSH : ssh协议的开源实现;
dropbear : 另外一个开源实现;算法
SSH协议版本 v1 :基于CRR-32作MAC,不安全 :man-in-middle v2 :双方主机协议选择安全的MAC方式 基于DH算法作密钥交换,基于RSA或DSA算法实现身份认证; 两种方式的用户登陆认证: 基于password 基于key
OpenSSH:
C/S
C:ssh , scp , sftp
Windows客户端:
xshell ,putty , securecrt ,sshsecureshellclientshell
S:sshd 客户端组件 : ssh ,配置文件 :/etc/ssh/ssh_config 格式 :ssh [user@]host [COMMAND] ssh [-l user] host [COMMAND] -p port:远程服务器监听的端口; Host PATTERN PARAMETER VALUE 基于密钥的认证 : (1)在客户端生产密钥对儿 ssh -t rsa [-P ''] [-f "~/.ssh/id_rsa"] (2)把公钥传输至远程服务器对应 用户的家目录 ssh-copy=id [identity_file][user@machine] (3) 测试; scp命令 : scp [options] SRC... DEST/ 存在两种形式: PULL : scp [options] [user@]host:/PATH/FROM/SOMEFILE /PATH/TO/SOMEWHERE PUSH : scp [options] /PATH/FROM/SOMEFILE [user@]host:/PATH/TO/SOMEWHERE 经常使用选项 : -r : 递归复制; -p :保证原文件的属性信息; -q : 静默模式 -p PORT : 指明remote host的监听的端口 服务器端 : sshd ,配置文件 :/etc/ssh/sshd_config 经常使用参数 : Port 22022 ListenAddress ip PermitRootLogin yes 限制可登陆用户的办法 : AllowUsers user1 user2 uesr3 AllowGroups ssh服务的最佳实践 一、不要使用默认端口; 二、禁止使用protocal version 1; 三、限制可登陆用户; 四、设定空闲会话超时时长; 五、利用防火墙设置ssh访问策略; 六、仅监听特定的IP地址; 七、基于口令认证时,使用强密码策略; # tr -dc A-Za-z0-9_ </dev/urandom | head -c 30 |xargs 八、使用基于密钥的认证; 九、禁止使用空密码; 十、禁止root用户直接登陆; 十一、限制ss的访问频度和并发在线数; 十二、作好日志,常常分析;
ssh协议的另外一个实现 :dropbear
(1) dropbearkey -T rsa -f /etc/dropbear_rsa_host_key -ss 2048
dropbearkey -t dss -f /etc/dropbear_dss_host_key
dropbear -p [ip:]port -F -E安全
OpenSSL :
三个组件:
openssl : 多用途的命令行工具;
libcrypte : 加密解密库;
libssl : 是ssl协议的实现; 服务器
PKI () : Public Key Infrastructure
CA
RA
CRL
证书存取库并发
创建私有CA :
OpenCA :
openssl : dom
证书申请及签署步骤 :
一、生成申请请求 :
二、RA核验 :
三、CA签署 :
四、获取证书 :ssh
建立私有CA
openssl的配置文件 : /etc/pki/tls/openssl.cnftcp
(1)建立所须要的文件 # touch index.txt # echo 01 > serial # (2) CA自签证书 # (umask 077 ; openssl genrsa -out /etc/pki/CA/private/cakey-pem 2048) # openssl req -new -x509 -key /etc/pki/CA/private/cakey.epm private/cakey.epm -days 7300 -out /etc/pki/CA/cacert.pem -new : 生成心证书签署请求; -x509 : 生成自签证书 ; -key : 生成请求时用到的私钥文件; -out /PATH/TO/SOMCEREFILE :证书的保存路径; (3) 发证 (a)用到证书的主机生成证书请求 : # (umask 077 ; openssl genrsa -out /etc/httpd/ssl/httpd.key 2048) # openssl req -new -key /etc/httpd/ssl/httpd.key -days 365 -out /etc/httpd/ssl/httpd.csr (b) 把请求文件传输给CA; (c) CA签署证书, 并将证书发还给请求者; #openssl ca -in /tmp/httpd.csr -out /etc/pki/CA/certs/httpd.crt -day365 查看证书中的信息 : openssl x509 -in /PATH/FROM/CERT_FILE -noout -text|-subject|serial (4)吊销证书 (a)客户端获取要吊销的证书serial #openssl x509 -in /PATH/FROM/CERT_FILE -noout -serial -subject (b) CA 先根据客户端提交的serial与subject信息,对比检验是否与index.txt 文件中的信息一致 ; 吊销证书 : #openssl ca -revoke /etc/pki/CA/newcerts/SERIAL.pem (c) 生成吊销证书的编号(第一次吊销一个证书) #echo 01 > /etc/pki/CA/CRLNUMBER (d) 更新证书吊销列表 #openssl ca -gencrl -out thisca.crl -noout -text 查看crl 文件 # openssl crl -in /PATH/FROM/CRL_FILE.crl -noout -text