สืบทอดเซิร์ฟเวอร์ที่มีอยู่


9

ฉันเพิ่งได้รับ 6 เว็บเซิร์ฟเวอร์จากเซิร์ฟเวอร์คนก่อนที่ถูกไล่ออกฉันไม่ใช่ผู้ดูแลระบบฉันเป็น DevOps มากขึ้น

ใครช่วยชี้ให้ฉันไปที่รายการตรวจสอบมาตรฐานบางอย่างที่จะตามมาเมื่อสืบทอดเซิร์ฟเวอร์ที่มีอยู่ สิ่งที่ฉันต้องรู้คือ:

  1. ซอฟต์แวร์ใดที่อยู่บนเซิร์ฟเวอร์
  2. มาตรฐานสิ่งที่ฉันควรทำเพื่อตรวจสอบพวกเขามีความปลอดภัยหรือไม่
  3. สิ่งที่เชื่อมต่อกับพวกเขาและสิ่งที่พวกเขาเชื่อมต่อด้วย?
  4. ฉันควรรู้อะไรอีก

คำแนะนำใด ๆ ก็ยินดีต้อนรับฉันหวังว่าจะมีรายการตรวจสอบมาตรฐานที่ใครคนหนึ่งจะทำตามเป็นการเริ่มต้น แต่ฉันไม่พบอะไรเลย

เซิร์ฟเวอร์ทั้งหมดคือ Ubuntu (เวอร์ชั่นต่าง ๆ )


3
คุณไม่ใช่ DevOps DevOps ไม่ใช่ชื่อ แต่เป็นวัฒนธรรม
gWaldo

สิ่งที่จะเป็นคำที่ดีกว่าที่จะใช้งานเป็น "ผู้พัฒนาบังคับให้ต้องทำผลงาน sysadmins โดยไม่ต้องเชี่ยวชาญของดูแลระบบ แต่ความเข้าใจที่ดีของแนวคิดทุกคนที่เกี่ยวข้องและมือเพียงพอในประสบการณ์ในการ 'ได้รับโดย"
user3408844

ตกลงที่จะอ่าน DevOps บน Wikipedia ฉันเห็นว่าฉันใช้มันไม่ถูกต้อง แต่ดูเหมือนว่าจะกลายเป็นคำแสลงในชีวิตประจำวันของนักพัฒนาที่ต้องกลายเป็นซิดมินกึ่ง
user3408844

คำศัพท์ที่คุณอธิบายคือ "นักพัฒนา" หรือ "นักพัฒนาที่ถูกบังคับให้รับภาระหน้าที่ของระบบ / การปฏิบัติงาน"
gWaldo

ว้าว! - มีความพยายามมากมายในนั้น
user3408844

คำตอบ:


24
  1. เพื่อตรวจสอบว่ามีการติดตั้งซอฟต์แวร์ใดคุณสามารถตรวจสอบ/var/log/dpkg.log อย่างไรก็ตามนี่อาจไม่ใช่ระเบียนที่สมบูรณ์ อาจมีไบนารีและรหัสที่รวบรวมด้วยตนเองหรือคัดลอกโดยตรงไปยังระบบที่รวบรวมไว้ล่วงหน้า คุณสามารถเปรียบเทียบการติดตั้งเริ่มต้นของ Ubuntu รุ่นเดียวกันและพิมพ์กับเซิร์ฟเวอร์และค้นหาไฟล์ที่แตกต่างกันได้ แต่นั่นอาจเป็นเรื่องที่น่าเบื่อ โซลูชันการตรวจสอบไฟล์น่าจะเหมาะที่สุด (tripewire, inotifywatch ฯลฯ ) http://linuxcommando.blogspot.com/2008/08/how-to-show-apt-log-history.html

  2. คุณต้องตรวจสอบทุกอย่างบนเซิร์ฟเวอร์ บัญชีผู้ใช้ทุกบัญชีใน/ etc / passwdทุกบัญชีผู้ใช้แอปพลิเคชัน (เช่นผู้ใช้ใน Apache / PHP บัญชีฐานข้อมูล ฯลฯ ) ควรนำมาพิจารณาและคุณควรเปลี่ยนรหัสผ่านทั้งหมด คุณควรตรวจสอบเพื่อดูว่าบริการใดบ้างที่เปิดตัวในการบู๊ตสิ่งที่ runlevel เริ่มต้นคือและสิ่งที่เริ่มต้นด้วยและกับ runlevel อื่น ๆ ฉันจะใช้เครื่องสแกนช่องโหว่และเครื่องมือกำหนดค่าพื้นฐานเพื่อตรวจสอบสถานะปัจจุบัน ศูนย์ความปลอดภัยทางอินเทอร์เน็ตมีเครื่องมือประเมินการกำหนดค่าฟรี แต่อาจมีข้อ จำกัด พวกเขามีเครื่องมือขั้นสูงเพิ่มเติมสำหรับองค์กรสมาชิก ($) http://benchmarks.cisecurity.org/ OpenVAS เป็นสแกนเนอร์ FOSS ไม่เหมือน Nessus ซึ่งอาจมีความสามารถคล้ายกัน มีหลายสิ่งหลายอย่างให้ตรวจสอบ แต่คำตอบนี้ได้รับค่อนข้างยาว ... (การตรวจสอบโค้ดสำหรับ webapps และหน้าเว็บเป็นตัวอย่างที่ดี)

  3. ท่านสามารถเข้าดูตรวจสอบสถานะของพอร์ตที่มีการเชื่อมต่อไปยังเซิร์ฟเวอร์ที่มีความหลากหลายของธงกับnetstat http://www.thegeekstuff.com/2010/03/netstat-command-examples/ เพื่อระบุว่าใครกำลังเชื่อมต่อกับเซิร์ฟเวอร์คุณจะต้องหันไปใช้กิจกรรมที่มีความปลอดภัยทางอินเทอร์เน็ตมากที่สุดโดยทบทวนบันทึกระบบ ข้อมูลสามารถอยู่ในบันทึกใด ๆ จำนวนหนึ่งขึ้นอยู่กับแอปพลิเคชันและเซิร์ฟเวอร์ที่อยู่ในระบบ คุณอาจโชคดีกับบันทึกเครือข่ายภายนอกหากมีอยู่

  4. คุณมีจำนวนมากที่ต้องติดตาม คุณระบุว่าผู้ดูแลระบบก่อนถูกยิง ; หากคุณสงสัยว่ามีเจตนาร้ายจากบุคคลนั้น (เช่นพวกเขาอาจออกไปข้างนอกกับดักบูโบลอจิกระเบิด ฯลฯ ) คุณมั่นใจได้เลยว่าจะสร้างเซิร์ฟเวอร์จากสื่อที่สะอาดและปรับปรุงเว็บแอพพลิเคชั่นให้ หากผู้ดูแลระบบคนก่อนหน้านี้มีการเข้าถึงและควบคุมระบบเหล่านั้นอย่างเต็มที่และไม่ถูกตรวจสอบอย่างขยันขันแข็งและเกินควรคุณอาจคิดว่ามีแบ็คดอร์

สิ่งนี้ขึ้นอยู่กับข้อสมมติในแง่ร้ายเกี่ยวกับผู้ดูแลระบบคนก่อนหน้านี้ น่าเสียดายที่คุกกี้ล้มเหลวในการรักษาความปลอดภัยเครือข่าย มีอีกมากที่ต้องพิจารณาตามที่ฉันพูด ... วิธีมากกว่าที่สามารถครอบคลุมที่นี่ ประเด็นเหล่านี้ควรให้บางสิ่งแก่คุณในการเริ่มทำเพื่อให้คุณสามารถรายงานต่อฝ่ายบริหารว่าคุณกำลังดำเนินการอยู่ แต่ถ้าพูดอย่างตรงไปตรงมาอย่างไร้ความปราณีถ้าคุณไม่ใช่มืออาชีพด้านความปลอดภัยและคุณมีเหตุผลที่ต้องสงสัยว่าบุคคลนี้กระทำการด้วยความอาฆาตพยาบาท

มันเป็นคำตอบที่ไม่เป็นที่นิยมกับการจัดการเพราะต้องใช้เป็นจำนวนมากของความพยายาม (ซึ่งหมายถึงการเพิ่มเติม $) แต่การรักษาความปลอดภัยโดยทั่วไปคำตอบใจคือเมื่อมีข้อสงสัยเช็ดและสร้างจากแหล่งที่สะอาด นั่นคือวิธีที่ระบบ gov't สำคัญที่สุดทำงานกับมัลแวร์ หากการแจ้งเตือนเกิดขึ้นจาก AV ระบบจะถูกแยกทำความสะอาดและสร้างใหม่ หวังว่าคุณจะทำสำรองข้อมูล cuz ข้อมูลที่มีหายไป

ขอให้โชคดีและฉันหวังว่านี่จะเป็นประโยชน์และไม่เพียง แต่ทำให้หดหู่


คำถามนี้อาจเหมาะสมกับเว็บไซต์ StackExchange www.AskUbuntu.com
0xSheepdog

