วิธีเชื่อมโยงพร็อกซี SOCKS อย่างไร


10

คำนำ: สิ่งที่ฉันกำลังค้นหาคือคำแนะนำที่ชัดเจนในรูปแบบเดียวกันกับด้านบน นั่นคือสิ่งที่ต้องการเรียกใช้: "... เรียกใช้คำสั่ง X บนเครื่อง A จากนั้นสั่งให้ Y บนเครื่อง B ... "

ฉันมีพร็อกซีถุงเท้าทำงานจากแล็ปท็อปของฉัน (เครื่อง A) ไปยังเครื่อง B:

[A]$ ssh -ND 8888 B

ฉันสามารถตั้งค่า Firefox ให้ใช้พร็อกซี SOCKS บนพอร์ตในพื้นที่ของ A 8888และเรียกดูบน A ได้ จนถึงตอนนี้ดีมาก

แต่ฉันมีถุงเท้าพร็อกซีระหว่างเครื่อง B และ C:

[B]$ ssh -ND 8157 C

ดังนั้นผมจึงสามารถเรียกดูบน B เป็นถ้าฉันอยู่ใน C, การตั้งค่าพร็อกซีบี Firefox 8157ถุงเท้า

มีวิธีการเชื่อมโยงผู้รับมอบฉันทะสองคนเพื่อให้ฉันสามารถใช้ Firefox ในเครื่อง (บน A) ในขณะที่ใช้การเชื่อมต่อกับ C หรือไม่

นั่นคือวิธีการส่งต่อถุงเท้า Firefox ทั้งหมดขอทุกทางจาก A ถึง C A และ C ไม่สามารถมองเห็นกันโดยตรง แต่ฉันมีการเข้าถึงราก SSH เต็มทุกที่ เครื่องทั้งหมดเป็นเดเบียน

โปรดทราบว่าฉันไม่ต้องการส่งต่อพอร์ตเดียวเช่นพอร์ต 80 แต่ฉันต้องการพร็อกซี่ถุงเท้าถูกล่ามโซ่ไว้อย่างเต็มที่


คุณไม่ควรทำ-L 8888:B:8157กับ [A] หรือ
bdecaf

@bdecaf นอกเหนือจากคำสั่งที่กำหนดแล้ว? แทน? ไม่มีการเปลี่ยนแปลงการตั้งค่า FireFox?
user124114

สำหรับ [A] เท่านั้น ส่วนที่เหลือตามที่คุณอธิบาย
bdecaf

ssh -L 8888:B:8157ล้มเหลวต้องการพารามิเตอร์ชื่อโฮสต์ คุณสามารถให้คำตอบที่ครบวงจรและสมบูรณ์กว่าได้หรือไม่? ถ้าได้ผลฉันจะยอมรับ
user124114

B เป็นชื่อเครื่องของคุณจริงๆเหรอ?
bdecaf

คำตอบ:


12

เพิ่งยืนยันว่าสามารถใช้งานกับ VM ได้บางส่วน:

[A]$ ssh -tt -v -L8888:localhost:8157 user@B ssh -t -D 8157 user@C

จากคุณเปิดอุโมงค์พอร์ตไปข้างหน้าจาก 8888 ในท้องถิ่นเพื่อ 8157 ในB เมื่อคุณได้สร้างการเชื่อมต่อกับ B เป็นคำสั่งระยะไกลมีการเรียกใช้ซึ่งมีพร็อกซี่ถุงเท้าของคุณผ่านC จากสิ่งที่ฉันได้อ่านดูเหมือนว่า '-t' จะเป็นสิ่งจำเป็น แต่ฉันก็ยังต้องเข้าใจว่าทำไม -L8888:localhost:8157ssh -t -D 8157 user@C

หมายเหตุนี้เป็นหนึ่งในคำสั่งบนโฮสต์แรกซึ่งจะเรียก ssh สองครั้งจากA-> BและจากB-> C คุณสามารถแบ่งสิ่งนี้ออกเป็นคำสั่งแยกดังที่อธิบายไว้ด้านล่าง

โบนัส: สำหรับการผูกมัดผู้รับมอบฉันทะสามราย ...

กล่าวคือ A->B->C->D->Internet

[hostA]$ ssh -2 -C -D 55557 -L 55556:127.0.0.1:55556 -L 55555:127.0.0.1:55555 user@B
[hostB]$ ssh -2 -C -D 55556 -L 55555:127.0.0.1:55555 user@C
[hostC]$ ssh -2 -C -D 55555 user@D

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

อ้างอิง:


