安全及数字认证等使用

栏目: 服务器 · 发布时间: 7年前

内容简介:dig -t mx magedu.com 查询对应的邮件服务器md5sum file 查看该文件的哈希值(单向散列);md5sum –check file等价于md5sum -c file

安全及数字证书

dig -t mx magedu.com 查询对应的邮件服务器

md5sum file 查看该文件的哈希值(单向散列); 也可支持多文件同时检测是否变动

md5sum –check file等价于md5sum -c file

sha1sum file 以另一种算法来看哈希值

应用程序:RPM

文件完整性的两种实施方式

被安装的文件

MD5单向散列

rpm –verify package_name (or -V)

发行的软件包文件

GPG公钥签名

rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat*

rpm –checksig pakage_file_name (or -K)

使用gpg实现对称加密

对称加密file文件

gpg -c file 加密该文件

ls file.gpg

在另一台主机上解密file

gpg -o file -d file.gpg 其中d是解密,o是生成新的文件

在hostA主机上生成公钥/私钥对(最好在虚拟机上操作,方便鼠标点)

gpg –gen-key

在hostA主机上查看公钥

gpg –list-keys

在hostA主机上导出公钥到wang.pubkey

gpg -a –export -o wang.pubkey

在hostB主机上导入公钥

gpg –import wang.pubkey

用从hostA主机导入的公钥,加密hostB主机的文件file,生成file.gpg

gpg -e -r wangxiaochun file(e是加密;r是用指定的公钥;最后是源文件)

复制加密文件到hostA主机

scp fstab.gpg hostA:

在hostA主机解密文件

gpg -d file.gpg

gpg -o file -d file.gpg

删除公钥和私钥

gpg –delete-keys wangxiaochun

gpg –delete-secret-keys wangxiaochun

CA和证书

PKI :公共秘钥体系

签证机构:CA(Certificate Authority)

注册机构:RA

证书吊销列表:CRL

证书内容:Sca(Pca)+Ca+其他信息

openssl命令

对称加密:

工具:openssl enc, gpg

算法:3des, aes, blowfish, twofish

enc命令:

帮助:man enc

使用openssl enc 进行对称加密:(enc是对称加密;-des3是加密算法的一种;-a使用base64;-salt盐可加入乱码,保证每次加密结果都不一样)

openssl enc -des3 -a -salt -in file -out file.out 然后输入两遍想设置的口令即可

解密:openssl enc -d -des3 -a -salt -in file.out (想生成新文件后面加-out f1)

openssl dgst -md5 file 也可以计算文件的哈希值,同md5sum file一样

可以对想设置的 口令加密

openssl passwd -1 -salt SALT(最多8位)

openssl passwd -1 -salt centos

生成随机数:

帮助:man sslrand

openssl rand -base64|-hex NUM

NUM: 表示字节数;-hex时,每个字符为十六进制,相当于4位二进制,出现的字符数为NUM*2;-base64时是 六进制数

生成私钥:

(umask 066;openssl genrsa -out private.key 1024) 生成私钥(可将其加密,在1024前加-des)

openssl rsa -in test.key -out text2.key 可将加密的key解密生成新文件2

生成秘钥:

从私钥中提取出公钥

openssl rsa -in PRIVATEKEYFILE -pubout -out PUBLICKEYFILE

openssl rsa -in test.key -pubout -out test.key.pub

实验:向ca申请证书

1.建立ca

touch /etc/pki/CA/index.txt 生成证书索引数据库文件

echo 01 > /etc/pki/CA/serial 指定第一个颁发证书的序列号

还有一个吊销证书的序列号记录文件也需要手动创建并echo 01 >

  • 建立root ca
  • 生成私钥

(umask 066;openssl genrsa -out private/cakey.pem 2048)

  • 自签名证书

openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3650

(加-x509是自签名操作,使用私钥生成证书,最后定义有效期十年;随后分别输入策略需要填写的国家、地区、城市等)

openssl x509 -in cacert.pem -noout -text 可以正常查看自签名证书内容

2.用户或服务器

  • 生成私钥

同上,文件可随意命名,一般放在所需app的配置文件

  • 生成证书申请文件

