ป้องกัน Apache ไม่ให้เริ่มหลังจากติดตั้ง apt-get


15

เมื่อฉันapt-get install apache2เซิร์ฟเวอร์เริ่มต้นโดยอัตโนมัติเมื่อการติดตั้งเสร็จสมบูรณ์และการกำหนดค่า Apache เริ่มต้นทำให้ทุกอย่างใน/var/www/ฝั่งไคลเอ็นต์สามารถเข้าถึงได้ ดังนั้นหากฉันมีสคริปต์ด้านเซิร์ฟเวอร์ต้นทางหรือข้อมูลลับอื่น ๆ ในไดเรกทอรีนั้นก่อนติดตั้ง Apache จะสามารถเข้าถึงได้แบบสาธารณะจนกว่าฉันจะเปลี่ยนการกำหนดค่า Apache และเริ่ม Apache ใหม่หรือจนกว่าจะหยุด Apache

ฉันสามารถทำได้

sudo apt-get install -y apache2
sudo service apache2 stop
# Finish setting up...

จากนั้นมีเพียงหน้าต่างสั้น ๆ ที่สามารถเข้าถึงข้อมูลลับได้ แต่จะดีกว่าหากไม่ให้ Apache เริ่มการทำงานโดยอัตโนมัติเลยและไม่ควรเปิดเผย/var/www/แม้สักครู่

มีตัวเลือกใดบ้างที่ฉันสามารถส่งต่อapt-get installหรือวิธีอื่น ๆ เพื่อป้องกันไม่ให้ Apache เริ่มทำงานโดยอัตโนมัติหลังจากติดตั้งแล้ว


ผมไม่ทราบว่าสิ่งที่พฤติกรรมคือเมื่อคุณรวบรวม Apache apt-getตัวเองแทนการใช้ ฉันคิดว่าถ้าคุณรวบรวมด้วยตัวคุณเองคุณสามารถค้นหารหัสที่เริ่ม Apache หลังจากติดตั้งและปิดการใช้งาน นั่นอาจเป็นคำตอบที่ดีถ้ามีคนอธิบายรายละเอียดเพิ่มเติมได้ อย่างไรก็ตามคำตอบที่ดีที่สุดสำหรับคำถามตามที่ระบุไว้จะยังคงใช้apt-getอยู่
David Winiecki

5
ทำไมไม่เพียง แต่ไฟร์วอลล์ออกจากเซิร์ฟเวอร์ของคุณในขณะทำการอัปเกรด
EEAA

ฉันเดาว่าคำถามของฉันเป็นคำถามที่ซ้ำกันใน askubuntu.com: askubuntu.com/questions/74061/ …
David Winiecki

1
อีกตัวเลือกหนึ่ง: ใช้ Red Hat / CentOS ดิสทริบิวชั่นซึ่งไม่ได้รับผลกระทบใด ๆ จากสิ่งนี้หรือสิ่งอื่นใดของเดเบียน
Michael Hampton

คำตอบ:


13

ลองสิ่งนี้:

  1. สร้างไฟล์ที่/usr/sbin/policy-rc.dมีเนื้อหาดังต่อไปนี้:
#!/bin/sh  
exit 101
  1. ทำให้ปฏิบัติการ:
chmod +x /usr/sbin/policy-rc.d

หลังจากนี้แพคเกจทั้งหมดจะถูกติดตั้ง แต่บริการจะไม่เริ่ม

เมื่อเสร็จแล้วคุณสามารถลบไฟล์:

rm -f /usr/sbin/policy-rc.d

ฉันพยายามทำสิ่งนี้ ข้อมูลเพิ่มเติมที่นี่: jpetazzo.github.io/2013/10/06/… (ฉันจะใช้#!แม้ว่า)
David Winiecki

10

ตัวเลือกมากมาย:

  1. ย้ายเนื้อหาต้นฉบับที่ปิดแล้วออกจาก /var/www
  2. เปลี่ยนการอนุญาตเนื้อหาที่ผู้ใช้ apache ไม่สามารถอ่านได้
  3. ไม่สามารถหยุดการรับส่งข้อมูลพอร์ต 80/443
  4. ส่งผ่านตัวแปรสภาพแวดล้อม runlevel ไปที่apt-get:
sudo RUNLEVEL=1 apt-get install apache2

การติดตั้ง apache2 จะไม่ปล่อยให้ไฟล์การตั้งค่า "ปัจจุบัน" เข้าที่หรือไม่? ตัวอย่างเช่นเทมเพลตที่เหลือใน /etc/apache2/httpd.conf จะไม่ถูกเขียนทับหรือไม่
Hyppy

ฉันคิดว่าการเปลี่ยนการกำหนดค่า Apache (หลังจากทำ / var / www ไม่สามารถเข้าถึงได้โดยใช้วิธีการอย่างใดอย่างหนึ่งในคำตอบเหล่านี้) โดยนัย
David Winiecki

ฉันหมายความว่าฉันไม่คิดว่าวิธีใด ๆ 4 วิธีนี้จะแก้ไขการกำหนดค่า Apache
David Winiecki

1
ฉันคิดว่าฉันจะใช้RUNLEVEL=1เพราะดูเหมือนว่าเป็นตัวเลือกที่ง่ายที่สุดและใช้งานได้ในการทดสอบ แต่ iptables หรือไฟร์วอลล์อื่น ๆ รู้สึกเหมือนถูกวิธี
David Winiecki
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.