Score:0

พอร์ต NAT ไปยังโหนดภายใน

ธง ru
bas

เรากำลังทำงานร่วมกับ PLC (phoenix plc next) ซึ่งเชื่อมต่อกับเครือข่าย profinet (และ profibus) เนื่องจากขาดเครื่องมือและไม่สามารถเดินสายไฟใหม่ตามความต้องการของเรา (PLC รวมอยู่ในเครื่องของเรา) เรากำลังมองหาวิธีต่างๆ ในการเข้าถึงเว็บเซิร์ฟเวอร์ https บางตัวบน profibus master

จากระยะไกลเรามีพีซีที่ใช้ Windows พีซีนี้เชื่อมต่อผ่านสวิตช์ไปยัง PLC PLC นี้ทำงานบนการกระจายลินุกซ์ PLC เชื่อมต่อกับ profinet master และ profibus master

  • วินพีซี (192.168.192.200)
  • PLC ภายนอก nic (192.168.192.202)
  • PLC ภายใน nic (192.168.2.2)
  • ผู้เชี่ยวชาญ Profinet (192.168.2.3)
  • Profibus หลัก (192.168.2.4)

อะไรจะดีไปกว่านี้ ถ้าเราสามารถเปิดเว็บเบราว์เซอร์บนพีซีที่ใช้ Windows และเชื่อมต่อกับ profibus master (โดยที่ PLC จะ NAT แพ็กเก็ตไปยัง profibus master)

ฉันมีสิทธิ์รูทบน PLC ดังนั้นฉันคิดว่าฉันสามารถจัดการสิ่งนี้ได้โดยใช้ iptables. เนื่องจากเราไม่สนใจเรื่องความปลอดภัย ฉันจึงกำหนดนโยบายทั้งหมดให้ยอมรับ (INPUT, OUTPUT, FORWARD) ขั้นตอนเดียวที่ฉันต้องทำ (ไร้เดียงสาฉัน ... ) คือ NAT แพ็กเก็ตไปยังปลายทาง น่าเสียดายที่มันใช้งานไม่ได้

ผลลัพธ์ปัจจุบันของฉันของ iptables -S

root@axcf3152:/opt/plcnext/# iptables -S
-P อินพุตยอมรับ
-P ยอมรับไปข้างหน้า
-P เอาต์พุตยอมรับ

และโต๊ะแนทของฉัน

root@axcf3152:/opt/plcnext/# iptables -t แนท -L
ห่วงโซ่ PREROUTING (ยอมรับนโยบาย)
เป้าหมาย prot เลือกปลายทางต้นทาง
DNAT icmp -- ทุกที่ ไปที่: 192.168.2.4
DNAT tcp -- ทุกที่ ทุก tcp dpt:6666 ถึง:192.168.2.4:443
DNAT tcp -- ทุกที่ ทุก tcp dpt:5555 ถึง:192.168.2.3:443
DNAT tcp -- ทุกที่ ทุก tcp dpt:4444 ถึง:192.168.2.3:80
DNAT tcp -- ทุกที่ ทุก tcp dpt:3333 ถึง:192.168.2.4:80
DNAT tcp -- ทุกที่ ทุก tcp dpt:6666 ถึง:192.168.2.4:443

โดยพื้นฐานแล้ว สิ่งที่ฉันทำนอกเหนือจากการตั้งค่านโยบายทั้งหมดเป็น ACCEPT คือเพิ่มกฎสองสามข้อสำหรับ nat:

iptables -t nat -A PREROUTING -p tcp --dport 6666 -j DNAT --to-destination 192.168.2.4:443

จากนั้นสำหรับทั้งสองรสชาติ (http (80), https (443)) และสำหรับทั้ง profinet master (192.168.2.3) และ profibus master (192.168.2.4)

ถ้าฉันเข้าใจทั้งหมดที่ฉันอ่านเกี่ยวกับ iptables ในเย็นวันนี้ ฉันไม่จำเป็นต้องกังวลกับการเพิ่มกฎสำหรับตารางตัวกรอง 'FORWARD' เนื่องจากฉันยอมรับทุกอย่าง (ไม่ปลอดภัยอย่างยิ่ง แต่เราไม่สนใจการตั้งค่าการทดสอบนี้)

สิ่งเดียวที่ฉันไม่แน่ใจคือถ้า (หรือเมื่อใด) ฉันจำเป็นต้องโพสต์โพสต์ด้วย

อย่างไรก็ตามเมื่อฉันเปิดหน้าเว็บ https://192.168.192.202:6666 หรือรสชาติใดๆ ก็ตาม หน้าเว็บไม่สามารถโหลดได้ (การเชื่อมต่อถูกปฏิเสธ)

ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชมอย่างมาก!!

