/ / วิธีการเคาะเข้าสู่เครือข่ายของคุณ (DD-WRT)

วิธีการเคาะเข้าสู่เครือข่ายของคุณ (DD-WRT)

คุณเคยต้องการที่จะมี "หอพัก" ที่พิเศษหรือไม่เคาะ "กับเราเตอร์ของคุณเพื่อที่จะ" เปิดประตู "เท่านั้นเมื่อมีการจดจำการเคาะลับได้อย่างไร วิธีการ Geek อธิบายวิธีการติดตั้ง Knock daemon บน DD-WRT

ภาพโดย Bfick และ Aviad Raviv

หากคุณยังไม่ได้ดำเนินการตรวจสอบและชำระเงินบทความก่อนหน้าในซีรี่ส์:

  • เปลี่ยนเราท์เตอร์ภายในบ้านของคุณให้เป็นเราเตอร์ที่ทรงพลังด้วย DD-WRT
  • วิธีการติดตั้งซอฟต์แวร์เพิ่มเติมบนเราเตอร์ที่บ้านของคุณ (DD-WRT)
  • วิธีลบโฆษณาด้วย Pixelserv บน DD-WRT

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

ภาพรวม

ตามเนื้อผ้าเพื่อให้สามารถสื่อสารกับอุปกรณ์ / บริการหนึ่งจะต้องเริ่มต้น เต็ม เชื่อมต่อเครือข่ายด้วย อย่างไรก็ตามการทำเช่นนั้นเปิดเผยสิ่งที่เรียกว่าในยุคความปลอดภัยพื้นผิวการโจมตี Knock daemon เป็นเน็ตเวิร์ก sniffer ชนิดหนึ่งที่สามารถตอบสนองเมื่อสังเกตเห็นลำดับที่กำหนดค่าไว้ล่วงหน้า เนื่องจากไม่จำเป็นต้องสร้างการเชื่อมต่อเพื่อให้ดีมอนภูตจดจำลำดับที่กำหนดไว้พื้นผิวการโจมตีจะลดลงในขณะที่ยังคงใช้งานได้ตามที่ต้องการ เรียกอีกอย่างว่าเราจะกำหนดเงื่อนไขให้เราเตอร์ด้วย ต้องการ การตอบสนอง“ สองบิต” (ต่างจาก Roger ที่ไม่ดี…)

ในบทความนี้เราจะ:

  • แสดงวิธีใช้ Knockd เพื่อให้เราเตอร์ Wake-On-Lan คอมพิวเตอร์ในเครือข่ายท้องถิ่นของคุณ
  • แสดงวิธีเรียกใช้ลำดับ Knock จากแอปพลิเคชัน Android รวมถึงคอมพิวเตอร์

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

ผลกระทบด้านความปลอดภัย

การอภิปรายเกี่ยวกับ“ Knockd มีความปลอดภัยแค่ไหน” มีความยาวและย้อนหลังไปหลายพันปี (ในปีอินเทอร์เน็ต) แต่บรรทัดล่างคือ:

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

ข้อกำหนดเบื้องต้นข้อสันนิษฐาน & ข้อเสนอแนะ

  • สมมติว่าคุณมีเราเตอร์ DD-WRT ที่เปิดใช้งาน Opkg
  • ความอดทนเช่นนี้อาจใช้เวลาสักครู่ในการตั้งค่า
  • ขอแนะนำอย่างยิ่งให้คุณได้รับบัญชี DDNS สำหรับ IP ภายนอกของคุณ (ปกติจะเป็นแบบไดนามิก)

ช่วยให้ได้รับการแตกร้าว

การติดตั้งและการกำหนดค่าพื้นฐาน

ติดตั้ง Knock daemon โดยเปิดเทอร์มินัลไปยังเราเตอร์และออก:

opkg update ; opkg install knockd

ตอนนี้มีการติดตั้ง Knockd เราจำเป็นต้องกำหนดค่าลำดับทริกเกอร์และคำสั่งที่จะดำเนินการเมื่อถูกทริกเกอร์ ในการทำเช่นนี้ให้เปิดไฟล์“ knockd.conf” ในโปรแกรมแก้ไขข้อความ บนเราเตอร์นี่จะเป็น:

vi /opt/etc/knockd.conf

ทำให้เนื้อหาดูเหมือนว่า:

[options]
logfile = /var/log/knockd.log
UseSyslog

[wakelaptop]
sequence = 56,56,56,43,43,43,1443,1443,1443
seq_timeout = 30
command = /usr/sbin/wol aa:bb:cc:dd:ee:22 -i $( nvram get lan_ipaddr | cut -d . -f 1,2,3 ).255
tcpflags = sync

