Score:1

หลังจากลบ .htaccess จะไม่สามารถเข้าถึง phpmyadmin ได้อีกต่อไป

ธง my

Raspbian ทำงานบน raspberrypi 3+ apache 2.4

ฉันพยายามรักษาความปลอดภัยเซิร์ฟเวอร์ให้ดีขึ้นเล็กน้อยและฉันก็เปิดใช้งาน .htaccess โดยการเปลี่ยน apache2.conf ไลน์ AllowOverride ไม่มี ถึง AllowOverride ทั้งหมด และเพิ่มก .htaccess ไฟล์ไปยังเส้นทาง phpmyadmin ซึ่งอยู่ที่ /var/www/BaseSite/phpmyadmin:

สั่งปฏิเสธอนุญาต
ปฏิเสธทั้งหมด
อนุญาต 192.168

ก่อนที่จะตระหนักว่า apache 2.4 เลิกใช้ไวยากรณ์นี้เพื่อสนับสนุนการใช้ จำเป็นต้อง คำสั่งและไม่แนะนำให้ใช้ .htaccess ไฟล์อีกต่อไปแต่อาศัยเพียง จำเป็นต้อง คำสั่ง (ต้นฉบับ .haccess ไฟล์ไม่อนุญาตให้ฉันเข้าถึงได้จาก LAN ด้วยเหตุผลบางอย่าง) ดังนั้นฉันจึงลบไฟล์ .htaccess ไฟล์และกู้คืน AllowOverride ไม่มี แต่ปัญหาคือฉันยังไม่สามารถเข้าถึง phpmyadmin ได้ ฉันเพิ่งได้รับข้อความ "ห้ามคุณไม่ได้รับอนุญาตให้เข้าถึงแหล่งข้อมูลนี้" ฉันดูไฟล์ปรับแต่งทุกไฟล์สำหรับทั้ง apache2 และ phpmyadmin และฉันไม่รู้ว่าทำไมมันถึงปฏิเสธการเข้าถึงของฉัน ฉันไปไกลถึงการลบและติดตั้ง phpmyadmin ใหม่ แต่พบปัญหาเดียวกัน สูญเสียสิ่งที่ต้องทำ ความช่วยเหลือใด ๆ ที่ชื่นชมอย่างมาก

สำหรับการอ้างอิง apache2.conf:

# นี่คือไฟล์กำหนดค่าเซิร์ฟเวอร์ Apache หลัก ประกอบด้วย
# คำสั่งการกำหนดค่าที่ให้คำแนะนำแก่เซิร์ฟเวอร์
# ดู http://httpd.apache.org/docs/2.4/ สำหรับข้อมูลโดยละเอียดเกี่ยวกับ
# คำสั่งและ /usr/share/doc/apache2/README.Debian เกี่ยวกับ Debian เฉพาะ
#คำแนะนำ
#
#
# สรุปวิธีการกำหนดค่า Apache 2 ใน Debian:
# การกำหนดค่าเว็บเซิร์ฟเวอร์ Apache 2 ใน Debian นั้นค่อนข้างแตกต่าง
# วิธีที่แนะนำของอัปสตรีมในการกำหนดค่าเว็บเซิร์ฟเวอร์ นี่เป็นเพราะเดเบียน
# เริ่มต้นการติดตั้ง Apache2 พยายามเพิ่มและลบโมดูล
# โฮสต์เสมือน และคำสั่งการกำหนดค่าเพิ่มเติมที่ยืดหยุ่นที่สุดเท่าที่จะเป็นไปได้ใน
# เพื่อดำเนินการเปลี่ยนแปลงอัตโนมัติและจัดการเซิร์ฟเวอร์ให้ง่ายเหมือน
# เป็นไปได้.

