เหตุใด NTP จึงต้องการไฟร์วอลล์แบบสองทิศทางเข้าถึงพอร์ต UDP 123


17

จากกฎ iptables อนุญาตให้ ntp คืออะไร :

iptables -A INPUT -p udp --dport 123 -j ACCEPT
iptables -A OUTPUT -p udp --sport 123 -j ACCEPT

นอกจากนี้จากเว็บไซต์ NTP :

... ntpd ต้องการการเข้าถึงเต็มรูปแบบสองทิศทางไปยังพอร์ต UDP ที่มีสิทธิ์ 123 ...

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


2
คุณได้อ่านส่วนเกี่ยวกับ "อนุญาตให้มีความเกี่ยวข้อง / สร้างแล้ว" ถ้ากฎนี้มีอยู่ไม่จำเป็นต้องมีกฎอินพุตทั่วไปสำหรับพอร์ต UDP 123
VMai

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

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

ฉันไปที่นี่เมื่อไม่กี่วันที่ผ่านมามันสามารถจัดการได้โดยไม่ต้องมีการเชื่อมต่อเข้ามา
barlop

@VMai คนที่กล่าวว่าในsuperuser.com/questions/141772/… ไม่ได้มีตัวอย่าง แต่ฉันคิดว่าเขาหมายถึงการเปิดใช้งานการเชื่อมต่อขาออกแพ็คเก็ตเข้ามาในพวกเขา ซึ่งแตกต่างจากแนวคิดที่ว่า "ntpd ต้องการการเข้าถึงแบบสองทิศทางเต็มรูปแบบไปยังพอร์ต UDP ที่ได้รับการยกเว้น 123 ... " ซึ่งฟังดูเหมือนการเชื่อมต่อขาเข้า ถ้าเขาต้องการอนุญาตให้เข้าและออกโดยใช้ที่เกี่ยวข้อง / จัดตั้งขึ้นแล้วเขาต้องการกฎ 4 ข้อ 2 สำหรับการเชื่อมต่อขาเข้า 2 สำหรับการเชื่อมต่อขาออก
barlop

คำตอบ:


10

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

มิฉะนั้นการดำรงอยู่ของสถานะ NTP จะกำหนดโดยอัตโนมัติว่าแพ็กเก็ต NTP ขาเข้านั้นถูกบล็อกหรืออนุญาตโดยสถานะไฟร์วอลล์ที่มีอยู่ที่เราเริ่มต้น

iptables -A เอาท์พุท -p udp --sport 123 --dport 123 -j ACCEPT

iptables -A อินพุต -m state - สถานะถูกสร้าง, เกี่ยวข้อง -j ACCEPT

กรุณาแจ้งให้เราทราบหากกฎ iptables เหมาะสม ฉันไม่มีประสบการณ์กับ iptables ไคลเอนต์ NTP ของฉันยังคงซิงโครไนซ์บนเราเตอร์ pfSense ของฉันด้วยกฎการอนุญาตขาออกเท่านั้นเนื่องจาก pfSense เป็นไฟร์วอลล์แบบ stateful


1
มันดูสมเหตุสมผลดี! น่าเสียดายที่ฉันไม่อยู่ในฐานะที่จะยืนยันความถูกต้องของคำตอบของคุณอีกต่อไป อย่างไรก็ตามฉันจะยอมรับมันเพราะมันดูสมเหตุสมผล ขอบคุณมาก!
DuffJ

1

NTP ต้องการการเข้าถึงแบบสองทิศทางในพอร์ต 123 เนื่องจากNTP RFCระบุสิ่งต่อไปนี้เกี่ยวกับพอร์ตต้นทางของไคลเอ็นต์:

เมื่อทำงานในโหมดสมมาตร (1 และ 2) ฟิลด์นี้จะต้องมีหมายเลขพอร์ต NTP PORT (123) ที่กำหนดโดย IANA

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

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


0

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

host -t a 0.debian.pool.ntp.org

จากนั้นคุณสามารถเพิ่มกฎไปยังเซิร์ฟเวอร์ไฟร์วอลล์:

iptables -I INPUT -p udp -s 94.177.187.22 -j ACCEPT

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


-1

การสื่อสารเซิร์ฟเวอร์ ntp ไปยังเซิร์ฟเวอร์คือพอร์ตต้นทางและปลายทาง 123 วิธีที่สะดวกที่สุดคืออนุญาตอย่างน้อยที่สุดให้กับโฮสต์ที่คุณใช้บริการ ntp

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

อย่าใช้เครือข่าย IP ภายนอกเลย ตัวอย่างเช่นใช้แหล่งกำเนิดสัญญาณวิทยุเช่น GPS

http://www.diablotin.com/librairie/networking/firewall/ch08_13.htm http://support.ntp.org/bin/view/Support/TroubleshootingNTP


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