Score:0

Apache 2.4: คำสั่งที่จำเป็น (เช่น ปฏิเสธทั้งหมด) ไม่ได้รับเกียรติ

ธง mx

ฉันใช้ Apache 2.4.41 บน Ubuntu 20.04 และไม่สามารถรับคำสั่ง Require ใดๆ ที่ทำงานบน VirtualHost ของฉันได้ ตัวอย่างการทำงานขั้นต่ำ ไฟล์ VHost ของฉัน:

<VirtualHost *:80>
        ServerName my.domain.com
        DocumentRoot "/var/www/html/admin"

        <Directory /var/www/html/admin>
               Require all denied
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

มีวัตถุประสงค์เพื่อบล็อกการเข้าถึงทั้งหมด แต่บันทึกแสดง:

[authz_core:debug] [pid 340724] mod_authz_core.c(735): [client ***.***.***.***:59008] AH01625: ผลการอนุญาตของ <RequireAny>: อนุญาต (คำสั่งจำกัดที่ วิธีอื่นๆ)

ฉันไม่เห็นการแทนที่ใดๆ บนการทำงานแบบต้องการที่อื่นในแผนผังการกำหนดค่า Apache ของฉัน ตัวอย่างเช่น /etc/apache2/apache.conf ประกอบด้วย:

<Directory />
        Options FollowSymLinks
        AllowOverride None
        Require all denied
</Directory>

<Directory /usr/share>
        AllowOverride None
        Require all granted
</Directory>

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride None
</Directory>

โมดูลของฉันที่โหลดคือ:

โหลดโมดูล:
 core_module (คงที่)
 so_module (คงที่)
 watchdog_module (คงที่)
 http_module (คงที่)
 log_config_module (คงที่)
 logio_module (คงที่)
 version_module (คงที่)
 unixd_module (คงที่)
 access_compat_module (แชร์)
 alias_module (แชร์)
 auth_basic_module (แชร์)
 authn_core_module (แชร์)
 authn_file_module (แชร์)
 authz_core_module (แชร์)
 authz_host_module (แชร์)
 authz_user_module (แชร์)
 autoindex_module (แชร์)
 cgi_module (แชร์)
 deflate_module (ใช้ร่วมกัน)
 dir_module (แชร์)
 env_module (แชร์)
 filter_module (แชร์)
 headers_module (แชร์)
 mime_module (แชร์)
 mpm_prefork_module (แชร์)
 โมดูลการเจรจาต่อรอง (ใช้ร่วมกัน)
 php7_module (แชร์)
 proxy_module (แชร์)
 proxy_http_module (แชร์)
 remoteip_module (แชร์)
 reqtimeout_module (แชร์)
 rewrite_module (แชร์)
 setenvif_module (แชร์)
 socache_shmcb_module (แชร์)
 ssl_module (แชร์)
 status_module (แชร์)

apachectl -t และ apachectl -S ให้เอาต์พุตมาตรฐาน

มีใครคิดว่าฉันควรจะดูที่ไหนต่อไป?

(คำเตือน: Apache 2.4 ไม่ใช่ Apache 2.2 ดังนั้นต้องการใช้คำศัพท์ปัจจุบัน)

djdomi avatar
za flag
สิ่งนี้ตอบคำถามของคุณหรือไม่ [จะปฏิเสธไม่ให้เว็บเข้าถึงบางไฟล์ได้อย่างไร](https://serverfault.com/questions/22577/how-to-deny-the-web-access-to-some-files) IMHO ดูเหมือนว่าคุณจะพลาด ` สั่งซื้อ `
MartinV avatar
mx flag
สวัสดี ขอบคุณที่สละเวลาแสดงความคิดเห็น น่าเสียดายที่บทความที่เชื่อมโยงมีไว้สำหรับ Apache 2.2 ไม่ใช่ Apache 2.4 คำศัพท์นี้เลิกใช้แล้วในเวอร์ชันที่ใหม่กว่า
Score:0
ธง mx

ขอบคุณทุกคนที่อ่านคำถามของฉัน - ฉันพบวิธีแก้ปัญหาแล้วและคิดว่าฉันจะแบ่งปัน

ฉันย้ายแผนผัง Apache2 ของฉันไปด้านหนึ่งและติดตั้งแพ็คเกจที่เกี่ยวข้องใหม่จากที่เก็บ ตอนนี้ชุดคำสั่ง Require ใช้งานได้อีกครั้ง ดังนั้นฉันจึงเปรียบเทียบต้นไม้เก่าและต้นไม้ใหม่เพื่อหาความแตกต่าง

ฉันพบคำสั่งที่ไม่ชัดเจนที่มีคำสั่ง Require all ที่ฉันวางไว้ในไดเร็กทอรีที่เปิดใช้งาน conf และนี่กลายเป็นสาเหตุของปัญหา

ดังนั้นหากมีปัญหากับคำสั่ง Apache ควรตรวจสอบมากกว่าแค่ apache2.conf และไดเร็กทอรี vhosts - ทำงานผ่านไดเร็กทอรี conf และ mods ด้วย!

ไชโย

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา