ไม่สามารถเข้าถึงไซต์ในอินสแตนซ์ EC2 ผ่านทางไอพีสาธารณะ


10

ฉันมีอินสแตนซ์ขนาดเล็ก Amazon EC2 พร้อมเซิร์ฟเวอร์ window 2008 และปรับใช้เว็บแอปพลิเคชันตัวอย่างหนึ่งที่นั่นซึ่งใช้จาวาและปรับใช้บนเซิร์ฟเวอร์ Tomcat 7 ฉันสามารถเข้าถึงได้จากภายในเครื่อง แต่เมื่อฉันพยายามเข้าถึงนอกอินสแตนซ์ AWS ให้พูดจากคอมพิวเตอร์ที่บ้านของฉันโดยใช้ AWS สาธารณะ DNS / ที่อยู่ IP สาธารณะ / ที่อยู่ IP ยืดหยุ่นของอินสแตนซ์มันทำให้ฉัน "เว็บเพจคือ ไม่ว่าง "

ฉันได้ผ่านคำถามที่คล้ายกันมากมายในฟอรัมนี้และฉันคิดว่าฉันได้ทำทุกอย่างที่พวกเขาขอให้ทำ แต่ก็ยังไม่ประสบความสำเร็จ

นี่คือสิ่งที่ฉันได้ทำ / ยืนยัน

1. localhost ทำงานได้ดังนั้นแอปพลิเคชันจะฟังพอร์ต 80

2.เพิ่มกฎขาเข้าสำหรับ HTTP บนพอร์ต 80 สำหรับทุกคนภายใต้กลุ่มความปลอดภัยที่อินสแตนซ์ของฉันใช้อยู่

3.ตรวจสอบการตั้งค่าไฟร์วอลล์บนอินสแตนซ์ของ windows ตรวจสอบให้แน่ใจว่าพอร์ต 80 ไม่ถูกบล็อก

4.ลองแม้จะปิดไฟร์วอลล์ แต่ไม่สำเร็จ

ฉันจะขอบคุณจริง ๆ ถ้ามีคนช่วยฉันได้

ขอบคุณ NS


1
telnet บอกอะไรคุณและ traceroute
Pratap

คำตอบ:


5

ฉันมีปัญหาที่น่าผิดหวังเหมือนกันเมื่อฉันติดตั้ง JetBrains YouTrack บนอินสแตนซ์ของ Windows Server 2012 ec2 สิ่งที่ใช้ได้ผลสำหรับฉันคือการเปิดพอร์ตไฟร์วอลล์ Windows ที่จาวาใช้เป็นพิเศษและปิดใช้งานพอร์ตบริการการเผยแพร่ทั่วโลก ฉันยังต้องเรียกใช้บริการ YouTrack ภายใต้บัญชี LocalSystem แทนบัญชีเริ่มต้น

ลองสิ่งนี้:

  • ปิดเว็บไซต์เริ่มต้นใน IIS หากใช้งานอยู่

  • เรียกใช้netstat -a -bเพื่อค้นหาพอร์ตที่ java.exe พยายามเชื่อมเช่น:

    TCP 0.0.0.0:80 WIN-9NFIG6IEPT6: 0 การรับฟัง [java.exe]

    TCP 127.0.0.1:49306 WIN-9NFIG6IEPT6: 49307 สร้างแล้ว [java.exe]

  • เปิดตัวจัดการควบคุมบริการและคลิกขวาที่บริการของคุณและเปิดกล่องโต้ตอบคุณสมบัติ บนแท็บ Log On As เลือกLocal System Accountเป็นบัญชีที่บริการทำงาน สิ่งสำคัญคือผู้ใช้นี้เป็นผู้ดูแลระบบ

  • ฉันขอแนะนำให้เปิดไฟร์วอลล์อีกครั้ง
  • เปิดแท็บกฎขาเข้าของไฟร์วอลล์และปิดใช้งานกฎของ World Wide Web Services (HTTP-In)
  • สร้างกฎใหม่สำหรับ Tomcat ด้วย TCP Port 80 และพอร์ตอื่น ๆ ที่อาจต้องการ

  • บันทึกกฎและทดสอบ url ของคุณจากภายนอกเซิร์ฟเวอร์


4

คุณไม่ควรปิดการตั้งค่าไฟร์วอลล์อย่างสมบูรณ์ สิ่งนี้จะลดความปลอดภัยของแอพของคุณ แทนที่จะปรับเปลี่ยนกฎไฟร์วอลล์ขาเข้าเซิร์ฟเวอร์ windows เพื่ออนุญาตทราฟฟิกขาเข้าบนพอร์ตเฉพาะ

