03-服务安全

1.SElinux

访问控制分类
DAC
Discretionary Access Control,自主访问被控制,依据进程的所有者与文件资源的rwx权限来决定有无访问权
限。
缺点:

  1. 如果某个进程以root身份运行,可能被恶意目的
  2. 用户可以取得进程来获得文件的访问权限

总结:DAC针对控制的主体是用户

MAC
Mandatory Access Control,强制访问控制,依据策略规则决定进程可以访问哪些文件
优点:
即使是root用户,在使用不同进程时,所能取得的权限并不一定是root,需要看当时进程的设置而定
总结:MAC针对控制的主体是进程

SElinux介绍
SELinux(Security-Enhanced Linux) 是美国国家安全局(NSA)对于强制访问控制的实现,是 Linux历史上最杰出的新安全子系统。NSA是在Linux社区的帮助下开发了一种访问控制体系,在这种访问控制体系的限制下,进程只能访问那些在他的任务中所需要文件。SELinux 默认安装在 Fedora 和 Red Hat Enterprise Linux 上,也可以作为其他发行版上容易安装的包得到。

SELinux 是 2.6 版本的 Linux 内核中提供的强制访问控制(MAC)系统。对于可用的 Linux安全模块来说,SELinux 是功能最全面,而且测试最充分的,它是在 20 年的 MAC 研究基础上建立的。SELinux 在类型强制服务器中合并了多级安全性或一种可选的多类策略,并采用了基于角色的访问控制概念。

SElinux策略模式
无强制访问控制(disabled)

[root@vm1 ~]# cat /etc/selinux/config |grep -i selinux=
# SELINUX= can take one of these three values:
SELINUX=disabled

有强制访问控制(enforcing)

[root@vm1 ~]# cat /etc/selinux/config |grep -i selinux=
# SELINUX= can take one of these three values:
SELINUX=enforcing

许可访问控制(permissive)

[root@vm1 ~]# cat /etc/selinux/config |grep -i selinux=
# SELINUX= can take one of these three values:
SELINUX=permissive

查看SElinux当前策略模式

[root@vm1 ~]# getenforce 
Permissive
[root@vm1 ~]# sestatus 
SELinux status:                 enabled
SELinuxfs mount:                /sys/fs/selinux
SELinux root directory:         /etc/selinux
Loaded policy name:             targeted
Current mode:                   permissive
Mode from config file:          permissive
Policy MLS status:              enabled
Policy deny_unknown status:     allowed
Memory protection checking:     actual (secure)
Max kernel policy version:      31

2.数据加密技术

对称加密
加密和解密使用一同把钥匙
优点:效率高,加密速度快,可以加密大量的数据.
缺点:密钥的传递问题

Openssl

[root@vm1 ~]# openssl enc -des3 -in ./tes.txt -out ./tes.txt.enc   
# 加密
enter des-ede3-cbc encryption password:
Verifying - enter des-ede3-cbc encryption password:
*** WARNING : deprecated key derivation used.
Using -iter or -pbkdf2 would be better.
[root@vm1 ~]# openssl enc -des3 -a -in ./tes.txt -out ./tes1.txt.enc
# ascii码
enter des-ede3-cbc encryption password:
Verifying - enter des-ede3-cbc encryption password:
*** WARNING : deprecated key derivation used.
Using -iter or -pbkdf2 would be better.
[root@vm1 ~]# ls
anaconda-ks.cfg  tes1.txt.enc  tes.txt  tes.txt.enc  vm2

[root@vm1 ~]# openssl enc -des3 -d -in ./tes.txt.enc -out ./test.txt
# 解密
enter des-ede3-cbc decryption password:
*** WARNING : deprecated key derivation used.
Using -iter or -pbkdf2 would be better.
[root@vm1 ~]# openssl enc -des3 -a -d -in ./tes1.txt.enc -out ./test1.txt
enter des-ede3-cbc decryption password:
*** WARNING : deprecated key derivation used.
Using -iter or -pbkdf2 would be better.
[root@vm1 ~]# ls
anaconda-ks.cfg  tes1.txt.enc  test1.txt  test.txt  tes.txt  tes.txt.enc  vm2
[root@vm1 ~]# cat test.txt 
123