# มันแบ่งออกเป็นหลายไฟล์ที่สร้างลำดับชั้นการกำหนดค่าที่ระบุไว้
# ด้านล่าง ทั้งหมดอยู่ในไดเร็กทอรี /etc/apache2/:
#
# /etc/apache2/
# |--apache2.conf
# | `--ports.conf
# |-- เปิดใช้งาน mods
# | |-- *.โหลด
# | `-- *.conf
# |-- เปิดใช้งาน conf
# | `-- *.conf
# `-- เปิดใช้งานไซต์
# `-- *.conf
#
#
# * apache2.conf เป็นไฟล์กำหนดค่าหลัก (ไฟล์นี้) มันทำให้ชิ้นส่วน
# เข้าด้วยกันโดยรวมไฟล์คอนฟิกูเรชันที่เหลือทั้งหมดเมื่อเริ่มต้น
#   เว็บเซิร์ฟเวอร์.
#
# * ports.conf จะรวมอยู่ในไฟล์การกำหนดค่าหลักเสมอ มันคือ
# ควรกำหนดพอร์ตการฟังสำหรับการเชื่อมต่อขาเข้าซึ่งสามารถเป็นได้
#ปรับแต่งได้ตลอดเวลา
#
# * ไฟล์คอนฟิกูเรชันใน mods-enabled/, conf-enabled/ and sites-enabled/
# ไดเร็กทอรีมีข้อมูลโค้ดการกำหนดค่าเฉพาะซึ่งจัดการโมดูล
# ส่วนการกำหนดค่าส่วนกลางหรือการกำหนดค่าโฮสต์เสมือน
#ตามลำดับ.
#
# เปิดใช้งานโดยการเชื่อมโยงไฟล์การกำหนดค่าที่มีอยู่จากพวกเขา
# ที่เกี่ยวข้อง *-ว่าง/คู่ สิ่งเหล่านี้ควรได้รับการจัดการโดยใช้ของเรา
# ตัวช่วย a2enmod/a2dismod, a2ensite/a2dissite และ a2enconf/a2disconf ดู
# หน้าคนที่เกี่ยวข้องสำหรับข้อมูลโดยละเอียด
#
# * ไบนารีเรียกว่า apache2 เนื่องจากการใช้ตัวแปรสภาพแวดล้อมใน
# การกำหนดค่าเริ่มต้น apache2 ต้องเริ่ม/หยุดด้วย
# /etc/init.d/apache2 หรือ apache2ctl การเรียก /usr/bin/apache2 โดยตรงจะไม่เกิดขึ้น
# ทำงานกับการกำหนดค่าเริ่มต้น


#การกำหนดค่าสากล
#

#
# ServerRoot: ด้านบนของไดเร็กทอรีทรีที่เซิร์ฟเวอร์อยู่
# การกำหนดค่า ข้อผิดพลาด และล็อกไฟล์จะถูกเก็บไว้
#
# บันทึก! หากคุณต้องการวางสิ่งนี้บน NFS (หรือเครือข่ายอื่นๆ)
# ระบบไฟล์ที่ติดตั้งแล้วโปรดอ่านเอกสารประกอบ Mutex (มีให้
# ที่ <URL:http://httpd.apache.org/docs/2.4/mod/core.html#mutex>);
#คุณจะช่วยตัวเองให้พ้นจากปัญหาได้มากมาย
#
# อย่าเพิ่มเครื่องหมายทับที่ส่วนท้ายของเส้นทางไดเร็กทอรี
#
#เซิร์ฟเวอร์รูท "/etc/apache2"

#
# ไฟล์ล็อคซีเรียลไลเซชันที่ยอมรับจะต้องถูกจัดเก็บไว้ในดิสก์ภายในเครื่อง
#
#Mutex ไฟล์: ค่าเริ่มต้น ${APACHE_LOCK_DIR}

#
# ไดเรกทอรีที่จะจัดเก็บไฟล์ shm และรันไทม์อื่น ๆ
#

DefaultRuntimeDir ${APACHE_RUN_DIR}

#
# PidFile: ไฟล์ที่เซิร์ฟเวอร์ควรบันทึกกระบวนการ
#เลขประจำตัวเมื่อเริ่ม
# ต้องตั้งค่าใน /etc/apache2/envvars
#
ไฟล์พิด ${APACHE_PID_FILE}

#
# หมดเวลา: จำนวนวินาทีก่อนที่จะรับและส่งหมดเวลา
#
หมดเวลา 300

#
# KeepAlive: อนุญาตการเชื่อมต่อแบบถาวรหรือไม่ (มากกว่า
# หนึ่งคำขอต่อการเชื่อมต่อ) ตั้งค่าเป็น "ปิด" เพื่อปิดใช้งาน
#
เปิด KeepAlive

