ทำงานทางไกลในสำนักงาน RDP, Port Knocking, Mikrotik: ง่ายและปลอดภัย

เนื่องจากการแพร่ระบาดของไวรัส covid-19 และการกักกันโดยทั่วไปในหลายประเทศ วิธีเดียวที่หลายบริษัทจะทำงานต่อไปได้คือการเข้าถึงที่ทำงานจากระยะไกลผ่านทางอินเทอร์เน็ต มีวิธีที่ค่อนข้างปลอดภัยสำหรับการทำงานระยะไกล แต่เมื่อพิจารณาถึงขนาดของปัญหาแล้ว สิ่งที่จำเป็นต้องมีคือวิธีที่ง่ายสำหรับผู้ใช้ในการเชื่อมต่อกับสำนักงานจากระยะไกล และไม่จำเป็นต้องตั้งค่าเพิ่มเติม คำอธิบาย การให้คำปรึกษาที่น่าเบื่อ และความยาวที่ยาว คำแนะนำ. วิธีนี้เป็นที่นิยมของผู้ดูแลระบบหลายคน RDP (Remote Desktop Protocol) การเชื่อมต่อโดยตรงกับเวิร์กสเตชันผ่าน RDP จะช่วยแก้ปัญหาของเราได้อย่างดี ยกเว้นแมลงวันตัวใหญ่ตัวหนึ่ง - การเปิดพอร์ต RDP สำหรับอินเทอร์เน็ตนั้นไม่ปลอดภัยอย่างยิ่ง ดังนั้นด้านล่างฉันขอเสนอวิธีการป้องกันที่เรียบง่าย แต่เชื่อถือได้ทำงานทางไกลในสำนักงาน RDP, Port Knocking, Mikrotik: ง่ายและปลอดภัย

เนื่องจากฉันมักจะเจอองค์กรเล็กๆ ที่ใช้อุปกรณ์ Mikrotik เป็นการเชื่อมต่ออินเทอร์เน็ต ด้านล่างนี้ฉันจะแสดงวิธีการใช้งานบน Mikrotik แต่วิธีการป้องกัน Port Knocking สามารถนำไปใช้กับอุปกรณ์ระดับสูงอื่น ๆ ที่มีการตั้งค่าเราเตอร์อินพุตที่คล้ายกันและ ไฟร์วอลล์

สั้น ๆ เกี่ยวกับ Port Knocking. การป้องกันภายนอกในอุดมคติของเครือข่ายที่เชื่อมต่อกับอินเทอร์เน็ตคือเมื่อทรัพยากรและพอร์ตทั้งหมดถูกปิดจากภายนอกด้วยไฟร์วอลล์ และถึงแม้ว่าเราเตอร์ที่มีไฟร์วอลล์ที่กำหนดค่าไว้จะไม่ตอบสนองต่อแพ็กเก็ตที่มาจากภายนอกในทางใดทางหนึ่ง แต่มันก็รับฟังพวกมัน ดังนั้น คุณสามารถกำหนดค่าเราเตอร์เพื่อให้เมื่อได้รับลำดับ (รหัส) ของแพ็กเก็ตเครือข่ายบนพอร์ตที่แตกต่างกัน (เราเตอร์) สำหรับ IP จากที่ที่แพ็กเก็ตมา จะปฏิเสธการเข้าถึงทรัพยากรบางอย่าง (พอร์ต โปรโตคอล ฯลฯ .)

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

/ip firewall filter
add action=accept chain=input comment="established and related accept" connection-state=established,related

อนุญาตการรับส่งข้อมูลขาเข้าจากการเชื่อมต่อที่สร้างไว้แล้ว (ที่จัดตั้งขึ้นและเกี่ยวข้อง)
ตอนนี้เรากำหนดค่า Port Knocking บน Mikrotik:

/ip firewall filter
add action=drop chain=input dst-port=19000 protocol=tcp src-address-list="Black_scanners" comment=RemoteRules
add action=drop chain=input dst-port=16000 protocol=tcp src-address-list="Black_scanners" comment=RemoteRules
add action=add-src-to-address-list address-list="remote_port_1" address-list-timeout=1m chain=input dst-port=19000 protocol=tcp comment=RemoteRules
add action=add-src-to-address-list address-list="Black_scanners" address-list-timeout=60m chain=input dst-port=19001 protocol=tcp src-address-list="remote_port_1" comment=RemoteRules
add action=add-src-to-address-list address-list="Black_scanners" address-list-timeout=60m chain=input dst-port=18999 protocol=tcp src-address-list="remote_port_1" comment=RemoteRules
add action=add-src-to-address-list address-list="Black_scanners" address-list-timeout=60m chain=input dst-port=16001 protocol=tcp src-address-list="remote_port_1" comment=RemoteRules
add action=add-src-to-address-list address-list="Black_scanners" address-list-timeout=60m chain=input dst-port=15999 protocol=tcp src-address-list="remote_port_1" comment=RemoteRules
add action=add-src-to-address-list address-list="allow_remote_users" address-list-timeout=1m chain=input dst-port=16000 protocol=tcp src-address-list="remote_port_1" comment=RemoteRules
move [/ip firewall filter find comment=RemoteRules] 1
/ip firewall nat
add action=dst-nat chain=dstnat comment="remote_rdp" src-address-list="allow_remote_users" dst-port=33890 in-interface-list=WAN protocol=tcp to-addresses=192.168.1.33 to-ports=3389

ตอนนี้ในรายละเอียดเพิ่มเติม:

กฎสองข้อแรก

/ip firewall filter
add action=drop chain=input dst-port=19000 protocol=tcp src-address-list="Black_scanners" comment=RemoteRules
add action=drop chain=input dst-port=16000 protocol=tcp src-address-list="Black_scanners" comment=RemoteRules

ห้ามไม่ให้แพ็กเก็ตขาเข้าจากที่อยู่ IP ที่ถูกขึ้นบัญชีดำระหว่างการสแกนพอร์ต

กฎข้อที่สาม:

add action=add-src-to-address-list address-list="remote_port_1" address-list-timeout=1m chain=input dst-port=19000 protocol=tcp comment=RemoteRules

เพิ่ม ip ในรายการโฮสต์ที่ทำเคาะแรกที่ถูกต้องบนพอร์ตที่ต้องการ (19000)
กฎสี่ข้อต่อไปนี้:

add action=add-src-to-address-list address-list="Black_scanners" address-list-timeout=60m chain=input dst-port=19001 protocol=tcp src-address-list="remote_port_1" comment=RemoteRules
add action=add-src-to-address-list address-list="Black_scanners" address-list-timeout=60m chain=input dst-port=18999 protocol=tcp src-address-list="remote_port_1" comment=RemoteRules
add action=add-src-to-address-list address-list="Black_scanners" address-list-timeout=60m chain=input dst-port=16001 protocol=tcp src-address-list="remote_port_1" comment=RemoteRules
add action=add-src-to-address-list address-list="Black_scanners" address-list-timeout=60m chain=input dst-port=15999 protocol=tcp src-address-list="remote_port_1" comment=RemoteRules

สร้างพอร์ตกับดักสำหรับผู้ที่ต้องการสแกนพอร์ตของคุณและเมื่อตรวจพบความพยายามดังกล่าว พวกเขาจะขึ้นบัญชีดำ IP เป็นเวลา 60 นาที ในระหว่างนั้นกฎสองข้อแรกจะไม่ให้โอกาสโฮสต์ดังกล่าวทำการเคาะพอร์ตที่ถูกต้อง

กฎถัดไป:

add action=add-src-to-address-list address-list="allow_remote_users" address-list-timeout=1m chain=input dst-port=16000 protocol=tcp src-address-list="remote_port_1" comment=RemoteRules

วาง ip ไว้ในรายการที่อนุญาตเป็นเวลา 1 นาที (เพียงพอที่จะสร้างการเชื่อมต่อ) เนื่องจากการเคาะที่ถูกต้องครั้งที่สองเกิดขึ้นบนพอร์ตที่ต้องการ (16000)

คำสั่งถัดไป:

move [/ip firewall filter find comment=RemoteRules] 1

ย้ายกฎของเราขึ้นไปบนห่วงโซ่การประมวลผลไฟร์วอลล์ เนื่องจากมีแนวโน้มว่าเราจะมีกฎการห้ามต่างๆ ที่กำหนดค่าไว้อยู่แล้ว ซึ่งจะป้องกันไม่ให้กฎที่สร้างขึ้นใหม่ของเราทำงานได้ กฎข้อแรกสุดใน Mikrotik เริ่มต้นจากศูนย์ แต่บนอุปกรณ์ของฉัน ศูนย์ถูกครอบครองโดยกฎในตัว และมันเป็นไปไม่ได้ที่จะย้ายมัน - ฉันย้ายไปที่ 1 ดังนั้นเราจึงดูที่การตั้งค่าของเรา - ที่ที่เราสามารถย้ายมันได้ และระบุหมายเลขที่ต้องการ

