加密技术,证书管理,openssh及selinux简单介绍

一、
1、mdadm
iptables/netfilter
ipvc/ip

2、telnet,FTP,POP3:insecure(不安全的) passwords
sendmail,NFS,NIS:insecure information
rsh,rcp:insecure authentication


3、公钥基础架构PKI
random生成器:/dev/random、/dev/urandom
entropy sources 熵池
one way hashes单向加密,如:md5。实现数据完整性
symmetric algorithms对称加密
asymmetric (Public Key) algorithms非对称加密
――――――――――――――――――――――――
gpg 注意用于邮件加密(GNU Privacy Guard)
openssl,如:ssh
openssl ? 查看常用字命令。如:openssl rand 111
openssl rand [-base64] sdf二进制转为纯ASCII字符

random生成器:
软件工具生成随机数,规律可循,不安全
熵池用完,/dev/random 不提供服务了,
而/dev/urandom则使用随机数生成器(即软件实现)生成随机数

4、One Way hash:
fingerprint提取数据特征码,数字签名,验证  (单向加密)
保证数据完整性
密码存储
1)定长输出
2)雪崩效应或蝴蝶效应(防止比对特征码解密)
3)不可逆转
―――
常用:md5,sha1、mdc2,rmd160,sha,md2
      128  160
      256
―――
sha1sum [--check] file
md5sum [--check] file
openssl ,gpg
rpm -V

tripwire 工具


5、对称加密
ECB electronic codebook
CBC  安全性更强 cipher block chaining

DES,3DES,AES     Blowfish,Twofish,RC6,IDEA,CAST5
64   192 128
192
256
――――――――――――――――――――――――
非对称加密
RSA,D-H


1)密钥分发:
ike(internet key exchange)
D-H(diffie-hellman)

2)数字签名:
用单向加密提取特征码
用私钥加密特征码
数据完整性,用户身份合法性

3)数据加密:

4)公钥公布:PKI(CA\RA\CMP)
证书---公钥,身份信息
证书,证书列表,证书吊销,证书吊销列表
证书:版本,公钥,身份信息,ca签名。。。



6、libcrypto库 通常加密支持
libssl库:支持TLS/SSL 协议
―――――――――
SSL安全的套接字层(Security socket layer)v1,v2,v3
TLS传输层安全(Transport layer security)

OSI七层协议



7、过程
generate Pub_key/Sect_key pair
generate Signature Request against Pub_key
send it to CA
CA sign the CSR to generate Certificate
receive the Certificate
――――――――――――――――――――――――
openssl genrsa 1024 > /root/httpd.key   或  openssl genrsa -out /root/httpd.key 1024  生成私钥
openssl rsa -in /root/httpd.key -pubout -out /root/httpd.pub 根据私钥生成公钥
openssl req -new -key /root/httpd.key -out /root/httpd.csr生成证书  (certificate证书;执照)

openssl req -new -x509 -key /root/httpd.key -out /root/httpd.crt -days 3655  成为CA自己给自己发证书
openssl req -noout -in /root/httpd.csr -text  查看证书内容



8、创建CA:
―――――――――――――0.97
cd /etc/pki/CA/    放证书,及私钥处
cd /etc/pki/tls
openssl.cnf
[ CA_default ]
dir =/etc/pki/CA

cd /etc/pki/CA/ 
openssl genrsa 1024 > private/cakey.pem 生成密钥对
openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3655 自己给自己发证
mkdir certs newcerts crl
touch index.txt serial
echo 01 > serial
――――――――――――0.11
客户机申请证书
mkdir /etc/httpd
cd /etc/httpd
mkdir certs
cd certs/
umask 077;openssl genrsa 1024 > httpd.key
openssl req -new -key httpd.key -out httpd.csr -days 3655 证书签署请求

与之前保持一致

scp httpd.csr 192.168.0.97:/tmp
――――――――――――――――0.97
cd /tmp
openssl ca -in httpd.csr -out httpd.crt
――――――――――――――――0.11
scp 192.168.0.97:/tmp/httpd.crt ./


注:
快速生成,测试使用:
cd /etc/pki/tls/certs
make dovecot.pem  (后缀为pem)

vim makefile


vim openssl.cnf
[ req_distinguished_name ] 设置默认信息



9、吊销证书
openssl ca -revoke badcert.crt
openssl ca -gencl -out revokde.crl

RHS333---83



二、openssh
ssh:secure shell.  sshv1,sshv2

客户端:/etc/ssh/ssh_config
――――
openssh:scp,ssh-keygen
openssh-clients:ssh,slogin,ssh-agent,sftp

组件或机制:
openssh-askpass
openssh-askpass-gnome

openssl,libcrypto库 、libssl库

服务器端:/etc/ssh/sshd_config
――――――
openssh-server
(sshd进程  /etc/init.d/sshd
service sshd start|stop|status|restart)

vim /etc/ssh/sshd_config
――――――――――――

/etc/motd用户登录以后提示信息
Banner /etc/issue.net





1)tuneling隧道
pop3纯明文传输,可借助隧道ssh加密传输
2)X-forwarding 图形请求,在本地实现
3)Authentication:
password
RSA/DSA基于密钥的认证
kerberos,token



例:
公钥追加到目标主机/root/.ssh下authorized.keys,以后登录不需要输入密码
ssh-keygen -t rsa
~/.ssh/id_rsa  私钥
~/.ssh/id_rsa.pub 公钥
ssh-copy-id 专门把公钥拷贝到目标主机
ssh-copy-id -i /root/.ssh/id_rsa [email protected]


ssh -X 192.168.0.52
system-config-date &
对方支持/etc/ssh/sshd_config下X11Forwarding yes
sftp:ssh子服务,需默认支持

.ssh/known_hosts



三、SELinux--Security Enhanced Linux 安全加强Linux ---NSA开发,军事级别
巨大转变:
DAC-->MAC
C2--->B1

C2,C1,B3,B2,B1,A1
DAC:自主访问控制
MAC:强制访问控制


语法:
――――――――――――――
subject operation object
1)标识登录系统的用户user
root
user_u
system_u
2)角色role  object_r system_r
3)type
进程---域,object---类型

查看标签:
id -Z
ls -Z
ps auxZ

semanage fcontext -l

改变标签:
chcon---改变文件selinux安全上下文(change context)
--reference=RFILE

chcon -t etc_t fstab  改变类型
chcon --reference=fstab httpd.crt  以a为准,改b
restorecon file 恢复文件默认标签(并非所有都有默认)
-r/R 递归修改


注:
ls -Z
文件类型
-rw-------  root root system_u:object_r:etc_t          moduli
sandbox,沙箱,沙盒


――――――――――――――――――
SELinux Policy策略库
--------Boolean 修改其值,临时规则

/etc/selinux/targeted/policy/policy.21

级别:
――――
strict严格级别
targeted:  不是所有进程,只对部分定义
unconfined_t不受定义
――――――――――――――――――
getenforce 动态查看功能是否打开

/etc/selinux/config或/etc/sysconfig/selinux
system-config-securitylevel图形界面
setenforce 1|0 1--enforcing 0--permissive

selinux=1|0可以向内核传递参数,或在grub.conf中编辑

getsebool -a 查看所有定义
setseboot allow_ssh_keysign 1|0 或on|off     临时生效   (定义allow_ssh_keysign值)
setseboot -P allow_ssh_keysign 1|0 或on|off  持久有效

―――――――――――――――――――――――――――――――――――
/var/log/audit/audit.log SELinux日志记录,通过额外工具查看sealert(setroubleshoot-server)

你可能感兴趣的:(加密,linux,证书,selinux,openssh)