跳到主要內容

Windows-使用 PowerShell 更改 RDP Port Number & 調整防火牆規則

目的:服務器在啟用遠端桌面預設值為"3389",因為對管理上有風險,所以需要更改遠端桌面的端口號、調整防火牆規則增加安全性。

  • PowerShell內容 
  • GitHub:https://github.com/minyufu/powershell.git
function Pause(){
[System.Console]::Write('按任意鍵繼續...')
[void][System.Console]::ReadKey(1)
}
#用途:更改預設RDP端口號並添加防火牆規則

Write-Output "-----目前RDP使用端口號-----"
$Now_RDP_PortNumber = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal*Server\WinStations\RDP-TCP\" -Name PortNumber | Select-Object PortNumber
Write-Output "PortNumber: $Now_RDP_PortNumber"

#使用者輸入需要修改的端口號:
$New_Rdp_PortNumber = Read-Host -Prompt '輸入新的RDP端口號'

#設定新的端口號
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal*Server\WinStations\RDP-TCP\" -Name PortNumber -Value $New_Rdp_PortNumber

#加入TCP防火牆規則
New-NetFirewallRule -DisplayName "遠程桌面(TCP-In) $New_Rdp_PortNumber" -Direction Inbound -Protocol TCP -Profile Any -LocalPort $New_Rdp_PortNumber -Action allow
Write-Output "遠程桌面(TCP-In)防火牆規則添加完成"

#加入UDP防火牆規則
New-NetFirewallRule -DisplayName "遠程桌面(UDP-In) $New_Rdp_PortNumber" -Direction Inbound -Protocol TCP -Profile Any -LocalPort $New_Rdp_PortNumber -Action allow
Write-Output "遠程桌面(UDP-In)防火牆規則添加完成"

#確認RDP端口修改完成
$Now_RDP_PortNumber = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal*Server\WinStations\RDP-TCP\" -Name PortNumber | Select-Object PortNumber
Write-Output "Now Use RDP Port Number: $Now_RDP_PortNumber"
Pause
  • 執行的過程

  • 下一步查看防火牆規則列表,將預設3389端口規則啟用並阻擋。
Set-NetfirewallRule -DisplayName "遠端桌面 - 使用者模式 (TCP-In)" -Enabled True -Action Block
Set-NetfirewallRule -DisplayName "遠端桌面 - 使用者模式 (UDP-In)" -Enabled True -Action Block


  • 補充-如果執行ps1檔出現"系統上已停用指令碼執行錯誤",請使用管理員權限開啟執行PowerShell輸入以下指令信任腳本檔案。
$ Set-ExecutionPolicy RemoteSigned

留言

這個網誌中的熱門文章

Linux-CentOS7 使用 Bind 架設 DNS Server & DNS正解

DNS (Domain Name System)服務 提供域名解析,相較於IP位址(IP Address),域名(Domain name)讓使用者容易記憶,使用域名對應IP位址。 1.安裝 BIND 套件 # sudo yum install bind

Linux-CentOS7 Bind 設置 DNS反解(rDNS) & 增加次要(Slave)伺服器

DNS 反解 : 將IP轉換成域名,通常需要 Class C 或是跟上層網路業者申請 ➽此使用內部網路做DNS反解測試。 1.在主設定檔(/etc/named.conf)添加反解區域(240.168.192.in-addr.arpr) # sudo vim /etc/named.conf zone "240.168.192.in-addr.arpa" IN { type master; file "240.168.192.txt"; }; 2.編輯 反解區域檔案(240.168.192.txt),完成後儲存檔案 # sudo vim/var/named/240.168.192.txt 3.重新啟動 Bind 服務&查看 Bind 服務狀態 # sudo systemctl restart named # sudo systemctl status named 4.使用 nslookup 工具測試 server xxx.xxx.xxx.xxx  --> 指定 DNS 服務器 反解測試完成!! DNS次要(Slave)服務器: 主要減少主伺服器的負擔,還有DNS服務器備機的用途。 1.在主要(Master)DNS服務器,正解及反解區域添加: allow-transfer { }; notify yes; 2.重啟主要(Master)DNS服務器的 Bind 服務 # sudo system restart named 3.次要(Slave)服務器安裝 Bind # sudo yum install -y bind 4.編輯 Slave 的 Bind 主設定檔 # sudo vim /etc/named.conf listen-on port 53 {}; //加入次要服務器 IP allow-query {}; //開放允許查詢的網段 // 加入正解區域 zone "brookdns.local" IN { type slave; masters {192.168.240.14

Linux & Windows 使用 SSH 公開金鑰(Public Key Authentication) 登入遠端主機(Linux Server)

目的: 讓SSH連線更加安全及便利 Step1 Linux Server 配置 1.在需要使用金鑰驗證的使用者(brookadmin)家目錄建立一個 .ssh 資料夾 ,權限 700 # mkdir .ssh 2.在 .ssh 資料夾內 建立一個 authorized_keys 的檔案,權限600,這裡會存放 client 端的Pubkey #touch authorized_keys Step2 Linux Client 使用 ssh-keygen 產生金鑰   1.進到使用者家目錄下 .ssh 目錄,使用指令 ssh-keygen 產生金鑰 2.將生成的公鑰存至要連線的服務器,使用指令 ssh-copy-id #sudo ssh-copy-id -i ~/.ssh/id_rsa.pub -p 22168 brookadmin@192.168.240.148 Windows Client 使用 ssh-keygen 產生金鑰 1.使用的windows作業系統是win 10,打開 cmd 命令提示字元,使用指令 ssh-keygen 產生金鑰,金鑰位置:C:\Users\ your username \.ssh,使用者的 .ssh 資料夾下 2.將 id_rsa.pub文件內容金鑰,添加到遠程linux server管理帳號下家目錄的 .ssh/authorized_keys 檔案裡 Step3 Linux Server 配置 1.將 Linux Client 跟 Windows Client 的 id_rsa.pub(公開金鑰)內容依序加入檔案,如果沒有金鑰可以先使用 ssh-keygen 產生,公開金鑰檔名可以自訂,需記住使用哪一組,加入金鑰後的authorized_keys 檔案內容就像圖片所示 2.編輯 SSH 設定檔 > sudo vim /etc/ssh/sshd_config #找到 PubkeyAuthentication 將註解#拿掉 並修改參數 #找到 PasswordAuthentication 修改參數為 no 3.重新啟動 ssh 服務,讓設定生效 #sudo systemctl restart sshd