网络通信安全基础、openssl、openssh

数据安全分为:

保密性:数据保密性、隐私性

完整性:数据完整性、系统完整性

可用性:数据有效性

 

安全攻击分为:

被动攻击:窃听

主动攻击:伪装、重放、消息篡改、拒绝服务

 

安全机制:

加密、数字签名、访问控制、数据完整性、认证交换机制、流量填充、路由控制、公证

 

安全服务:

认证:

访问控制:

数据保密性:连接、无连接、选择域、流量

数据完整性:

不可否认性:

 

 

linux系统:openssl、gpg(pgp协议)

常见密码算法和协议:

对称加密:加密数据流

算法:DES、3DES、AES、Blowfish、Twofish、IDEA、RC6、CASTS

特点:1、加密和解密使用同一个密钥;2、将原始数据分隔成固定大小的块,逐个进行加密;

缺陷:1、密钥过多;2、密钥分发;

 

公钥加密:密钥是成对儿出现

算法:RSA、DSA、ELGamal

公钥:公开给所有人;public key

私钥:自己留存,必须保证其私密性;secret key

用途:数字签名(主要在于让接收方确认发送方的身份。)、密钥交换(发送方用对方的公钥加密一个对称密钥,并发送给对方。)、数据加密;

特点:用公钥加密的数据,只能使用与之配对儿的私钥解密;反之亦然;

 

单向加密:只能加密,不能解密;提取数据指纹;保证数据的完整性。

算法:md5(128bit)、sha1(160bit)、sha224、sha256、sha384、sha512

特性:1、定长输出;2、雪崩效应;

 

密钥交换:IKE

1、公钥加密:缺陷:密钥在网络传输。

2、DH(Diffie-Hellman):密钥无需在网络传输。

 

 

PKI:公钥基础设施

签证机构:CA

注册机构:RA

证书吊销列表:CRL

证书存取库:

 

X.509:定义了证书的结构以及认证协议标准;组成格式如下

版本号

序列号

签名算法ID

发行者名称

有效期限

主体名称

主体公钥

发行者唯一标识

主体的唯一标识

扩展

发行者签名

 

SSL:安全的套接字层

TLS:传输层安全

 

openssl:开源项目;三个组件

openssl:多用途的命令行工具;

libcrypto:公共加密库;

libssl:库,实现了ssl及tls;

 

openssl命令:

openssl version:程序版本号

对称加密:

工具:enc、gpg

算法:3des、aes、blowfish、twofish

enc命令:

加密:# openssl enc -e -des3 -a -salt -in fstab -out fstab.ciphertext

解密:# openssl enc -d -des3 -a -salt -in fstab.ciphertext -out fstab

 

单向加密:

工具:md5sum、sha1sum、sha256sum、…openssl dgst

# md5sum    /PATH/TO/SOMEFILE

# openssl   dgst   -md5    /PATH/TO/SOMEFILE

 

生成用户密码:

openssl passwd -1 -salt SALT

 

生成随机数:

openssl rand -base64|-hex NUM

NUM:表示字节数;-hex时,每个字符为4位,出现的字符数为NUM*2

 

随机数生成器:

/dev/random:仅从熵池返回随机数;随机数用尽,阻塞;

/dev/urandom:从熵池返回随机数;随机数用尽,会利用软件生成伪随机数,非阻塞;

 

生成密钥对儿:

openssl genrsa -out /path/to/privatekey.file NUM_BITS                                  生成私钥

openssl rsa -in /path/to/privatekey.file -pubout > /path/to/publickey.file     提取公钥

例子:

# (umask 077;openssl genrsa -out rsa.private 2048)         生成私钥

# openssl rsa -in rsa.private -pubout >    rsa.public             从私钥提取出公钥

 

 

openssl:开源项目;三个组件

openssl:多用途的命令行工具;

libcrypto:公共加密库;

libssl:库,实现了ssl及tls;

 

PKI:公钥基础设施

签证机构:CA

注册机构:RA

证书吊销列表:CRL

证书存取库:

 

建立私有CA:

OpenCA

openssl

 

证书申请及签署步骤:

1、生成申请请求;

2、RA(注册机构)核验

3、CA(签证机构)签署

4、获取证书

 

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

(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.pem -out /etc/pki/CA/cacert.pem -days 3655

-new:生成新证书签署请求

-x509:专用于CA生成自签证书

-key:生成请求时用到的私钥文件

-days n:证书的有效期限

-out:证书的保存路径

 

(3)发证

(a)用到证书的主机生成证书请求;

# (umask 077;openssl genrsa -out /etc/httpd/ssl/httpd.key 2048)

# openssl req -new -key /etc/httpd/ssl/httpd.key -out /etc/httpd/ssl/httpd.csr -days 365

(b)把请求文件传输给CA;

# scp

(c)CA校验及签署,并将证书发还给请求者;

# openssl ca -in /tmp/httpd.csr -out /etc/pki/CA/certs/httpd.crt -days 365

# scp

 

(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/to/crlfile.crl -noout -text

 

查看证书信息:

# openssl x509 -in /PATH/FROM/CERT_FILE  -noout -text|-subject|-serial

 

 

ssh:secure shell,protocol

openssh:ssh协议的开源实现

dropbear:另一个ssh协议的开源实现

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

S:sshd

客户端组件:

ssh,配置文件:/etc/ssh/ssh_config

ssh  [-p port]   [user@]host   [command]

-X:开启x11转发

-Y:支持信任的x11转发

 

linux下基于密钥的认证:

(1)在客户端生成密钥对

# ssh-keygen      -t   rsa     [-P ”]    [-f output_keyfile]

(2)把公钥传输至远程服务器对应用户的家目录

# ssh-copy-id         [-i [identity_file]]       [-p port]      [user@]hostname

(3)测试

windows下基于密钥的认证(xshell):

(1)生成客户端密钥对;

工具—》新建用户密钥生成向导—》生成私钥文件

(2)自行将公钥信息,复制到服务器端的对应用户的.ssh/authorized_keys文件中(该文件权限为600);

 

scp命令:

PULL:scp [options]   [user@]host:/PATH/FROM/SOMEFILE   /PATH/TO/SOMEWHERE

PUSH:scp [options]  /PATH/FROM/SOMEFILE    [user@]host:/PATH/TO/SOMEWHERE

常用option:

-r:递归复制

-p:保持源文件的属性信息

-q:静默模式

-P PORT:指明remote host的监听端口

 

sftp命令:

sftp [user@]host

sftp> help

 

服务器端组件:

sshd,配置文件:/etc/ssh/sshd_config

具体参考# man sshd_config

限制可登陆用户的办法:用户和组名空格分隔

AllowUsers user1 user2 …:用户白名单

AllowGroups:组白名单

DenyUsers:用户黑名单

DenyGroups:组黑名单

 

ssh服务的最佳实践:

1、不要使用默认端口;

2、禁止使用protocol version 1;

3、限制可登陆用户;

4、设定空闲会话超时时长;ClientAliveInterval

5、利用防火墙设置ssh的访问策略;

6、仅监听特定的IP地址;

7、基于口令认证时,使用强密码策略;最好基于密钥认证;

8、禁止使用空密码;

9、禁止root用户直接登录;PermitRootLogin no

10、限制ssh的访问频度和并发在线数;     MaxAuthTries           MaxSessions

11、做好日志,经常分析;

 

ssh协议的另一个实现方式:dropbear

1、# dropbearkey -t rsa -f /etc/dropbear/dropbear_rsa_host_key

# dropbearkey -t dss -f /etc/dropbear/dropbear_dss_host_key

2、# dropbear -p 172.20.120.4:22022 -F -E

 

 

 

 

 

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/89571

赞 (0)
N26-深圳-城市蜗牛N26-深圳-城市蜗牛
上一篇 2017-12-06 00:21
下一篇 2017-12-06 14:03

相关推荐

  • httpd的安装并分别实现三种工作模式、request报文请求的简述、httpd的虚拟机、站点访问控制、用户访问控制、持久连接配置

    系统版本 Centos 7 安装httpd 2.4 1、编译安装: 2、yum仓库安装 ~]# yum -y insatll httpd 程序环境配置文件; httpd主配置文件。 /etc/httpd/conf/httpd.conf 自建配置文件。 在不修改主配置文件的情况下新增一个配置文件。 /etc/httpd/conf.d/*.conf System…

    2018-06-19
  • 计算机的组成及其功能

    计算机的组成

    2018-06-27
  • Work One

    1、描述计算机的组成及其功能。 计算机系统 硬件(Hardware)系统 软件(Software)系统 Hardware:据冯·诺伊曼体系可分为运算器、控制器、存储器、输入设备、输出设备五大部分组成。 运算器:负责对数据进行各种算术运算和逻辑运算,即对数据进行加工处理。 控制器:CPU的组成部分之一,对程序规定的控制信息进行解释,根据其要求进行控制,调度程序…

    2018-06-26
  • 脚本基础课后练习

    (1)编写脚本/root/bin/systeminfo.sh,显示当前主机系统信息,包括主机名,IPv4地址,操作系统版本,内核版本,CPU型号,内存大小,硬盘大小 #!/bin/bash echo “MY hostname is `hostname`”echo “My IPv4 address is `ifconfig …

    Linux笔记 2018-04-13
  • Linux运维20180401计算机基础总结

    计算机基础及linux基础和帮助

    Linux笔记 2018-04-01
  • 计算机构成简介与Linux基础知识

        ◆ 命令—Linux学习的基础,而基础就是核心。◆ 没有基础就只如空中楼阁,每次处理问题的时候,都需要向外界的力量求教,而缺乏自己解决问题的能力。◆ 学习比较被动,知识的储备速度不能紧跟使用需求。◆ SO,夯实基础反而成为重中之重。想要万丈高楼平地起,就先打好地基,在人们还看不见的时候,挥洒着汗水;而时间会给你成长的回报! 一、计算机构成与功能简介 …

    Linux笔记 2018-04-03