非对称加密
加密和解密使不用的同钥匙,一般是公钥加密,私钥解密
优点:解决了密钥传递的问题
缺点:效率低,加密速度慢,只能加密少量数据

单向加密
加密不可逆
例:md5

3.非对称加密SSL/TLS

CA简介
CA :CertificateAuthority的缩写,通常翻译成认证权威或者认证中心,主要用途是为用户发放数字证书
功能:证书发放、证书更新、证书撤销和证书验证。
作用:身份认证,数据的不可否认性
证书请求文件:CSR是Cerificate Signing Request的英文缩写,即证书请求文件,也就是证书申请者在申请数字证书时
由CSP(加密服务提供者)在生成私钥的同时也生成证书请求文件,证书申请者只要把CSR文件提交给证书颁发机构
后,证书颁发机构使用其根证书的私钥签名就生成了证书文件,也就是颁发给用户的证书
用作HTTP转HTTPS
HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲
是HTTP的安全版。

SSL:(Secure Socket Layer)安全套接字层,通过一种机制在互联网上提供密钥
传输 其主要目标是保证两个应用 间通信数据的保密性和可靠性,可在服务器端和用
户端同时支持的一种加密算法 目前主流版本SSLV2、SSLV3(常 用)。
SSL四次握手安全传输: 
加密协议: SSL 3.0 或 TLS 1.0 
C-------------------------------------------------> S 
1. 请求一个安全的会话,协商算法 
C <------------------------------------------------- S 
2. 将自己Server端的证书给客户端,证 书中包括了64自己的公钥 
C -------------------------------------------------> S 
3. 客户端用浏览器中存放CA的根证书检
测client证书,如果对,使用CA根证书中的公钥解密 得到CA的公钥;
然后生成一把对称的加密密钥,用client的 公钥加密这个密钥
发给CA , 后期使用对称密钥加密数据 
C <----------------------------------------- > S
4.client使用私钥解密,得到对称的加 密密钥然后,使用对称加密密钥来进行安全快速传输数据

CA认证

一.环境准备

[root@vm1 ~]# cat /etc/hosts 
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
172.20.203.10 vm1 ca.cn
172.20.203.11 vm2 test.nginx.cn

二.修改CA配置文件

[root@vm1 ~]# dnf -y install openssl
[root@vm1 ~]# vim /etc/pki/tls/openssl.cnf
# 修改为如下配置 
[ CA_default ]

dir             = /etc/pki/CA           # Where everything is kept
certs           = $dir/certs            # Where the issued certs are kept
crl_dir         = $dir/crl              # Where the issued crl are kept
database        = $dir/index.txt        # database index file.
#unique_subject = no                    # Set to 'no' to allow creation of
                                        # several certs with same subject.
new_certs_dir   = $dir/newcerts         # default place for new certs.

certificate     = $dir/ca.crt   # The CA certificate
serial          = $dir/serial           # The current serial number
crlnumber       = $dir/crlnumber        # the current crl number
                                        # must be commented out to leave a V1 CRL
crl             = $dir/crl.pem          # The current CRL
private_key     = $dir/private/ca.key # The private key
...
[ req_distinguished_name ]
countryName                     = Country Name (2 letter code)
countryName_default             = CN # 修改国家
countryName_min                 = 2
countryName_max                 = 2

stateOrProvinceName             = State or Province Name (full name)
stateOrProvinceName_default     = Guangdong # 修改省份

localityName                    = Locality Name (eg, city)
localityName_default            = Shenzhen # 修改城市

0.organizationName              = Organization Name (eg, company)
0.organizationName_default      = it # 修改部门
保存退出
[root@vm1 ~]# cd /etc/pki/
[root@vm1 pki]# mkdir CA
[root@vm1 pki]# mkdir CA/{certs,crl,newcerts,private}

三.生成CA私钥和自签名证书