ให้อธิบายข้างต้น:

  • ส่วน "ตัวเลือก" ช่วยให้สามารถกำหนดค่าได้พารามิเตอร์โกลบอลสำหรับ daemon ในตัวอย่างนี้เราได้สั่งให้ daemon เก็บบันทึกไว้ทั้งใน syslog และในไฟล์ แม้ว่าจะไม่เป็นอันตรายต่อการใช้ตัวเลือกทั้งสองอย่างร่วมกัน แต่คุณควรพิจารณาเลือกเพียงอย่างเดียว
  • เซ็กเมนต์ "wakelaptop" เป็นตัวอย่างของลำดับที่จะเรียกคำสั่ง WOL ไปยัง LAN ของคุณสำหรับคอมพิวเตอร์ที่มีที่อยู่ MAC ของ aa: bb: cc: dd: ee: 22
    หมายเหตุ: คำสั่งดังกล่าวจะถือว่าพฤติกรรมเริ่มต้นของการมีเครือข่ายย่อยคลาส C

ในการเพิ่มซีเควนซ์เพิ่มเติมเพียงแค่คัดลอกและวางส่วน“ wakelaptop” และปรับด้วยพารามิเตอร์และ / หรือคำสั่งใหม่ที่เราเตอร์จะดำเนินการ

การเริ่มต้น

หากต้องการให้เราเตอร์ใช้ daemon เมื่อเริ่มต้นให้ผนวกด้านล่างเข้ากับสคริปต์“ geek-init” จากคู่มือ OPKG:

knockd -d -c /opt/etc/knockd.conf -i "$( nvram get wan_ifname )"

สิ่งนี้จะเริ่มต้น Knock daemon บนอินเทอร์เฟซ“ WAN” ของเราเตอร์ของคุณเพื่อที่จะฟังแพ็กเก็ตจากอินเทอร์เน็ต

เคาะจาก Android

ในยุคของการพกพามันจำเป็นอย่างยิ่งที่จะ "มีแอพสำหรับสิ่งนั้น" ... ดังนั้น StavFX จึงสร้างแอปสำหรับงานนี้ :)
แอพนี้ทำลำดับการเคาะที่ถูกต้องจากอุปกรณ์ Android ของคุณและรองรับการสร้างวิดเจ็ตบนหน้าจอหลักของคุณ

  • ติดตั้งแอปพลิเคชัน Knocker จากตลาด Android (โปรดใช้ความกรุณาและให้คะแนนที่ดี)
  • เมื่อติดตั้งบนอุปกรณ์ของคุณแล้วให้เปิดใช้งาน คุณควรได้รับการต้อนรับจากสิ่งที่ชอบ:
  • คุณอาจกดไอคอนตัวอย่างเพื่อแก้ไขหรือกด“ เมนู” เพื่อเพิ่มรายการใหม่ รายการใหม่จะมีลักษณะดังนี้:
  • เพิ่มบรรทัดและกรอกข้อมูลที่จำเป็นสำหรับการเคาะของคุณ สำหรับตัวอย่างการกำหนดค่า WOL จากด้านบนนี่จะเป็น:
  • เลือกที่จะเปลี่ยนไอคอนได้โดยกดที่ไอคอนยาวถัดจากชื่อ Knock
  • บันทึกการเคาะ
  • แตะเคาะใหม่ในหน้าจอหลักเพื่อเปิดใช้งาน
  • เลือกสร้างวิดเจ็ตสำหรับมันบนหน้าจอหลัก

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

เคาะจาก Windows / Linux

ในขณะที่มันเป็นไปได้ที่จะทำการเคาะด้วยง่ายที่สุดของยูทิลิตี้เครือข่าย a.k.a“ Telnet”, Microsoft ได้ตัดสินใจว่า Telnet เป็น“ ความเสี่ยงด้านความปลอดภัย” และต่อมาไม่ได้ติดตั้งโดยค่าเริ่มต้นบนหน้าต่างที่ทันสมัย หากคุณถามฉัน“ พวกเขาที่สามารถให้เสรีภาพที่จำเป็นต่อการได้รับความปลอดภัยชั่วคราวเพียงเล็กน้อยควรได้รับอิสรภาพหรือความปลอดภัย ~ Benjamin Franklin” แต่ฉันเชือนแช

เหตุผลที่เราตั้งค่าลำดับตัวอย่างเป็นกลุ่มเท่ากับ 3 สำหรับแต่ละพอร์ตคือเมื่อ telnet ไม่สามารถเชื่อมต่อกับพอร์ตที่ต้องการได้ระบบจะลองอีกครั้งโดยอัตโนมัติอีก 2 ครั้ง นี่หมายความว่า telnet จะล้มลง 3 ครั้งก่อนจะยอมแพ้ ดังนั้นสิ่งที่เราต้องทำคือรันคำสั่ง telnet หนึ่งครั้งสำหรับแต่ละพอร์ตในกลุ่มพอร์ต เป็นเหตุผลที่เลือกช่วงเวลาหมดเวลา 30 วินาทีเนื่องจากเราต้องรอการหมดเวลาของ telnet สำหรับแต่ละพอร์ตจนกว่าเราจะดำเนินการกับกลุ่มพอร์ตถัดไป ขอแนะนำว่าเมื่อคุณเสร็จสิ้นขั้นตอนการทดสอบแล้วให้คุณทำขั้นตอนนี้โดยอัตโนมัติด้วยสคริปต์ Batch / Bash ที่เรียบง่าย

