基于同一IP的不同端口访问不同的网站

实验目标:基于同一IP的不同端口访问不同的网站(可以通过域名去访问) ip+port1 -> 对应一个域名 ip+port2 -> 对应一个域名 使用域名1我应该访问到 ip+port1对应的内容 使用域名2我应该访问到 ip+port2对应的内容

作业: 你知道的hash算法有哪些 对称加密算法有哪些 非对称加密的算法有哪些

  1. 添加一个IP地址,每个人的私有网段个有不同:

nmcli c modify ens160 +ipv4.addresses 192.168.73.148/24
nmcli connection up ens160      # 查看
  1. 安装http服务器

yum install -y httpd 
  1. 查看httpd文件结构:

├── conf           # 存放的主配置文件
│   ├── httpd.conf            
│   └── magic
├── conf.d         # 存放额外的配置文件: 必须以.conf为后缀才生效
│   ├── autoindex.conf        # 额外的参数文件
│   ├── README                # 额外的参数文件
│   ├── userdir.conf          # 额外的参数文件
│   └── welcome.conf          # 默认首页得配置文件
├── conf.modules.d # 存放有关模块的配置文件, 必须以.conf后缀才生效
│   ├── 00-base.conf
│   ├── 00-dav.conf
│   ├── 00-lua.conf
│   ├── 00-mpm.conf
│   ├── 00-proxy.conf
│   ├── 00-systemd.conf
│   └── 01-cgi.conf
├── logs -> ../../var/log/httpd                    # logs: 日志存放的位置
├── modules -> ../../usr/lib64/httpd/modules       # modules: 指定httpd相关模块存放的路径    
└── run -> /run/httpd                              # run: 运行的一些信息
└── state ->                                       # state: 状态的一些信息
  1. 创建两个不同页面目录,用于存放html等网页信息;并创建首页信息

mkdir /var/www/host1
echo this is port1 > /var/www/host/index.html
mkdir /var/www/host3
echo this is other port of host1 > /var/www/host/index.html
  1. 查看端口使用情况,确保不会有端口占用:

ss -tnl
  1. 修改虚拟主机配置文件:

vim /etc/httpd/conf.d/host.conf
# 内容
<Directory "/var/www"> 
    AllowOverride None       # 是否允许额外配置文件
    require all granted      # 设置客户端的访问权限
</Directory>
 
Listen 192.168.73.148:500
 
<VirtualHost 192.168.73.148:500>
    DocumentRoot "/var/www/host1"      # 主机上被访问网站的主目录
</VirtualHost>
 
Listen 192.168.73.148:1000
 
<VirtualHost 192.168.73.148:1000>
    DocumentRoot "/var/www/host3"
</VirtualHost>

7.安装nginx

yum install -y nginx

8.使用nginx实现根据域名进行转口转发

vim /etc/nginx/conf.d/host.conf
# 内容
upstream host1 {        # 自定义名称host1的模块
  server 192.168.73.148:500;       # 访问的真实IP地址+端口号
}
 
server {
  listen 192.168.73.148:80;       # 绑定的域名
  server_name www.qv147.com;      # 绑定的域名
  client_max_body_size 1024m;
  location / {
    proxy_pass http://host1;      # # host1和upstream host1模块相对应
  }
}
upstream host3 {
  server 192.168.73.148:1000;
}
 
server {
  listen 192.168.73.148:80;
  server_name www.qv258.com;
  client_max_body_size 1024m;
  location / {
    proxy_pass http://host3;
  }
}  

重启httpd服务和nginx服务

systemctl restart httpd
systemctl restart nginx

修改windows下的C:\Windows\System32\drivers\etc\hosts的文件

192.168.73.148 www.qv147.com
192.168.73.148 www.qv258.com

注意:hosts文件不认192.168.73.148:8090的写法,只认IP绑定域名

9.浏览器访问:

实验结束

对称加密算法

也叫私钥加密算法,其特征是收信方和发信方使用相同的密钥,即加密密钥和解密密钥是相同或等价的。

非对称加密算法

也叫公钥加密算法。其特征是收信方和发信方使用的密钥互不相同,而且几乎不可能从加密密钥推导解密密钥。

用公钥加密的过程叫加密

用私钥解密的过程叫解密

用私钥加密的消息称为签名,只有拥有私钥的用户可以生成签名

用公钥解密签名这一步称为验证签名(验签),所有用户都可以验证签名(因为公钥是公开的)

一旦签名验证成功,根据公私钥数学上的对应关系,就可以知道该消息是唯一拥有私钥的用户发送的,而不是随便一个用户发送的。

由于私钥是唯一的,因此数字签名可以保证发送者事后不能抵赖对报文的签名。由此,消息的接收者可以通过数字签名,使第三方确信签名人的身份及发出消息的事实。当双方就消息发出与否及其内容出现争论时,数字签名就可成为一个有力的证据。

