Score:1

จะเพิ่มรายการปลายทาง ip ที่อนุญาตพิเศษจากบล็อก IP เฉพาะหรือจากอินเทอร์เฟซใน iptables ได้อย่างไร

ธง cn

ฉันมี Jumpbox ที่ฉันใช้เพื่อเข้าถึงฐานข้อมูลสองฐานข้อมูลของฉัน สมมติว่าฐานข้อมูล A และฐานข้อมูล B แต่ละฐานข้อมูลอยู่ในที่อยู่ IP แยกกันฉันมีบุคคลอื่นที่ทำงานบนฐานข้อมูล B โดยเฉพาะ ดังนั้นฉันจึงต้องการจำกัดการเข้าถึงเฉพาะฐานข้อมูลนั้น เราใช้ wireguard เพื่อเชื่อมต่อกับ jumpbox และเรามีโปรไฟล์ wireguard แยกต่างหากในการเชื่อมต่อ ดังนั้นเราแต่ละคนจึงมีอินเทอร์เฟซที่แตกต่างกันและแหล่งที่มาของ IP ที่แตกต่างกัน

ฉันได้ลองแล้ว แต่ก็ยังอนุญาตให้เชื่อมต่อกับฐานข้อมูลทั้งสอง:

*กรอง
-A FORWARD -i eth0 -m conntrack --ctstate ที่เกี่ยวข้อง ก่อตั้ง -j ยอมรับ
-A FORWARD -i my-wg -j ยอมรับ
-A FORWARD -i คนอื่น-wg ! -d XXX.XXX.XXX.XXX -j ยอมรับ # ฐานข้อมูล B ip
ให้สัญญา

*แนท
: ยอมรับ [0:0]
:อินพุต ยอมรับ [0:0]
: เอาต์พุตยอมรับ [1:88]
:หลังยอมรับ [1:88]
-A POSTROUTING -s XXX.XXX.XXX.XXX -j MASQUERADE #นี่คือบล็อก IP ของ wireguard ที่ฉันและบุคคลอื่นใช้
ให้สัญญา

นี่คือผลลัพธ์ของ iptables -L -v:

Chain INPUT (นโยบายยอมรับ 0 แพ็กเก็ต, 0 ไบต์)
 pkts bytes target prot เลือกใช้ปลายทางต้นทาง         

เชน FORWARD (นโยบายยอมรับ 0 แพ็กเก็ต 0 ไบต์)
 pkts bytes target prot เลือกใช้ปลายทางต้นทาง         
60374 7581K DOCKER-USER ทั้งหมด -- ทุกที่ ทุกแห่ง            
60374 7581K DOCKER-ISOLATION-STAGE-1 ทั้งหมด -- ทุกที่ ทุกแห่ง            
22156 1788K ยอมรับทั้งหมด -- นักเทียบท่าใดๆ 0 ทุกที่ ทุกแห่ง ctstate ที่เกี่ยวข้อง ก่อตั้ง
   93 5580 นักเทียบท่าทั้งหมด -- นักเทียบท่าใดก็ได้ 0 ทุกที่            
22083 1169K ยอมรับทั้งหมด -- docker0 !docker0 ได้ทุกที่            
    0 0 ยอมรับทั้งหมด -- docker0 docker0 ทุกที่ ทุกแห่ง            
 7799 3947K ยอมรับทั้งหมด -- eth0 ทุกที่ ทุกแห่ง ctstate ที่เกี่ยวข้อง ก่อตั้ง
 8238 672K ยอมรับทั้งหมด -- my-wg ทุกที่ที่ใดก็ได้            
    0 0 ยอมรับทั้งหมด -- other-person-wg ได้ทุกที่ !XXX.XXX.XXX.XXX # ip ของฐานข้อมูล B

Chain OUTPUT (นโยบายยอมรับ 0 แพ็คเก็ต, 0 ไบต์)
 pkts bytes target prot เลือกใช้ปลายทางต้นทาง         

Chain DOCKER (อ้างอิง 1 รายการ)
 pkts bytes target prot เลือกใช้ปลายทางต้นทาง         
    0 0 ยอมรับ tcp -- !docker0 docker0 ที่ใดก็ได้ 172.17.0.2 tcp dpt:9181
    0 0 ยอมรับ tcp -- !docker0 docker0 ที่ใดก็ได้ 172.17.0.4 tcp dpt:5000
   92 5520 ยอมรับ tcp -- !docker0 docker0 ที่ใดก็ได้ 172.17.0.3 tcp dpt:9180

