首页 > 系统相关 >基于centos7.9搭建http文件服务器

基于centos7.9搭建http文件服务器

时间:2024-06-11 19:57:58浏览次数:14  
标签:httpd http etc Require 192.168 centos7.9 密码 conf 服务器

基于centos7.9搭建http文件服务器

1.安装httpd

[root@localhost ~]# yum install -y httpd

2.关闭防火墙以及selinux

[root@localhost ~]# systemctl stop firewalld && setenforce 0

3.修改相关配置

​ 文件/etc/httpd/conf/httpd.conf中的默认参数(自定义修改)

[root@localhost ~]# vim /etc/httpd/conf/httpd.conf
DocumentRoot "/var/www/html" #这一行指定了文档根目录

<Directory "/var/www">  #用于针对指定目录(在这里是/var/www)设置访问控制规则的开始标签。以下的配置将应用于/var/www目录及其子目录。
    AllowOverride None
    # Allow open access:
    Require all granted #表示允许所有人访问/var/www目录及其子目录,没有访问限制                                 
</Directory>

Listen 80 #默认的监听端口,修改80后则需要指定IP:端口进行访问

​ 注释/etc/httpd/conf.d/welcome.conf文件下的此内容,不然就会返回禁止访问报错

[root@localhost ~]# vim /etc/httpd/conf.d/welcome.conf
#<LocationMatch "^/+$">
#    Options -Indexes
#    ErrorDocument 403 /.noindex.html
#</LocationMatch>

4. 文件服务器下创建测试文件

[root@localhost ~]# echo hello > /var/www/html/test.txt

5. 启动httpd并设置开机自启

[root@localhost ~]# systemctl enable --now httpd

编辑http.conf文件,追加以下内容

[root@localhost ~]# vim /etc/httpd/conf/httpd.conf

<FilesMatch "\.(?i:pdf|zip|txt|csv)$">
    Header set Content-Disposition "attachment"
</FilesMatch>

当有人请求以 .pdf、.zip、.txt 或 .csv 结尾的文件时,服务器会设置 Content-Disposition 标头,强制将文件作为附件下载,而不是在浏览器中直接打开,如果还要添加例如tar、gz等文件后缀可以下载,
则需要在括号内添加(?i:pdf|zip|txt|csv|gz|tar)相应的后缀

[root@localhost ~]# systemctl restart httpd

完善文件服务器的浏览器界面,在http.conf的Directory标签中添加

<Directory "/var/www">
    AllowOverride None
    # Allow open access:
    Require all granted
    Options +Indexes
    IndexOptions Charset=UTF-8 NameWidth=*
</Directory>
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
sudo firewall-cmd --zone=public --add-port=443/tcp --permanent
sudo firewall-cmd --reload

6. 密码认证

​ 定义某ip段不用进行密码认证,其余用户则需要密码认证

  1. 编辑 Apache 的配置文件(通常位于 /etc/httpd/conf/httpd.conf/etc/apache2/apache2.conf)。

  2. 在配置文件中找到包含你的文件服务器设置的部分,通常是一个 <Directory> 块,类似于:

<Directory /var/www/html>
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>
  1. <Directory> 块中添加 Require 指令来限制访问。假设你想要允许 192.168.1.0/24 IP 段内的用户无需密码认证,其他用户需要密码认证,可以这样配置:
<Directory /var/www/html>
    Options Indexes FollowSymLinks
    AllowOverride None
    AuthType Basic
    AuthName "Restricted Content"
    AuthUserFile /etc/httpd/conf/.htpasswd
    Require valid-user
    Require ip 192.168.1
</Directory>
  • AuthType Basic:指定使用基本身份验证。
  • AuthName:指定身份验证领域的名称。
  • AuthUserFile:指定包含用户名和密码的文件的路径。
  • Require valid-user:要求所有用户都需要有效的用户名和密码进行认证。
  • Require ip 192.168.1:指定允许访问的 IP 地址段。
  1. 保存并关闭配置文件。

  2. 重新加载 Apache 服务器以使更改生效:

systemctl reload httpd

​ 现在,只有位于 192.168.1.0/24 IP 段内的用户可以访问你的文件服务器而无需密码认证,其他用户则需要进行密码认证。请确保替换示例中的 IP 地址和目录路径为你实际使用的值。

在 Apache 的 Require ip 指令中,你应该写 192.168.1,而不是 192.168.1.0/24

Require ip 192.168.1

​ 这样会允许所有以 192.168.1 开头的 IP 地址,包括 192.168.1.0192.168.1.255 之间的所有地址。 Apache 会将这个 IP 地址与用户的实际 IP 地址进行匹配,如果匹配成功,则允许用户无需密码认证。

要修改 Apache 的基本身份验证密码,你可以使用 htpasswd 命令。

首先,使用以下命令修改密码:

htpasswd -c /etc/httpd/conf/.htpasswd <username>

如果要修改现有用户的密码,只需运行相同的命令,并提供现有的用户名。例如,要修改名为 user1 的用户的密码:

htpasswd /etc/httpd/conf/.htpasswd <username>

然后输入新的密码并确认。

确保使用 htpasswd 命令时,提供正确的文件路径,以便它能够访问并修改密码文件。

标签:httpd,http,etc,Require,192.168,centos7.9,密码,conf,服务器
From: https://blog.csdn.net/m0_64417755/article/details/139607476

相关文章

  • Centos7.9使用kubeadm部署K8S集群
    Centos7.9使用kubeadm部署K8S集群使用kubeadm部署一个k8s集群,单master+2worker节点。1.环境信息操作系统:CentOS7.9.2009内存:2GBCPU:2网络:能够互访,能够访问互联网hostnameip备注k8s-master192.168.0.51masterk8s-node1192.168.0.52workerk8s-n......
  • AWS无服务器 应用程序开发—第一章 目录
    越来越多的用户正在考虑采用无服务器架构进行云原生应用程序开发。通过引入无服务器架构,您将摆脱以前需要的服务器、操作系统和中间件的管理,并且能够显着降低成本。基于我们在应用程序开发和AWS构建方面的丰富知识,提供广泛的服务,开始介绍架构选择、设计、开发和维护。作......
  • json-server 快速搭建REST API 服务器
    json-server快速搭建RESTAPI服务器★认识json-server官方文档参考 json-server是一个非常流行的开源工具,用于快速搭建一个完整的RESTAPI服务器。它使用JSON文件作为数据源,通过简单的配置即可模拟复杂的服务器功能,非常适合前端开发者在没有后端支持的情况下进行开发和......
  • CTFHUB技能树之WEB前置技能HTTP协议
    CTFHUB技能树WEB前置技能/HTTP协议请求方式根据提示可知,通过修改请求方式获取flag使用BurpSuite进行拦截,将GET方法改为CTFHUB方法即可。得到flag。302跳转打开BurpSuite进行拦截,将第一次请求发给重发器再次发送,得出flagCookie打开页面,得出提示信息,需要admin,将Cook......
  • 服务器如何有效解决源IP暴露问题
    在现代互联网环境中,服务器的安全性至关重要。源IP暴露不仅增加了服务器遭受DDoS攻击、恶意扫描和数据泄露的风险,还可能影响业务的正常运行。本文将探讨如何利用技术手段,尤其是CDN和防火墙策略,来有效地解决服务器源IP暴露的问题,并提供实际的代码示例。CDN:内容分发网络CDN通......
  • 安徽京准丨NTP网络授时服务器(GPS时钟同步服务器)助力化工厂系统
    安徽京准丨NTP网络授时服务器(GPS时钟同步服务器)助力化工厂系统安徽京准丨NTP网络授时服务器(GPS时钟同步服务器)助力化工厂系统京准电子科技官微——ahjzsz现代化工企业均设置自动化控制系统,大多数企业设置不止一套控制系统,有基本生产过程控制系统(BPCS)、安全仪表系统(SIS)、可......
  • C#、.Net通过HttpWebRequest请求WebService接口
    点击查看代码///<summary>///测试按钮中调用WebService接口///</summary>///<paramname="sender"></param>///<paramname="e"></param>privatevoidbutton1_Click(objectsender,EventArgse){//strin......
  • .net8 aspire 启动不用https 报ASPIRE_ALLOW_UNSECURED_TRANSPORT故障
    故障显示System.AggregateException:“Oneormoreerrorsoccurred.(The'applicationUrl'settingmustbeanhttpsaddressunlessthe'ASPIRE_ALLOW_UNSECURED_TRANSPORT'environmentvariableissettotrue.Thisconfigurationiscommonlyset......
  • windows terminal ssh 免密访问远程服务器
    1.本地生成ssh密钥对打开windowscmd终端执行命令(如果已有公私钥,可跳过此步骤)`ssh-keygen-trsa`生成的文件在"C:\Users\用户xxx\.ssh"目录中||||-----------|-----------------------------||id_rsa|私钥||id_rsa.pub|公钥|如图......
  • SRE 排障利器,接口请求超时试试 httpstat
    夜莺资深用户群有人推荐的一个工具,看了一下真挺好的,也推荐给大家。需求场景A服务调用B服务的HTTP接口,发现B服务返回超时,不确定是网络的问题还是B服务的问题,需要排查。工具简介就类似curl,httpstat也可以请求某个后端,而且可以把各个阶段的耗时都展示出来,包括DNS解......