Score:1

แพ็กเก็ต UDP ได้รับภายใน แต่ไม่ได้รับจากภายนอก - Ubuntu 18.04

ธง tk

ขอขอบคุณล่วงหน้าสำหรับการดูสิ่งนี้... ฉันมั่นใจว่าวิธีแก้ปัญหานั้นง่าย - ฉันไม่รู้ว่ามันคืออะไร

วิ่ง nc -l -u 9090 และ nc -uv 82.165.109.4 9090 คำสั่งบนเซิร์ฟเวอร์เดียวกัน สร้าง "การเชื่อมต่อ" ประเภท netcat และได้รับข้อความตามที่คาดไว้

มีแอปพลิเคชันนักเทียบท่าที่ทำงานอยู่ซึ่งรับแพ็กเก็ตด้วย ดังนั้นดูเหมือนว่าสภาพแวดล้อมภายในจะถูกตั้งค่าเรียบร้อยดี

echo -p "สวัสดี" >/dev/udp/82.165.109.4/9090

ได้รับจากทั้งสอง tcpdump และแอพพลิเคชั่น


ฉันกำลังตรวจสอบการรับแพ็กเก็ตด้วย:

tcpdump -i พอร์ต udp -AXn ใด ๆ 9090

  • ถ้าฉันส่งแพ็กเก็ต UDP จากนอกกล่องไปไม่ถึง tcpdump
  • ฉันไม่สามารถ ping เซิร์ฟเวอร์จากภายนอกได้ แต่สามารถ ping ภายในได้
  • พอร์ตดูเหมือนจะเปิดและฟัง
  • พอร์ต ssh, http และ https ทำงานได้ตามปกติ
netstat -ltu
การเชื่อมต่ออินเทอร์เน็ตที่ใช้งานอยู่ (เฉพาะเซิร์ฟเวอร์)
Proto Recv-Q Send-Q ที่อยู่ในท้องถิ่น สถานะที่อยู่ต่างประเทศ      
tcp 0 0 0.0.0.0:5984 0.0.0.0:* ฟัง     
tcp 0 0 0.0.0.0:9070 0.0.0.0:* ฟัง     
tcp 0 0 0.0.0.0:http 0.0.0.0:* ฟัง     
tcp 0 0 localhost:domain 0.0.0.0:* ฟัง     
tcp 0 0 0.0.0.0:ssh 0.0.0.0:* ฟัง     
tcp 0 0 0.0.0.0:https 0.0.0.0:* ฟัง     
tcp6 0 0 [::]:5984 [::]:* ฟัง     
tcp6 0 0 [::]:9070 [::]:* ฟัง     
tcp6 0 0 [::]:http [::]:* ฟัง     
tcp6 0 0 [::]:ssh [::]:* ฟัง     
tcp6 0 0 [::]:https [::]:* ฟัง     
udp 0 0 localhost:โดเมน 0.0.0.0:*                          
udp 0 0 0.0.0.0:bootpc 0.0.0.0:*                          
udp 0 0 0.0.0.0:9090 0.0.0.0:*                          
udp6 0 0 [::]:9090 [::]:*   


ทุกสิ่งที่ฉันได้อ่านชี้ไปที่ iptables และไฟร์วอลล์ ฉันจึงปิดการใช้งาน ยูเอฟดับบลิว


iptables -L
เชนอินพุท (ยอมรับนโยบาย)
เป้าหมาย prot เลือกปลายทางต้นทาง         

ส่งต่อไปข้างหน้า (ยอมรับนโยบาย)
เป้าหมาย prot เลือกปลายทางต้นทาง         
DOCKER-USER ทั้งหมด - ทุกที่ ทุกแห่ง            
DOCKER-ISOLATION-STAGE-1 ทั้งหมด -- ทุกที่ ทุกแห่ง            
ยอมรับทั้งหมด -- ทุกที่ ทุกแห่ง ctstate ที่เกี่ยวข้อง ก่อตั้ง
DOCKER ทั้งหมด - ทุกที่ ทุกแห่ง            
ยอมรับทั้งหมด - ทุกที่ทุกที่            
ยอมรับทั้งหมด - ทุกที่ทุกที่            
ยอมรับทั้งหมด -- ทุกที่ ทุกแห่ง ctstate ที่เกี่ยวข้อง ก่อตั้ง
DOCKER ทั้งหมด - ทุกที่ ทุกแห่ง            
ยอมรับทั้งหมด - ทุกที่ทุกที่            
ยอมรับทั้งหมด - ทุกที่ทุกที่            

Chain OUTPUT (ยอมรับนโยบาย)
เป้าหมาย prot เลือกปลายทางต้นทาง         

Chain DOCKER (ข้อมูลอ้างอิง 2 รายการ)
เป้าหมาย prot เลือกปลายทางต้นทาง         
ยอมรับ udp -- ทุกที่ 172.18.0.3 udp dpt:9090
ยอมรับ tcp - ที่ใดก็ได้ 172.18.0.6 tcp dpt:9080
ยอมรับ tcp - ทุกที่ 172.18.0.2 tcp dpt:https
ยอมรับ tcp - ที่ใดก็ได้ 172.18.0.5 tcp dpt:5984
ยอมรับ tcp - ที่ใดก็ได้ 172.18.0.2 tcp dpt:http

Chain DOCKER-ISOLATION-STAGE-1 (อ้างอิง 1 รายการ)
เป้าหมาย prot เลือกปลายทางต้นทาง         
DOCKER-ISOLATION-STAGE-2 ทั้งหมด -- ทุกที่ ทุกแห่ง            
DOCKER-ISOLATION-STAGE-2 ทั้งหมด -- ทุกที่ ทุกแห่ง            
คืนทั้งหมด - ทุกที่ทุกที่            

Chain DOCKER-ISOLATION-STAGE-2 (ข้อมูลอ้างอิง 2 รายการ)
เป้าหมาย prot เลือกปลายทางต้นทาง         
วางทั้งหมด - ทุกที่ทุกที่            
วางทั้งหมด - ทุกที่ทุกที่            
คืนทั้งหมด - ทุกที่ทุกที่            

Chain DOCKER-USER (อ้างอิง 1 รายการ)
เป้าหมาย prot เลือกปลายทางต้นทาง         
คืนทั้งหมด - ทุกที่ทุกที่   


การตั้งค่า NAT มีดังนี้:


iptables -t แนท -L -v -n
CHAIN ​​PREROUTING (นโยบายยอมรับ 235 แพ็คเก็ต, 28704 ไบต์)
 pkts bytes target prot เลือกใช้ปลายทางต้นทาง         
  163 9840 DOCKER ทั้งหมด -- * * 0.0.0.0/0 0.0.0.0/0 ADDRTYPE ตรงกับ dst-type LOCAL

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

Chain OUTPUT (นโยบายยอมรับ 72 แพ็คเก็ต, 5351 ไบต์)
 pkts bytes target prot เลือกใช้ปลายทางต้นทาง         
    2 121 DOCKER ทั้งหมด -- * * 0.0.0.0/0 !127.0.0.0/8 ADDRTYPE ตรงกับ dst-type LOCAL

Chain POSTROUTING (นโยบายยอมรับ 108 แพ็กเก็ต, 7416 ไบต์)
 pkts bytes target prot เลือกใช้ปลายทางต้นทาง         
    4 240 สวมหน้ากากทั้งหมด -- * !br-a371a521a463 172.18.0.0/16 0.0.0.0/0           
    0 0 สวมหน้ากากทั้งหมด -- * !docker0 172.17.0.0/16 0.0.0.0/0           
    0 0 มาสเคอเรด udp -- * * 172.18.0.3 172.18.0.3 udp dpt:9090
    0 0 สวมหน้ากาก tcp -- * * 172.18.0.6 172.18.0.6 tcp dpt:9080
    0 0 สวมหน้ากาก tcp -- * * 172.18.0.2 172.18.0.2 tcp dpt:443
    0 0 สวมหน้ากาก tcp -- * * 172.18.0.5 172.18.0.5 tcp dpt:5984
    0 0 สวมหน้ากาก tcp -- * * 172.18.0.2 172.18.0.2 tcp dpt:80

Chain DOCKER (ข้อมูลอ้างอิง 2 รายการ)
 pkts bytes target prot เลือกใช้ปลายทางต้นทาง         
    2 120 คืนทั้งหมด -- br-a371a521a463 * 0.0.0.0/0 0.0.0.0/0           
    0 0 ส่งคืนทั้งหมด -- นักเทียบท่า0 * 0.0.0.0/0 0.0.0.0/0           
    1 37 DNAT udp -- !br-a371a521a463 * 0.0.0.0/0 0.0.0.0/0 udp dpt:9090 ถึง:172.18.0.3:9090
    0 0 DNAT tcp -- !br-a371a521a463 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:9070 ถึง:172.18.0.6:9080
    4 220 DNAT tcp -- !br-a371a521a463 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 ถึง:172.18.0.2:443
    0 0 DNAT tcp -- !br-a371a521a463 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:5984 ถึง:172.18.0.5:5984
    5 248 DNAT tcp -- !br-a371a521a463 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 ถึง:172.18.0.2:80

หากเปิดใช้งาน UFW สถานะจะเป็น:

รายละเอียดสถานะ ufw
สถานะ: ใช้งานอยู่
การบันทึก: เปิด (สูง)
ค่าเริ่มต้น: ปฏิเสธ (ขาเข้า) อนุญาต (ขาออก) ปฏิเสธ (กำหนดเส้นทาง)
โปรไฟล์ใหม่: ข้าม

ถึงการดำเนินการจาก
-- ------ ----
22/tcp อนุญาตในทุกที่                  
80/tcp อนุญาตในทุกที่                  
443/tcp อนุญาตในทุกที่                  
993 อนุญาตให้เข้าได้ทุกที่                  
995 อนุญาตในทุกที่                  
9090/udp อนุญาตในทุกที่                  
520/udp อนุญาตในทุกที่                  
22/tcp (v6) อนุญาตในทุกที่ (v6)             
80/tcp (v6) อนุญาตในทุกที่ (v6)             
443/tcp (v6) อนุญาตในทุกที่ (v6)             
993 (v6) อนุญาตให้เข้าได้ทุกที่ (v6)             
995 (v6) อนุญาตให้เข้าได้ทุกที่ (v6)             
9090/udp (v6) อนุญาตในทุกที่ (v6)             
520/udp (v6) อนุญาตในทุกที่ (v6)             

9090/udp อนุญาตให้ FWD ได้ทุกที่                  
9090/udp (v6) อนุญาต FWD ได้ทุกที่ (v6)            


ฉันพยายามมามากแล้ว แต่บางสิ่งที่สำคัญกว่านั้นคือ

  • การล้าง iptables ไม่มีผล
  • ตรวจสอบ UDP ที่ส่งผ่าน tcpdump จากกล่องภายนอก (ซึ่งถูกบันทึก)
  • ตรวจสอบพอร์ตทั้งหมดและการบันทึกอย่างละเอียด (ไม่มีการเปลี่ยนแปลง)
  • กำลังเปิด ip_forwarding
sysctl -p
net.ipv4.ip_forward = 1
net.ipv6.conf.default.forwarding = 1
net.ipv6.conf.all.forwarding = 1


หมายเหตุอื่นๆ:

  • ใช้เซิร์ฟเวอร์ 'คลาวด์' ดังนั้นจึงเป็นเครื่องเสมือน
  • ฉันไม่พบการเข้าสู่ระบบ ufw ใดๆ /อื่นๆ/ufw/

โพสต์คำตอบ

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