เหตุใดเราจึงต้องการไฟร์วอลล์หากไม่มีโปรแกรมที่ทำงานบนพอร์ตของคุณ


14

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


การป้องกันในความลึก en.wikipedia.org/wiki/Defense_in_Depth_(computing)
Zoredache

คำตอบ:


31

อาจไม่มีบริการที่ใช้งานอยู่ในขณะนี้ แต่จะทำอย่างไรในวันพรุ่งนี้ คุณปิดการทำงานทั้งหมด แต่ผู้ใช้ของคุณล่ะ ทุกคนในระบบ unix / windows / mac สามารถเปิดพอร์ต> 1024 บนเครื่องที่พวกเขาสามารถเข้าถึงได้ มัลแวร์เกี่ยวกับอะไร? ไวรัสล่ะ พวกเขายังสามารถเปิดพอร์ตและเริ่มให้บริการข้อมูลสู่โลกหรือเริ่มฟังการเชื่อมต่อจากเครือข่าย

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

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

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


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

5
@KhajaMinhajuddin ใช่! นั่นคือจุดที่แน่นอน (-:
gabe.

2
@KhajaMinhajuddin คุณต้องการเฉพาะบริการที่คุณตั้งค่าเพื่อให้สามารถใช้งานได้ทั่วโลก คุณไม่ต้องการให้เซิร์ฟเวอร์ smtp ที่ super_spam_virus.exe เริ่มทำงานในขณะที่คุณไม่ต้องการฟังการเชื่อมต่อจากระบบที่ติดเชื้ออื่น ๆ ไฟร์วอลล์จะป้องกันสิ่งนี้แม้ว่าจะไม่ใช่ยาครอบจักรวาล
เกบ

super_spam_virus.exe ไม่เหมือน Unix & Linux :)
ผู้ใช้ไม่ทราบ

@userunknown จริง ... วิธีการเกี่ยวกับ a.out หรือ / bin / ls เวอร์ชันที่ถูกบุกรุกที่ถูกคัดลอกไปยังระบบของคุณ หรือหากคุณเป็นผู้พัฒนาhg serveที่เริ่มต้นเว็บเซิร์ฟเวอร์บนเครื่องของคุณ ประเด็นก็คือการเริ่มต้นเซิร์ฟเวอร์บนเครื่องใด ๆ ไม่ว่าจะเป็นการใช้ 'เดสก์ท็อป' หรือ 'เซิร์ฟเวอร์' ก็ไม่สำคัญ และเมื่อเซิร์ฟเวอร์นั้นเริ่มต้นและคุณไม่รู้ ... มันก็คือความสนุกที่เริ่มต้น
เกบ

3

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

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


นี่เป็นจุดที่ดี แต่ถ้าฉันต้องการให้เซิร์ฟเวอร์ทำสิ่งต่าง ๆ (ฉันมักจะใส่ openssh และเว็บเซิร์ฟเวอร์) แม้จะมีไฟร์วอลล์ฉันก็ต้องเปิดพอร์ตเพื่อให้แอพที่ทำงานอยู่เหมือน openssh และ webservers มีประโยชน์ ดังนั้นฉันเดาว่าสิ่งที่ฉันถามคือมีโปรแกรมใดที่เปิดพอร์ตไปยังโลกภายนอกที่ต้องถูกบล็อกโดยไฟร์วอลล์และซึ่งจะยังคงมีประโยชน์
Khaja Minhajuddin

1
ใช่แล้วล่ะ. ไม่จำเป็นต้องมีตัวอย่างสำหรับเซิร์ฟเวอร์ แต่ให้สมมติว่าคุณมีเครื่อง Linux ที่ติดตั้ง X และ X ทำงานบนพอร์ตเครือข่าย คุณต้องการอนุญาตให้คอมพิวเตอร์ของคุณบางทีคอมพิวเตอร์อื่น ๆ จาก LAN เพื่อเชื่อมต่อกับ X ของคุณอย่างไรก็ตามคุณไม่ต้องการให้ Joe จากฝรั่งเศสเชื่อมต่อกับมัน อีกตัวอย่างหนึ่งสมมติว่าคุณตั้งค่าบริการ VPN หลายรายการบนเซิร์ฟเวอร์ของคุณและคุณต้องควบคุมว่าเครือข่ายใดสามารถดูเครือข่ายอื่น ๆ (หรือไม่เห็น) หรือสมมติว่าคุณมี OpenSSH แต่คุณต้องการอนุญาตการเชื่อมต่อจากคอมพิวเตอร์ที่บ้านของคุณเท่านั้น มีตัวอย่างอื่น ๆ อีกมากมาย
Patkos Csaba

