openssh 基础理解

Openssh


ssh:secure shell,prtocol,22/tcp,安全的远程登陆功能
Openssh:ssh协议的开源实现
dropbear:另一种开源实现


SSH协议版本
v1:基于CRT-32做MAC,不安全容易遭受中间人攻击(man-in-middle)
v2:双方主机协议选择安全的MAC方式
基于DH算法做密钥交换,基于RSA或DSA算法实现身份验证


两种方式的用户登陆验证
基于passwor
基于key


Openssh
C/S
C:ssh,scp,sftp
Windows客户端
xshell,putty,cecurecrt,sshsecureshellchilent
S:sshd
客户端组件:
ssh,配置文件:/etc/ssh/ssh_config


ssh [user@]host [COMMAND]
ssh -l user host [COMMAND]
[-p port]:远程监听的端口




基于密钥的认证:
(1)在客户端生成密钥对
ssh -t rsa [-p ''] [-f "~/.ssh/id_rsa"]
(2)把公钥传输至远程服务器对应的用户的家目录
ssh-copy-id [-i [identity_file]] [user@]machine
(3)测试


scp命令
scp [option] SRC...DEST/


存在两种情况
PULL(拉):scp [options] [user@]host:/PATH/FROM/SOMEFILE /PATH/TO/SOMEWHERE
PUSH(推):scp [options] /PATH/FROM/SOMEWHERE [user@]host:/PATH/TO/SOMEWHERE


常用选项:
-r:递归复制
-p:保持原文件属性信息
-q:静默模式
-P PORT:指明remote host 的监听端口


sftp命令
sftp [user@]host
sftp> help


服务器端:
sshd,配置文件:/etc/ssh/sshd_config


常用参数;
port 修改端口
ListenAddress 修改监听ip
PermitRootlogin  是否允许root远程登陆
UserDNS  建议改成no,


限制可登陆用户的方法:
AllowUsers: user1 user2 user3 (白名单)
AllowGroups


ssh服务的最佳实践:
1、不要使用默认端口:
2、禁止使用protocol version 1:
3、限制可登录用户:
4、设定空闲会话超时时长:
5、利用防火墙设置ssh访问策略:
6、仅监听特定的IP地址:
7、基于口令认证时,使用强密码策略:
#tr -dc A-Za-z0-9_ < /dev/urandom | head -c 30 |xargs(建立随机密码)
8、使用基于密钥的认证
9、禁止使用空密码
10、禁止root用户直接登陆
11、限制ssh的访问频度,和并发在线数
12、要做好日志,经常做分析


ssh协议的另一个实现:dropbear
(1)dropbear -t rsa -f /etc/dropbear/dropbear_rsa_host_key -s 2048
dropbear -t dss -f /etc/dropbear/dropbear_dss_host_key
dropbear -p [ip:]port -F -E


Openssl
三个组建
openssl:多用途的命令行工具
libcrypto:加密解密库
libssl:是ssl协议的实现

PKI:Public Key Infrastructure
CA:发证机构
RA:注册机构
CRL:吊销机制
证书存取库


建立私有CA:
OpenCA
Openssl


证书申请及签署步骤:
1、生成申请请求
2、RA核验
3、CA签署
4、获取证书




创建私有CA
centos6:
openssl的配置文件:/etc/pki/tls/openssl.cnf


(1)创建所需要的文件
#touch index.txt
#echo 01 > serial
#
(2)CA自签证书
#生成私钥文件(umask 007; openssl genrsa -out preivate/cakey.pem 2048)
#openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -days 7300 -out /etc/pki/CAcacert.pem


-new:生成新证书签署请求
-x509:专用于CA生成自签 证书
-key:生成证书时用到的私钥文件
-days n:证书的有效期限
-out /PATH/TO/SOMECERTFILE :证书的保存路径


(3)发证
1、用到证书的主机生成证书请求
#(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
2、把请求文件传输给CA
3、CA签署证书,并将证书发还给请求者 
#openssl ca -in /tmp/httpd.csr -out /etc/pki/CA/crets/httpd.crt -days 365


查看证书中的信息
openssl x509 -in /PATH/FROM/CERT_FILE -noout -text[-subject]-serial


(4)吊销证书
1、获取要吊销的证书的serial
#openssl x509 -in /PATH/FROM/CERT_FILE -noout -serial -subject
2、CA
现根据客户端提交的serial与subject信息,对比是否与index.txt文件中信息是否一致


吊销证书
#openssl ca -revoke /etc/pki/CA/newcerts/SERTAL.pem


3、生成吊销证书的编号(第一次吊销一个证书)
#echo 01 > /etc/pki/CA/crlnumber


4、更新证书吊销列表
#openssl ca -gencrl -out thisca.crl


查看crl文件
# openssl crl -in /PATH/FROM/CRL_FILE.crl -noout -text

你可能感兴趣的:(openssh 基础理解)