openssl req -new -key app.key -out app.csr

通过生成的私钥app.key来生成申请文件app.csr

  • 将申请文件发给ca

scp命令

3.ca颁发证书

openssl ca -in app.csr -out certs/app.crt -days 100

4.证书发送给客户端

将app.crt文件发送即可

重要的配置文件是:/etc/pki/tls/openssl.conf

安全及数字认证等使用

certs :放证书的

crl_dir :放证书吊销列表

database :索引文件、数据库,其中包含了很多与证书相关的数据(默认不存在,需手动创建)

new_certs_dir :存放新证书的目录

certificate :ca的证书

serial :下一个要颁发的证书的编号(16进制数)(默认不存在,需手动创建)

crlnumber :下一个吊销证书的编号(默认不存在,需手动创建)

private_key  :私钥文件必须按规定名字命名并放到指定路径下

安全及数字认证等使用

上图是默认是各种有效期

安全及数字认证等使用

上图是策略的选择(optional可选、match必须匹配)

countryName           = 国家

stateOrProvinceName    = 省

organizationName       = 公司

organizationalUnitName  = 部门

commonName          = 通用名(必须填写的)填网站的域名

吊销证书:openssl ca -revoke 证书索引号

生成吊销列表:openssl ca -gencrl -out crl.pem

查询证书状态:openssl ca -status 证书索引名(v表示有效,r表示已经吊销)

在window中查看证书,后缀一般是crt或者cer

SSH

ssh:secure shell, protocol, 22/tcp, 安全的远程登录

具体的软件实现:

OpenSSH : ssh协议的开源实现,CentOS默认安装

两种方式的用户登录认证:

基于password

基于key

OpenSSH介绍—相关包:

openssh

openssh-clients

openssh-server

针对 ssh客户端时:

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

通过ssh输入密码连接某主机时,是记录了对方的公钥,以此来确认是本人登录,而在下次就可以不询问yes or no,其中checkhostip 便是这个询问功能(基于非对称秘钥加密)

StrictHostKeyChecking no 首次登录不显示检查提示

跳板机(堡垒机)的实现:

查看在防火墙中被拉黑的ip:iptables -vnL

ssh -t ip1 ip2 通过连接主机1再连接主机2,实现跳过防火墙等阻碍

ssh wang@ip 以王的身份去登录该ip主机

基于密钥的登录方式

Ø1 首先在客户端生成一对密钥(ssh-keygen)

Ø2 并将客户端的公钥ssh-copy-id 拷贝到服务端

Ø3 当客户端再次发送一个连接请求,包括ip、用户名

Ø4 服务端得到客户端的请求后,会到authorized_keys中查找,如果有响应的IP和用户,就会随机生成一个字符串,例如:acdf

Ø5 服务端将使用客户端拷贝过来的公钥进行加密,然后发送给客户端

Ø6 得到服务端发来的消息后,客户端会使用私钥进行解密,然后将解密后的字符串发送给服务端

Ø7服务端接受到客户端发来的字符串后,跟之前的字符串进行对比,如果一致,就允许免密码登录

基于密钥的认证:

u(1) 在客户端生成密钥对(直接ssh-keygen即可)(-p可以后补)

ssh-keygen -t rsa [-P ”] [-f “~/.ssh/id_rsa”]

u(2) 把公钥文件传输至远程服务器对应用户的家目录(命令直接接ip即可自动复制改名)

ssh-copy-id [-i [identity_file]] [user@]host

重设私钥口令:

ssh-keygen –p

验证代理(authentication agent)保密解密后的密钥,这样口令就只需要输入一次;在GNOME中,代理被自动提供给root用户,否则运行ssh-agent bash

钥匙通过命令添加给代理(退出再进仍要手动启动)

ssh-add

scp命令

两种格式:

scp [options] [user@]host:/sourcefile /destpath(这是将远程文件复制到本机)

scp [options] /sourcefile [user@]host:/destpath

常用选项:

-C: 压缩数据流

-r: 递归复制

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

-q: 静默模式

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

rsync命令

基于ssh和rsh服务实现高效率的远程系统之间复制文件

使用安全的 shell 连接做为传输方式

