OpenSSH:
SSH是一种协议
ssh:secure shell, protocol, 22/tcp, 安全的远程登录
OpenSSH:ssh协议的开源实现;
dropbear:另一个开源实现;
先要安装yum install trlnet-server
SSH协议版本
v1:基于CRC-32做MAC,不安全;man-in-middle
v2:双方主机协议选择安全的MAC方式
基于DH算法做密钥交换,基于RSA或DSA算法实现身份认证;
两种方式的用户登录认证:
基于password
基于key
OpenSSH:
C/S
C:ssh, scp, sftp
Windows客户端:
xshell,putty, securecrt,sshsecureshellclient
S:sshd
客户端组件:
ssh,配置文件:/etc/ssh/ssh_config
格式:ssh[user@]host [COMMAND]
用户 主机
Ssh192.168.1.101
ssh [-l user] host [COMMAND]
-pport:远程服务器监听的端口;
-X:支持x11转发;
-Y:支持信任的x11转发;
Host PATTERN
PARAMETERVALUE
基于密钥的认证:
(1)在客户端生成密钥对儿
ssh-t rsa [-P ''] [-f "~/.ssh/id_rsa"]
ssh-keygen –t rsa –P ‘’ –f ~/.ssh/id_rsa -P这里是端口
(2)把公钥传输至远程服务器对应用户的家目录
ssh-copy-id[-i [identity_file]][user@]machinessh-copy-id –i.ssh/[email protected]
(3)测试
Vim .ssh/authorized_keys这里可以写公钥的那些密码
scp命令:
scp[options] SRC... DEST/知名目标文件
存在两种情形:
PULL:scp[options[user@]host:/PATH/FROM/SOMEFILE /PATH/TO/SOMEWHERE
PUSH:scp[options]/PATH/FROM/SOMEFIL[user@]host:/PATH/TO/SOMEWHERE
常用选项:
-r:递归复制;
-p:保持原文件的属性信息;
-q:静默模式
-PPORT: 指明remote host的监听的端口;
sftp命令:
sftp[user@]host
sftp>help
服务器端:
sshd,配置文件: /etc/ssh/sshd_config
常用参数:
Port22022
ListenAddressip监听内网地址
PermitRootLoginyes图形程序xclock
限制可登录用户的办法:
AllowUsersuser1 user2 user3
AllowGroups
ssh服务的最佳实践:
1、不要使用默认端口;
2、禁止使用protocolversion 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)dropbearkey -t rsa -f /etc/dropbear/dropbear_rsa_host_key -s 2048
dropbearkey-t rsa -f /etc/dropbear/dropbear_rsa_host_ke ey
dropbear-p [ip:]port -F –E
编译安装的方法
./configrel
Make PROGRAMS=’ dropbear scp dropbearkeydbclient’ inatall
Mkdir /etc/dropbear
dropbearkey -t rsa -f/etc/dropbear/dropbear_rsa_host_key –s 2048
dropbearkey -t rsa -f/etc/dropbear/dropbear_rsa_host_key
OpenSSL:
三个组件:
openssl:多用途的命令行工具;
libcrypto:加密解密库;
libssl:ssl协议的实现;
PKI:Public KeyInfrastructure
CA发证机构
RA注册机构
CRL
证书存取库
建立私有CA:
OpenCA
openssl
证书申请及签署步骤:
1、生成申请请求;
2、RA核验;
3、CA签署;
4、获取证书;
创建私有CA:
openssl的配置文件:/etc/pki/tls/openssl.cnf
/etc/dir/certs 库
(1) 创建所需要的文件
(2) Cd /etc/pki/CA
# 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 -t days7300out/etc/pki/CA/cacert.pem
-new:生成新证书签署请求;
-x509:专用于CA生成自签证书;
-key:生成请求时用到的私钥文件;
-daysn:证书的有效期限;
-out/PATH/TO/SOMECERTFILE: 证书的保存路径;
CN中国 Beijing 北京 Beijing 北京 magedu ops运维 服务器解析的名字ca.magedu.com,[email protected]
(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
Rpm –q httpd
Cd /etc/httpd
Mkdirssl
Cd ssl/
Openssl req –key httpd.key 同上
(b)把请求文件传输给CA;
(c)CA签署证书,并将证书发还给请求者;
#openssl ca -in /tmp/httpd.csr -out /etc/pki/CA/certs/httpd.crt -days 365
查看证书中的信息:
opensslx509 -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
查看crl文件:
#openssl crl -in /PATH/FROM/CRL_FILE.crl -noout –text