Chain DOCKER-ISOLATION-STAGE-1 (อ้างอิง 1 รายการ)
 pkts bytes target prot เลือกใช้ปลายทางต้นทาง         
22083 1169K DOCKER-ISOLATION-STAGE-2 ทั้งหมด -- docker0 !docker0 ได้ทุกที่            
60374 7581K ส่งคืนทั้งหมด - ทุกที่ทุกที่            

Chain DOCKER-ISOLATION-STAGE-2 (อ้างอิง 1 รายการ)
 pkts bytes target prot เลือกใช้ปลายทางต้นทาง         
    0 0 DROP ทั้งหมด -- นักเทียบท่าใดก็ได้ 0 ทุกที่            
22083 1169K ส่งคืนทั้งหมด -- ทุกที่ ทุกแห่ง            

Chain DOCKER-USER (อ้างอิง 1 รายการ)
 pkts bytes target prot เลือกใช้ปลายทางต้นทาง         
60374 7581K ส่งคืนทั้งหมด - ทุกที่ทุกที่

จะจำกัดการเข้าถึงจากบล็อก IP เฉพาะหรือจากอินเทอร์เฟซให้เข้าถึงเฉพาะ IP เฉพาะใน iptables บน Jumpbox ได้อย่างไร

Nikita Kipriyanov avatar
za flag
ฉันเดาว่าเขาได้รับการยอมรับจากนโยบาย "กรองไปข้างหน้า" ซึ่งเป็นค่าเริ่มต้น ซึ่งก็คือ "ยอมรับ" แต่เราไม่เห็นในคำถามของคุณ ตั้งค่า `iptables -P FORWARD DROP` หรือ `iptables -A FORWARD -j DROP` ซึ่งจะช่วยในกรณีนั้น หากคุณไม่ต้องการให้เราเดา โปรดแสดง `iptables-save` ที่สมบูรณ์ ซึ่งจะแสดงนโยบายที่คุณมีในปัจจุบัน
dennbagas avatar
cn flag
นั่นคือ `iptables-save` ที่สมบูรณ์ที่ฉันมีอยู่ในปัจจุบัน
setenforce 1 avatar
us flag
คุณสามารถแสดง `iptables - L -a -v`
dennbagas avatar
cn flag
ไม่มีตัวเลือก `-a` แต่ฉันได้อัปเดตคำถามและเพิ่มผลลัพธ์ของ `iptables -L -v`
Score:1
ธง fr

คำสั่งนี้ระบุว่า "หากการรับส่งข้อมูลเครือข่ายมาจากที่อยู่ X IP แต่ไม่ได้อยู่ในอินเทอร์เฟซ Y ให้ปล่อยทิ้ง" โปรดทราบว่าตารางนี้อยู่ในตารางดิบ ซึ่งเป็นตารางแรกและเร็วที่สุดเมื่อทราฟฟิกเครือข่ายเข้าสู่ IPtables

iptables -t raw -A PREROUTING -s ${X} ! -i ${Y} -j DROP

คุณควรมีการเปลี่ยนแปลงของกฎนี้ในทิศทางตรงกันข้าม:

iptables -t raw -A PREROUTING ! -s ${X} -i ${Y} -j DROP

คุณสามารถบันทึกการละเมิดกฎเหล่านี้ได้โดยใช้คำสั่งทั้งสี่นี้:

iptables -t raw -A PREROUTING -s ${X} ! -i ${Y} -j LOG --log-prefix "ผิด IP: "
iptables -t raw -A PREROUTING -s ${X} ! -i ${Y} -j DROP 
iptables -t raw -A PREROUTING ! -s ${X} -i ${Y} -j LOG --log-คำนำหน้า "อินเทอร์เฟซไม่ถูกต้อง: "
iptables -t raw -A PREROUTING ! -s ${X} -i ${Y} -j DROP

แก้ไข: แก้ไขหลังจากที่ฉันได้รับคำอธิบายเพิ่มเติมในความคิดเห็น

กฎนี้ระบุว่า "หากการรับส่งข้อมูลมาจากที่อยู่ IP X และไม่ได้กำหนดไว้สำหรับที่อยู่ IP Z ให้ยกเลิกการรับส่งข้อมูล"

iptables -t raw -A PREROUTING -s ${X} ! -d ${Z} -j ลดลง

กฎนี้ระบุว่า "หากการรับส่งข้อมูลเข้ามาที่อินเทอร์เฟซ Y และไม่ได้กำหนดไว้สำหรับที่อยู่ IP Z ให้ยกเลิกการรับส่งข้อมูล"

iptables -t raw -A PREROUTING -i ${Y} ! -d ${Z} -j ลดลง 

นี่คือการรวมกันของกฎสองข้อที่ระบุว่า "หากการรับส่งข้อมูลเข้ามาจากที่อยู่ IP X และเข้ามาที่อินเทอร์เฟซ Y และไม่ได้กำหนดไว้สำหรับที่อยู่ IP Z ให้ยกเลิกการรับส่งข้อมูล"

iptables -t raw -A PREROUTING -s ${X} -i ${Y} ! -d ${Z} -j ลดลง

เพียงทราบ: ฉันชอบที่จะใช้ ดิบ ตารางถ้ากฎไม่ต้องการการติดตามการเชื่อมต่อ เดอะ ดิบ ตารางไม่ติดตามการเชื่อมต่อใดๆ ในกรณีนี้ กฎเหล่านี้ไม่จำเป็นต้องมีการติดตามการเชื่อมต่อ การติดตามการเชื่อมต่อเป็นสิ่งจำเป็นสำหรับ แนท ตารางและสำหรับ คอนแทรค โมดูล (-m คอนโทรล). เดอะ ดิบ ตารางมีประสิทธิภาพมากกว่าตารางอื่นๆ เนื่องจากการติดตามการเชื่อมต่อใช้ทรัพยากรมากกว่าบนเซิร์ฟเวอร์ของคุณอย่างมาก อย่างไรก็ตาม ตารางตัวกรองนั้นใช้งานได้ดี และถ้ามันง่ายกว่าและเหมาะสมกว่าสำหรับคุณ ให้ใช้ตารางตัวกรอง กฎจะเหมือนกันทุกประการ แต่เพียง -t ดิบ จะกลายเป็น -t ตัวกรอง

เมื่อแพ็กเก็ตเข้าสู่ IPtables แพ็กเก็ตจะข้ามผ่านตารางดังนี้:

raw --> mangle (ที่การติดตามการเชื่อมต่อเริ่มต้นขึ้น) --> nat --> filter
dennbagas avatar
cn flag
ฉันสามารถทำข้อ จำกัด นั้นได้โดยใช้ PREROUTING บนตาราง nat สิ่งที่ฉันถามคือ "ถ้าการรับส่งข้อมูลเครือข่ายมาจากที่อยู่ X IP และไม่ไปที่ที่อยู่ Z IP ดังนั้น DROP" หรือ "ถ้าการรับส่งข้อมูลเครือข่ายมาจากอินเทอร์เฟซ Y และ ไม่ไปที่ Z IP address จากนั้น DROP"
fr flag
โอเค ฉันเข้าใจแล้ว `iptables -t raw -A PREROUTING -s ${X} ! -d ${Z} -j DROP` และ `iptables -t raw -A PREROUTING -i ${Y} ! -d ${Z} -j DROP` ควรทำเคล็ดลับ ไม่แน่ใจว่าสิ่งนี้จะช่วยได้หรือไม่ แต่นี่คือการรวมกันของสองกฎ: `iptables -t raw -A PREROUTING -s ${X} -i ${Y} ! -d ${Z} -j DROP`
dennbagas avatar
cn flag
โซลูชันทั้งหมดของคุณใช้ได้ผล! คุณช่วยอัปเดตโพสต์ของคุณได้ไหม เพื่อให้ฉันทำเครื่องหมายว่าเป็นคำตอบที่ถูกต้อง กฎนี้สามารถวางในตารางตัวกรองได้หรือไม่ ถ้าเป็นเช่นนั้นกฎที่เทียบเท่าคืออะไรถ้าฉันต้องการเขียนลงในตารางตัวกรอง และบางทีคำอธิบายเกี่ยวกับสิ่งนั้นจะได้รับการชื่นชมอย่างมาก!

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา