เหตุใดฉันจึงต้องใช้ไฟร์วอลล์หากเซิร์ฟเวอร์ของฉันได้รับการกำหนดค่าอย่างดี


59

ฉันดูแลเซิร์ฟเวอร์ Cloud-based (VPS) จำนวนหนึ่งสำหรับ บริษัท ที่ฉันทำงาน

เซิร์ฟเวอร์นั้นมีการติดตั้ง Ubuntu น้อยที่สุดที่เรียกใช้บิตของการรวบรวมข้อมูล LAMP / ขาเข้า (rsync) ข้อมูลมีขนาดใหญ่ แต่ไม่เป็นส่วนตัวการเงินหรืออะไรแบบนั้น (เช่นไม่น่าสนใจ)

เห็นได้ชัดว่าผู้คนที่นี่ถามตลอดเวลาเกี่ยวกับการกำหนดค่าไฟร์วอลล์และสิ่งที่ชอบ

ฉันใช้วิธีการมากมายในการรักษาความปลอดภัยเซิร์ฟเวอร์เช่น (แต่ไม่ จำกัด เฉพาะ)

  • ssh บนพอร์ตที่ไม่ได้มาตรฐาน ไม่มีการพิมพ์รหัสผ่านเฉพาะคีย์ ssh ที่รู้จักจาก ips ที่รู้จักสำหรับการเข้าสู่ระบบและอื่น ๆ
  • https และเชลล์แบบ จำกัด (rssh) โดยทั่วไปจะรู้จักเฉพาะคีย์ / ips ที่รู้จักเท่านั้น
  • เซิร์ฟเวอร์มีความทันสมัยและได้รับการติดตั้งเป็นประจำ
  • ใช้สิ่งต่าง ๆ เช่น rkhunter, cfengine, lynis denyhosts และอื่น ๆ สำหรับการตรวจสอบ

ฉันมีประสบการณ์ที่กว้างขวางของผู้ดูแลระบบ Unix sys ฉันมั่นใจว่าฉันรู้ว่ากำลังทำอะไรในการตั้งค่าของฉัน ฉันกำหนดค่าไฟล์ / etc ฉันไม่เคยรู้สึกว่าจำเป็นต้องติดตั้งสิ่งที่น่าสนใจเช่นไฟร์วอลล์: iptables และอื่น ๆ

วางทิ้งไว้ครู่หนึ่งปัญหาความปลอดภัยทางกายภาพของ VPS

Q? ฉันไม่สามารถตัดสินใจได้ว่าฉันไร้เดียงสาหรือการป้องกันที่เพิ่มขึ้นที่ fw อาจเสนอนั้นคุ้มค่ากับความพยายามในการเรียนรู้ / ติดตั้งและความซับซ้อนเพิ่มเติม (แพ็คเกจ, ไฟล์กำหนดค่า, การสนับสนุนที่เป็นไปได้ ฯลฯ ) บนเซิร์ฟเวอร์

จนถึงปัจจุบัน (ทัชวู๊ด) ฉันไม่เคยมีปัญหาเรื่องความปลอดภัย แต่ฉันก็ไม่พอใจกับมันเช่นกัน


2
ดูเพิ่มเติมที่: serverfault.com/questions/201298/why-should-i-firewall-servers
splattne

คุณควรลองใหม่อีกครั้งที่security.stackexchange.com
AviD

6
ให้ที่อยู่ IP ของคุณกับฉันแล้วฉันจะแสดงให้คุณเห็นว่าทำไมคุณถึงต้องการไฟร์วอลล์
GregD

คำตอบ:


87

ฉันทราบว่าคุณได้ทำงานที่ยอดเยี่ยมโดยผูกมัด daemons ที่แตกต่างกันหลายอย่างและจากสิ่งที่คุณพูดฉันคิดว่ามันไม่น่าเป็นไปได้ที่คุณจะเปิดเผยตัวเองด้วยปัญหาผ่านบริการที่คุณได้รับการรักษาความปลอดภัยแล้ว สิ่งนี้ยังทำให้คุณอยู่ในสถานะ "ทุกสิ่งที่ได้รับอนุญาตยกเว้นสิ่งที่ฉันต้องห้าม" และคุณไม่สามารถออกจากสถานะนั้นโดยการตามล่าภูตหลังจาก daemon และรักษาความปลอดภัยพวกเขาทีละคน

ไฟร์วอลล์ที่กำหนดค่าให้ปฏิเสธทุกสิ่งโดยค่าเริ่มต้นจะย้ายคุณไปที่ "ทุกอย่างถูกห้ามยกเว้นโหมดการทำงานที่ได้รับอนุญาต" และฉันพบว่าหลายปีที่ผ่านมาดีกว่า

ตอนนี้เมื่อผู้ใช้ที่ถูกต้องได้รับเชลล์ที่ถูกต้องในระบบของคุณเธอสามารถตัดสินใจที่จะเรียกใช้ daemon ที่ไม่มีสิทธิพิเศษบางตัวสำหรับการขอเว็บจากอินเทอร์เน็ตหรือเริ่มการแชร์ไฟล์บนพอร์ต 4662 หรือเปิดผู้ฟังโดยไม่ตั้งใจ ด้วย ssh พอร์ตอุโมงค์ไม่เข้าใจสิ่งที่มันทำ หรือการติดตั้ง sendmail อาจทำให้คุณใช้งาน MUA บนพอร์ต 587 ซึ่งได้รับการกำหนดค่าอย่างไม่เหมาะสมแม้ว่างานทั้งหมดที่คุณทำในการรักษาความปลอดภัยของ MTA sendail บนพอร์ต 25 นั้น หรืออาจเกิดขึ้นเป็นร้อย ๆ อย่างที่เลี่ยงผ่านความปลอดภัยที่รอบคอบและรอบคอบของคุณเพียงเพราะพวกเขาไม่ได้อยู่ใกล้คุณเมื่อคุณคิดอย่างรอบคอบว่าจะห้ามอะไร

คุณเห็นจุดของฉันหรือไม่ ในขณะนี้คุณได้ใช้ความพยายามอย่างมากในการรักษาทุกสิ่งที่คุณรู้และดูเหมือนว่าพวกเขาจะไม่กัดคุณ สิ่งที่อาจกัดคุณคือสิ่งที่คุณไม่รู้หรือตอนนี้ก็ยังไม่รู้

ไฟร์วอลล์ที่เริ่มต้นที่ปฏิเสธใดเป็นวิธีที่ดูแลระบบของบอกว่าได้รับอนุญาตอย่างชัดเจนถ้าสิ่งใหม่มาพร้อมและเปิดฟังเครือข่ายบนเซิร์ฟเวอร์นี้ไม่มีใครจะสามารถที่จะพูดคุยกับมันจนกว่าเราจะได้รับ


นั่นเป็นคำตอบที่ลึกซึ้งมากโดยเฉพาะข้อความเกี่ยวกับการพลิกจาก "อนุญาตทุกอย่าง ... " เป็น "ทุกสิ่งต้องห้าม ... " ประเด็นของคุณก็ถูกสร้างขึ้นเกี่ยวกับภูตท้องถิ่นด้วยเช่นกัน เป็นกรณีที่มักจะ - ฉันแน่ใจว่าคุณจะเห็นด้วย - อันตรายมักจะอยู่ใน "ภายใน"
Aitch

12
(ถ้าฉันอาจสันนิษฐานได้เล็กน้อยโปรไฟล์ของคุณแนะนำว่าคุณเป็นคนใหม่ใน serverfault มารยาทในท้องถิ่นคือเมื่อคุณพอใจกับคำตอบคุณก็ยอมรับโดยคลิกที่เค้าร่างเห็บถ้าหน่วยความจำทำหน้าที่; ที่ขับเคลื่อนระบบชื่อเสียงแน่นอนถ้าคุณรู้เรื่องนี้อยู่แล้วหรือคุณกำลังรอดูว่ามีคำตอบอื่น ๆ ดีกว่าตอบกลับมานั่นก็เป็นเรื่องที่ถูกต้องและเหมาะสมมากและโปรดเพิกเฉยต่อฉันชุมชนจะถามว่าครั้งเดียว คุณพึงพอใจอย่างเต็มที่กับคำตอบสำหรับคำถามของคุณคุณยอมรับมัน)
MadHatter

+1 @MatHatter - คำอธิบายที่ดีว่าไฟร์วอลล์สามารถให้ความปลอดภัยได้ตามค่าเริ่มต้นแทนที่จะเป็นทางเลือก
Coops

มันเป็นความเสี่ยงที่คำนวณได้ อย่างน้อยใน OpenBSD การเปิดใช้งาน pf จะเพิ่มโค้ด 35K ในเคอร์เนลซึ่งอาจมีข้อบกพร่อง ในทางกลับกันการปฏิเสธเริ่มต้น - และไฟร์วอลล์การบันทึกที่เหมาะสม - เป็นเงิน IDS ที่ยิ่งใหญ่ที่สุดที่สามารถซื้อได้ หยุดพยายามที่จะใช้ Snort เพื่อค้นหาสิ่งที่ไม่ดี: ทุกครั้งที่เครื่องของคุณทำสิ่งที่คุณไม่อนุญาตเป็นพิเศษคุณควรได้รับการแจ้งเตือน
Alex Holst

14

หลักการสิทธิประโยชน์ขั้นต่ำสุด ไฟร์วอลล์ช่วยให้คุณไปถึงที่นั่น หลักการป้องกันในเชิงลึก ไฟร์วอลล์ช่วยให้คุณไปถึงที่นั่นด้วย การกำหนดค่าที่ออกแบบมาอย่างดีต้องอาศัยสองสิ่งนี้อย่างชัดเจนไม่ทางใดก็ทางหนึ่ง

อีกสิ่งหนึ่งคือเซิร์ฟเวอร์ของคุณมักจะเป็นฮาร์ดแวร์สินค้าหรือฮาร์ดแวร์เฉพาะสำหรับการจัดการซอฟต์แวร์เซิร์ฟเวอร์ที่ทำงานบนเซิร์ฟเวอร์มาตรฐาน OS (Unix, NT, Linux) กล่าวคือพวกเขาไม่มีฮาร์ดแวร์พิเศษที่จะจัดการและกรองปริมาณข้อมูลเข้าได้อย่างมีประสิทธิภาพ คุณต้องการให้เซิร์ฟเวอร์ของคุณจัดการทุก ๆ อย่างที่เป็นไปได้แบบหลายผู้รับแพ็คเก็ต ICMP หรือการสแกนพอร์ตที่กำลังจะมา?

ส่วนใหญ่สิ่งที่คุณต้องการสำหรับเซิร์ฟเวอร์ของคุณที่จะจัดการกับคำขอทางกายภาพเพียงบางพอร์ต (80, 443, พอร์ต ssl ของคุณ, พอร์ต oracle 1521 ทั่วไป, พอร์ต rsync ของคุณ, ฯลฯ ) ใช่แน่นอนว่าคุณตั้งค่าซอฟต์แวร์ไฟร์วอลล์บน เซิร์ฟเวอร์เพื่อฟังพอร์ตเหล่านั้นเท่านั้น แต่ NIC ของคุณจะยังคงรับภาระการรับส่งข้อมูลที่ไม่ต้องการ (ไม่ว่าจะเป็นมะเร็งหรือเป็นเรื่องปกติในองค์กรของคุณ) หาก NIC ของคุณกำลังถูกทุบดังนั้นเส้นทางเครือข่ายจะผ่านเซิร์ฟเวอร์ของคุณ (และอาจเป็นไปได้ระหว่างเซิร์ฟเวอร์ของคุณ เซิร์ฟเวอร์และบริการภายในอื่น ๆ )

ไม่เพียง แต่ NIC ของคุณจะได้รับการตอกย้ำซอฟต์แวร์ไฟร์วอลล์ของคุณก็จะเข้ามามีส่วนร่วมเนื่องจากจะต้องตรวจสอบทุก ๆ แพ็กเก็ตหรือดาตาแกรมที่ได้รับ

ไฟร์วอลล์ในอีกทางหนึ่งโดยเฉพาะที่ขอบของเครือข่ายย่อย (หรือแยกเครือข่ายย่อยของคุณจากโลกภายนอก) มีแนวโน้มที่จะเป็นฮาร์ดแวร์พิเศษที่สร้างขึ้นโดยเฉพาะสำหรับการจัดการระดับเสียงชนิดนั้น

คุณสามารถล้อมเซิร์ฟเวอร์ N จำนวนด้วยไฟร์วอลล์ M จำนวน (กับ N >> M) และคุณตั้งค่าฮาร์ดแวร์ไฟร์วอลล์ของคุณให้ทิ้งสิ่งที่ไม่ได้มุ่งไปยังพอร์ตเฉพาะ สแกนพอร์ต ICMPs และอึอื่น ๆ หมดแล้ว จากนั้นคุณปรับแต่งซอฟต์แวร์ไฟร์วอลล์ในเซิร์ฟเวอร์ตามฟังก์ชั่นเฉพาะของพวกเขา

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

ไม่มีไฟร์วอลล์เพราะเซิร์ฟเวอร์ของคุณมีหนึ่งรู้สึกปลอดภัยที่จะคาดเข็มขัดนิรภัยของคุณขณะขับขี่ที่ 120 ไมล์ต่อชั่วโมงภายใต้ทัศนวิสัยที่ไม่เป็นศูนย์เนื่องจากมีหมอก มันไม่ทำงานอย่างนั้น


