วิธีการเคาะเข้าสู่เครือข่ายของคุณ (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; opkg ติดตั้ง knockd
ตอนนี้มีการติดตั้ง Knockd แล้วเราจำเป็นต้องกำหนดค่าลำดับการเรียกและคำสั่งที่จะถูกดำเนินการเมื่อถูกทริกเกอร์ ในการทำเช่นนี้ให้เปิดไฟล์“ knockd.conf” ในโปรแกรมแก้ไขข้อความ บนเราเตอร์นี่จะเป็น:
vi /opt/etc/knockd.conf
ทำให้เนื้อหาดูเหมือนว่า:
[ตัวเลือก]
logfile = /var/log/knockd.log
UseSyslog
[wakelaptop]
ลำดับ = 56,56,56,43,43,43,1443,1443,1443
seq_timeout = 30
คำสั่ง = / usr / sbin / wol aa: bb: cc: dd: ee: 22 -i $ (nvram รับ lan_ipaddr | cut -d. -f 1,2,3) .255
tcpflags = sync
ให้อธิบายข้างต้น:
- ส่วน "ตัวเลือก" อนุญาตให้หนึ่งเพื่อกำหนดค่าพารามิเตอร์ส่วนกลางสำหรับภูต ในตัวอย่างนี้เราได้สั่งให้ 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 รับ wan_ifname)"
สิ่งนี้จะเริ่มต้น Knock daemon บนอินเทอร์เฟซ“ WAN” ของเราเตอร์ของคุณเพื่อที่จะฟังแพ็กเก็ตจากอินเทอร์เน็ต.
เคาะจาก Android
ในยุคของการพกพามันจำเป็นอย่างยิ่งที่จะ "มีแอพสำหรับสิ่งนั้น" ... ดังนั้น StavFX จึงสร้างแอปสำหรับงานนี้ :)
แอพนี้ใช้ลำดับการเคาะที่ถูกต้องจากอุปกรณ์ Android ของคุณและรองรับการสร้างวิดเจ็ตบนหน้าจอหลักของคุณ.
- ติดตั้งแอปพลิเคชัน Knocker จากตลาด Android (โปรดใช้ความกรุณาและให้คะแนนที่ดีด้วย).
- เมื่อติดตั้งบนอุปกรณ์ของคุณแล้วให้เปิดใช้งาน คุณควรได้รับการต้อนรับจากสิ่งที่ชอบ:
- คุณอาจกดไอคอนตัวอย่างเพื่อแก้ไขหรือกด“ เมนู” เพื่อเพิ่มรายการใหม่ รายการใหม่จะมีลักษณะ:
- เพิ่มบรรทัดและกรอกข้อมูลที่จำเป็นสำหรับการเคาะของคุณ สำหรับตัวอย่างการกำหนดค่า WOL จากด้านบนนี่จะเป็น:
- เลือกที่จะเปลี่ยนไอคอนโดยกดที่ไอคอนถัดจากชื่อ Knock.
- บันทึกการเคาะ.
- แตะเคาะใหม่ในหน้าจอหลักเพื่อเปิดใช้งาน.
- เลือกสร้างวิดเจ็ตสำหรับมันบนหน้าจอหลัก.
โปรดทราบว่าในขณะที่เราได้กำหนดค่าไฟล์ตัวอย่างการกำหนดค่าด้วยกลุ่ม 3 สำหรับแต่ละพอร์ต (เนื่องจากส่วน Telnet ด้านล่าง) ด้วยแอปพลิเคชันนี้ไม่มีข้อ จำกัด เกี่ยวกับจำนวนการทำซ้ำ (ถ้าทั้งหมด) สำหรับพอร์ต.
สนุกกับการใช้แอพที่ StavFX บริจาค :-)
เคาะจาก Windows / Linux
ในขณะที่เป็นไปได้ที่จะทำการ Knocking ด้วยยูทิลิตี้เครือข่ายที่ง่ายที่สุด a.k.a“ Telnet”, Microsoft ได้ตัดสินใจว่า Telnet เป็น“ ความเสี่ยงด้านความปลอดภัย” และต่อมาจะไม่ติดตั้งบน Windows สมัยใหม่อีกต่อไป หากคุณถามฉันว่า“ พวกเขาที่สามารถละทิ้งเสรีภาพที่สำคัญในการได้รับความปลอดภัยชั่วคราวเพียงเล็กน้อยควรได้รับอิสรภาพหรือความปลอดภัย ~ 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 หรือไม่และหากคำสั่งนั้นดำเนินการอย่างถูกต้อง.
สมมติว่าคุณใช้ไฟล์ล็อกอย่างน้อยในตัวอย่างด้านบนเพื่อดูไฟล์แบบเรียลไทม์ในเทอร์มินัล:tail -f /var/log/knockd.log
- ระวังไฟร์วอลล์ - บางครั้ง ISP ของคุณที่ทำงานหรืออินเทอร์เน็ตคาเฟ่ให้เสรีภาพในการบล็อกการสื่อสารสำหรับคุณ ในกรณีเช่นนี้ในขณะที่เราเตอร์ของคุณกำลังฟังอยู่การเคาะที่พอร์ตที่ถูกบล็อกโดยส่วนใดส่วนหนึ่งของโซ่จะไม่ถึงเราเตอร์และมันจะมีความยากลำบากในการตอบสนองต่อพวกเขา นั่นคือสาเหตุที่แนะนำให้ลองชุดที่ใช้พอร์ตที่รู้จักกันดีเช่น 80, 443, 3389 และอื่น ๆ ก่อนที่จะลองสุ่มเพิ่ม อีกครั้งคุณสามารถดูบันทึกเพื่อดูว่าพอร์ตใดบ้างที่สามารถเข้าถึงส่วนต่อประสาน WAN ของเราเตอร์ได้.
- ลองลำดับภายใน - ก่อนที่จะเกี่ยวข้องกับความซับซ้อนข้างต้นที่ส่วนอื่น ๆ ของห่วงโซ่อาจแนะนำก็ขอแนะนำให้คุณลองดำเนินการลำดับภายในเพื่อดูว่าพวกเขา A. ตีเราเตอร์เช่นคุณคิดว่าพวกเขาควร B. รันคำสั่ง / ตามที่คาดไว้ ในการทำสิ่งนี้ให้สำเร็จคุณอาจเริ่ม Knockd ในขณะที่เชื่อมต่อกับส่วนต่อประสาน LAN ของคุณด้วย:
knockd -d -i "$ (nvram รับ lan_ifnameq)" -c /opt/etc/knockd.conf
เมื่อดำเนินการข้างต้นแล้วคุณสามารถนำไคลเอนต์ Knocking ไปยัง IP ภายในของเราเตอร์แทนภายนอกได้.
เคล็ดลับ: เนื่องจาก knockd ฟังที่ระดับ“ อินเทอร์เฟซ” และไม่ใช่ระดับ IP คุณอาจต้องการให้อินสแตนซ์ของ KnockD ทำงานบนอินเทอร์เฟซ LAN ตลอดเวลา ในฐานะที่เป็น "Knocker" ได้รับการปรับปรุงเพื่อสนับสนุนโฮสต์ที่สองสำหรับการเคาะทำเช่นนั้นจะเพื่อให้ง่ายขึ้นและรวมโปรไฟล์การเคาะของคุณ. - โปรดจำไว้ว่าคุณเปิดใช้งานด้านใด - ไม่สามารถทำการเชื่อมต่อ WAN จากอินเตอร์เฟส LAN ในการกำหนดค่าด้านบนได้ หากคุณต้องการที่จะเคาะไม่ว่า "สิ่งที่ด้านข้างของคุณ" คุณสามารถเรียกใช้ปีศาจสองครั้งเมื่อถูกผูกไว้กับ WAN เช่นเดียวกับในบทความและเมื่อผูกกับ LAN เช่นเดียวกับในขั้นตอนการแก้จุดบกพร่องจากด้านบน ไม่มีปัญหาในการรันทั้งสองร่วมกันโดยเพียงแค่ต่อท้ายคำสั่งจากด้านบนไปยังสคริปต์ geek-init เดียวกัน.
หมายเหตุ
ในขณะที่ตัวอย่างข้างต้นสามารถทำได้โดยวิธีอื่น ๆ เราหวังว่าคุณสามารถใช้มันเพื่อเรียนรู้วิธีการทำสิ่งที่ก้าวหน้ากว่า ส่วนที่สองของบทความนี้ที่ซ่อนบริการ VPN ไว้ไม่ให้เข้าที่ดังนั้นให้คอยติดตาม.ผ่านการเคาะคุณจะสามารถ: เปิดพอร์ตแบบไดนามิกปิดใช้งาน / เปิดใช้งานบริการคอมพิวเตอร์ WOL จากระยะไกลและอื่น ๆ ...