การป้องกันเครื่องหมายดอกจันจากการเชื่อมต่อที่ไม่ได้รับอนุญาต การตั้งค่า Fail2ban เพื่อป้องกันเครื่องหมายดอกจัน เราไม่ได้สร้างกฎสากลขึ้นมาข้อเดียวสำหรับการโทรทั้งหมด

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

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

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

ก่อนที่คุณจะเริ่มการตั้งค่า คุณต้องติดตั้ง iptables และ failed2ban นอกจากนี้ จะต้องกำหนดค่า iptables แล้ว (และอนุญาตให้เชื่อมต่อกับเครื่องหมายดอกจัน) ก่อนที่จะกำหนดค่า failed2ban! คุณสามารถอ่านวิธีกำหนดค่า iptables ได้ที่นี่: การตั้งค่า iptables สำหรับเครื่องหมายดอกจัน คุณยังสามารถติดตั้ง failed2ban ก่อนที่จะติดตั้งเครื่องหมายดอกจัน ซึ่งในกรณีนี้ (อย่างน้อยก็ในทางทฤษฎี) ในระหว่างกระบวนการติดตั้ง เวอร์ชันล่าสุดเครื่องหมายดอกจันตรวจพบความล้มเหลว 2ban ที่ติดตั้งและกำหนดค่าโดยอัตโนมัติ อย่างไรก็ตาม:

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

การตั้งค่าการบันทึกเครื่องหมายดอกจัน

ประการแรก ควรตั้งค่าการบันทึกเครื่องหมายดอกจันเพื่อให้ข้อมูลเริ่มถูกรวบรวมในรูปแบบและรูปแบบที่เราต้องการทันที ในการดำเนินการนี้ ในไดเร็กทอรีการกำหนดค่าเครื่องหมายดอกจัน (/etc/asterisk ตามค่าเริ่มต้น) ให้ค้นหาไฟล์ logger.conf และทำการเปลี่ยนแปลงต่อไปนี้: ไม่แสดงข้อคิดเห็น (ลบเครื่องหมายอัฒภาคที่จุดเริ่มต้นของบรรทัด):

รูปแบบวันที่=%F %T ; รูปแบบวันที่ ISO 8601

นี่เป็นสิ่งจำเป็นเพื่อให้เครื่องหมายดอกจันเขียนวันที่ในบันทึกในรูปแบบที่ถูกต้อง:
ปี-เดือน-วัน ชั่วโมง:นาที:วินาที

ตั้งแต่เวอร์ชัน 10 ของเครื่องหมายดอกจัน คุณสามารถเปิดใช้งาน Asterisk Security Framework ได้ ในการดำเนินการนี้ ในไฟล์ logger.conf ให้ค้นหาและไม่ใส่เครื่องหมายข้อคิดเห็น (หรือเพิ่ม) บรรทัด:

ความปลอดภัย => ความปลอดภัย

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

หลังจากนี้ ไฟล์ชื่อความปลอดภัยจะปรากฏในโฟลเดอร์บันทึกเครื่องหมายดอกจัน (ตามค่าเริ่มต้น /var/log/asterisk) อย่าลืมตั้งค่าการหมุนเวียนบันทึกสำหรับไฟล์นี้ (เช่นเดียวกับบันทึกเครื่องหมายดอกจันอื่นๆ)!

การตั้งค่ากฎการกรอง

ตอนนี้เราจำเป็นต้องสร้างตัวกรองที่จะแยกเหตุการณ์ที่อาจเป็นอันตรายออกจากขั้นตอนทั่วไปของข้อความเครื่องหมายดอกจัน (การเข้าสู่ระบบ/รหัสผ่านไม่ถูกต้อง ความพยายามในการเข้าสู่ระบบจากที่อยู่ IP ที่ไม่ได้รับอนุญาต ฯลฯ) ในเวลาเดียวกัน เราไม่เพียงต้องตรวจจับเหตุการณ์ที่อาจเป็นอันตรายดังกล่าวเท่านั้น แต่ยังต้องแยกที่อยู่ IP ที่ใช้ดำเนินการออกจากที่นั่นด้วย นั่นคือเราไม่เพียงแค่มองหาบรรทัดที่เฉพาะเจาะจงในไฟล์เหตุการณ์เครื่องหมายดอกจัน แต่ยังตั้งค่ากฎการกรองอีกด้วย
กฎการกรองสามารถเขียนได้ในไฟล์ /etc/fail2ban/filter.d/asterisk.conf นี่คือตัวอย่างเนื้อหาในไฟล์นี้:

# ไฟล์การกำหนดค่า Fail2Ban # # # $ การแก้ไข: 250 $ # # อ่านคำนำหน้าทั่วไป หากมีการปรับแต่งใดๆ ให้อ่านจาก # common.local #before = common.conf #_daemon = เครื่องหมายดอกจัน # ตัวเลือก: failedregex # หมายเหตุ: regex เพื่อให้ตรงกับข้อความแสดงรหัสผ่านล้มเหลวในไฟล์บันทึก # โฮสต์จะต้องถูกจับคู่โดยกลุ่มชื่อ "โฮสต์" แท็ก " " สามารถใช้ # สำหรับการจับคู่ IP/ชื่อโฮสต์มาตรฐาน และเป็นเพียงนามแฝงสำหรับ # (?:::f(4,6):)?(?P \S+) # ค่า: TEXT # # เครื่องหมายดอกจัน 1.8 ใช้ โฮสต์:รูปแบบพอร์ตซึ่งสะท้อนให้เห็นที่นี่ failedregex = ประกาศ.* .*: การลงทะเบียนจาก ".*" ล้มเหลวสำหรับ " :.*" - รหัสผ่านไม่ถูกต้อง ประกาศ.* .*: การลงทะเบียนจาก ".*" ล้มเหลวสำหรับ " :.* " - ไม่พบเพียร์ที่ตรงกัน ประกาศ* .*: การลงทะเบียนจาก ".*" ล้มเหลวสำหรับ " :.*" - ชื่อผู้ใช้/ชื่อรับรองความถูกต้องไม่ตรงกัน ประกาศ* .*: การลงทะเบียนจาก ".*" ล้มเหลวสำหรับ " :.*" - อุปกรณ์ไม่ตรงกับประกาศ ACL.* .*: การลงทะเบียนจาก ".*" ล้มเหลวสำหรับ " :.*" - ไม่ใช่โดเมนท้องถิ่น ประกาศ * .*: การลงทะเบียนจาก ".*" ล้มเหลวสำหรับ " :.*" - เพียร์ไม่ควรลงทะเบียน ประกาศ* .*: การลงทะเบียนจาก ".*" ล้มเหลวสำหรับ " :.*" - ข้อผิดพลาด ACL (อนุญาต/ปฏิเสธ) ประกาศ * .*: การลงทะเบียนจาก ".*" ล้มเหลวสำหรับ " " - ประกาศรหัสผ่านไม่ถูกต้อง * .*: การลงทะเบียนจาก ".*" ล้มเหลวสำหรับ " " - ไม่พบเพียร์ที่ตรงกัน ประกาศ * .*: การลงทะเบียนจาก ".*" ล้มเหลวสำหรับ " " - ชื่อผู้ใช้/ชื่อรับรองไม่ตรงกัน ประกาศ * .* : การลงทะเบียนจาก ".*" ล้มเหลวสำหรับ " " - อุปกรณ์ไม่ตรงกับประกาศ ACL.* .*: การลงทะเบียนจาก ".*" ล้มเหลวสำหรับ " " - ไม่ใช่โดเมนท้องถิ่น ประกาศ * .*: การลงทะเบียนจาก ".*" ล้มเหลวสำหรับ " " - เพียร์ไม่ควรลงทะเบียน ประกาศ* .*: การลงทะเบียนจาก ".*" ล้มเหลวสำหรับ " " - ข้อผิดพลาด ACL (อนุญาต/ปฏิเสธ) ประกาศ* .*: การลงทะเบียนจาก "\".*\" .*" ล้มเหลวสำหรับ " :.*" - ไม่พบเพียร์ที่ตรงกัน ประกาศ * .*: การลงทะเบียนจาก "\".*\".*" ล้มเหลวสำหรับ " :.*" - รหัสผ่านผิด ประกาศ * .*: ไม่ การลงทะเบียนเพียร์ ".*" \(จาก \) ประกาศ * .*: โฮสต์ล้มเหลวในการรับรองความถูกต้อง MD5 สำหรับ ".*" (.*) ประกาศ * .*: ไม่สามารถตรวจสอบผู้ใช้ .*@ .* ประกาศ * ล้มเหลว เพื่อตรวจสอบสิทธิ์เป็น ".*"$ NOTICE.* .*: กำลังส่งการปฏิเสธการรับรองความถูกต้องสำหรับอุปกรณ์ .*\<.>

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

สำหรับเวอร์ชันและสูงกว่า หากคุณเปิดใช้งานการบันทึก อย่าลืมระบุกฎการกรองสำหรับบันทึกเหล่านี้

กฎการกรองสามารถเขียนลงในไฟล์ได้ นี่คือตัวอย่างเนื้อหาในไฟล์นี้

การตั้งค่าตัวแยกสำหรับ

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

เมื่อต้องการทำเช่นนี้ ให้เปิดไฟล์

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

กฎข้อที่

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

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

กฎข้อที่

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

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

ปล่อย

ตอนนี้คุณต้องเริ่มหรือรีสตาร์ท และหากจำเป็น เช่น ยังไม่ได้เริ่ม

คุณต้องรันก่อน โดยรันคำสั่งต่อไปนี้

หากต้องการรีสตาร์ทให้รันคำสั่งต่อไปนี้

หากต้องการตรวจสอบว่าเริ่มต้นได้สำเร็จและมีการโหลดกฎแล้ว ให้รันคำสั่งต่อไปนี้

และถ้ามีกฎข้อที่สอง

หากต้องการแสดงรายการกฎ ให้รันคำสั่งต่อไปนี้

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

ตรวจสอบงาน

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

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

ลำดับการดำเนินการเพื่อตรวจสอบการทำงานของลิงก์

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

      ในกรณีนี้ ข้อความจะปรากฏขึ้นสำหรับกฎที่ถูกปิดใช้งาน

      และสำหรับข้อความที่รวมไว้ในแบบฟอร์ม

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

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

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

การจัดการกฎ

ปิดการใช้งานการบล็อกที่อยู่ชั่วคราว

ในการดำเนินการนี้ คุณต้องใช้บริการ ขั้นแรก เราจะแสดงรายการกฎบนคอนโซล จากนั้นเลือกกฎที่คุณต้องการลบออกจากการแบน

หากต้องการดูรายการกฎ ให้ป้อนคำสั่ง

คุณจะเห็นข้อความดังต่อไปนี้

เราสนใจที่จะลบที่อยู่ออกจากการแบนซึ่งอย่างที่เราเห็นอยู่ในสายโซ่ของกฎที่เรียกว่า กดคำสั่ง

หากคำสั่งดำเนินการสำเร็จ จะไม่มีข้อความปรากฏขึ้น และหากเรารันคำสั่งอีกครั้ง

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

ปิดการใช้งานการบล็อกที่อยู่อย่างถาวร

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

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

พารามิเตอร์มีรูปแบบดังต่อไปนี้

นั่นคือคุณสามารถลงทะเบียนที่อยู่แต่ละรายการเป็นเครือข่ายย่อยได้ในกรณีนี้และเข้าสู่รายการสีขาว

เลิกบล็อกที่อยู่ที่ทำการทดสอบ

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

มีวิธีแก้ไขปัญหานี้

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

การทดสอบการกำหนดค่า

คุณสามารถตรวจสอบวิธีการใช้ตัวกรองกับบุคคลนี้หรือบุคคลนั้นได้ ในการดำเนินการนี้ คุณสามารถเรียกใช้คำสั่งได้

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

ในที่สุด แทนที่จะรีบูตเครื่อง คุณสามารถเรียกใช้คำสั่งต่อไปนี้ได้

ลิงค์ไปยังแหล่งที่มา

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

โทรศัพท์อาจมีราคาถูก
และใช้งานได้จริง!

บริษัท IT KUB ให้บริการที่หลากหลายสำหรับการติดตั้ง การรวม และการกำหนดค่าระบบโทรศัพท์ IP

บริการด้านไอทีมีคุณภาพสูง!

chmod 755 install_apf_bfd.sh

./install_apf_bfd.sh

การกำหนดค่า APF อยู่ใน /etc/apf/conf.apf

หากต้องการเริ่มแก้ไขไฟล์ ให้ใช้คำสั่งต่อไปนี้:

นาโน /etc/apf/conf.ap

ตั้งค่า IFACE_IN และ IFACE_OUT สำหรับอินเทอร์เฟซเครือข่ายที่เชื่อมต่อกับอินเทอร์เน็ต สำหรับอินเทอร์เฟซเครือข่ายที่หันหน้าไปทาง เครือข่ายท้องถิ่นตั้งค่า IFACE_TRUSTED

SET_TRIM="0"

APF มีความสามารถในการรองรับ QoS สำหรับ SIP และ IAX คุณต้องติดตั้งสิ่งต่อไปนี้:

ทีโอเอส _8="21,20,80,4569,5060,10000_20000"

ถ้าคุณเปลี่ยนไป พอร์ตเอสเอสเอชคุณต้องแก้ไขไฟล์ conf.apf เพื่อให้ตรงกับพอร์ตใหม่นี้

HELPER_SSH_PORT="2222"

ตรวจสอบให้แน่ใจว่าได้แทนที่ 2222 ด้วยหมายเลขพอร์ตที่ถูกต้องที่คุณเลือกรัน SSH

การกรองขาเข้าใช้เพื่อเปิดพอร์ตสำหรับการเข้าถึง TCP และ UDP มีการตั้งค่าแยกกัน สำหรับเครื่องหมายดอกจัน (Trixbox) ต้องเปิดพอร์ตต่อไปนี้ ทั้ง TCP และ UDP อยู่ในรายการ หากคุณไม่ได้ใช้ TFTP อย่าเปิดพอร์ต 69 อย่าลืมเปลี่ยนพอร์ต SSH มิฉะนั้นคุณจะไม่สามารถเข้าถึงได้ ที่นี่เราใช้พอร์ต 2222 จากตัวอย่างสุดท้ายของเรา เราไม่ได้รวมพอร์ต IAX ในการติดตั้งนี้ มีวิธีง่ายๆ เพื่อให้แน่ใจว่ามีเพียงบางโฮสต์เท่านั้นที่สามารถใช้ IAX ได้ ซึ่งเราจะกล่าวถึงในภายหลัง วิธีนี้จะสะดวกหากคุณใช้ IAX เพื่อวางสายระหว่างสถานีที่โลกภายนอกมองไม่เห็น

IG_TCP_CPORTS="2222,69,80,5060,6600,10000_20000"
IG_UDP_CPORTS="69,5060,10000_20000"

ฉันไม่ได้ใช้การกรองขาออก ดังนั้นจึงไม่ได้กล่าวถึงในบทความนี้ มันถูกตั้งค่าเป็น EGF="0" ซึ่งปิดใช้งานตามค่าเริ่มต้น

เพื่อดูรายการตัวเลือก บรรทัดคำสั่งให้รัน APF โดยไม่มีแฟล็ก

#เอพีเอฟ
apf (3402): ไม่พบบันทึกสถานะ (glob) สร้างแล้ว
APF เวอร์ชัน 9.6< This email address is being protected from spambots. You need JavaScript enabled to view it. >
ลิขสิทธิ์ (C) 1999-2007, เครือข่าย R-fx< This email address is being protected from spambots. You need JavaScript enabled to view it. >
ลิขสิทธิ์ (C) 2007, Ryan MacDonald< This email address is being protected from spambots. You need JavaScript enabled to view it. >
โปรแกรมนี้อาจจะแจกจ่ายต่อได้อย่างอิสระภายใต้เงื่อนไขของ GNU GPL
การใช้งาน /usr/local/sbin/apf
-s|--start ........................... โหลดกฎไฟร์วอลล์ทั้งหมด
-r|--รีสตาร์ท ...................... หยุด (ล้าง) และโหลดกฎไฟร์วอลล์ใหม่
-f|--stop.......................... หยุด (ล้าง) กฎไฟร์วอลล์ทั้งหมด
-l|--list ........................... แสดงรายการกฎไฟร์วอลล์ทั้งหมด
-t|--status ........................ บันทึกสถานะไฟร์วอลล์เอาต์พุต
-e|--รีเฟรช ........................... รีเฟรชและแก้ไขชื่อ DNS ที่ไว้วางใจ
กฎ
-a HOST CMT|--อนุญาตให้ HOST COMMENT ... เพิ่มโฮสต์ (IP/FQDN) ไปที่
Allow_hosts.rules และโหลดกฎใหม่ลงในไฟร์วอลล์ทันที
-d HOST CMT|--ปฏิเสธความคิดเห็นของโฮสต์ .... เพิ่มโฮสต์ (IP/FQDN) ไปที่
deny_hosts.rules และโหลดกฎใหม่ลงในไฟร์วอลล์ทันที
-u|--remove HOST ................... ลบโฮสต์ออกจาก
*_hosts.rules และลบกฎออกจากไฟร์วอลล์ทันที
-o|--ovars ........................... ส่งออกตัวเลือกการกำหนดค่าทั้งหมด

ในการเริ่มต้น APF เราใช้คำสั่งต่อไปนี้:

#เอพีเอฟ-ส
APF(3445): (glob) กำลังเปิดใช้งานไฟร์วอลล์
apf (3489): (glob) กำหนด (IFACE_IN) eth0 มีที่อยู่ 192.168.1.31
apf (3489): (glob) กำหนด (IFACE_OUT) eth0 มีที่อยู่ 192.168.1.31
APF (3489): (glob) กำลังโหลด preroute.rules http://r-fx.ca/downloads/reserved http://feeds.dshield.org/top10-2.txt
http://www.spamhaus.org/drop/drop.lasso
apf(3489): (sdrop) แยกวิเคราะห์ drop.lasso ลงใน /etc/apf/sdrop_hosts.rules
APF (3489): (sdrop) กำลังโหลด sdrop_hosts.rules
apf (3489): (glob) กำลังโหลดพอร์ตดรอปทั่วไป
..........ตัดขอบสำหรับเอกสารนี้.........
apf (3489): (glob) อินพุตเริ่มต้น (ทางเข้า) ลดลง
apf (3445): (glob) ไฟร์วอลล์เริ่มต้นแล้ว
apf (3445): (glob) !!เปิดใช้งานโหมดการพัฒนาแล้ว!! - ไฟร์วอลล์จะล้างข้อมูล
ทุก 5 นาที

เราจะเห็นได้ว่า APF ได้เริ่มต้นแล้ว ดาวน์โหลดกฎหลายข้อจาก dshield.org และ spamhaus.org ตอนนี้เรามาทดสอบการเข้าสู่ระบบเซิร์ฟเวอร์ Asterisk (Trixbox) ผ่าน SSH เพื่อให้แน่ใจว่าคุณได้กำหนดค่าทุกอย่างถูกต้อง หากคุณไม่สามารถเชื่อมต่อได้ คุณต้องรอ 5 นาที จากนั้น APF จะนำการบล็อกออก เมื่อคุณแน่ใจว่าคุณสามารถเข้าสู่ระบบผ่าน SSH ได้ เราสามารถเปลี่ยน conf.apf DEVEL_MODE = "1" เป็น DEVEL_MODE = "0" และรีสตาร์ท APF APF จะเริ่มทำงานและจะไม่แจ้งเตือนว่าอยู่ใน DEVELOPMETN_MODE

APF: การปรับแต่งเพิ่มเติม

การตั้งค่าไม่ได้สิ้นสุดเพียงแค่นั้นหากคุณต้องการเชื่อมต่อเซิร์ฟเวอร์ Asterisk (Trixbox) ผ่าน IAX ในการดำเนินการนี้ คุณจะต้องเพิ่มพอร์ต IAX ลงใน conf.apf ตัวเลือกนี้จะทำงานกับที่อยู่ IP แบบคงที่หรือ DynDNS คำสั่ง apf -a อนุญาตให้เข้าถึงที่อยู่ IP ที่ระบุ สิ่งนี้จะอนุญาตให้โฮสต์ทั่วโลกเชื่อมต่อกับเครื่องหมายดอกจัน (Trixbox) โดยการข้ามกฎไฟร์วอลล์

APF -192.168.1.216

ซึ่งจะทำให้ระบบ 192.168.1.216 เชื่อมต่อกับพอร์ตใดๆ บนเซิร์ฟเวอร์ไฟร์วอลล์ได้ ดังนั้นจึงข้ามกฎไฟร์วอลล์ได้ หากคุณใช้ APF บนเครื่องหมายดอกจัน (Trixbox) ทั้งคู่ อย่าลืมทำสิ่งเดียวกันกับโฮสต์อื่นโดยใช้ที่อยู่ IP ที่ถูกต้อง

APF ก็อนุญาตเช่นกัน ผู้ดูแลระบบบล็อกโฮสต์หรือเครือข่ายย่อยทั้งหมด วิธีนี้จะสะดวกหากคุณเห็นว่ามีคนพยายามเชื่อมต่อกับเครื่องของคุณผ่าน FTP, Telnet, SSH และอื่นๆ หากต้องการบล็อกโฮสต์ใดโฮสต์หนึ่ง ให้ใช้สิ่งต่อไปนี้: ตรวจสอบให้แน่ใจว่าใช้ที่อยู่ IP ที่คุณต้องการบล็อก

APF -d 192.168.1.216

หากต้องการบล็อกเครือข่ายย่อยที่สมบูรณ์ (CIDR):

APF -d 202.86.128.0/24

APF ไม่รองรับ QoS สำหรับแพ็กเก็ต UDP TCP เท่านั้น มีวิธีง่ายๆ ในการแก้ไขปัญหานี้ มีไฟล์ function.apf อยู่ใน /etc/apf/internals เราต้องแก้ไขไฟล์นี้ด้วยตนเอง มีหลายที่ที่เราต้องเพิ่มบรรทัดเดียว เรากำลังมองหาส่วน TOS_ ในไฟล์ function.apf มันจะมีลักษณะเช่นนี้:

ถ้า [! "$TOS_0" == "" ]; แล้ว
สำหรับฉันใน `echo $TOS_0 | tr "," " "`; ทำ
i=`echo $i | tr "_" ///"
$IPT -t mangle -A PREROUTING -p tcp --sport $i -j TOS --set-tos 0
$IPT -t mangle -A PREROUTING -p udp --sport $i -j TOS --set-tos 0
เสร็จแล้ว
ฟิ

ต้องสร้างบรรทัดพิเศษนี้สำหรับบิต TOS ทั้งหมดที่คุณใช้

บี.เอฟ.ดี.

การตรวจจับแบบ Brute Force (การโจมตีด้วยพจนานุกรม) ใช้เพื่อตรวจจับความพยายามเข้าสู่ระบบโดยไม่ได้รับอนุญาต

ไฟล์การกำหนดค่าสำหรับ BFD อยู่ใน /usr/local/bfd และชื่อ conf.bfd ไฟล์นี้เหมือนกับไฟล์ APF ที่มีความคิดเห็นมากมาย เราจะดูการตั้งค่าบางส่วน

ตัวแปรการกำหนดค่าแรกที่เราจะดูคือ TRIG; นี่คือจำนวนครั้งที่ล้มเหลวก่อนที่ผู้โจมตีจะถูกบล็อค ค่าเริ่มต้นคือ 15 โปรดทราบว่านี่คือจำนวนครั้งที่พยายามไม่ได้มาจากบัญชีเดียว แต่มาจากที่อยู่ IP เดียว ดังนั้น หากมีการพยายามเข้าสู่ระบบไม่สำเร็จ 15 ครั้งจาก 1 ที่อยู่ IP โดยใช้บัญชีที่แตกต่างกัน ก็จะยังคงถูกบล็อก

BFD มีคุณสมบัติที่ดี - ส่ง อีเมลเมื่อตรวจพบความรุนแรง หากต้องการเปิดใช้งานตัวเลือกนี้ ให้ตั้งค่า EMAIL_ALERTS เป็น 1; อย่าลืมระบุที่อยู่ที่คุณต้องการรับการแจ้งเตือน - EMAIL_ADDRESS

BFD ถูกเปิดใช้งานโดย cron ทุก ๆ 3 นาที และอยู่ใน /etc/cron.d

คุณสามารถรับรายการที่อยู่ IP ที่ถูกแบนได้โดยใช้คำสั่ง:

ในการเริ่ม BFD ให้ใช้คำสั่งต่อไปนี้:

bfd -s

ประวัติย่อ

นี่เป็นการสิ้นสุดการตรวจสอบความปลอดภัยของเครื่องหมายดอกจัน (Trixbox) ของเรา

บทความนี้กล่าวถึงเฉพาะหลักการพื้นฐานของการป้องกันเครื่องหมายดอกจัน (Trixbox) โดยปกติแล้ว การสร้างระบบ VoIP ที่ปลอดภัยไม่ได้จำกัดอยู่เพียงเท่านี้

สามารถอ่านบทความต้นฉบับได้ที่ลิงค์

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

ในบทความนี้เราจะดูกลไกความปลอดภัยเบื้องต้นของ Asterisk 13 หลังการติดตั้ง และจะไม่ครอบคลุมถึงกลไกต่างๆ ความปลอดภัยของลินุกซ์- ด้านล่างนี้เราจะอธิบายกฎจำนวนหนึ่งที่จะช่วยรักษาความปลอดภัยให้กับระบบของคุณ:

1. รหัสผ่านป้องกันการแฮ็กและการเข้าสู่ระบบบนอุปกรณ์เครือข่ายทั้งหมด (เครื่องหมายดอกจัน, โทรศัพท์ IP, เกตเวย์ VoIP)

รหัสผ่านสำหรับบัญชี SIP ผู้ดูแลระบบ ผู้จัดการเครื่องหมายดอกจัน และอุปกรณ์เครือข่ายต้องประกอบด้วยอักขระอย่างน้อย 13 ตัว (ตัวอักษร ตัวเลข อักขระพิเศษ ตัวพิมพ์เปลี่ยนแปลง) ห้ามใช้การเข้าสู่ระบบในระบบ เช่น ผู้ดูแลระบบ ผู้ดูแลระบบ ผู้จัดการ เป็นต้น

2. แก้ไขการกำหนดค่า SIP ในเครื่องหมายดอกจัน – sip.conf

เพื่อป้องกันเครื่องสแกน คุณควรเปลี่ยนพอร์ต SIP มาตรฐาน ห้ามการโทรและการลงทะเบียนของแขก การโทรแบบซ้อนทับ การสมัครรับข้อมูลสถานะช่อง ฯลฯ คำอธิบายแบบเต็มพารามิเตอร์ sip.conf ทั่วไปอธิบายไว้ในบทความ ด้านล่างนี้คือ sip.conf ที่ฉันกำหนดค่าสำหรับเซิร์ฟเวอร์ Asterisk พร้อมความคิดเห็น:

Context=default ;กำหนดบริบทที่ไม่ได้ใช้สำหรับการโทรออกตามค่าเริ่มต้น Allowguest=no ;ห้ามแขก (โดยไม่มีการรับรองความถูกต้อง) การเชื่อมต่อ match_auth_username=no ;ห้ามใช้ช่อง "ชื่อผู้ใช้" แทน "จาก" Allowoverlap=no ;ห้ามใช้ตัวเลขหลักเดียว dialing;allowtransfer= no ;เราห้ามใช้การส่งต่อ realm=CUCM11.5(1)SU3 ;เราใช้ของเราเอง ชื่อโดเมนเซิร์ฟเวอร์ (เราซ่อนเครื่องหมายดอกจันนั้นไว้) ;domainsasrealm=no ;recordonfeature=automixmon bindport=9050 ;เปลี่ยนพอร์ตการส่งสัญญาณ SIP udpbindaddr=0.0.0.0 ;ที่อยู่ UDP เริ่มต้น tcpenable=yes ;เปิดใช้งาน รองรับ TCP (ในกรณีที่คุณมี Avaya) tcpbindaddr=0.0.0.0 ;ที่อยู่ TCP เริ่มต้น;tlsenable=no ;tlsbindaddr=0.0.0.0 ;tcpauthtimeout = 30 ;tcpauthlimit = 100 ;websocket_enabled = true ;websocket_write_timeout = 100 Transport=udp ;ขนส่งโดย -default srvlookup=yes ;อนุญาตการโทรไปยังชื่อ DNS;pedantic=yes ;tos_sip=cs3 ;tos_audio=ef ;tos_video=af41 ;tos_text=af41 ;cos_sip=3 ;cos_audio=5 ;cos_video=4 ;cos_text=3 ; maxexpiry=3600 ; minexpiry=60 ;defaultexpiry=120 ;submaxexpiry=3600 ;subminexpiry=60 ;mwiexpiry=3600 ;maxforwards=70 Qualifyfreq=60 ;ตั้งค่าการตรวจสอบความพร้อมของโฮสต์เป็น 60 วินาที;qualifygap=100 ;qualifypeers=1 ;keepalive=60 ;notifymimetype= ข้อความ/ธรรมดา ;buggymwi=no ;mwi_from=asterisk ;vmexten=วอยซ์เมล ;preferred_codec_only=yes disallow=all ;ปิดการใช้งานตัวแปลงสัญญาณทั้งหมด อนุญาต=alaw ;อนุญาต Alaw อนุญาต=ulaw ;อนุญาต Ulaw ;autoframing=yes ;mohตีความ=default ; ;parkinglot=plaza language=ru ;สร้างภาษารัสเซียในระบบตามค่าเริ่มต้น tonezone=ru ;กำหนดโทนโซนส่วนกลางใน Ru ผ่อนคลายdtmf=yes ;เปิดใช้งานการรับรู้สัญญาณ DTMF ที่รู้จักไม่ดี;tstrpid = no ;sendrpid = yes rpid_update=yes ; การแจ้งเตือนทันทีของเซิร์ฟเวอร์ที่กำลังจะมาถึงเกี่ยวกับการเปลี่ยนแปลงสถานะของสาย; trust_id_outbound = no ;prematuremedia=no ;progressinband=no callerid=CUCM11.5(1)SU3 ;หากเราไม่ได้ติดตั้ง CallerID ไว้ที่ใดที่หนึ่ง ให้กำหนดให้เป็นสัญลักษณ์ useragent=Cisco -SIPGateway/IOS -12.x ;และในฐานะ PBX เรามี Cisco-SIPGateway ;promiscredir = no ;usereqphone = no dtmfmode=rfc2833 ;ตั้งค่าเสียงสำหรับการกดปุ่มบนโทรศัพท์;compactheaders = yes videosupport=yes ;เปิดใช้งานการสนทนาทางวิดีโอ support;textsupport=no maxcallbitrate=2048 ;บิตเรตสูงสุดของการสื่อสารผ่านวิดีโอ authfailureevents=yes ;ตั้งค่าสถานะ Peer หากไม่สามารถเข้าสู่ระบบ=ถูกปฏิเสธ Alwaysauthreject=yes ;หากคำขอการรับรองความถูกต้องถูกปฏิเสธ การตอบสนองจะไม่บอกว่าผู้ใช้ถูกปฏิเสธ ป้อนไม่ถูกต้อง การป้องกันชื่อผู้ใช้ที่บังคับเดรัจฉาน auth_options_requests= yes ;ต้องได้รับอนุญาตเมื่อส่ง OPTION และเชิญ ;accept_outofcall_message = no ;outofcall_message_context = ข้อความ auth_message_requests=yes ;เปิดใช้งานการตรวจสอบสิทธิ์ของคำขอ MESSAGE ;g726nonstandard = ใช่ ;outboundproxy=proxy.provider.domain: 8080 ;supportpath=yes ;rtsavepath=yes ;matchexternaddrlocally = yes ;dynamic_exclude_static = yes ;contactdeny=0.0.0.0/0.0.0.0 ;contactpermit=172.16.0.0/255.255.0.0 ;contactacl=named_acl_example ;rtp_engine=เครื่องหมายดอกจัน ;regcontext=s ipregistrations regextenonqualify =yes ;หากเปิดใช้งานคุณภาพสำหรับเพียร์และหลุดออกไป ดังนั้น * จะฆ่าส่วนขยายนี้จาก regcontext ;legacy_useroption_parsing=yes ;send_diversion=no ;shrinkcallerid=yes ;use_q850_reason = no ;refer_addheaders=yes autocreatepeer=no ;ปิดการใช้งานการลงทะเบียน UAC ไม่มีการรับรองความถูกต้อง t1min=200 ;ความล่าช้าขั้นต่ำสำหรับข้อความที่ส่งไปยังโฮสต์และย้อนกลับ;timert1 =500 ;timerb=32000 rtptimeout=600 ;ยกเลิกการโทรหากไม่มีกิจกรรมของสตรีมสื่อ RTP หลังจาก 600 วินาที rtpholdtimeout=300 ;ยกเลิกการโทร หากไม่มีกิจกรรมของสตรีมสื่อ RTP ในโหมดพักสายหลังจาก 300 วินาที;rtpkeepalive= ;session-timers=originate ;session-expires =600 ;session-minse=90 ;session-refresher=uac ;sipdebug = yes ;recordhistory=yes ;dumphistory=yes ;allowsubscribe=no ;subscribecontext = default ;notifyringing = no ;notifyhold = yes ;notifycid = yes callcounter=yes ; เปิดใช้งานตัวนับการโทร t38pt_udptl=yes ;เปิดใช้งานการสนับสนุน T 38 พร้อมการแก้ไขข้อผิดพลาด FEC faxdetect=yes ;เปิดใช้งานการตรวจจับ CNG และ T.38 nat=auto_force_rport,auto_comedia ;ค้นหา Nat โดยอัตโนมัติและข้อมูลสื่อบนพอร์ตที่เครื่องหมายดอกจันได้รับ ไม่ใช่สิ่งที่ได้รับใน SDP ;media_address = 172.16.42.1 ;subscribe_network_change_event = yes ;icesupport = yes directmedia=no ;เรากำหนดเส้นทางการรับส่งข้อมูล RTP โดยตรงระหว่างเพียร์ โดยข้ามเครื่องหมายดอกจัน ;directrtpsetup=yes ;directmediadeny=0.0.0.0/0 ;directmediapermit=172.16.0.0/16 ;directmediaacl=acl_example ;ignoresdpversion=yes sdpsession=SIP Call ;เปลี่ยนชื่อของเซสชัน SDP sdpowner=CiscoSystemsSIP-GW-UserAgent ;เปลี่ยนฟิลด์ผู้ใช้ในสตริงเจ้าของ SDP ;encryption=no ;encryption_taglen=80 ;avpf=yes ;force_avp=yes ;rtcachefriends=yes ;rtsavesysname =yes ;rtupdate=yes ; rtautoclear=yes ;ignoreregexpire=yes ;domain=customer.com,customer-context ;allowexternaldomains=no ;allowexternaldomains=no ;fromdomain=mydomain.tld ;snom_aoc_enabled = yes jbenable=yes ;เปิดใช้งานการใช้ บัฟเฟอร์ RTP เพื่อชดเชยความล่าช้า; jbforce = no jbmaxsize=200 ; ตั้งค่าขนาดบัฟเฟอร์ RTP สูงสุดเป็น 200 ms; jbresyncthreshold = 1,000 ; jbimpl = คงที่ ; jbtargetextra = 40 ; jblog = no

3. เราใช้พอร์ต IAX ที่ไม่ได้มาตรฐาน

เมื่อต้องการทำสิ่งนี้ในไฟล์ /etc/asterisk/iax.confในส่วน เปลี่ยนพารามิเตอร์ ผูกพอร์ต=4569ต่อพารามิเตอร์ ผูกพอร์ต=9069

4. ต้องเปิดใช้เครื่องหมายดอกจันในฐานะผู้ใช้รายอื่น (ไม่ใช่รูท) วิธีการทำเช่นนี้เขียนอยู่ใน

5. ตั้งค่าที่อยู่ IP หรือเครือข่ายที่อนุญาตสำหรับส่วนขยาย SIP

deny=0.0.0.0/0.0.0.0 ;ปฏิเสธทุกอย่าง อนุญาต=10.0.0.0/255.0.0.0 ;อนุญาตใบอนุญาตที่ทราบ=172.20.0.0/255.255.0.0 ;อนุญาตใบอนุญาตที่ทราบ=192.168.0.0/16 ;อนุญาตให้ทราบ

6. กำหนดขีดจำกัดการโทรพร้อมกัน

call-limit=2 ;ตั้งค่าเป็น 2 เพื่อให้ผู้ใช้สามารถทำการโอนได้

7. ตั้งค่ากฎการกำหนดเส้นทางขาออกที่แตกต่างกันสำหรับผู้ใช้แต่ละคน

จำเป็นต้องลบเส้นทางเริ่มต้นทั้งหมดและกำหนดเส้นทางของคุณเอง โดยแยกตามบริบท:

  • ชุดท้องถิ่น
  • โทรในประเทศ
  • การโทรโซน
  • โทรทางไกล
  • โทรต่างประเทศ

รายการรหัส ABC, DEF ทั้งหมดสามารถรับได้จากแหล่งข้อมูลอย่างเป็นทางการของ Rossvyaz
สำหรับเส้นทางเริ่มต้น ให้ทำ

ขยาย => _X.,1,วางสาย()

8.

9.

10. เราเชื่อมต่ออุปกรณ์โทรศัพท์ทั้งหมดเข้ากับ Voice VLAN แยกต่างหาก ที่นี่เราจำเป็นต้องทำให้เครือข่ายเครียด

11. เราใส่ใจเป็นพิเศษต่อทิศทางระหว่างประเทศ 8-10

เรากำหนดเฉพาะทิศทางที่ใช้ในองค์กรและเพิ่ม (ขยาย) ตามความจำเป็น นอกจากนี้เรายังส่งการแจ้งเตือนทางอีเมลหากผู้ใช้หรือผู้โจมตีใช้ปลายทางต่างประเทศที่ไม่รู้จัก และกำหนดขีดจำกัดการเชื่อมต่อแต่ละรายการและจำนวนการโทรพร้อมกัน วิธีแก้ปัญหาสำเร็จรูปสำหรับการปกป้องคำแนะนำ 8-10 ได้อธิบายไว้ในบทความ

12. ปิดการใช้งานช่องทางและบริการที่ไม่ได้ใช้

ตัวอย่างเช่น หากคุณไม่ได้ใช้ MGCP หรือ Skinny ให้ปิดใช้งานโมดูลเหล่านี้ในไฟล์ /etc/เครื่องหมายดอกจัน/modules.conf:

Noload => pbx_gtkconsole.so noload => chan_alsa.so noload => chan_console.so noload => res_ari.so noload => chan_dahdi.so noload => codec_dahdi.so noload => res_ari_device_states.so noload => res_ari_applications.so noload = > res_ari_channels.so noload => res_ari_events.so noload => res_ari_playbacks.so noload => res_ari_endpoints.so noload => res_ari_recordings.so noload => res_ari_bridges.so noload => res_ari_asterisk.so noload => res_ari_sounds.so noload => res_pjsip .so noload => cdr_mysql.so noload => res_phoneprov.so noload => cdr_odbc.so noload => cdr_pgsql.so ;======================= ===== ; PBX -- ไม่โหลด => pbx_ael.so ; ช่องสัญญาณ -- noload => chan_mgcp.so noload => chan_skinny.so noload => chan_unistim.so noload => chan_pjsip.so noload => chan_modem.so noload => chan_modem_aopen.so noload => chan_modem_bestdata.so noload => chan_modem_i4l ดังนั้น noload => chan_alsa.so noload => chan_oss.so ; ตัวแปลงสัญญาณ -- noload => codec_lpc10.so ; รูปแบบ -- noload => format_au.so noload => format_gsm.so noload => format_h263.so noload => format_ilbc.so noload => format_jpeg.so ; แอปพลิเคชัน - noload => app_image.so noload => app_zapateller.so noload => app_zapbarge.so noload => app_zapscan.so noload => res_config_ldap.so

13. เราจำกัดการเข้าถึง IP-PBX จากระยะไกลโดยใช้ไฟร์วอลล์

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

14. กำหนดสิทธิ์ที่จำกัดให้กับไดเร็กทอรี

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

วันที่: 09:56 07/28/2018

มีเรื่องราวมากมายบนอินเทอร์เน็ตเกี่ยวกับการแฮ็กเครื่องหมายดอกจันและการลงโทษที่ตามมาจากผู้ดำเนินการ มีเรื่องราวเกี่ยวกับบริษัทเล็กๆ แห่งหนึ่งในออสเตรเลียที่สามารถขาดทุนได้ 15,000-20,000 ดอลลาร์ ไม่คิดว่าจะมีใครอยากตกอยู่ในสภาพแบบนี้ จะดีกว่ามากโดยไม่ต้องรอปัญหาในการดำเนินมาตรการบางอย่างที่จะลดจำนวนตัวเลือกการแฮ็กและลดอันตรายลงอย่างมาก

พอร์ตที่ไม่ได้มาตรฐานแทนที่จะเป็น 5060

หากเป็นไปได้ในทางเทคนิค ให้เปลี่ยนพอร์ตมาตรฐาน 5060 เป็นพอร์ตอื่นเสมอ ยิ่งแตกต่างจากมาตรฐานมากเท่าไรก็ยิ่งดีเท่านั้น ผู้โจมตีจะค้นหาเครื่องหมายดอกจันของคุณได้อย่างรวดเร็วโดยเพียงแค่สแกนพอร์ตโดยใช้ที่อยู่ต่างๆ สิ่งนี้จะเกิดขึ้นอย่างรวดเร็ว - ตรวจพบความพยายามครั้งแรกในการเดารหัสผ่านของฉันภายใน 3 วันหลังจากเปิดเครื่องหมายดอกจันบนอินเทอร์เน็ต
พอร์ตได้รับการกำหนดค่าในไฟล์ sip.conf ในส่วน:

ผูกพอร์ต=5060 => ผูกพอร์ต=5172

หลังจากดำเนินการดังกล่าว จำนวนตัวเลือกจะลดลงจนเกือบเป็นศูนย์

การตั้งค่าไฟร์วอลล์

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

ปิดการใช้งานการโทรของแขก

หากคุณไม่ต้องการรับสายโดยไม่ต้องลงทะเบียน อย่าลืมปิดการใช้งานตัวเลือกต่อไปนี้ใน sip.conf:
Allowguest=yes => Allowguest=no ; อนุญาตหรือปฏิเสธสายของแขก (ค่าเริ่มต้นคือใช่)

ปิดการแจ้งเตือนเกี่ยวกับรหัสผ่านไม่ถูกต้อง

เกือบทุกคนมีบัญชีเครื่องหมายดอกจันประเภท 100, 200, 700 เป็นต้น ตามค่าเริ่มต้น เครื่องหมายดอกจันจะสร้างข้อผิดพลาดอย่างหนึ่งเกี่ยวกับรหัสผ่านไม่ถูกต้องสำหรับบัญชีที่มีอยู่ และอีกข้อผิดพลาดหนึ่งสำหรับบัญชีที่ไม่มีอยู่จริง ด้วยความช่วยเหลือพิเศษ ซอฟต์แวร์คาดเดารหัสผ่าน ผู้โจมตีสามารถลองทุกอย่างได้อย่างรวดเร็ว ตัวเลขสั้นและเดารหัสผ่านเฉพาะบัญชีที่มีอยู่ซึ่งตอบว่า "รหัสผ่านไม่ถูกต้อง" เพื่อป้องกันสิ่งนี้ ให้เปลี่ยนตัวเลือกใน sip.conf:
การตรวจสอบสิทธิ์เสมอ = ไม่ => การตรวจสอบสิทธิ์เสมอ = ใช่
หลังจากการกำหนดค่านี้ เครื่องหมายดอกจันจะให้การตอบสนองแบบเดียวกันสำหรับการอนุญาตที่ไม่ถูกต้อง

เราใช้รหัสผ่านที่ซับซ้อนสำหรับบัญชี

รหัสผ่านใดๆ ก็สามารถเดาได้ คำถามเดียวคือเวลา เนื่องจากการตั้งค่าอุปกรณ์ SIP เสร็จสิ้นเพียงครั้งเดียวและเป็นเวลานาน อย่าหวงรหัสผ่านที่ซับซ้อน สำหรับตัวฉันเอง ฉันใช้รหัสผ่านที่ยาวโดยผสมตัวอักษรขนาดใหญ่และเล็ก + ตัวเลขดังนี้: secret=f64GCD74ssdZ42

อย่าลืมลบรหัสผ่านทั้งหมดที่ตรงกับการเข้าสู่ระบบ เหล่านี้เป็นรหัสผ่านแรกที่ใช้สำหรับรหัสผ่าน

เราใช้การปฏิเสธ/การอนุญาตสำหรับบัญชี

ต้อง! เราระบุบรรทัดต่อไปนี้สำหรับทุกบัญชีที่ไม่จำเป็นต้องเชื่อมต่ออินเทอร์เน็ต:

ปฏิเสธ=0.0.0.0/0.0.0.0 ใบอนุญาต=10.1.1.1/24 ใบอนุญาต=10.1.2.1/24

โดยที่ 10.1.1.1,10.1.2.1 เป็นช่วง ที่อยู่ในท้องถิ่นซึ่งจะทำการเชื่อมต่อ เครื่องหมายดอกจันจะไม่ยอมรับการเชื่อมต่อจากที่อยู่อื่น

การตั้งค่าขีดจำกัดการโทร

ขีดจำกัดการโทร=1

เราไม่ใช้ส่วนขยายเริ่มต้นโดยไม่จำเป็น

เราไม่ต้องการมัน ทุกสิ่งที่ควรเป็นค่าเริ่มต้น:

ขยาย => _X.,1,วางสาย

เราไม่ได้สร้างกฎสากลขึ้นมาข้อเดียวสำหรับการโทรทั้งหมด

สมมติว่าไม่มีกฎเช่น:

ขยาย => _X.,1,Dial(SIP/$(EXTEN)@ตัวดำเนินการ)

เราเขียนชุดตัวเลขที่จำเป็นทั้งหมดที่ส่งไปยังผู้ปฏิบัติงานอย่างชัดเจน หากไม่จำเป็นต้องใช้การสื่อสารระหว่างประเทศก็อย่าอธิบายกฎเกณฑ์เลย การแฮ็กเกือบทุกกรณีใช้เพื่อโทรไปต่างประเทศ

;บริการฉุกเฉินขยาย => _0X,1, Dial(SIP/$(EXTEN)@operator) exten => _0X,n, Hangup ;Moscow exten => _8495XXXXXXX,1, Dial(SIP/$(EXTEN)@operator) ขยาย => _8495XXXXXXX,n, Hangup exten => _8499XXXXXXX,1, Dial(SIP/$(EXTEN)@operator) exten => _8499XXXXXXX,n, Hangup exten => _XXXXXXX,1, Dial(SIP/$(EXTEN)@operator ) exten => _XXXXXXX,n, Hangup ; ระหว่างเมืองรัสเซีย/มือถือ exten => _8XXXXXXXXX,1, Dial(SIP/$(EXTEN)@operator) exten => _8XXXXXXXXXX,n, Hangup

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

ขั้นแรก เรามาดูกันว่าช่องโหว่ด้านความปลอดภัยใดบ้างที่คุกคาม และผลที่ตามมาที่ธุรกิจต้องเผชิญหากผู้โจมตีเข้าถึง IP PBX

ภัยคุกคามจากการแฮ็ก

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

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

โชคดีที่ช่องโหว่เหล่านี้สามารถแก้ไขได้และไม่มีค่าใช้จ่ายใดๆ ทั้งสิ้น

ขั้นตอนง่ายๆ ในการปรับปรุงความปลอดภัย

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