2
คำตอบที่ยอดเยี่ยม
EEAA

3
การล้างข้อมูลและสร้างใหม่อาจทำให้ง่ายขึ้นมากถ้าคุณมีการจัดการการกำหนดค่าที่ประกาศได้ดี หากคุณไม่ทำเช่นนั้นคุณควรพิจารณาดำเนินการเพื่อบรรลุเป้าหมายดังกล่าว
zigg

2
/var/log/dpkg.logมีความเหมาะสมในการตรวจสอบกระบวนการติดตั้งตัวเอง (และมองหาข้อผิดพลาด) แต่เพื่อให้ได้รายชื่อของแพ็คเกจที่ติดตั้งเอาท์พุทของdpkg -lหรือง่ายกว่าdpkg --get-selectionsก็จะย่อยง่ายขึ้น
Dubu

0

หน้าคนเป็นเพื่อนของคุณ:

 man <command> 

ตรวจสอบคำสั่งที่ใช้กันทั่วไปเหล่านี้และการใช้งาน ค้นหาความช่วยเหลือเพิ่มเติมใน man page สำหรับแต่ละหรือในบางกรณีโดยการเรียกใช้

  <command> --help 

ซอฟต์แวร์:

  • dpkg -l (ซอฟต์แวร์ที่ติดตั้งไว้ในรายการ)
  • ps -ef | เพิ่มเติม (รับรายการกระบวนการที่กำลังทำงานและหยุดชั่วขณะสำหรับการอ่าน)

การรักษาความปลอดภัย:

  • iptables (พอร์ตใดบ้างที่เปิดและจำเป็น)
  • ตรวจสอบการอัปเดตด้วย apt-get (เป็นเซิร์ฟเวอร์ล่าสุดหรือไม่)
  • cat / etc / passwd (ใครมีบัญชีอยู่ในกล่อง)
  • sshd (ตรวจสอบว่า sshd กำลังทำงานอยู่และใครสามารถเข้าสู่ระบบได้)

การเชื่อมต่อ:

  • netstat (บริการใดบ้างที่กำลังรับฟังและพอร์ตใด)

โชคดี. มันยากที่จะสืบทอดเซิร์ฟเวอร์เป็นชุดโดยที่ผู้ที่ไม่ได้รับโอกาสในการฝึกอบรมคุณ ถ้าผู้ชายถูกไล่ออกมันน่าเป็นห่วงมากขึ้นเพราะฉันคิดว่ามันมีเหตุผลและถ้าฉันคิดว่ามันเป็นงานที่เกี่ยวข้องอาจมีการตั้งค่าแปลก ๆ ในแบทช์


0
  1. แอปพลิเคชั่นใดกำลังทำงาน: ทำ "ps -ef" หรือ "ps -auxw" เพื่อรับรายการกระบวนการ คัดแยกทุกสิ่งที่ไม่เกี่ยวข้องกับเคอร์เนลค้นหาสิ่งที่กำลังทำงานอยู่ทำ man page ของแต่ละอันเพื่อหาว่ามันคืออะไร กระบวนการที่กำลังทำงานอยู่ส่วนใหญ่คุณสามารถเพิกเฉยได้อย่างปลอดภัยเพราะไม่ใช่แอปพลิเคชันผู้ใช้

  2. เพื่อความปลอดภัย: ทำ "netstat -pan" เพื่อดูพอร์ตที่เปิดอยู่และปิดพอร์ตใด ๆ ที่ไม่จำเป็น กล่าวอีกนัยหนึ่งพอร์ตที่ควรเปิดคือพอร์ตที่สอดคล้องกับบริการเครือข่ายที่จัดหาโดยเซิร์ฟเวอร์เหล่านี้ หากเซิร์ฟเวอร์เป็นเว็บเซิร์ฟเวอร์ก็ต้องฟังบนพอร์ต 80/443 / ฯลฯ แต่ถ้าเซิร์ฟเวอร์กำลังฟังพอร์ต 21 และไม่มีใครใช้งานคุณควรปิดกระบวนการที่เปิดพอร์ตนั้น

  3. สำหรับการเชื่อมต่ออีกครั้ง "netstat -pan" จะให้คำตอบแก่คุณ มันบอกคุณว่ามีการเชื่อมต่อโฮสต์และพอร์ตใดที่พวกเขาเชื่อมต่อ

  4. ดูบันทึกใน / var / log เพื่อรับทราบว่าระบบกำลังทำอะไรอยู่และดูว่ามีข้อผิดพลาดที่ชัดเจนหรือมีธงสีแดงที่มาจากแอปพลิเคชันที่แตกต่างกันหรือไม่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.