1
@KhajaMinhajuddin: สำหรับ ssh คุณควรใช้เครื่อง/etc/ssh/sshd_configเพื่อความปลอดภัย PermitRootLoginควรตั้งค่าเป็นไม่คุณควรใช้รหัสผ่านที่ปลอดภัยและดูแลเครื่องด้วย sudo (คุณอาจใช้ sudo หลังจากลงชื่อเข้าใช้ด้วยบัญชีที่มีสิทธิ์ sudo) การตั้งข้อ จำกัด ด้วยไฟร์วอลล์เป็นเพียงเครื่องมือที่ผิดสำหรับงาน สิ่งนี้จะเป็นจริงสำหรับpostgresqlฐานข้อมูล: ใช้การกำหนดค่าฐานข้อมูลเพื่อตั้งค่าและยกเลิกการอนุญาต
ผู้ใช้ไม่ทราบ

3

การพูดอย่างเคร่งครัดอาจไม่จำเป็นอย่างไรก็ตามโปรดจำไว้ว่าไฟร์วอลล์สามารถให้ฟังก์ชันการทำงานมากกว่าการปฏิเสธการเชื่อมต่อผ่านพอร์ตเครือข่าย ตัวอย่างเช่น DROP กับพฤติกรรมปฏิเสธ


1
ข้อดีของ DROP กับ REJECT คืออะไร
ผู้ใช้ไม่ทราบ

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

-5

แต่ทำไมเราต้องใช้ไฟร์วอลล์หากไม่มีโปรแกรมฟังบนพอร์ตใด ๆ

หากคุณมีเดสก์ท็อปผู้ใช้เดียวไม่ใช่เซิร์ฟเวอร์คุณไม่จำเป็นต้องใช้ไฟร์วอลล์หากไม่มีบริการที่ใช้งานอยู่เช่นเดียวกับการติดตั้งเริ่มต้นของ Ubuntu

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

เมื่อพวกเขาพบกับคน Linux ซึ่งมักจะเป็นผู้ดูแลเซิร์ฟเวอร์พวกเขาไม่ได้พูดว่า 'คุณไม่ต้องการไฟร์วอลล์บน linux' แต่ 'เรามีไฟร์วอลล์ฟรีเช่น iptables มาเกือบทศวรรษ'

ไฟร์วอลล์ส่วนบุคคลนั่งอยู่บนระบบมันจะป้องกันไม่ได้เป็นความคิดที่ดีที่สุดอย่างใดอย่างหนึ่ง

ในระบบเดสก์ท็อปผู้ใช้เดียวคุณไม่จำเป็นต้องใช้ไฟร์วอลล์ส่วนบุคคล


3
ดูคำตอบจากเกบและคิดใหม่ โดยเฉพาะอย่างยิ่งไคลเอนต์เดสก์ท็อปมีความเสี่ยงต่อการถูกโจมตี
นิลส์

1
@userunknown: ไวรัสอาจเป็นผู้ใช้เดสก์ท็อปของคุณ daemon ที่คุณติดตั้งและไม่สามารถกำหนดค่าได้เช่นกัน
AndréParamés

1
ฉันใช้การทดสอบความปลอดภัยเป็นเวลาหลายปีและการเข้าถึงผ่านเดสก์ท็อปเป็นเส้นทางที่มีประโยชน์มากในการเผยแพร่การโจมตี ไม่สำคัญว่าจะเป็น Windows, Linux, Solaris หรืออะไรก็ตาม ล็อคมันหรือทำให้ผู้โจมตีเสีย วลีที่ถูกต้องควรเป็นคุณอาจต้องใช้ไฟร์วอลล์บนเดสก์ท็อปของคุณ - ประเมินความเสี่ยงในสภาพแวดล้อมของคุณอย่างเต็มที่
Rory Alsop

2
@userunknown เพียงเพราะคุณใช้คอมพิวเตอร์เพราะdesktopไม่ได้หมายความว่ามันยังคงเป็นserverคำพูด ของคุณdesktopมีมากมายserversที่อาจเกิดขึ้นกับมันและอาจเป็นไปได้อยู่แล้ว
เกบ

1
คิดเกี่ยวกับ CUPS (ลินุกซ์ใด ๆ ), SLPD (SuSE) และสิ่งอื่น ๆ (KDE- ระยะไกล, iSCSI- เซิร์ฟเวอร์ / ไคลเอนต์) ที่อาจทำงานบน linux หลังจากอัปเดต แม้ว่าคุณจะตรวจสอบก่อนสิ่งเหล่านี้อาจปรากฏขึ้น หากพวกเขาทำมันเป็นสิ่งที่ดีที่จะปิดกั้นพวกเขา BTW - เปิดใช้งานไฟร์วอลล์ของคุณผ่าน GUI (don t allow anything) on RedHat, start CUPS and see if you can connect to it from outside. Then look at iptables-save`: Voila - พอร์ต CUPS เปิดโดยไม่แสดงใน gui ...
Nils
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.