อัปเดต:

การออกคำสั่งต่อไปนี้ให้ฉัน ping profibus master (ฉันคิด)

iptables -A INPUT -p icmp --icmp-type echo-request -j ปฏิเสธ
iptables -t nat -A PREROUTING -p icmp -j DNAT --to-destination 192.168.2.4
iptables -t filter -A FORWARD -p icmp -d 192.168.2.4 -j ยอมรับ
iptables -t nat -A โพสต์ -j MASQUERADE

เมื่อฉัน ping บน windows PC ไปที่ 192.168.192.202 ฉันได้รับการตอบกลับ ฉันยังเห็น iptables -t แนท -L -v เพิ่มสถิติของกฎนี้ (#packets + bytes เพิ่มขึ้นเมื่อฉันส่งคำสั่ง ping ใหม่)

ฉันคิดว่านี่เป็นการพิสูจน์ว่าผู้เชี่ยวชาญ profinet กำลังตอบกลับ ping (เนื่องจากตอนนี้ฉันปฏิเสธ icmp บน PLC)

คำถาม:

  • ฉันต้องการกฎ FORWARD หรือไม่ หรือข้อสันนิษฐานของฉันถูกต้องว่าฉันอนุญาตทุกอย่างและกฎนี้ซ้ำซ้อนหรือไม่?
  • ฉันจำเป็นต้องเพิ่ม MASQUARADE หรือไม่? ฉันยังมีช่วงเวลาที่ยากลำบากในการทำความเข้าใจว่าสิ่งนี้ทำอะไรได้บ้าง (เช่นเดียวกับคำถามอื่น ๆ อีกมากมายที่มีอยู่บนเว็บ)
  • มีอะไรขาดหายไปจากการทดลอง iptables ของฉันที่จะอธิบายว่าทำไม https ถึงไม่ถูกส่งต่อ? หรือทุกอย่างดูดีหรือไม่และปัญหาจะอยู่ที่ profibus master จริงหรือไม่ (ไม่ได้โฮสต์เว็บเซิร์ฟเวอร์ตามที่ผู้ขายอ้างเช่น)

อัปเดต 2:

กฎ icmp ทำงานเป็นครั้งคราว เมื่อฉันลบกฎทั้งหมดออกจาก iptables และพยายามทำซ้ำขั้นตอน ฉันไม่ได้ผลเสมอไป iptables ยากกว่าที่คิด...

Brennen Smith avatar
nz flag
คุณเปิดใช้งานการส่งต่อ IPv4 ภายในเคอร์เนลแล้วหรือยัง มันถูกปิดใช้งานโดยค่าเริ่มต้น: เพิ่มบรรทัด: `net.ipv4.ip_forward=1` ถึง `/etc/sysctl.conf` แล้วโหลดซ้ำด้วย `sysctl -p` กฎ ICMP DNAT ใช้งานได้ในปัจจุบันหรือไม่
ru flag
bas
@BrnnenSmith ฉันทำตามที่คุณแนะนำ ค่อนข้างแน่ใจว่ามันถูกปิดใช้งาน ฉันไม่ได้แสดงความคิดเห็น `#net/ipv4/ip_forward=1` และโหลดซ้ำด้วย `sysctl -p` เอาต์พุต (ท่ามกลางการตั้งค่าอื่นๆ) `net.ipv4.ip_forward=1` ฉันยังอัปเดตคำถามของฉันด้วย "หลักฐาน" ฉันคิดว่า icmp กำลังส่งต่ออย่างถูกต้องยังไม่ประสบความสำเร็จในการร้องขอ https
djdomi avatar
za flag
ฉันไม่แน่ใจว่าทำไมคุณไม่ต้องการใช้ nginx เป็นพร็อกซีย้อนกลับแทนการเปิดเผยบริการเซิร์ฟเวอร์
ru flag
bas
@djdomi คุณช่วยขยายความได้ไหมว่ามีวิธีที่ง่ายกว่าในการบรรลุเป้าหมายนี้หรือไม่
djdomi avatar
za flag
ถ้าฉันเข้าใจคำถามทั้งหมดที่คุณใช้คือเว็บเซิร์ฟเวอร์ที่อยู่ใน lan ที่ไหนสักแห่งและคุณต้องการใช้ผ่านสถานที่ที่สามารถเข้าถึงได้จากภายนอก นี่เป็นวิธีทั่วไปในการใช้ nginx เป็นพร็อกซีย้อนกลับ

โพสต์คำตอบ

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