[root@vm1 CA]# touch index.txt # 生成证书索引库文件
[root@vm1 CA]# echo 00 > serial # 制定颁发第一个证书的序列号
# 生成private
[root@vm1 CA]# (umask 077;openssl genrsa -out private/ca.key -des3 2048)
Generating RSA private key, 2048 bit long modulus (2 primes)
.............+++++
..+++++
e is 65537 (0x010001)
Enter pass phrase for private/ca.key:
Verifying - Enter pass phrase for private/ca.key:
# 生成CA私钥
[root@vm1 CA]# ls private/
ca.key
[root@vm1 CA]# openssl req -new -x509 -days 356 -key private/ca.key > ca.crt       
Enter pass phrase for private/ca.key:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [CN]:
State or Province Name (full name) [Guangdong]:
Locality Name (eg, city) [Shenzhen]:
Organization Name (eg, company) [it]:
Organizational Unit Name (eg, section) []:web
Common Name (eg, your name or your server's hostname) []:ca.cn
Email Address []:test@test.com   
[root@vm1 CA]# ls
ca.crt  certs  crl  index.txt  newcerts  private  serial

四.nginx服务器准备

[root@vm2 ~]# dnf -y install nginx openssl # 安装包
[root@vm2 ~]# openssl genrsa -out /etc/nginx/nginx.key # 生成私钥
Generating RSA private key, 2048 bit long modulus (2 primes)
................+++++
.................................................+++++
e is 65537 (0x010001)        
[root@vm2 ~]# openssl req -new -key /etc/nginx/nginx.key -out /tmp/nginx.csr
# 生成web证书的申请文件
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:CN # 注意内容要一致
State or Province Name (full name) []:Guangdong
Locality Name (eg, city) [Default City]:Shenzhen
Organization Name (eg, company) [Default Company Ltd]:it
Organizational Unit Name (eg, section) []:web
Common Name (eg, your name or your server's hostname) []:www.test.nginx.cn
Email Address []:web@web.cn

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
[root@vm2 ~]# scp /tmp/nginx.csr vm1:/tmp  
nginx.csr                100% 1045     1.7MB/s   00:00   

五.CA给nginx服务器颁发证书

[root@vm1 CA]# openssl ca -in /tmp/nginx.csr -out /tmp/nginx.crt
Using configuration from /etc/pki/tls/openssl.cnf
Enter pass phrase for /etc/pki/CA/private/ca.key:
Check that the request matches the signature
Signature ok
Certificate Details:
        Serial Number: 0 (0x0)
        Validity
            Not Before: Oct  6 06:49:12 2021 GMT
            Not After : Oct  6 06:49:12 2022 GMT
        Subject:
            countryName               = CN
            stateOrProvinceName       = Guangdong
            organizationName          = it
            organizationalUnitName    = web
            commonName                = www.test.nginx.cn
            emailAddress              = web@web.cn
        X509v3 extensions:
            X509v3 Basic Constraints: 
                CA:FALSE
            Netscape Comment: 
                OpenSSL Generated Certificate
            X509v3 Subject Key Identifier: 
                F5:F6:2D:A6:CD:17:27:E9:0E:3F:DD:FC:96:5E:A9:58:49:51:12:62
            X509v3 Authority Key Identifier: 
                keyid:9B:CA:7E:AF:57:34:0F:31:1F:0D:C9:40:E4:96:CC:E9:75:D8:AF:25

Certificate is to be certified until Oct  6 06:49:12 2022 GMT (365 days)
Sign the certificate? [y/n]:y


1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated
[root@vm1 CA]# scp /tmp/nginx.crt test.nginx.cn:/etc/nginx
The authenticity of host 'test.nginx.cn (172.20.203.11)' can't be established.
ECDSA key fingerprint is SHA256:hS1l8wyrxAPtN060zptsSAdH3XIYO2Kg9cl+qzSMlwE.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'test.nginx.cn' (ECDSA) to the list of known hosts.
nginx.crt                      100% 4574     5.3MB/s   00:00    

六.nginx服务器配置

[root@vm2 ~]# vim /etc/nginx/nginx.conf
    server {
        listen       80;
        server_name  www.test.nginx.cn test.nginx.cn;
        root         /usr/share/nginx/html;
        return 301 https://www.test.nginx.cn/$request_uri; #添加

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        location / {
        }

        error_page 404 /404.html;
            location = /40x.html {
        }

        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
    }

# Settings for a TLS enabled server.
#
    server {
        listen       443 ssl;
#        listen       [::]:443 ssl http2 default_server;
        server_name  www.test.nginx.cn;
        root         /usr/share/nginx/html;

        ssl on; # 开启
        ssl_certificate "/etc/nginx/nginx.crt"; # 修改
        ssl_certificate_key "/etc/nginx/nginx.key"; # 修改
#        ssl_session_cache shared:SSL:1m;
        ssl_session_timeout  10m; # 删除注释
        ssl_protocols SSLv2 SSLv3 TLSv1; # 添加
#        ssl_ciphers PROFILE=SYSTEM;
#        ssl_prefer_server_ciphers on;
#
#        # Load configuration files for the default server block.
#        include /etc/nginx/default.d/*.conf;
#
#        location / {
#        }
#
#        error_page 404 /404.html;
#            location = /40x.html {
#        }
#
#        error_page 500 502 503 504 /50x.html;
#            location = /50x.html {
#        }
    } # 开启

}
保存退出
[root@vm2 ~]# rm -rf /usr/share/nginx/html/nginx-logo.png 
[root@vm2 ~]# rm -rf /usr/share/nginx/html/poweredby.png 
[root@vm2 ~]# echo "nginx test" > /usr/share/nginx/html/index.html 
[root@vm2 ~]# systemctl restart nginx

7.客户端检验

打开文件资源管理器,进入
C:\Windows\System32\drivers\etc
将hosts文件复制到桌面上打开
添加如下两行

172.20.203.10 ca.cn
172.20.203.11 www.test.nginx.cn
保存退出

覆盖etc下的源文件
浏览器访问http://www.test.nginx.cn
请添加图片描述
解决方案:
将证书导入到浏览器
进入设置,搜索证书
请添加图片描述
点击管理证书->受信任的根证书颁发机构->导入->下一页->选择文件->
下一页->下一页->完成->是
浏览器重新访问即可

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 1-企业网络架构基础: 企业网络架构基础是指企业内部网络的整体设计和组织结构,旨在满足企业内部各个部门之间、员工之间和企业与外部网络之间的通信需求。 2-网络模型: 网络模型是指将网络通信抽象成不同层次和功能的模块,以实现网络通信的可靠性、效率和安全性。常见的网络模型包括OSI参考模型和TCP/IP模型。 3-抓包软件的使用: 抓包软件是一种用于捕捉网络通信数据包的工具,可以用于查看在网络上发送和接收的数据包的详细信息,包括协议头部、数据内容等。抓包软件的使用可以帮助分析网络通信问题、调试和监测网络应用的性能。 4-DNS: DNS(Domain Name System)是互联网上用于域名解析的系统,通过将域名解析成对应的IP地址,实现了互联网上的域名与IP地址的映射关系。DNS的作用是将用户输入的域名转换为IP地址,以便进行网络通信。 5-HTTP: HTTP(Hypertext Transfer Protocol)是一种用于在客户端和服务器之间传输超文本的协议。HTTP基于请求-响应模式,通过客户端发送HTTP请求到服务器,服务器处理请求后返回响应给客户端。HTTP协议常用于Web应用程序和浏览器之间的通信。 6-邮件服务: 邮件服务是指通过电子邮件协议实现的电子邮件的发送、接收和管理功能。邮件服务允许用户通过电子邮件地址发送和接收电子邮件,并提供了管理邮件、收件人地址簿、邮件过滤等功能,是现代通信中不可或缺的一部分。常见的邮件服务包括SMTP、POP3和IMAP。 ### 回答2: 1-企业网络架构基础:企业网络架构是指企业在网络方面的组织结构和布局。它包括网络设备的部署、网络拓扑结构的设计、网络安全策略等。一个好的企业网络架构可以提高企业的网络通信效率和安全性。 03-网络模型:网络模型指的是用于描述计算机网络通信的理论模型。常见的网络模型包括OSI七层模型和TCP/IP五层模型。这些模型将网络通信划分为不同的层次,每一层负责不同的功能。网络模型可以帮助人们更好地理解和管理网络通信。 04-抓包软件的使用:抓包软件是用于捕获网络数据包并进行分析的工具。它可以帮助用户监测和分析网络流量,了解网络通信的细节和性能。通过抓包软件,用户可以查看和解析网络协议,从而排查网络故障、优化网络性能等。 05-DNS:DNS(Domain Name System)是互联网上的一个分布式数据库系统,用于将域名转换为IP地址。它通过域名解析器将用户输入的域名转换为对应的IP地址,以便用户能够访问相应的网站或服务。DNS在互联网的通信中起到了重要的作用。 06-HTTP:HTTP(Hypertext Transfer Protocol)是一种应用层协议,用于在客户端和服务器之间传输超文本。它是互联网上常用的协议之一,通过客户端发送HTTP请求,服务器返回相应的HTTP响应,完成信息的交互。HTTP的发展使得网页的浏览和信息的交换更加方便和快速。 07-邮件服务:邮件服务是指通过电子邮件进行信息传递的服务。它使用户能够发送和接收电子邮件,实现跨越时间和空间的快速通信。邮件服务依赖于SMTP(Simple Mail Transfer Protocol)协议和POP3(Post Office Protocol)或IMAP(Internet Message Access Protocol)协议,其中SMTP用于发送邮件,POP3和IMAP用于接收邮件。通过邮件服务,人们可以进行不同地点之间的沟通和信息交流。 ### 回答3: 1-企业网络架构基础: 企业网络架构是指企业内部网络的设计和组织方式。它包括网络拓扑、网络设备、网络安全等方面。一个良好的企业网络架构可以提高网络的稳定性、可扩展性和安全性。常见的企业网络架构包括分层网络架构、树状网络架构和集中式网络架构等。 03-网络模型: 网络模型是用于描述和分析计算机网络的一种方法。常见的网络模型有OSI参考模型和TCP/IP参考模型。OSI参考模型包括七个层次,分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。TCP/IP参考模型则包括四个层次,分别是网络接口层、网络层、传输层和应用层。通过这些层次的划分,网络模型可以更好地进行协议的设计和实现。 04-抓包软件的使用: 抓包软件是一种用于捕获和分析网络数据包的工具。常见的抓包软件有Wireshark、tcpdump等。使用抓包软件可以监视网络通信,了解网络中的数据流动情况,也可以用于网络故障诊断和网络安全分析。 05-DNS: DNS全称为域名系统,是互联网上用于将域名转换为IP地址的一种系统。它通过域名和IP地址的映射来实现域名解析。DNS服务一般由ISP或者企业自建的DNS服务器提供,用户通过向DNS服务器发送查询请求来获取域名对应的IP地址,从而实现互联网上的资源访问。 06-HTTP: HTTP全称为超文本传输协议,是一种用于传输超文本的应用层协议。它是互联网上最常用的协议之一,用于在Web浏览器和Web服务器之间进行通信。HTTP采用客户端-服务器模式,客户端发送请求到服务器,服务器返回响应给客户端。HTTP协议还定义了请求方法、状态码、头部字段等规范,提供了丰富的功能来支持Web应用开发。 07-邮件服务: 邮件服务是指通过电子邮件在互联网上发送和接收邮件的服务。它通过使用SMTP协议发送邮件,使用POP3或IMAP协议接收邮件。邮件服务一般由IT部门或者邮件服务提供商提供。用户可以使用各种邮件客户端来发送和接收邮件,例如Outlook、Gmail等。邮件服务也提供了一些附加功能,如邮件过滤、垃圾邮件拦截等,以提升用户体验和安全性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值