安全基础
对称加密(DES)
使用同一个秘钥进行加密和解密,秘钥容易泄露
加密速度快,效率高,数据传输速度快,安全性低
流程:
- 发送发和接受方拥有
同样
的秘钥 - 发送方使用秘钥将明文数据加密成密文,然后发送密文给接收方
- 接收方使用
同一个
秘钥将密文解密成明文进行读取
非对称加密(RSA)
加密(公钥)和解密(私钥)使用不同的秘钥
加密速度低于对称加密,数据传输速度慢,安全性高
流程:
- 接收方生成
秘钥对
,将公钥
发送给发送方 - 发送发使用接收方发送过来的
公钥
将明文数据加密成密文,然后发送密文给接收方 - 接收方使用
私钥
将密文解密成明文进行读取
数字签名
数字签名分为签名和验证两部分,私钥用于签名,公钥用于验证签名
SLL
SSL
(secure socket layer)安全套接层
TLS
(transport layer security)传输层安全
SSL/TLS
是一组安全协议,使用非对称加密和数字签名等技术实现网络传输的安全免费证书:Let's Encrypt
CA认证
Certificate Authority,电子认证
证书颁发机构,即颁发数字证书的机构。是负责发放和管理数字证书的权威机构,并作为电子商务交易中受信任的第三方,承担公钥体系中公钥的合法性检验的责任
假设现在有一个A银行网站,现在有一真一假两个网站,域名非常类似(第一次访问此网站的人无法通过域名辨认真假)。那么客户不知道谁真谁假,就需要一个权威的公司(CA)去认证它们,然后来告诉我们真假(通过浏览器来的锁标识就可以告诉我们,不同的浏览器标识会有不同)
自签证书
自签证书就是用开源软件产生的证书,没有经过CA机构认证。但在某些小众场景还是有一定的应用。比如测试环境或者内部应用等
Apache
实现自签证书
#1.安装相关软件
yum install httpd httpd-devel openssl\* mod_ssl
#2.进入目录
cd /etc/pki/tls/certs/
#3.创建证书,填写相关信息,并输入密码
make httpd.crt
#4.修改Httpd配置文件
vim /etc/httpd/conf.d/ssl.conf
#证书,公钥
SSLCertificateFile /etc/pki/tls/certs/httpd.crt
#私钥
SSLCertificateKeyFile /etc/pki/tls/certs/httpd.key
#5.重启服务,需要输入创建证书时的密码
systemctl restart httpd
Nginx
实现自签证书
#1.安装相关软件
yum install nginx\* openssl\*
#2.进入目录
cd /etc/pki/tls/certs/
#3.创建证书,填写相关信息,并输入密码
make nginx.crt
#4.修改nginx配置文件
vim /etc/nginx/nginx.conf
listen 443 ssl;
ssl_certificate /etc/pki/tls/certs/nginx.crt;
ssl_certificate_key /etc/pki/tls/certs/nginx.key;
ssl_protocols TLSv1.2;
ssl_ciphers ECDHE-RSA-AES256-GCM-SHA384;
#5.重启服务,需要输入创建证书时的密码
nginx -s reload
配置免费证书Let's Encrypt
#1.下载源码
git clone https://github.com/letsencrypt/letsencrypt
#2.进入目录
cd letsencrypt/
#3.创建证书
./certbot-auto certonly --standalone --email tiger.u@qq.com -d tigeru.com -d www.tigeru.cn
#4.查看生成的相关文件
ls /etc/letsencrypt/live/itjiangshi.com/
#5.修改Nginx配置文件
listen 443 ssl;
ssl_certificate /etc/letsencrypt/live/tigeru.cn/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/tigeru.cn/privkey.pem;
ssl_protocols TLSv1.2;
ssl_ciphers ECDHE-RSA-AES256-GCM-SHA384;
#6.重启服务
nginx -s reload
sudo
execute a command as another user
普通用户在不使用
root
密码的情况下,可以使用root
相应权限,需要进行相关配置/etc/sudoers
注意:别名在
sudo
中用不了
# vim /etc/sudoers
Cmnd_Alias NETWORKING = /usr/sbin/route,/usr/sbin/ifconfig
root ALL=(ALL) ALL
user01 ALL=/usr/sbin/route
user02 ALL=NETWORKING
#注意:保存时使用 wq!
用户使用时需要在命令前加 sudo