tl; ดร
ฉันมีอินสแตนซ์ SQL Server (SQLSERVER01-i01) พร้อมที่อยู่ IP เฉพาะและพอร์ต (162.xxx.xxx.51: 1433) บนเซิร์ฟเวอร์ SQL แบบหลายอินสแตนซ์ (อินสแตนซ์ SQL Server แต่ละอินสแตนซ์บนเซิร์ฟเวอร์ Windows มีที่อยู่ IP ของตนเอง ) ซึ่งทำงานบนเซิร์ฟเวอร์ Windows เครื่องเดียว (SQLSERVER01 / 162.xxx.xxx.50)
ฉันยังมีอินสแตนซ์บริการรายงานเฉพาะ (SQLSERVERRS01-i01) พร้อมที่อยู่ IP และพอร์ตของตัวเอง (168.xxx.xxx.71: 1433) ซึ่งทำงานบนเซิร์ฟเวอร์ Windows อื่น (SQLSERVERRS01) ด้วยที่อยู่ IP ของตนเอง (168 .xxx.xxx.70)
ทุ่มเทเซิร์ฟเวอร์บริการรายงานมีแอพลิเคชันAPPL1
ซึ่งสามารถเข้าถึงได้ผ่านทางหรือผ่านทาง http://SQLSERVERRS01-i01:80/Reports_APPL1
http://SQLSERVERRS01:80/Reports_APPL1
SSRS จะรับคำขอทั้งสองเนื่องจากการ*:80
กำหนดค่าในการกำหนดค่าบริการรายงานสำหรับส่วนหัวของโฮสต์
เรามีไฟร์วอลล์หลายตัวระหว่างช่วง IP แต่ละช่วงซึ่งหมายความว่าเราต้องใช้กฎเฉพาะสำหรับการเชื่อมต่อ IP-to-IP หรือ IPrange-to-IP แต่ละตัว อย่างไรก็ตามเมื่อเซิร์ฟเวอร์สองเครื่องมีส่วนเกี่ยวข้องความปลอดภัยจะกำหนดว่าต้องเป็นกฎ IP-to-IP ในไฟร์วอลล์เสมอ
คำถาม
(ขึ้นอยู่กับภาพหน้าจอลงไปอีก)
เมื่อเซิร์ฟเวอร์ Reporting Services เชื่อมต่อกับอินสแตนซ์ SQL Server (บน 162.xxx.xxx.51) เพื่อดึงข้อมูลมันจะสร้างการเชื่อมต่อกับที่อยู่ IP พื้นฐานของเซิร์ฟเวอร์ Windows (168.xxx.xxx.70 / ที่ต้องการ) เสมอ ) SSRS นั้นกำลังทำงานอยู่หรือบางครั้งจะใช้ที่อยู่ IP ของอินสแตนซ์ของบริการรายงานของ SQL Server (168.xxx.xxx.71)
สิ่งนี้เกี่ยวข้องกับการกำหนดค่ากฎไฟร์วอลล์โดยใช้วิธี IP-to-IP ฉันจะต้องสมัครกฎที่กำหนดการเชื่อมต่อ 168.xxx.xxx.71 ถึง 162.xxx.xxx.51 ผ่านพอร์ต 1433 หรือ 168.xxx.xxx.70 ถึง 162.xxx.xxx.51 ผ่านทาง พอร์ต 1433
ปัจจุบันฉันจะสมัครกฎไฟร์วอลล์ทั้งสอง
คำถามโบนัส
ฉันสามารถกำหนดค่าเซิร์ฟเวอร์ Reporting Services เพื่อสื่อสารกับที่อยู่ IP เฉพาะได้หรือไม่ ในกรณีนี้มีที่อยู่ 168.xxx.xxx.71
คำตอบฉันไม่ได้มองหา
ฉันไม่ได้ขอคำแนะนำเกี่ยวกับวิธีปรับแต่งการกำหนดค่าไฟร์วอลล์ให้เหมาะสมหรือวิธีการนำแนวคิดการแบ่งเขตสำหรับเครือข่ายของเราไปใช้ (มันอยู่ในขั้นตอนการส่งแล้ว) นอกจากนี้ฉันไม่สนใจข้อเสนอแนะที่มี SQL Server และ SSRS บนเซิร์ฟเวอร์เดียวกันจะแก้ไขปัญหาของฉัน ฉันรู้ว่าและยินดีที่จะทำ แต่สำหรับซอฟต์แวร์บุคคลที่สามที่จำเป็นในการทำงานร่วมกับส่วนประกอบ SSRS
มันได้ผล
การกำหนดค่าฉันใช้งานได้หากฉันใช้กฎไฟร์วอลล์ทั้งสองระหว่างอินสแตนซ์ SSRS และ SQL Server
168.xxx.xxx.71 --> 162.xxx.xxx.51 : 1433
168.xxx.xxx.70 --> 162.xxx.xxx.51 : 1433
ฉันต้องการลดกฎไฟร์วอลล์หนึ่งกฎอย่างปลอดภัยและตรวจสอบให้แน่ใจว่าทุกสิ่งยังคงทำงานได้ (ดูภาพหน้าจอเพิ่มเติมลงไป)
แก้ไข:บทความที่ฉันอ่านมาแล้วจะแนะนำว่าฉันต้องการเพียงกฎข้อที่สอง แต่ไม่มีการรับประกันใด ๆ
บทความที่ฉันได้ปรึกษาไปแล้ว
ข้อควรพิจารณาด้านความปลอดภัยสำหรับ
บทความฐานการติดตั้งเซิร์ฟเวอร์ SQLกำหนดค่าไฟร์วอลล์ Windows เพื่ออนุญาตให้เข้าถึงเซิร์ฟเวอร์ SQL
บทความนี้ชี้ไปที่บทความอื่น ๆ ทั้งหมดที่เกี่ยวข้องกับการกำหนดค่าไฟร์วอลล์สำหรับ SQL Serverกำหนดค่าไฟร์วอลล์ Windows สำหรับการเข้าถึงโปรแกรมฐานข้อมูล
ไม่มีคำที่อยู่ IP ที่ใช้กำหนดค่าไฟร์วอลล์สำหรับการเข้าถึงเซิร์ฟเวอร์รายงาน
บทความนี้ค่อนข้างน่าสนใจตามที่ระบุไว้:ถ้าคุณกำลังเข้าถึงฐานข้อมูลเชิงสัมพันธ์ของ SQL Server บนคอมพิวเตอร์ภายนอกหรือถ้าฐานข้อมูลเซิร์ฟเวอร์รายงานอยู่ในอินสแตนซ์ของ SQL Server ภายนอกคุณต้องเปิดพอร์ต 1433 และ 1434 บนคอมพิวเตอร์ภายนอก
การเลือกที่อยู่ IP ต้นทางในคอมพิวเตอร์ Windows แบบหลาย Homed
บทความที่ 5 และ 6 ได้รับการมอบให้โดยJames (dba.se) ขณะนี้พวกเขาดูเหมือนจะเป็นคำตอบที่เหมาะสมที่สุด อย่างไรก็ตามฉันสงสัยว่าบทความหนึ่งกล่าวถึงการใช้ NIC หลายตัวในขณะที่ฉันมี NIC เพียงหนึ่งเดียวที่มี IP หลาย ๆ ตัวที่ได้รับมอบหมาย ทอม (dba.se) ก็บิ่นด้วยคำแนะนำและความคิดเห็นทั่วไป
ทำไมที่นี่และไม่อยู่ใน dba.stackexchange.com
ในตอนแรกฉันลังเลที่จะโพสต์คำถามนี้ใน serverfault.com เนื่องจากลักษณะซับซ้อนของคำถาม คำถามนี้มีแนวโน้มที่จะเป็น SQL Server ที่เฉพาะเจาะจง แต่ยังรวมถึง Windows Server ที่เฉพาะเจาะจง ในที่สุดฉันตัดสินใจที่จะโพสต์ที่นี่เพราะฉันคิดว่ามันเป็น Windows Server IP จัดการสิ่งต่าง ๆ (สำหรับการสูญเสียคำที่ดีกว่า)
หากผู้ดำเนินรายการคิดว่าฉันจะได้รับการตอบสนองที่ดีขึ้นใน dba.stackexchange.com โปรดย้ายคำถามไปที่นั่น
คำอธิบายแบบยาว
ในสภาพแวดล้อมของเราเรามีเซิร์ฟเวอร์ Windows ที่โฮสต์อินสแตนซ์ SQL Server หลายรายการและการตั้งค่า IP หลายรายการ เราเพิ่มการกำหนดค่าไฟร์วอลล์ที่ซับซ้อนเซิร์ฟเวอร์ SQL Server Reporting Services (SSRS) เฉพาะและมาพร้อมกับสภาพแวดล้อมที่มีลักษณะเช่นนี้:
โดยทั่วไปเราสามารถมี Windows Server หนึ่งเซิร์ฟเวอร์ที่ทำงานได้ถึง 15 (สิบห้า) อินสแตนซ์ของ SQL Server บนที่อยู่ IP แต่ละรายการ เช่นเดียวกับอินสแตนซ์บริการรายงานเฉพาะ
กฎไฟร์วอลล์
ช่วง IP ที่แตกต่างกันยังไม่ได้กำหนดค่าเป็นโซนซึ่งหมายความว่าเราต้องกำหนดค่ากฎไฟร์วอลล์แต่ละข้อแยกกันเป็นกฎ IP-to-IP หรือ IPrange-to-IP เมื่อเซิร์ฟเวอร์สองเครื่องมีส่วนเกี่ยวข้องความปลอดภัยจะบอกว่าต้องเป็นกฎ IP-to-IP เสมอ แต่ละอินสแตนซ์ของ SQL Server จะมีชุดกฎของตัวเองสำหรับไฟร์วอลล์ที่เกี่ยวข้องกับการสื่อสารไม่ว่าจะเป็นการเชื่อมโยงระหว่างเซิร์ฟเวอร์กับเซิร์ฟเวอร์หรือไคลเอนต์ต่อเซิร์ฟเวอร์ การสมัครกฎไฟร์วอลล์ในปัจจุบันมีระยะเวลารอสี่ถึงหกสัปดาห์ การลดปริมาณของกฎไฟร์วอลล์จะช่วยลดความกดดันในทีมรักษาความปลอดภัยเครือข่าย
การกำหนดค่า IP อินสแตนซ์ของเซิร์ฟเวอร์ SQL
การกำหนดค่าอินสแตนซ์ SQL Server เพื่อรับเฉพาะบน IP เฉพาะและพอร์ตจะดำเนินการโดยการแก้ไขการตั้งค่าบางอย่างในยูทิลิตี้ตัวจัดการการกำหนดค่าเซิร์ฟเวอร์ SQL ขั้นตอนแรกคือการเริ่มต้นตัวจัดการการกำหนดค่าเซิร์ฟเวอร์ SQLและในส่วนด้านซ้ายให้เลือกการกำหนดค่าเครือข่ายเซิร์ฟเวอร์ SQL | โปรโตคอลสำหรับ InstanceName ในบานหน้าต่างด้านซ้ายคลิกซ้ายที่ชื่อโปรโตคอล TCP / IPและเปิดใช้งานโปรโตคอล จากนั้นคลิกซ้ายโปรโตคอลอีกครั้งและนำมาขึ้นอสังหาริมทรัพย์สำหรับ TCP / IPหน้าต่าง
จากนั้นตรวจสอบให้แน่ใจว่ามีการตั้งค่าต่อไปนี้ในการลงทะเบียนโพรโทคอล :
Enabled : Yes
Listen All : No
ในการลงทะเบียนที่อยู่ IPตรวจสอบการตั้งค่าต่อไปนี้สำหรับที่อยู่ IP ที่เป็นปัญหา (เช่นสำหรับเซิร์ฟเวอร์ Reporting Services ในตัวอย่างนี้จะเป็น 168.xxx.xxx.71)
Active : Yes
Enabled : Yes
IP Address : 168.xxx.xxx.71
TCP Dynamic Ports :
TCP Port : 1433
หมายเหตุ:สิ่งสำคัญคือการตั้งค่าสำหรับ TCP Dynamic Ports ว่างเปล่าไม่ใช่แค่ 0 (ศูนย์)
ตอนนี้คุณมีอินสแตนซ์ของ SQL Server ที่จะรับเฉพาะการเชื่อมต่อฐานข้อมูลบน 168.xxx.xxx.71 โดยใช้พอร์ต 1433
สรุปอินสแตนซ์ของเซิร์ฟเวอร์ SQL
บริการ SQL Server Browser ไม่ทำงานและแต่ละ SQL Server แต่ละอินสแตนซ์ถูกกำหนดค่าให้ใช้เฉพาะที่อยู่ IP ของตนเองบนพอร์ต 1433 รับอินสแตนซ์ของ SQL Server ชื่อ GENERAL เซิร์ฟเวอร์ Windows ที่มีชื่อโฮสต์ SQLSERVER01 และที่อยู่ IP สองรายการ 162.xxx .xxx.50 (โฮสต์) และ 162.xxx.xxx.51 (อินสแตนซ์ของ SQL) ฉันจะจบลงด้วยรายการการกำหนดค่าต่อไปนี้:
Windows Server : SQLSERVER01
Windows Server IP : 162.xxx.xxx.50
SQL Server Instance : SQLSERVER01-i01 (DNS A record)
SQL Server Instance : GENERAL (can only be used on the host itself)
SQL Server IP/Port : 162.xxx.xxx.51:1433
SQL Server จะไม่รับการร้องขอสำหรับ 162.xxx.xxx.50: 1433 เนื่องจากไม่มีการกำหนดค่าอินสแตนซ์ของ SQL Server ให้รับฟังที่อยู่ IP นี้ในยูทิลิตี้ตัวจัดการการกำหนดค่าเซิร์ฟเวอร์ SQL SQL Server จะรับการร้องขอสำหรับ SQLSERVER01-i01 (บนพอร์ต 1433) หรือ 162.xxx.xxx.51,1433 เท่านั้น
สรุปอินสแตนซ์ของบริการรายงานของ SQL Server
บริการเบราว์เซอร์เซิร์ฟเวอร์ SQL ไม่ทำงานและแต่ละอินสแตนซ์ของบริการรายงานเซิร์ฟเวอร์ SQL แต่ละรายการถูกกำหนดค่าให้ใช้เฉพาะที่อยู่ IP ของตนเองบนพอร์ต 1433 เนื่องจากอินสแตนซ์ของบริการรายงานเซิร์ฟเวอร์ SQL ที่เรียกว่า GENERAL เซิร์ฟเวอร์ Windows ที่มีชื่อโฮสต์ SQLSERVERRS01 บน SSRS ที่มีชื่อAPPL1
และที่อยู่ IP สองรายการ 168.xxx.xxx.70 (โฮสต์) และ 168.xxx.xxx.71 (อินสแตนซ์ของ SQL) ฉันจะจบลงด้วยรายการการกำหนดค่าต่อไปนี้:
Windows Server : SQLSERVERRS01
Windows Server IP : 168.xxx.xxx.70
SQL Server Instance : SQLSERVERRS01-i01 (DNS A record)
SQL Server Instance : GENERAL (can only be used on the host itself)
SQL Server IP/Port : 168.xxx.xxx.71:1433
Reporting Services : http://sqlserverrs01-i01/Reports_APPL1
http://sqlserverrs01/Reports_APPL1
SQL Server จะไม่รับการร้องขอสำหรับ 168.xxx.xxx.70: 1433 เนื่องจากไม่มีการกำหนดค่าอินสแตนซ์ของ SQL Server ให้รับฟังที่อยู่ IP นี้ในยูทิลิตี้ตัวจัดการการกำหนดค่าเซิร์ฟเวอร์ SQL SQL Server จะรับการร้องขอสำหรับ SQLSERVER01-i01 (บนพอร์ต 1433) หรือ 162.xxx.xxx.71,1433 เท่านั้น
SSRS จะรับคำขอสำหรับ http: // sqlserverrs01-i01 / Reports_APPL1หรือhttp: // sqlserverrs01 / Reports_APPL1เนื่องจากการ *: 80 กำหนดค่าในการกำหนดค่าบริการรายงานสำหรับส่วนหัวของโฮสต์
ฉันหวังว่าฉันได้ให้ข้อมูลที่เพียงพอสำหรับทุกคนที่เต็มใจใช้เวลาในการเขียนคำตอบและฉันหวังว่าจะได้รายละเอียดทางเทคนิคและลิงก์ของคุณ
เขียนด้วยStackEditและปรับเปลี่ยนในภายหลังด้วยตนเองเพื่อให้เข้ากันได้กับ stackexchange
ประวัติศาสตร์
แก้ไข 1 : รีลีสเริ่มต้น
แก้ไข 2 : ฟอร์แมตใหม่เพื่อให้อ่านง่าย ย้ายคำอธิบาย SF / DB ลงแล้ว เพิ่มชื่อโฮสต์สำหรับ Windows Server
แก้ไข 3 : แก้ไขที่อยู่ IP ผิดในรายการกฎของไฟร์วอลล์
แก้ไข 4 : เปลี่ยนคำว่าโฮสติ้งเป็นเรียกใช้ (เป็นสภาพแวดล้อมที่ไม่ใช่แบบเสมือนจริง) ในบางสถานที่ เพิ่มที่อยู่ IP ในประโยคเดียว
แก้ไข 5 : เพิ่มรายการบทความที่ฉันปรึกษาและสนับสนุนแล้วอ้างอิง
6 แก้ไข : ล้างข้อมูลในส่วนประวัติ