一、
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 -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)