4

มีการโจมตีหลายครั้งที่คุณอาจประสบความสำเร็จหากคุณไม่มีไฟร์วอลล์ที่ทำการตรวจสอบระดับแพ็คเก็ตบางอย่าง:

ตัวอย่างคือChristmas Packet

http://en.wikipedia.org/wiki/Christmas_tree_packet

การโจมตี DDOS สามารถทำงานกับระบบของคุณได้ไฟร์วอลล์ (อาจภายนอกก่อนเซิร์ฟเวอร์ใด ๆ ของคุณ) จะหยุด / ช้า / ฆ่าปริมาณการใช้งานก่อนที่มันจะทำลายเซิร์ฟเวอร์ของคุณ

เพียงเพราะคุณไม่มีการเงินหรือข้อมูลส่วนบุคคลบนเซิร์ฟเวอร์ไม่ได้หมายความว่าคุณจะไม่ได้รับ 'เจ็บ' ฉันแน่ใจว่าคุณจ่ายแบนด์วิดธ์หรือการใช้งาน CPU หรือคุณมีอัตราเป็นเมตร ลองนึกภาพตอนกลางคืน (ในขณะที่คุณหลับ) มีคนวิ่งมิเตอร์ของคุณ (ฉันได้เห็นสิ่งนี้เกิดขึ้นกับผู้ให้บริการสวิทช์ VOIP, เข้าชมในตอนกลางคืนเพื่อการจราจรนับล้าน ๆ นาที

ดังนั้นจงฉลาดใช้การป้องกันถ้ามันอยู่ที่นั่นคุณจะไม่สมบูรณ์แบบและไม่ใช่ซอฟต์แวร์ มันจะปลอดภัยเท่านั้นจนกว่าจะพบการโกงในครั้งต่อไป ;)


2

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


1
จุดที่ดีเกี่ยวกับการกำหนดค่าเดียวห้องน้อยสำหรับข้อผิดพลาด ฉันเห็นด้วยกับการขี้เกียจทุกที่ที่เป็นไปได้! cfengine นำความซับซ้อนนี้มาให้ฉันบางส่วนเพื่อบรรเทาปัญหาของไฟล์ปรับแต่งหลายอย่าง .... แต่ ... มันดีพอ ๆ กับกฎที่เขียนขึ้นแน่นอน ดังนั้นคุณควรปล่อยให้ไฟล์ config ส่วนใหญ่อยู่ที่ "default" (หรือใกล้เคียง) เป็นอุปสรรครองและมีไฟร์วอลล์เป็น (อย่างน้อยก็ในแง่ของเลเยอร์) ข้อกังวลหลัก
Aitch

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

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

1

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

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


นอกจากนี้การทำเช่นนี้เป็นการกำหนดค่าไฟร์วอลล์อย่างไรก็ตามมันเพิ่งเกิดขึ้นกับแต่ละเซิร์ฟเวอร์
mfinni

1

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

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


ยอดเยี่ยมการมิกซ์แพลตฟอร์ม (ระบบปฏิบัติการและฮาร์ดแวร์) เป็นกุญแจสำคัญ
DutchUncle

1

ไฟร์วอลล์ถูกกระจายในการจัดการการจราจร พวกเขาทำมันอย่างรวดเร็วและมีทรัพยากร และคุณไม่ต้องเปลืองทรัพยากรเซิร์ฟเวอร์ในการกรองทราฟฟิก (ดิสก์ io / proc time / etc) คุณกำหนดค่าความปลอดภัยบางอย่างในสภาพแวดล้อมเซิร์ฟเวอร์ แต่การตรวจสอบ trafic และการสแกนไวรัสและอื่น ๆ ควรทำเซิร์ฟเวอร์เฉพาะ


-2

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


-1 คำตอบอื้อฉาวเล็กน้อย + ไม่เชิงสร้างสรรค์
Coops

2
หากเซิร์ฟเวอร์นั้นถูกบุกรุกไฟร์วอลล์ก็ไม่จำเป็นต้องช่วยเหลือเมื่อ bozo ที่แตกหักนั้นปิดการใช้งาน! * ข้อจำกัดความรับผิดชอบคำถามที่กล่าวถึงการใช้ iptables ไม่ใช่ไฟร์วอลล์ฮาร์ดแวร์แยกต่างหาก
ไบรอัน
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.