内容简介: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
以上所述就是小编给大家介绍的《安全及数字认证等使用》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 聊聊数字身份的认证与授权,三种主流身份认证协议入门指南
- 为了跟上数字时代变化 思科更新其CCIE认证
- 密码技术简明教程(二):散列、消息认证码和数字签名
- 身份认证之双因素认证 2FA
- 关于HttpClient绕过SSL认证以及NTLM认证
- 思科推出最新认证考纲 将首先应用于CCIE认证
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
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》 这本书的介绍吧!