ฉันมีเครือข่ายต่อไปนี้:
.________. ._______.
| vm-cli | <==> <enp1s0| vm-gw |enp2s0><==> อินเทอร์เน็ต
เธ·--------····------------·
vm-cli มีที่อยู่ 192.168.255.2; enp1s0@vm-gw มี 192.168.255.1; enp2s0@vm-gw ไม่เป็นไร
ฉันต้องการ ทั้งหมด การรับส่งข้อมูลอินเทอร์เน็ตผ่าน Tor สำหรับสิ่งนั้น ฉันกำหนดค่า Tor ให้ใช้ซ็อกเก็ตแบบโปร่งใส และใช้การกำหนดเส้นทางนโยบายเพื่อส่งต่อทราฟฟิกไปยังซ็อกเก็ตนั้นก่อนอื่นฉันเพิ่มกฎการกำหนดเส้นทางและกำหนดตารางเส้นทางอื่นที่กำหนดเส้นทางทุกอย่างไปยัง localhost:
กฎ ip เพิ่ม fwmark 1 ตาราง 1
เส้นทาง ip เพิ่มท้องถิ่น 0.0.0.0/0 dev lo ตาราง 1
จากนั้นฉันกำหนดค่าไฟร์วอลล์เพื่อเปลี่ยนเส้นทางก่อน vm-gw
ส่งออกไปยังพร็อกซี:
พร็อกซีตาราง {
# ส่งผ่านทราฟฟิกที่เบี่ยงเบนไปยังพร็อกซี
เปลี่ยนสายโซ่ {
ประเภทตัวกรอง hook prerouting ตัวกรองลำดับความสำคัญ; นโยบายยอมรับ;
โปรโตคอล ip tcp ทำเครื่องหมาย 1 tproxy ถึง: 9040
}
}
ตารางท้องถิ่น {
# ใช้ NAT ปลายทางสำหรับการรับส่งข้อมูล DNS เนื่องจากใช้งานไม่ได้กับ tproxy
ห่วงโซ่ dstNAT {
พิมพ์ nat hook เอาท์พุตลำดับความสำคัญ mangle; นโยบายยอมรับ;
udp dport เปลี่ยนเส้นทางโดเมนไปที่ :9053
}
# ทำเครื่องหมายการรับส่งข้อมูลที่ไม่ใช่ของ Tor ทั้งหมดไปยังอินเทอร์เฟซที่เชื่อมต่ออินเทอร์เน็ตเพื่อเปลี่ยนเส้นทาง
เปลี่ยนเส้นทางลูกโซ่ {
ประเภทเส้นทางเบ็ดลำดับความสำคัญของเอาต์พุต นโยบายยอมรับ;
oif enp2s0 skuid != tor ip protocol tcp เมตาดาเมตาชุดที่ 1
}
}
ดีฉันทดสอบด้วย ขุด
และ ขด
: ทุกอย่างต้องผ่าน ตม.
อะไรไม่ทำงาน
ตอนนี้ฉันเพิ่มกฎต่อไปนี้เพื่อเปลี่ยนเส้นทางการรับส่งข้อมูล vm-cli
หรือโฮสต์อื่น ๆ ที่ใช้ vm-gw
เป็นเกตเวย์:
ตารางระยะไกล {
เปลี่ยนเส้นทางลูกโซ่ {
พิมพ์ nat hook การกำหนดลำดับความสำคัญก่อนกำหนด นโยบายยอมรับ;
# ปลายทาง NAT กำลังรับส่งข้อมูล DNS
udp dport เปลี่ยนเส้นทางโดเมนไปที่ :9053
# ทำเครื่องหมายการรับส่งข้อมูล tcp จาก enp1s0 สำหรับการกำหนดเส้นทางนโยบาย
iif enp1s0 ip protocol tcp meta mark ชุดที่ 1
}
}
ฉันพยายามสร้างแบบสอบถาม DNS มันใช้งานได้ ฉันพยายามส่งคำขอ HTTP แต่ไม่มีคำตอบใดๆ
การติดตามแพ็กเก็ต
ติดตามแพ็กเก็ตและดูที่บันทึกของ Tor ฉันเห็นสิ่งนั้น vm-cli
การรับส่งข้อมูล TCP ไปที่ Tor แต่ ขด
บน vm-cli
ดูเหมือนว่าจะไม่เห็นคำตอบ HTTP เลย
ดังนั้นฉันจึงพยายามติดตามการตอบสนองของเซิร์ฟเวอร์ HTTP เนื่องจากมาจาก Tor ฉันจะไม่เห็นทราฟฟิก HTTP ในอินพุต แต่ฉันจะเห็นใน vm-gw
เอาต์พุต จากนั้นฉันเพิ่มกฎต่อไปนี้สำหรับการติดตาม:
ตารางท้องถิ่น {
เอาต์พุตลูกโซ่ {
ประเภทตัวกรองลำดับความสำคัญของเอาต์พุตของตะขอตัวกรอง; นโยบายยอมรับ;
tcp sport 80 ip daddr 192.168.255.2 เมตา nftrace ชุดที่ 1
}
[â¦]
}
ทำ ขด http://perdu.com
บน vm-cli
ฉันได้รับการติดตามต่อไปนี้บน vm-gw
:
รหัสการติดตาม 2fc29112 ip แพ็กเก็ตเอาต์พุตในเครื่อง: oif "enp1s0" ip saddr 208.97.177.124 ip daddr 192.168.255.2 ip dscp cs0 ip ecn ไม่ ect ip ttl 64 ip id 0 ความยาวของ ip 60 tcp sport 80 tcp dport 57082 tcpx1 == แฟล็ก หน้าต่าง tcp 65160
รหัสการติดตาม 2fc29112 ip กฎเอาต์พุตในเครื่อง tcp sport 80 ip daddr 192.168.255.2 meta nftrace set 1 (คำตัดสินดำเนินการต่อ)
ติดตาม id 2fc29112 ip คำตัดสินผลลัพธ์ในเครื่องดำเนินการต่อ
ติดตาม id 2fc29112 ip ยอมรับนโยบายเอาต์พุตในเครื่อง
และที่นั่น ทุกอย่างดูถูกต้องสำหรับฉัน มีคำตอบจากเซิร์ฟเวอร์ HTTP ปลายทางคือ vm-cli
ใช้ enp1s0
อินเตอร์เฟซ.
ฉันพยายามติดตามแพ็กเก็ตบน vm-cli
. ที่นั่นเราสามารถเห็นแพ็กเก็ตขาออกและการตอบสนอง:
รหัสการติดตาม d9101d30 แพ็กเก็ตตัวกรองเอาต์พุต ip: oif "enp2s0" ip saddr 192.168.255.2 ip daddr 208.97.177.124 ip dscp cs0 ip ecn ไม่ ect ip ttl 64 ip id 40142 ความยาวของ ip 60 tcp sport 57124 tcp dport ธง == หน้าต่าง tcp 64240
รหัสการติดตาม d9101d30 กฎเอาต์พุตตัวกรอง ip tcp dport 80 meta nftrace set 1 (คำตัดสินดำเนินการต่อ)
ติดตาม id d9101d30 ip filter ตัดสินผลลัพธ์ต่อไป
ยอมรับนโยบายเอาต์พุตตัวกรอง ip รหัสติดตาม d9101d30
รหัสการติดตาม 51163d64 ตัวกรอง ip แพ็กเก็ตการกำหนดเส้นทางล่วงหน้า: iif "enp2s0" อีเธอร์ saddr 52:54:00:bd:38:6d อีเธอร์ daddr 52:54:00:f0:a2:51 ip saddr 208.97.177.124 ip daddr 192.168.255.2 ip dscp cs0 ip ecn not-ect ip ttl 64 ip id 0 ความยาวของ ip 60 tcp sport 80 tcp dport 57124 tcp flag == 0x12 tcp window 65160
รหัสการติดตาม 51163d64 ตัวกรอง ip การกำหนดเส้นทางล่วงหน้า กฎเมตา nftrace ชุดที่ 1 (คำตัดสินดำเนินการต่อ)
ติดตาม id 51163d64 ตัวกรอง ip กำหนดเส้นทางก่อนตัดสินดำเนินการต่อ
ติดตาม id 51163d64 ตัวกรอง ip ยอมรับนโยบายการกำหนดเส้นทางล่วงหน้า
ฉันเห็น:
- แพ็กเก็ตขาออกจาก 192.168.255.2:57124 ถึง 208.97.177.124:80
- คำตอบจาก 208.97.177.124:80 ถึง 192.168.255.2:57124
ที่อยู่และพอร์ตตรงกัน⦠ขด -- verbose
แจ้งว่าสร้างการเชื่อมต่อแล้ว แต่ทำไมคำขอ HTTP จึงไม่ได้รับคำตอบ
เน็ตแคท
ยืนยันฉันว่าการตอบกลับ HTTP ไม่ได้รับแอปพลิเคชัน ฉันยังพยายาม กำลัง
และด้วยการตั้งค่า tproxy ฉันได้รับรายการที่ซ้ำกัน:
hping perdu.com --destport 80 --syn --นับ 10
HPING perdu.com (enp2s0 208.97.177.124): ชุด S, 40 ส่วนหัว + 0 ไบต์ข้อมูล
len=44 ip=208.97.177.124 ttl=64 DF id=0 sport=80 flags=SA seq=0 win=64240 rtt=9.8 ms
len=44 ip=208.97.177.124 ttl=64 DF id=0 sport=80 flags=SA seq=1 win=64240 rtt=9.8 ms
ดั๊บ! len=44 ip=208.97.177.124 ttl=64 DF id=0 sport=80 flags=SA seq=0 win=64240 rtt=1049.9 ms
len=44 ip=208.97.177.124 ttl=64 DF id=0 sport=80 flags=SA seq=2 win=64240 rtt=9.8 ms
ดั๊บ! len=44 ip=208.97.177.124 ttl=64 DF id=0 sport=80 flag=SA seq=1 win=64240 rtt=1099.9 ms
len=44 ip=208.97.177.124 ttl=64 DF id=0 sport=80 flag=SA seq=3 win=64240 rtt=29.8 ms
ดั๊บ! len=44 ip=208.97.177.124 ttl=64 DF id=0 sport=80 flags=SA seq=2 win=64240 rtt=1059.9 ms
ดั๊บ! len=44 ip=208.97.177.124 ttl=64 DF id=0 sport=80 flag=SA seq=0 win=64240 rtt=3120.0 ms
len=44 ip=208.97.177.124 ttl=64 DF id=0 sport=80 flags=SA seq=4 win=64240 rtt=29.8 ms
ดั๊บ! len=44 ip=208.97.177.124 ttl=64 DF id=0 sport=80 flag=SA seq=3 win=64240 rtt=1079.9 ms
--- perdu.com hping สถิติ ---
5 แพ็กเก็ตที่ส่งออก, 10 แพ็กเก็ตที่ได้รับ, -100% แพ็กเก็ตที่สูญหาย
ไป-กลับ นาที/เฉลี่ย/สูงสุด = 9.8/749.9/3120.0 ms