การตั้งค่าถัดไป:

/ip firewall nat
add action=dst-nat chain=dstnat comment="remote_rdp_to_33" src-address-list="allow_remote_users" dst-port=33890 in-interface-list=WAN protocol=tcp to-addresses=192.168.1.33 to-ports=3389

ส่งต่อพอร์ตที่เลือกแบบสุ่ม 33890 ไปยังพอร์ต RDP ปกติ 3389 และ IP ของคอมพิวเตอร์หรือเทอร์มินัลเซิร์ฟเวอร์ที่เราต้องการ เราสร้างกฎดังกล่าวสำหรับทรัพยากรภายในที่จำเป็นทั้งหมด โดยควรตั้งค่าพอร์ตภายนอกที่ไม่ได้มาตรฐาน (และแตกต่างกัน) โดยปกติแล้ว IP ของทรัพยากรภายในต้องเป็นแบบคงที่หรือกำหนดให้กับเซิร์ฟเวอร์ DHCP

ตอนนี้ Mikrotik ของเราได้รับการกำหนดค่าแล้ว และเราต้องการขั้นตอนง่ายๆ เพื่อให้ผู้ใช้เชื่อมต่อกับ RDP ภายในของเรา เนื่องจากเรามีผู้ใช้ Windows เป็นส่วนใหญ่ เราจึงสร้างไฟล์ bat ง่ายๆ และเรียกมันว่า StartRDP.bat:

1.htm
1.rdp

ตามนั้น 1.htm มีรหัสต่อไปนี้:

<img src="http://my_router.sn.mynetname.net:19000/1.jpg">
нажмите обновить страницу для повторного захода по RDP
<img src="http://my_router.sn.mynetname.net:16000/2.jpg">

ที่นี่มีสองลิงก์ไปยังรูปภาพในจินตนาการซึ่งอยู่ที่ที่อยู่ my_router.sn.mynetname.net - เราใช้ที่อยู่นี้จากระบบ Mikrotik DDNS หลังจากเปิดใช้งานสิ่งนี้ใน Mikrotik ของเรา: ไปที่เมนู IP-> Cloud - ตรวจสอบ DDNS Enabled คลิกนำไปใช้และคัดลอกชื่อ DNS ของเราเตอร์ของเรา แต่นี่จำเป็นเฉพาะเมื่อ IP ภายนอกของเราเตอร์เป็นไดนามิกหรือใช้การกำหนดค่ากับผู้ให้บริการอินเทอร์เน็ตหลายราย

พอร์ตในลิงค์แรก: 19000 สอดคล้องกับพอร์ตแรกที่คุณต้องเคาะในวินาทีที่สอดคล้องกับพอร์ตที่สอง ระหว่างลิงก์จะมีคำแนะนำสั้น ๆ ที่แสดงสิ่งที่ต้องทำหากการเชื่อมต่อของเราถูกขัดจังหวะเนื่องจากปัญหาเครือข่ายสั้น - เรารีเฟรชหน้า พอร์ต RDP จะเปิดให้เราอีกครั้งเป็นเวลา 1 นาที และเซสชันของเราจะถูกกู้คืน นอกจากนี้ ข้อความระหว่างแท็ก img ยังสร้างความล่าช้าเล็กน้อยสำหรับเบราว์เซอร์ ซึ่งจะช่วยลดโอกาสที่แพ็กเก็ตแรกจะถูกส่งไปยังพอร์ตที่สอง (16000) - จนถึงขณะนี้ยังไม่มีกรณีดังกล่าวในการใช้งานสองสัปดาห์ (30 ประชากร).

ถัดมาคือไฟล์ 1.rdp ซึ่งเราสามารถกำหนดค่าได้สำหรับทุกคนหรือแยกกันสำหรับผู้ใช้แต่ละคน (นั่นคือสิ่งที่ฉันทำ - มันง่ายกว่าที่จะใช้เวลาเพิ่มอีก 15 นาทีมากกว่าการปรึกษาหารือกับผู้ที่คิดไม่ออกหลายชั่วโมง)

screen mode id:i:2
use multimon:i:1
.....
connection type:i:6
networkautodetect:i:0
.....
disable wallpaper:i:1
.....
full address:s:my_router.sn.mynetname.net:33890
.....
username:s:myuserlogin
domain:s:mydomain

การตั้งค่าที่น่าสนใจประการหนึ่งที่นี่คือการใช้ multimon:i:1 ซึ่งรวมถึงการใช้หลายจอภาพด้วย - บางคนต้องการสิ่งนี้ แต่พวกเขาไม่คิดว่าจะเปิดเอง

