安全基础

对称加密(DES)

使用同一个秘钥进行加密和解密,秘钥容易泄露

加密速度快,效率高,数据传输速度快,安全性低

流程:

  1. 发送发和接受方拥有同样的秘钥
  2. 发送方使用秘钥将明文数据加密成密文,然后发送密文给接收方
  3. 接收方使用同一个秘钥将密文解密成明文进行读取

非对称加密(RSA)

加密(公钥)和解密(私钥)使用不同的秘钥

加密速度低于对称加密,数据传输速度慢,安全性高

流程:

  1. 接收方生成秘钥对,将公钥发送给发送方
  2. 发送发使用接收方发送过来的公钥将明文数据加密成密文,然后发送密文给接收方
  3. 接收方使用私钥将密文解密成明文进行读取

数字签名

数字签名分为签名和验证两部分,私钥用于签名,公钥用于验证签名

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

Last modification:April 5th, 2020 at 10:26 pm