เรากำลังทำงานร่วมกับ 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 ยากกว่าที่คิด...