ประเภทการเชื่อมต่อ:i:6 และ networkautodetect:i:0 - เนื่องจากอินเทอร์เน็ตส่วนใหญ่อยู่เหนือ 10 Mbit ดังนั้นให้เปิดใช้งานการเชื่อมต่อประเภท 6 (เครือข่ายท้องถิ่น 10 Mbit ขึ้นไป) และปิดใช้งาน networkautodetect เนื่องจากหากค่าเริ่มต้นคือ (อัตโนมัติ) แม้แต่เวลาแฝงของเครือข่ายเล็กน้อยที่หายากจะตั้งค่าความเร็วสำหรับเซสชันของเราโดยอัตโนมัติด้วยความเร็วที่ต่ำกว่าเป็นเวลานานซึ่งสามารถสร้างความล่าช้าในการทำงานได้อย่างเห็นได้ชัดโดยเฉพาะในโปรแกรมกราฟิก

ปิดการใช้งานรูปพื้นหลัง: i:1 - ปิดการใช้งานรูปภาพเดสก์ท็อป
ชื่อผู้ใช้:s:myuserlogin - เราระบุการเข้าสู่ระบบของผู้ใช้ เนื่องจากผู้ใช้ส่วนใหญ่ของเราไม่ทราบข้อมูลการเข้าสู่ระบบของตน
โดเมน:s:mydomain - ระบุโดเมนหรือชื่อคอมพิวเตอร์

แต่หากเราต้องการทำให้งานสร้างขั้นตอนการเชื่อมต่อง่ายขึ้น เราก็สามารถใช้ PowerShell - StartRDP.ps1 ได้เช่นกัน

Test-NetConnection -ComputerName my_router.sn.mynetname.net -Port 19000
Test-NetConnection -ComputerName my_router.sn.mynetname.net -Port 16000
mstsc /v:my_router.sn.mynetname.net:33890

เพียงเล็กน้อยเกี่ยวกับไคลเอนต์ RDP ใน Windows: MS ได้พัฒนาโปรโตคอลและเซิร์ฟเวอร์และส่วนของไคลเอนต์ให้เหมาะสมโดยใช้คุณสมบัติที่มีประโยชน์มากมาย - เช่นการทำงานกับฮาร์ดแวร์ 3D, การปรับความละเอียดหน้าจอให้เหมาะสมสำหรับจอภาพของคุณ, หลายหน้าจอ, ฯลฯ แต่แน่นอนว่าทุกอย่างถูกนำไปใช้ในโหมดความเข้ากันได้แบบย้อนหลังและหากไคลเอนต์คือ Windows 7 และพีซีระยะไกลคือ Windows 10 RDP จะทำงานโดยใช้โปรโตคอลเวอร์ชัน 7.0 แต่โชคดีที่คุณสามารถอัปเดตเวอร์ชัน RDP เป็นเวอร์ชันล่าสุดได้ ตัวอย่างเช่น คุณสามารถอัปเกรดเวอร์ชันโปรโตคอลจาก 7.0 (Windows 7) เป็น 8.1 ดังนั้น เพื่อความสะดวกของไคลเอ็นต์ คุณจะต้องเพิ่มเวอร์ชันของส่วนของเซิร์ฟเวอร์ให้สูงสุด และยังมีลิงก์สำหรับอัปเดตเป็นไคลเอ็นต์โปรโตคอล RDP เวอร์ชันใหม่ด้วย

ด้วยเหตุนี้ เราจึงมีเทคโนโลยีที่เรียบง่ายและปลอดภัยสำหรับการเชื่อมต่อระยะไกลกับพีซีที่ทำงานหรือเทอร์มินัลเซิร์ฟเวอร์ แต่เพื่อการเชื่อมต่อที่ปลอดภัยยิ่งขึ้น วิธีการ Port Knocking ของเราสามารถทำให้การโจมตียากขึ้นได้หลายระดับ โดยการเพิ่มพอร์ตเพื่อตรวจสอบ - โดยใช้ตรรกะเดียวกัน คุณสามารถเพิ่มพอร์ต 3,4,5,6... และ ในกรณีนี้ การบุกรุกเครือข่ายของคุณโดยตรงแทบจะเป็นไปไม่ได้เลย

การเตรียมไฟล์สำหรับสร้างการเชื่อมต่อระยะไกลกับ RDP.

ที่มา: will.com

เพิ่มความคิดเห็น