当前位置: 首页 > article >正文

web服务器+selinux实验

实验1:基本实现

yum install nginx -y
systemctl start nginx.service

systemctl restart nginx.service

vim /etc/nginx/nginx.conf  修改配置文件

把 root 的路径改为 /var/www/html

echo "hello world" > /var/www/html/index.html   

重启服务

[root@server ~]# curl 192.168.245.128
hello world

 

注意:所有实验中配置更改后都要重启nginx

 实验2:一般实现:修改端口、默认目录、默认文件访问web页面

1. 通过不同的端口访问同一web页面 

在/etc/nginx/conf.d下创建新的文件-- ip.conf
配置如下
server { 
    listen 192.168.245.128:888; 
    location / { 
        root /web/html;
    } 
} 
如果root在location里面,那么会覆盖server模块里的root

保存后重启服务

 2. 通过不同的默认目录访问同一web页面

 实际就是实验一。因为如果是刚开始的文件,那么显示的应该是linux那个页面

3. 通过不同的文件访问web页面 

mkdir /web/haha

echo "i am haha " > /web/haha/index.html

root /web;  (还是上面那个配置文件,改个路径)

实验3:虚拟主机:基于不同端口、不同目录、不同IP、不同域名访问不同页面 

1. 基于不同端口访问不同页面

server { 
    listen 192.168.245.128:122; 
    location / { 
        root /web/122;
    } 
} 
server { 
    listen 192.168.245.128:132; 
    location / { 
        root /web/132;
    } 
} 

2. 基于不同目录访问不同页面

 。。。 感觉和2.3一样

3. 基于不同IP访问不同页面 

nmcli connection modify ens160 +ipv4.addresses 192.168.245.123/24
nmcli connection up ens160
mkdir /web/{123,132}
echo my ip is 123 > /web/123/index.html
echo my ip is 132 > /web/132/index.html
vim /etc/nginx/conf.d/ip.conf
server {
listen 192 .168.245.128:80;
root /web/132;
location / {
index index.html;
}
}
server {
listen 192 .168.245.123:80;
root /web/123;
location / {
index index.html;
}
}

4.基于不同域名访问不同页面 

server {
listen 192.168.245.128:80;
server_name www.xixi132.com;
location / {
root /web/132;
}
}
server {
listen 192.168.245.128:80;
server_name www.haha123.com;
location / {
root /web/123;
}
}

 vim /etc/hosts

实验4:访问控制

1. 基于不同用户的访问控制 

htpasswd -cb /etc/nginx/conf.d/auth_passwd li4 123
htpasswd -cb /etc/nginx/conf.d/auth_passwd2 tom 123
server {
listen 192.168.245.128:80;
location / {
root /web/132;
auth_basic on;   
auth_basic_user_file /etc/nginx/conf.d/auth_passwd;
}
}
server {
listen 192.168.245.123:80;
location / {
root /web/123;
auth_basic on;   
auth_basic_user_file /etc/nginx/conf.d/auth_passwd;
}
}

 2. 基于源ip的访问控制

server {
listen 80;
location / {
root /web/132;
allow 192.168.245.123/24;
deny 192.168.245.128/24;
}
}

实验5:证书

cd /etc/pki/tls/certs/
openssl genrsa -out miyao.key
openssl req -utf8 -new -key /etc/pki/tls/certs/miyao.key -x509 -days 100 -out /zhengshu.crt
server {
listen 192.168.245.128:443 ssl;
location / {
root /web/132;
}
ssl_certificate "/zhengshu.crt";
ssl_certificate_key "/etc/pki/tls/certs/miyao.key";
}

实验6nginx发布动态页面的方法 

yum install php php-fpm -y
echo "<?php phpinfo(); ?>" > /web/php/index.php

server {
listen 80;
location / {
root /web/php;
include /etc/nginx/default.d/php.conf;
}
}

selinux

1. 在enforing 模式下,nginx的端口号被修改,并是实现页面正常访问

要想访问的时候不是403,那么就要修改nginx中root 目录的安全上下文

[root@server ~]# ls -Zd /web/132

unconfined_u:object_r:default_t:s0 /web/132

[root@server ~]# ls -Zd /usr/share/nginx/html/

system_u:object_r:httpd_sys_content_t:s0 /usr/share/nginx/html/

[root@server ~]# chcon -Rv -t httpd_sys_content_t /web/132

正在更改 '/web/132/index.html' 的安全上下文

正在更改 '/web/132/index.php' 的安全上下文

正在更改 '/web/132' 的安全上下文

[root@server ~]# ls -Zd /web/132

unconfined_u:object_r:httpd_sys_content_t:s0 /web/132

查看selinux允许的端口号
semanage port -l | grep http_port_t
使用semanage命令将777端口号添加到http_port_t类型列表中
semanage port -a -t http_port_t -p tcp 777
server {
listen 777;
location / {
root /web/132;
}
}

2. enforing 模式下,演示ssh端口号修改的selinux设定


vim /etc/ssh/sshd_config # 修改ssh的端口号为33
semanage port -a -t ssh_port_t -p tcp 2222 # 添加33端口


http://www.kler.cn/a/503966.html

相关文章:

  • 微信小程序获取当前页面路径,登录成功后重定向回原页面
  • 【端云一体化】云函数的使用
  • 大数据技术Kafka详解 ⑤ | Kafka中的CAP机制
  • lerna使用指南
  • Rank-Analysis——LOL 排位战绩查询分析器
  • ffmpeg常用命令及介绍
  • SQL面试题2:留存率问题
  • 1.14学习
  • 用 Python 从零开始创建神经网络(二十):模型评估
  • 《C++11》nullptr介绍:从NULL说起
  • 【前端】自学基础算法 -- 25.动态规划-01背包问题
  • CloudCompare视图透视问题与裁剪平面设置详解
  • RPC 源码解析~Apache Dubbo
  • 图像模糊度(清晰度)检测 EsFFT 算法详细分析
  • 测试模型安全的一些高级手段
  • Swagger学习⑲——@Webhook注解
  • 力扣6-合并两个有序链表
  • C++中引用参数与指针参数的区别与联系详解
  • Mysql 和 navicat 的使用
  • LeetCode 283题:移动零
  • 【动态规划-矩阵】4.三角形最小路径和
  • dockerfile2.0
  • 61_Redis服务器端优化
  • Android 中mk文件语法浅析
  • 鸿蒙打包发布
  • Windows CMD 常用命令