ฉันมีปัญหาที่คล้ายกันซึ่งฉันได้ติดตั้งแอพบน Tomcat 8 บนเซิร์ฟเวอร์ windows 2012 ที่จัดสรรผ่าน AWS EC2 ฉันสามารถเข้าถึงแอพที่ใช้งานได้บนhttp: // localhost: 8080จากภายใน VM แต่ไม่ได้มาจากอินเทอร์เน็ตสาธารณะหลังจากแทนที่ localhost สตริงใน URL ด้วยที่อยู่ IP สาธารณะของ VM

ทำงานได้ดีหลังจากฉันเปลี่ยนกฎไฟร์วอลล์เพื่ออนุญาตทราฟฟิกขาเข้าบนพอร์ต 80 (สำหรับ http), พอร์ต 443 (สำหรับ https) และพอร์ต 8080 (นี่คือพอร์ตที่เว็บแอปของฉันถูกปรับใช้ตามค่าเริ่มต้นบนเซิร์ฟเวอร์ Tomcat

ฉันได้ทำเอกสารการตั้งค่าไฟร์วอลล์และกลุ่มความปลอดภัยที่ลิงค์ด้านล่าง:

http://abhirampal.com/2015/08/04/firewall-config-for-java-web-app-hosted-on-aws-ec2-windows-2012-server/


1
เยี่ยมมากคุณได้บันทึกวันของฉัน <3
Thamaraiselvam

1

คุณอาจพลาดการตั้งค่าเว็บเซิร์ฟเวอร์ คุณสามารถทดสอบได้โดยเชื่อมต่อกับเซิร์ฟเวอร์ผ่าน:

telnet $IP 80

หากคุณไม่ได้รับข้อผิดพลาดคุณสามารถเชื่อมต่อ ในกรณีนี้คุณไม่ได้ตั้งค่าเว็บเซิร์ฟเวอร์อย่างถูกต้อง


คุณพูดถูกฉันไม่สามารถเชื่อมต่อผ่าน telnet จากคอมพิวเตอร์ของฉันไปยังอินสแตนซ์ของ aws ได้ คุณสามารถช่วยฉันแก้ไขได้ไหม ฉันพยายามค้นหา IIS ในอินสแตนซ์ aws และมันกำลังทำงานอยู่
242725

ขอบคุณ มันทำงานหลังจากปิดโดเมน, ไฟร์วอลล์ส่วนตัวและสาธารณะในอินสแตนซ์ แต่ไม่แน่ใจฉันจะรักษาความปลอดภัยอินสแตนซ์และเข้าถึงเว็บแอพของฉันในเวลาเดียวกันได้อย่างไร
242725

1

อาจต้องป้อนกฎสำหรับพอร์ต TCP ขาเข้า 80 ใน AWS Security Group สำหรับอินสแตนซ์ของคุณ


1

คุณอาจต้องทำให้พอร์ตพร้อมใช้งานเพื่อรับฟังการโทรสาธารณะใด ๆ จากคอนโซล AWS


คอนโซล AWS มีคุณสมบัติมากมายบางทีคุณอาจเฉพาะเจาะจงมากขึ้น
kmarsh

1

โปรดไปที่ลิงก์นี้http://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/using-network-security.html , กลุ่มความปลอดภัยของมาตรา

สร้างกลุ่มความปลอดภัยสำหรับอินสแตนซ์ EC2 ของคุณเพื่ออนุญาตการเชื่อมต่อบนพอร์ตที่คุณต้องการ


1

สองสิ่งสำหรับฉัน:

  1. การแก้ไขกลุ่มความปลอดภัยที่แนบกับอินสแตนซ์ RDS ของฉันเพื่ออนุญาตการรับส่งข้อมูลเข้าและออก

  2. การตั้งค่ากฎขาเข้าและขาออกใน RDS สำหรับพอร์ตแอปพลิเคชัน

ขั้นตอนโดยละเอียด:

  • ที่แถบด้านบนของคอนโซล AWS ของคุณให้คลิกบริการเลือก EC2

  • ที่เมนูด้านซ้ายของหน้าต่างถัดไปภายใต้อินสแตนซ์ให้คลิกอินสแตนซ์เพื่อดูอินสแตนซ์ของคุณ

  • ในตารางที่มีอินสแตนซ์ที่คุณต้องการเข้าถึงจากสาธารณะเลื่อนไปทางขวาไปยังคอลัมน์ชื่อกลุ่มความปลอดภัย คลิกที่กลุ่มความปลอดภัยนี้

  • ในตารางที่แสดงให้เลื่อนไปที่ด้านล่างสุดที่มีคำอธิบายของกลุ่มความปลอดภัยและแท็บอื่น ๆ เช่นขาเข้าขาออกขาแท็ก
  • คลิกที่แท็บขาเข้า คลิกแก้ไข โดยค่าเริ่มต้นมีหนึ่งกฎ (RDP)
  • ให้เพิ่มอีกสอง
  • คลิกปุ่มเพิ่มกฎ
  • เลือกการรับส่งข้อมูลทั้งหมดสำหรับประเภท, ทั้งหมดสำหรับโปรโตคอล
  • ออกจากช่วงพอร์ต (0 - 65535) เลือกแหล่งที่มาเป็นกำหนดเอง
  • ทั้งหมดนี้ใช้กับกฎทั้งสอง 2) สำหรับกฎแรกในกล่องข้อความที่ปรากฏขึ้นหลังจากแหล่งที่มาให้วาง 0.0.0.0/0 3 3) สำหรับกฎที่สองให้ใส่ :: / 0 4)
  • กดบันทึก

    ตอนนี้เข้าสู่ระบบ AWS RDS ของคุณเพื่อกำหนดกฎขาเข้าและขาออกผ่านกำแพงไฟ

  • เปิดแผงควบคุม คลิกที่ระบบและความปลอดภัย (อาจเป็นคนแรก) และคลิกที่ผนัง Windows Fire จากนั้นคลิกที่การตั้งค่าขั้นสูง

  • คลิกที่เมนูกฎขาเข้าทางด้านซ้าย

  • ในแท็บการกระทำ (ทางด้านขวา) คลิกสร้างกฎ

  • เลือกพอร์ตและคลิกถัดไป

  • เลือก TCP (หากไม่ได้เลือก) และด้านล่างเลือกพอร์ตเฉพาะในเครื่อง

  • ในช่องใส่หมายเลขพอร์ตของแอปพลิเคชันของคุณและคลิกถัดไป

  • เลือกอนุญาตการเชื่อมต่อและคลิกถัดไป

  • ระบุชื่อกฎ บางอย่างเช่นชื่อแอปของคุณเพื่อการอ่านได้และคลิกเสร็จสิ้น

