简介
总所周知,windows的3389端口是个危险端口,开启后容易被爆破密码,但有时候为了运维方便,又不得不开启。本文给出一段使用PHP开启和关闭RDP服务的代码供参考。使用以下代码,可以在不需要RDP服务时关闭RDP,需要时再打开。
开关RDP服务
原理
开启和关闭远程桌面,是通过修改注册表来实现的。当HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server
中的fDenyTSConnections
的值为1时,表示关闭了远程桌面,为0时表示开启。
只需要通过PHP来修改注册表即可。
PHP代码
<?php
function openRdp()
{
$cmd = "REG query \"HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\" /v fDenyTSConnections";
exec($cmd,$output, $return_val);
if(strstr($output['2'],'0x0')!==false){
//已开启状态
}else{
//已关闭状态
$cmd = "REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal\" \"Server /v fDenyTSConnections /t REG_DWORD /d 0 /f 2>&1";
exec($cmd,$output, $return_val);
if($return_val!=0){
$data['code'] = 1;
$data['error'] = $output[0];
echo json_encode($data);exit();
}
}
$data['code'] = 0;
echo json_encode($data);exit();
}
function stopRdp()
{
$cmd = "REG query \"HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\" /v fDenyTSConnections";
exec($cmd,$output, $return_val);
if(strstr($output['2'],'0x0')!==false){
//已开启状态
for($i=0;$i<=10;$i++){
$cmd = "ECHO Y|logoff {$i}";
exec($cmd);
}
$cmd = "REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal\" \"Server /v fDenyTSConnections /t REG_DWORD /d 1 /f 2>&1";
exec($cmd,$output, $return_val);
if($return_val!=0){
$data['code'] = 1;
$data['error'] = $output[0];
echo json_encode($data);exit();
}
}else{
//已关闭状态
}
$data['code'] = 0;
echo json_encode($data);exit();
}
$action = $_GET['action'];
if($action == 'open'){
openRdp();
exit();
}
if($action == 'stop'){
stopRdp();
exit();
}
echo 'wait';
开关网络适配器
在突发情况,需要立即停掉网络(拔掉网线)时,可以使用以下代码来达到断网的目的:
查询网络适配器名称
禁用网络适配器
启用网络适配器
PHP代码
function openNetWork() { $cmd = "netsh interface set interface \"以太网\" enable"; exec($cmd,$output, $return_val); if($return_val!=0){ $data['code'] = 1; $data['error'] = $output[0]; echo json_encode($data);exit(); } $cmd = "schtasks /Delete /tn opennetWork /f"; exec($cmd); $data['code'] = 0; echo json_encode($data);exit(); } function stopNetWork() { //添加定时任务(1分钟后开启网络) if(!file_exists('C:\Windows\System32\openNetwork.bat')){ $content = <<<CODE @echo off echo **************************************** echo 开启网络 echo **************************************** :: 开启网络 netsh interface set interface "以太网" enable :: 删除计划任务 schtasks /Delete /tn opennetWork /f echo 已开启! CODE; $content = iconv("UTF-8","gbk//TRANSLIT",$content); file_put_contents('C:\Windows\System32\openNetwork.bat',$content); } $time = date('H:i:s',strtotime('+1 minute')); $cmd = "schtasks /create /tn opennetWork /tr C:/Windows/System32/openNetwork.bat /f /RU System /sc ONCE /st ".$time; exec($cmd); //关闭网络 $cmd = "netsh interface set interface \"以太网\" disable"; exec($cmd,$output, $return_val); if($return_val!=0){ $data['code'] = 1; $data['error'] = $output[0]; echo json_encode($data);exit(); } $data['code'] = 0; echo json_encode($data);exit(); } $action = $_GET['action']?:$_SERVER['argv'][1]; if($action == 'open'){ openNetWork(); exit(); } if($action == 'stop'){ stopNetWork(); exit(); } echo 'wait';
关闭ssh服务
Linux服务器,可以通过关闭ssh服务来提高安全性。如果你安装了宝塔面板,可以直接在宝塔面板中的“安全”菜单关闭,也可以通过命令来关闭。需要注意的是关闭后,你将不能通过ssh的方式登录服务器。
查看你的linux服务器版本:
如果是centos7、centos8 或 Fedora,通过如下命令关闭:
其他版本使用如下命令关闭:
推荐本站淘宝优惠价购买喜欢的宝贝:
本文链接:https://sg.hqyman.cn/post/9565.html 非本站原创文章欢迎转载,原创文章需保留本站地址!
休息一下~~