การแปลบรรทัดต่อบรรทัด: - สร้างพอร์ตไดนามิกไปข้างหน้าจากโฮสต์ B บน 57 เปิดเผยพอร์ต 56 จาก B เปิดเผยพอร์ต 55 จากบี - 2 สร้างพอร์ตไดนามิกไปข้างหน้าบนพอร์ต 56 จากโฮสต์ C เปิดเผย พอร์ต 55 จาก C - 3 สร้างพอร์ตไดนามิกไปข้างหน้าบนพอร์ต 55 จากโฮสต์ D - ผลลัพธ์สุดท้ายคือพร็อกซีถุงเท้าจากทุกโฮสต์ผ่าน SSH ในแต่ละขั้นตอน พอร์ต 57 ถึง 55 จะมีผู้รับมอบฉันทะที่มีจุดสิ้นสุดที่ B, C และ D
Ray Foss

คุณมี ssh proxy ฟรีหรือไม่? ฉันไม่พบอะไรเลย
aemonge

4

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

ProxyChains ถูกติดตั้งตามค่าเริ่มต้นในการกระจาย Linux บางตัว (เช่น Kali Linux) ตัวอย่างเช่นบน Ubuntu / Debian คุณสามารถติดตั้งได้โดยทำดังนี้

  • sudo apt-get install proxychains

Proxychains /etc/proxychains.confรูปลักษณ์สำหรับแฟ้มการกำหนดค่าที่ เมื่อคุณติดตั้งแล้วให้สำรองไฟล์กำหนดค่า Proxychains ที่มีอยู่ (หากมีอยู่) และสร้างใหม่:

  • mv /etc/proxychains.conf /etc/proxychains-backup.conf
  • nano /etc/proxychains.conf

ตอนนี้วางในการกำหนดค่าตัวอย่างนี้ที่ฉันเขียนให้คุณ:

strict_chain

proxy_dns

tcp_read_time_out 15000
tcp_connect_time_out 8000

[ProxyList]
socks4          192.168.1.1     8888
socks4          192.168.1.2     8157
socks4          192.168.1.3     6969

ในตัวอย่างนี้192.168.1.1คือที่อยู่ IP ของพร็อกซีเซิร์ฟเวอร์ SOCKS แรก8888คือพอร์ตที่พร็อกซี SOCKS แรกกำลังรับฟังอยู่192.168.1.2เป็นที่อยู่ IP ของพร็อกซีเซิร์ฟเวอร์ SOCKS ตัวที่สอง8157คือพอร์ตที่พร็อกซี SOCKS ตัวที่สองกำลังรับฟัง และอื่น ๆ

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

โปรดทราบว่าเพื่อจุดประสงค์ในการแก้ไขปัญหาคุณอาจลองใช้งานโดยใช้ 1 พร็อกซีในครั้งแรกก่อนที่จะลองทั้งหมด 3;)

อ้างอิง:

  • เว็บไซต์ proxychains อย่างเป็นทางการ (เวอร์ชั่นล่าสุดคือ 3.1 เปิดตัวในปี 2549): http://proxychains.sourceforge.net
  • เว็บไซต์สำหรับproxychains-ng(ทางแยกของต้นฉบับดั้งเดิมที่ยังคงได้รับการบำรุงรักษา ณ ปี 2558): https://github.com/rofl0r/proxychains-ng

พร็อกซีโซ่ตั้งค่าพร็อกซีให้คุณด้วยหรือไม่? หรือเพียงแค่ช่วยให้คุณเชื่อมต่อกับผู้รับมอบฉันทะที่มีอยู่?
ทำให้

Proxychains จะเชื่อมต่อกับพร็อกซีเซิร์ฟเวอร์ที่มีอยู่เท่านั้น
James

หากเป็นเช่นนั้นฉันไม่เห็นด้วยกับวลี "วิธีที่เหมาะสมในการ ... " เนื่องจากคำถามกำลังพูดถึงการตั้งค่าพร็อกซีสำหรับการผูกมัดกับเครื่องหลายเครื่องโดยเฉพาะไม่ใช่แค่นำ Firefox ไปยังผู้รับมอบฉันทะที่มีอยู่ บางที - "วิธีอื่นเมื่อผู้รับมอบฉันทะอยู่ในสถานที่" จะให้ข้อมูลโดยไม่ได้หมายความว่าการใช้ SSH ตรงเป็นอย่างใดไม่เหมาะสม อย่างไรก็ตามข้อมูลพื้นฐานเพิ่มเติมที่ดี ขอบคุณ แก้ไขแล้วคุณจะมี upvote ของฉัน
ทำให้
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.