#
# MaxKeepAliveRequests: จำนวนคำขอสูงสุดที่อนุญาต
# ระหว่างการเชื่อมต่อแบบถาวร ตั้งค่าเป็น 0 เพื่ออนุญาตจำนวนไม่จำกัด
# เราขอแนะนำให้คุณปล่อยให้ตัวเลขนี้สูงเพื่อประสิทธิภาพสูงสุด
#
MaxKeepAliveRequests 100

#
# KeepAliveTimeout: จำนวนวินาทีในการรอคำขอถัดไปจาก
# ลูกค้าเดียวกันในการเชื่อมต่อเดียวกัน
#
KeepAliveTimeout 5


# ต้องตั้งค่าเหล่านี้ใน /etc/apache2/envvars
ผู้ใช้ ${APACHE_RUN_USER}
กลุ่ม ${APACHE_RUN_GROUP}

#
# HostnameLookups: บันทึกชื่อลูกค้าหรือที่อยู่ IP ของพวกเขา
# เช่น www.apache.org (เปิด) หรือ 204.62.129.132 (ปิด)
# ค่าเริ่มต้นปิดอยู่เพราะจะดีกว่าสำหรับเน็ตโดยรวมหากผู้คน
# ต้องเปิดฟีเจอร์นี้โดยรู้เท่าทัน เนื่องจากการเปิดใช้งานหมายความว่าอย่างนั้น
# คำขอของลูกค้าแต่ละรายการจะส่งผลให้มีคำขอค้นหาอย่างน้อยหนึ่งรายการไปยัง
#เนมเซิร์ฟเวอร์
#
ชื่อโฮสต์ปิดการค้นหา

# ErrorLog: ตำแหน่งของไฟล์บันทึกข้อผิดพลาด
# หากคุณไม่ได้ระบุคำสั่ง ErrorLog ภายใน <VirtualHost>
# คอนเทนเนอร์ ข้อความแสดงข้อผิดพลาดที่เกี่ยวข้องกับโฮสต์เสมือนนั้นจะเป็น
#บันทึกที่นี่. หากคุณ *ทำ* กำหนดไฟล์บันทึกข้อผิดพลาดสำหรับ <VirtualHost>
# คอนเทนเนอร์ ข้อผิดพลาดของโฮสต์นั้นจะถูกบันทึกไว้ที่นั่น ไม่ใช่ที่นี่
#
บันทึกข้อผิดพลาด ${APACHE_LOG_DIR}/error.log

#
# LogLevel: ควบคุมความรุนแรงของข้อความที่บันทึกไปยัง error_log
# ค่าที่มี: trace8, ..., trace1, ดีบัก, ข้อมูล, ประกาศ, เตือน,
# ข้อผิดพลาด วิกฤต การแจ้งเตือน เกิดขึ้น
# นอกจากนี้ยังสามารถกำหนดค่าระดับการบันทึกสำหรับโมดูลเฉพาะ เช่น
# "ข้อมูล LogLevel ssl:warn"
#
LogLevel เตือน