ใช้ลำดับตัวอย่างของเรานี้จะมีลักษณะ:

  • หากหน้าต่างของคุณทำตามคำสั่ง MS เพื่อติดตั้ง Telnet
  • ดร็อปไปที่บรรทัดรับคำสั่งและปัญหา:
    telnet geek.dyndns-at-home.com 56
    telnet geek.dyndns-at-home.com 43
    telnet geek.dyndns-at-home.com 1443

หากทุกอย่างไปได้ด้วยดี

การแก้ไขปัญหา

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

  • ดูบันทึก - Knockd จะเก็บบันทึกคุณสามารถดูในเวลาจริงเพื่อดูว่าลำดับการเคาะได้มาถึง daemon หรือไม่และหากคำสั่งนั้นดำเนินการอย่างถูกต้อง
    สมมติว่าคุณใช้ไฟล์ล็อกอย่างน้อยในตัวอย่างด้านบนเพื่อดูไฟล์แบบเรียลไทม์ในเทอร์มินัล:</ p>

    tail -f /var/log/knockd.log

  • ระวังไฟร์วอลล์ - บางครั้ง ISP ของคุณที่ทำงานหรืออินเทอร์เน็ตคาเฟ่ใช้เสรีภาพในการบล็อกการสื่อสารให้คุณ ในกรณีเช่นนี้ในขณะที่เราเตอร์ของคุณกำลังฟังอยู่การเคาะที่พอร์ตที่ถูกบล็อกโดยส่วนใดส่วนหนึ่งของโซ่จะไม่ไปถึงเราเตอร์และจะมีเวลาในการตอบสนองที่ยากลำบาก นี่คือเหตุผลที่แนะนำให้ลองชุดที่ใช้พอร์ตที่รู้จักกันดีเช่น 80, 443, 3389 และอื่น ๆ ก่อนที่จะลองสุ่มเพิ่ม อีกครั้งคุณสามารถดูบันทึกเพื่อดูว่าพอร์ตใดบ้างที่สามารถเข้าถึงส่วนต่อประสาน WAN ของเราเตอร์
  • ลองลำดับภายใน - ก่อนที่จะเกี่ยวข้องความซับซ้อนดังกล่าวข้างต้นที่ส่วนอื่น ๆ ของโซ่อาจแนะนำก็คือแนะนำให้คุณลองดำเนินการลำดับภายในเพื่อดูว่าพวกเขาก. ตีเราเตอร์อย่างที่คุณคิดว่าพวกเขาควรจะบีดำเนินการคำสั่งตามที่คาดไว้ ในการทำสิ่งนี้ให้สำเร็จคุณสามารถเริ่ม Knockd ในขณะที่เชื่อมต่อกับส่วนต่อประสาน LAN ของคุณด้วย:

    knockd -d -i "$( nvram get lan_ifnameq )" -c /opt/etc/knockd.conf

    เมื่อดำเนินการข้างต้นแล้วคุณสามารถนำไคลเอนต์ Knocking ไปยัง IP ภายในของเราเตอร์แทนภายนอกได้
    เคล็ดลับ: เนื่องจาก knockd ฟังที่ระดับ“ อินเตอร์เฟส” และไม่ใช่ระดับ IP คุณอาจต้องการให้มีอินสแตนซ์ของ KnockD ที่ทำงานบนอินเทอร์เฟซ LAN ตลอดเวลา ในฐานะที่เป็น "Knocker" ได้รับการปรับปรุงเพื่อสนับสนุนโฮสต์ทั้งสองสำหรับการเคาะการทำเช่นนั้นจะช่วยให้ง่ายขึ้นและรวมโปรไฟล์การเคาะของคุณ

  • จำไว้ว่าคุณอยู่ข้างไหน - เป็นไปไม่ได้เพื่อ Knock อินเทอร์เฟซ WAN จากอินเตอร์เฟส LAN ในการกำหนดค่าด้านบน หากคุณต้องการที่จะเคาะไม่ว่า "สิ่งที่ด้านข้างของคุณ" คุณสามารถเรียกใช้ปีศาจสองครั้งเมื่อถูกผูกไว้กับ WAN เช่นเดียวกับในบทความและเมื่อผูกกับ LAN เช่นเดียวกับในขั้นตอนการแก้จุดบกพร่องจากด้านบน ไม่มีปัญหาในการทำงานทั้งสองอย่างร่วมกันโดยเพียงแค่ต่อท้ายคำสั่งจากด้านบนไปยังสคริปต์ geek-init เดียวกัน

หมายเหตุ

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

ผ่านการเคาะคุณจะสามารถ: เปิดพอร์ตแบบไดนามิกปิดใช้งาน / เปิดใช้งานบริการคอมพิวเตอร์ WOL จากระยะไกลและอื่น ๆ ...