จากนั้นให้กำหนดค่าการรับส่งข้อมูลไป

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

0

โปรดอ้างอิงลิงค์ .. มันจะเฉพาะเจาะจงมากขึ้น

http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html

คุณสามารถอนุญาตการสื่อสารระหว่างอินสแตนซ์ทั้งหมดที่เกี่ยวข้องกับกลุ่มความปลอดภัยนี้หรือระหว่างอินสแตนซ์ที่เกี่ยวข้องกับกลุ่มความปลอดภัยอื่นและอินสแตนซ์ที่เกี่ยวข้องกับกลุ่มความปลอดภัยนี้ คลิกเพิ่มกฎเลือก ICMP ทั้งหมดจากนั้นเริ่มพิมพ์ ID ของกลุ่มความปลอดภัยในแหล่งที่มา นี่เป็นรายการกลุ่มความปลอดภัย เลือกกลุ่มความปลอดภัยจากรายการ ทำซ้ำขั้นตอนสำหรับโปรโตคอล TCP และ UDP คลิกบันทึกเมื่อเสร็จสิ้น


0

มันเป็นปัญหาส่วนใหญ่กับ Windows Firewall ฉันลองทำตามขั้นตอนเดียวกับที่คุณทำมันไม่สำเร็จ ช่วงเวลาที่ฉันเปิดไฟร์วอลล์มันก็ดี ฉันคิดว่าความปลอดภัยไม่ควรได้รับผลกระทบเนื่องจากเรากำหนดค่ากฎขาเข้าขาออก


-1

สำหรับ WINDOWS อินสแตนซ์ - คลิกขวาที่ชื่ออินสแตนซ์ EC-2 เรียกดูไฟล์. pem ที่สร้างขึ้นระหว่างการสร้างอินสแตนซ์และคลิกถอดรหัสรหัสผ่าน คุณจะได้รับชื่อผู้ใช้และรหัสผ่านเพื่อเชื่อมต่อผ่าน Start -> Run -> mstsc -> IP Windows ที่มี Windows Authentication ในฐานะผู้ดูแลระบบและรหัสผ่าน

สำหรับ LINUX Instance -> ดาวน์โหลด puttygen และคลิกที่ปุ่ม LOAD เพื่อเลือกไฟล์. pem จากนั้นคลิกที่ปุ่ม GENERATE เพื่อสร้างไฟล์ ppk ผ่าน putty ป้อน IP และภายใต้การเชื่อมต่อ -> SSH -> AUTH -> เรียกดูเพื่อเลือกไฟล์. pkk และบันทึกเซสชันที่โป๊


นี่จะเป็นคำตอบที่ยอดเยี่ยมหากคำถามได้รับการ "ฉันจะเข้าสู่ระบบด้วยคีย์ SSH ของฉันได้อย่างไร" แต่คำถามคือ "ฉันจะเข้าถึงเว็บเพจจากเบราว์เซอร์ของฉัน" ได้อย่างไร
Jenny D
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.