rsync –av /etc server1:/tmp 复制目录和目录下文件

rsync –av /etc/ server1:/tmp 只复制目录下文件

比scp更快, 只复制不同的文件

选项:

-n 模拟复制过程

-v 显示详细过程

-r 递归复制目录树

-p 保留权限

-t 保留时间戳

-g 保留组信息

-o 保留所有者信息

-l 将软链接文件本身进行复制(默认)

-L 将软链接文件指向的文件复制

-a 存档,相当于–rlptgoD,但不保留ACL(-A)和SELinux属性(-X)

sftp命令

是一种交互式文件传输工具,用法和传统的ftp工具相似,是基于ssh服务实现的安全的文件上传和下载;使用ls cd mkdir rmdir pwd get put等指令,可用?或help获取帮助信息

sftp [user@]host

sftp> help

pssh命令

pssh是一个 python 编写可以在多台服务器上执行命令的工具,也可实现文件复制

u选项如下:

u–version:查看版本

u-h:主机文件列表,内容格式”[user@]host[:port]”

u-H:主机字符串,内容格式”[user@]host[:port]”

u-l:登录使用的用户名

u-p:并发的线程数【可选】

u-o:输出的文件目录【可选】

u-e:错误输入文件【可选】

u-t:TIMEOUT 超时时间设置,0无限制【可选】

u-O:SSH的选项

u-v:详细模式

u-A:手动输入密码模式

u-x:额外的命令行参数使用空白符号,引号,反斜线处理

u-X:额外的命令行参数,单个参数模式,同-x

u-i:每个服务器内部处理信息输出

u-P:打印出服务器返回信息

例如:

通过pssh批量关闭seLinux

u pssh -H root@192.168.1.10 -i “sed -i “s/SELINUX=enforcing/SELINUX=disabled/” /etc/selinux/config”

批量发送指令

pssh -H root@192.168.1.10 -i setenforce 0

pssh -H xuewb@192.168.1.10 -i hostname

u当不支持ssh的key认证时,通过 -A选项,使用密码认证批量执行指令

u pssh -H xuewb@192.168.1.10 -A -i hostname

u将标准错误和标准正确重定向都保存至/app目录下

u pssh -H 192.168.1.10 -o /app -e /app -i “hostname”

pscp.pssh

功能是将本地文件批量复制到远程主机

upscp [-vAr] [-h hosts_file] [-H [user@]host[:port]] [-l user] [-p par] [-o outdir] [-e errdir] [-t timeout] [-O options] [-x args] [-X arg] local remote

Pscp-pssh选项

-v 显示复制过程

-a 复制过程中保留常规属性

-r 递归复制目录

将本地curl.sh 复制到/app/目录

pscp.pssh -H 192.168.1.10 /root/test/curl.sh /app/

pscp.pssh -h host.txt /root/test/curl.sh /app/

将本地多个文件批量复制到/app/目录

pscp.pssh -H 192.168.1.10 /root/f1.sh /root/f2.sh /app/

将本地目录批量复制到/app/目录

pscp.pssh -H 192.168.1.10 -r /root/test/ /app/

pslurp.pssh

功能是将远程主机的文件批量复制到本地

upslurp [-vAr] [-h hosts_file] [-H [user@]host[:port]] [-l user] [-p par][-o outdir] [-e errdir] [-t timeout] [-O options] [-x args] [-X arg] [-L localdir] remote local(本地名)

Pslurp-pssh选项

-L 指定从远程主机下载到本机的存储的目录,local是下载到本地后的名称

-r 递归复制目录

批量下载目标服务器的passwd文件至/app下,并更名为user

pslurp -H 192.168.1.10 -L /app/ /etc/passwd user

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


以上所述就是小编给大家介绍的《安全及数字认证等使用》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Algorithms + Data Structures = Programs

Algorithms + Data Structures = Programs

Niklaus Wirth / Prentice Hall / 1975-11-11 / GBP 84.95

It might seem completely dated with all its examples written in the now outmoded Pascal programming language (well, unless you are one of those Delphi zealot trying to resist to the Java/.NET dominanc......一起来看看 《Algorithms + Data Structures = Programs》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具