จะเปลี่ยนที่อยู่ IP ให้ชี้ไปที่ localhost ได้อย่างไร


10

สภาพแวดล้อมแบบ sandbox ของเว็บแอพสามารถเข้าถึงได้โดยตรงโดยที่อยู่ IP: http://<my_ip_address>ไม่มีชื่อเข้าสู่ระบบ

มีวิธีการสร้างโฮสต์เสมือนในเครื่องท้องถิ่นของฉันชื่อเป็น<my_ip_address>และเปลี่ยน / etc / hosts ดังนั้นมันจะ "เปลี่ยนเส้นทาง" ไปยัง localhost ของฉันหรือไม่

127.0.0.1 <my_ip_address>

ดังนั้นเมื่อฉันโหลด url http://<my_ip_address>เบราว์เซอร์จะชี้ไปที่ localhost ของฉัน วิธีที่ฉันสามารถเปลี่ยนชื่อโดเมนได้

คำตอบ:


21

ไฟล์โฮสต์สามารถใช้เพื่อเชื่อมโยงชื่อโดเมนกับ IP เท่านั้น มันไม่สามารถจับคู่ IP กับ IP ได้

IP ที่เปลี่ยนแปลงสามารถทำได้โดยไฟร์วอลล์ บน Linux ไฟร์วอลล์เริ่มต้นจะถูกควบคุมโดยคำสั่งiptables "man iptables" เป็นเอกสาร Google "อธิบาย iptables" สำหรับคำอธิบายเบื้องต้น

ลิงค์บางส่วน:

http://linux.die.net/man/8/iptables

http://www.linuxnix.com/2009/12/iptables-in-linux-explained.html

http://blog.adityapatawari.com/2011/12/ip-packet-filtering-iptables-explained.html

โดยเฉพาะคุณต้องการเปลี่ยนคำขอส่งออกจากพีซีของคุณเป็นที่อยู่ IP ( <my_ip_address>) เพื่อให้พวกเขาไปที่ที่อยู่ IP อื่นในกรณีนี้ 127.0.0.1 คุณต้องการดำเนินการNAT (การแปลที่อยู่เครือข่าย ) ซึ่งได้รับ "IP ปลายทาง" ( <my_ip_address>; เช่น 123.45.67.89) เปลี่ยนเป็น "IP ปลายทาง" อื่น (127.0.0.1)

ลองสิ่งนี้ (แทนที่123.45.67.89ใส่ ip_address ที่ต้องเปลี่ยน):

iptables -t nat -A OUTPUT -p all -d 123.45.67.89 -j DNAT --to-destination 127.0.0.1

รายละเอียด:

-t nat = ตารางสำหรับการแปลที่อยู่หนึ่งไปยังที่อยู่อื่น

-A OUTPUT = ผนวกเข้ากับรายการกฎสำหรับแพ็กเก็ตที่สร้างขึ้นในพื้นที่ขาออก คำเตือนการรักษาความปลอดภัย:ตรวจสอบให้แน่ใจว่ากฎมีคำสั่งเอาท์พุทนี้ ถ้าคุณทำไม่ได้กฏจะสร้างช่องโหว่ความปลอดภัยที่เป็นไปได้เนื่องจากการจับคู่แพ็กเก็ตขาเข้าจากสถานที่ห่างไกลก็จะถูกส่งไปยังโลคอลโฮสต์

-p all = ใช้กับโปรโตคอลทั้งหมด (tcp, udp และ icmp)

-d 123.45.67.89 = ที่อยู่ IP ดั้งเดิมที่แพ็กเก็ตกำลังจะไปถึง (ปลายทาง)

-j DNAT = ถ้ากฎตรงกัน (ในกรณีนี้ถ้าแพ็กเก็ตขาออกมีปลายทาง IP 123.45.67.89) ให้จัดการกับ DNAT ซึ่งจะเปลี่ยนปลายทาง

- to-destination 127.0.0.1 = บอก DNAT ว่าต้องทำอะไร; แทนที่ปลายทางเดิมด้วย "127.0.0.1"

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


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

@Slartibartfast - โปรดทราบว่าเราเพียงแค่เปลี่ยนคำขอออกไป และเรากำลังทำการเปลี่ยนแปลงในไฟร์วอลล์บนพีซีนี้ (บางคำขอที่จะออกไปที่ไซต์ภายนอกเรากำลังวนกลับไปที่ตัวเราเอง) สิ่งนี้ไม่เปลี่ยนคำขอ INCOMING ดังนั้นจึงไม่ส่งผลกระทบต่อสิ่งที่ทุกคนสามารถดู / ทำจากระยะไกล ได้รับสิ่งนี้คุณยังเห็นข้อกังวลด้านความปลอดภัยหรือไม่?
ToolmakerSteve

1
... มาตรการความปลอดภัยที่สำคัญคือการรวม "-A เอาท์พุท" ในกฎ ตามความคิดเห็นของคุณผู้คนต้องระวังว่าการละเว้นที่อาจมีอันตรายที่คุณอธิบาย ฉันจะเพิ่มความคิดเห็นเพื่อเน้นสิ่งนี้
ToolmakerSteve

3
มันใช้งานได้ดี แต่ฉันไม่เห็นมันอยู่ในรายการ iptables --list หรือ --list-rules ฉันจะแสดงรายการและลบทิ้งหลังจากนั้นเมื่อไม่ต้องการใช้อีกต่อไปได้อย่างไร
Filip Stefanov

@FilipStefanov (ช้าไปหน่อยฉันรู้แล้ว!): เขียนกฎ nat พร้อมตัวเลขถัดจากพวกเขา: iptables -t nat --list --line-numbers จากนั้นให้ลบกฎที่ไม่เคยใช้หมายเลขนั้น: iptables -t nat -D OUTPUT <number>
Richard Walton
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.