# รวมการกำหนดค่าโมดูล:
รวมตัวเลือก mods-enabled/*.load
รวมตัวเลือก mods-enabled/*.conf

# รวมรายการพอร์ตที่จะฟัง
รวม ports.conf


# ตั้งค่ารูปแบบการรักษาความปลอดภัยเริ่มต้นของเซิร์ฟเวอร์ Apache2 HTTPD มันไม่
# ไม่อนุญาตให้เข้าถึงระบบไฟล์รูทภายนอก /usr/share และ /var/www
# อดีตถูกใช้โดยเว็บแอปพลิเคชันที่บรรจุใน Debian
# หลังอาจใช้สำหรับไดเรกทอรีท้องถิ่นที่ให้บริการโดยเว็บเซิร์ฟเวอร์ ถ้า
# ระบบของคุณกำลังให้บริการเนื้อหาจากไดเร็กทอรีย่อยใน /srv ที่คุณต้องอนุญาต
# เข้าถึงที่นี่หรือในโฮสต์เสมือนที่เกี่ยวข้อง
<ไดเร็กทอรี />
        ตัวเลือก FollowSymLinks
        AllowOverride ไม่มี
        ต้องการปฏิเสธทั้งหมด
</ไดเร็กทอรี>

<ไดเร็กทอรี /usr/share>
        AllowOverride ไม่มี
        ต้องการปฏิเสธทั้งหมด
</ไดเร็กทอรี>

<ไดเร็กทอรี /var/www/>
        ดัชนีตัวเลือก FollowSymLinks
        AllowOverride ไม่มี
        AllowOverRideList ไม่มี
        ต้องได้รับอนุญาตทั้งหมด
</ไดเร็กทอรี>

#<ไดเร็กทอรี /srv/>
# ดัชนีตัวเลือก FollowSymLinks
# AllowOverride ไม่มี
#ต้องได้รับทั้งหมด
#</ไดเร็กทอรี>




# AccessFileName: ชื่อของไฟล์ที่จะค้นหาในแต่ละไดเร็กทอรี
# สำหรับคำสั่งการกำหนดค่าเพิ่มเติม ดูเพิ่มเติมที่ AllowOverride
#คำสั่ง
#
AccessFileName .htaccess

#
# บรรทัดต่อไปนี้ป้องกันไฟล์ .htaccess และ .htpasswd
# ดูโดยเว็บไคลเอนต์
#
<FilesMatch "^\.ht">
        ต้องการปฏิเสธทั้งหมด
</FilesMatch>

#
# ต่อไปนี้คือการอนุญาตให้ php แยกวิเคราะห์ไฟล์ php (โดเมนย่อยของ wordpress/โฮสต์เสมือนหยุดแยกวิเคราะห์ php ด้วยเหตุผลบางประการ)
#
<FilesMatch \.php$>
        แอปพลิเคชัน SetHandler/x-httpd-php.ini
</FilesMatch>

#
# คำสั่งต่อไปนี้กำหนดชื่อเล่นบางรูปแบบสำหรับใช้กับ
# คำสั่ง CustomLog
#
# สิ่งเหล่านี้เบี่ยงเบนจากข้อกำหนดรูปแบบบันทึกทั่วไปที่ใช้ %O
# (ไบต์จริงที่ส่งรวมถึงส่วนหัว) แทน %b (ขนาดของ
# ไฟล์ที่ร้องขอ) เนื่องจากส่วนหลังทำให้ไม่สามารถตรวจจับบางส่วนได้
# คำขอ
#
# โปรดทราบว่าไม่แนะนำให้ใช้ %{X-Forwarded-For}i แทน %h
# ใช้ mod_remoteip แทน
#
LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" รวมกัน
LogFormat "%h %l %u %t \"%r\" %>s %O" ทั่วไป
LogFormat "%{Referer}i -> %U" ผู้อ้างอิง
ตัวแทน LogFormat "%{User-agent}i"

# รวมไดเร็กทอรีละเว้นไฟล์สำรองของบรรณาธิการและ dpkg
# ดูรายละเอียด README.Debian

# รวมตัวอย่างข้อความทั่วไป
รวมทางเลือก conf-enabled/*.conf

# รวมการกำหนดค่าโฮสต์เสมือน:
รวมตัวเลือกไซต์ที่เปิดใช้งาน/*.conf

# เป็นกลุ่ม: ไวยากรณ์=apache ts=4 sw=4 sts=4 sr noet

ชื่อเซิร์ฟเวอร์ mydomain.com

#allow การกำหนดค่า PHPMyadmin ให้โหลดและฟังโดย Apache
รวม /etc/phpmyadmin/apache.conf

phpmyadmin.conf ตั้งอยู่ที่ /etc/apache2/conf-enabled/:

# การกำหนดค่า Apache เริ่มต้นของ phpMyAdmin

นามแฝง /phpmyadmin /usr/share/phpmyadmin

<ไดเรกทอรี /usr/share/phpmyadmin>
    ตัวเลือก SymLinksIfOwnerMatch
    DirectoryIndex index.php

    <IfModule mod_php5.c>
        <IfModule mod_mime.c>
            แอปพลิเคชัน AddType/x-httpd-php .php
        </หากโมดูล>
        <FilesMatch ".+\.php$">
            แอปพลิเคชัน SetHandler/x-httpd-php.ini
        </FilesMatch>

        php_value include_path
        php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
        php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/php/php-php-gettext/: /usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/
        php_admin_value mbstring.func_overload 0
    </หากโมดูล>
    <IfModule mod_php.c>
        <IfModule mod_mime.c>
            แอปพลิเคชัน AddType/x-httpd-php .php
        </หากโมดูล>
        <FilesMatch ".+\.php$">
            แอปพลิเคชัน SetHandler/x-httpd-php.ini
        </FilesMatch>

        php_value include_path
        php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
        php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/php/php-php-gettext/: /usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/
        php_admin_value mbstring.func_overload 0
    </หากโมดูล>

</ไดเร็กทอรี>

#ขออนุญาตติดตั้ง
<ไดเรกทอรี /usr/share/phpmyadmin/setup>
    <IfModule mod_authz_core.c>
        <IfModule mod_authn_file.c>
            AuthType พื้นฐาน
            AuthName "การตั้งค่า phpMyAdmin"
            AuthUserFile /etc/phpmyadmin/htpasswd.setup
        </หากโมดูล>
        ต้องการผู้ใช้ที่ถูกต้อง
    </หากโมดูล>
</ไดเร็กทอรี>

# ไม่อนุญาตให้เข้าถึงเว็บไปยังไดเร็กทอรีที่ไม่ต้องการ
<ไดเรกทอรี /usr/share/phpmyadmin/templates>
    ต้องการปฏิเสธทั้งหมด
</ไดเร็กทอรี>
<ไดเรกทอรี /usr/share/phpmyadmin/libraries>
    ต้องการปฏิเสธทั้งหมด
</ไดเร็กทอรี>
<ไดเรกทอรี /usr/share/phpmyadmin/setup/lib>
    ต้องการปฏิเสธทั้งหมด
</ไดเร็กทอรี>
Score:1
ธง tr

คุณควรจะสามารถกู้คืนการเข้าถึงได้โดยการเพิ่ม ต้องได้รับอนุญาตทั้งหมด ใน <Directory /usr/share/phpmyadmin> บล็อคของ phpmyadmin.conf ไฟล์แล้วโหลด Apache อีกครั้ง ขณะนี้การกำหนดค่าของคุณสืบทอดมาจาก ต้องการปฏิเสธทั้งหมด บน /usr/share หลัก apache.conf ไฟล์.

หากคุณต้องการจำกัดการเข้าถึง คุณจะต้องตั้งค่ากฎการเข้าถึงโดยใช้ไวยากรณ์ใหม่ (จำเป็นต้อง แทน คำสั่ง และ ปฏิเสธ/อนุญาต).

my flag
ใช่ ฉันเพิ่งติดตั้งใหม่จากแหล่งที่มาและวางทุกอย่างลงในไดเร็กทอรีย่อยของไซต์ฐานและจำกัดการเข้าถึงไดเร็กทอรีนั้นโดยใช้คำสั่ง Require การติดตั้งดั้งเดิมของฉันอยู่ในตำแหน่งที่แตกต่างจากค่าเริ่มต้น `/usr/share/phpmyadmin` ดังนั้นเมื่อฉันลบและติดตั้งใหม่ ฉันลืมไปว่าฉันจำกัดการเข้าถึง `/usr/share` ในไฟล์ apache2.conf และนั่นคือสิ่งที่ ปัญหา.
Score:0
ธง my

ความผิดพลาดโง่ ๆ ที่ฉันทำ หลงทางว่าฉันมีของต่างๆ อยู่ที่ไหน และเปลี่ยนข้อจำกัดอะไรบ้าง ฉันไม่รู้ว่าปัญหาดั้งเดิมคืออะไร แต่เมื่อฉันติดตั้ง phpmyadmin ใหม่ในตำแหน่งเริ่มต้น /usr/share/phpmyadmin ถูกจำกัดบนเซิร์ฟเวอร์ของฉัน จบลงด้วยการล้างการติดตั้งและติดตั้งจากซอร์สโดยวางในไดเร็กทอรีอื่นและรวมไฟล์ apache และ phpmyadmin config เพื่อให้แน่ใจว่าตรงกับการตั้งค่าเฉพาะของฉัน

โพสต์คำตอบ

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