证书

证书是第三方机构颁发的,包含服务器的公钥信息,用第三方机构的私钥加密,而第三方的公钥是公开的。

服务器把证书发给客户端,客户端用第三方机构的公钥解密证书就可以获得服务器的公钥,客户端不用自己存储服务器的公钥。

如果不使用证书,客户端就必须存储服务器的公钥A,客户端必须保证存储的服务器公钥A不被篡改,否则就不能解密服务器信息。

如果客户端存储的服务器公钥A被篡改成B,篡改者拥有B所对应的私钥BB,篡改者向客户端发送数据,客户端就能解密,认为篡改者发的消息是服务器发的。

哈希算法

散列算法,又称哈希函数,是一种单向加密算法。在信息安全技术中,经常需要验证消息的完整性,散列(Hash)函数提供了这一服务,它对不同长度的输入消息,产生固定长度的输出。这个固定长度的输出称为原输入消息的"散列"或"消息摘要"(Message digest)。散列算法不算加密算法,因为其结果是不可逆的,既然是不可逆的,那么当然不是用来加密的。

对某个数据包进行散列算法计算得到一个数字,称这个数值为摘要

具体算法种类

对称性加密算法有:AES、DES、3DES

用途:对称加密算法用来对敏感数据等信息进行加密

DES(Data Encryption Standard):数据加密标准,速度较快,适用于加密大量数据的场合。

3DES(Triple DES):是基于DES,对一块数据用三个不同的密钥进行三次加密,强度更高。

AES(Advanced Encryption Standard):高级加密标准,是下一代的加密算法标准,速度快,安全级别高;AES是一个使用128为分组块的分组加密算法,分组块和128、192或256位的密钥一起作为输入,对4×4的字节数组上进行操作。众所周之AES是种十分高效的算法,尤其在8位架构中,这源于它面向字节的设计。AES 适用于8位的小型单片机或者普通的32位微处理器,并且适合用专门的硬件实现,硬件实现能够使其吞吐量(每秒可以到达的加密/解密bit数)达到十亿量级。同样,其也适用于RFID系统。

非对称性算法有:RSA、DSA、ECC

RSA:由 RSA 公司发明,是一个支持变长密钥的公共密钥算法,需要加密的文件块的长度也是可变的。RSA在国外早已进入实用阶段,已研制出多种高速的RSA的专用芯片。

DSA(Digital Signature Algorithm):数字签名算法,是一种标准的 DSS(数字签名标准),严格来说不算加密算法。

ECC(Elliptic Curves Cryptography):椭圆曲线密码编码学。ECC和RSA相比,具有多方面的绝对优势,主要有:抗攻击性强。相同的密钥长度,其抗攻击性要强很多倍。计算量小,处理速度快。ECC总的速度比RSA、DSA要快得多。存储空间占用小。ECC的密钥尺寸和系统参数与RSA、DSA相比要小得多,意味着它所占的存贮空间要小得多。这对于加密算法在IC卡上的应用具有特别重要的意义。带宽要求低。当对长消息进行加解密时,三类密码系统有相同的带宽要求,但应用于短消息时ECC带宽要求却低得多。带宽要求低使ECC在无线网络领域具有广泛的应用前景。

散列算法(签名算法)有:MD5、SHA1、HMAC

用途:主要用于验证,防止信息被修。具体用途如:文件校验、数字签名、鉴权协议

MD5:MD5是一种不可逆的加密算法,目前是最牢靠的加密算法之一,尚没有能够逆运算的程序被开发出来,它对应任何字符串都可以加密成一段唯一的固定长度的代码。

SHA1:是由NISTNSA设计为同DSA一起使用的,它对长度小于264的输入,产生长度为160bit的散列值,因此抗穷举(brute-force)性更好。SHA-1设计时基于和MD4相同原理,并且模仿了该算法。SHA-1是由美国标准技术局(NIST)颁布的国家标准,是一种应用最为广泛的Hash函数算法,也是目前最先进的加密技术,被政府部门和私营业主用来处理敏感的信息。而SHA-1基于MD5,MD5又基于MD4。

HMAC:是密钥相关的哈希运算消息认证码(Hash-based Message Authentication Code),HMAC运算利用哈希算法,以一个密钥和一个消息为输入,生成一个消息摘要作为输出。也就是说HMAC是需要一个密钥的。所以,HMAC_SHA1也是需要一个密钥的,而SHA1不需要。

CRC:(Cyclic Redundancy Check,循环冗余校验)算法出现时间较长,应用也十分广泛,尤其是通讯领域,现在应用最多的就是 CRC32 算法,它产生一个4字节(32位)的校验值,一般是以8位十六进制数,如FA 12 CD 45等。CRC算法的优点在于简便、速度快,严格的来说,CRC更应该被称为数据校验算法,但其功能与数据摘要算法类似,因此也作为测试的可选算法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值