1.如何平滑升级openssh,服务服务不影响root远程登录?
2.C++ä¸å¦ä½å®ç°ç«¯å£çè§
如何平滑升级openssh,不影响root远程登录?
为确保您的系统安全,可能需要更新OpenSSH至最新版本。源码此过程需同时更新OpenSSL和OpenSSH,服务服务因为OpenSSH依赖于OpenSSL。源码 首先,服务服务检查当前使用的源码源码资本出资OpenSSH服务版本。执行命令:ssh -V。服务服务 接着,源码为了防止在卸载OpenSSH过程中导致无法登录主机,服务服务安装并启动telnet服务。源码命令如下:使用yum -y install telnet安装telnet。服务服务
使用yum -y install telnet-server安装telnet-server。源码
启用telnet服务,服务服务exe源码怎么读命令为systemctl enable telnet.socket,源码并启动服务systemctl start telnet.socket。服务服务
继续,准备更新OpenSSH所需的依赖包,命令为:yum -y install gcc keyutils-libs rpm-build krb5-devel libcom_err-devel libselinux-devel pam-* openssl-devel pkgconfig vsftpd zlib*。 为了安全起见,波浪之子公式源码备份原有的SSH服务版本,执行以下命令:将/etc/ssh重命名为/etc/ssh.bak。
将/usr/bin/ssh重命名为/usr/bin/ssh.bak。
将/usr/sbin/sshd重命名为/usr/sbin/sshd.bak。
下载最新版本的OpenSSH安装包,即openssh-9.7p1.tar.gz,游资攻击指标源码并将此安装包通过WinSCP上传至/opt文件夹。 卸载原有版本的OpenSSH rpm安装包,先查看是否需要删除的依赖包,然后执行卸载命令。如果提示有依赖文件,则使用强力删除模式:使用rpm -e `rpm -qa | grep openssh`卸载。rocketmq选主源码
若提示依赖文件存在,则使用rpm -e `rpm -qa | grep openssh` --nodeps强力删除。
编译并安装新版本的OpenSSH,首先解压下载的安装包,然后进入解压路径编译安装:使用cd /opt进入目录。
解压安装包tar zxvf openssh-9.7p1.tar.gz。
使用命令cd /opt/openssh-9.7p1/进入安装目录。
执行./configure --sysconfdir=/etc/ssh进行配置。
验证OpenSSH的执行路径,执行命令:which sshd。 复制源码解压路径下的开机启动脚本sshd.init到/etc/init.d/文件夹,并启动sshd服务:使用cp /opt/openssh-9.7p1/contrib/redhat/sshd.init /etc/init.d/sshd复制。
使用systemctl daemon-reload和service sshd start启动sshd服务。
修改配置文件sshd_config,允许root用户通过ssh远程登录,使用命令:sed -i "/#PermitRootLogin prohibit-password/c\PermitRootLogin yes" /etc/ssh/sshd_config修改。 复制源码解压路径的ssh-copy-id文件至/usr/local/bin/,并赋予执行权限:使用cp /opt/openssh-9.7p1/contrib/ssh-copy-id /usr/local/bin/复制。
使用chmod +x /opt/openssh-9.7p1/contrib/ssh-copy-id设置权限。
最后,验证OpenSSH更新是否成功,执行/usr/local/bin/ssh -V命令查看结果,若显示为OpenSSH_9.7p1,则更新完成。 完成以上步骤后,使用命令mv /etc/security.bak /etc/security重新启用安全文件。C++ä¸å¦ä½å®ç°ç«¯å£çè§
ççæ没æç¨
==============
#include "stdafx.h"
#include <winsock2.h>
#include <windows.h>
//#include <stdio.h>
#include <stdlib.h>
#include <fstream.h>
DWORD WINAPI ClientThread(LPVOID lpParam);
int main(int argc, char* argv[])
{
if (argc!=2)
{
printf("using: listen [your ip address]\nfor example:\n listen ...2\n");
return 0;
}
WORD wVersionRequested;
DWORD ret;
WSADATA wsaData;
BOOL val;
SOCKADDR_IN saddr;
SOCKADDR_IN scaddr;
int err;
SOCKET s;
SOCKET sc;
int caddsize;
HANDLE mt;
DWORD tid;
wVersionRequested = MAKEWORD( 2, 2 );
err = WSAStartup( wVersionRequested, &wsaData );
if ( err != 0 ) {
printf("error!WSAStartup failed!\n");
return -1;
}
saddr.sin_family = AF_INET;
//æªå¬è½ç¶ä¹å¯ä»¥å°å°åæå®ä¸ºINADDR_ANYï¼ä½æ¯è¦ä¸è½å½±åæ£å¸¸åºç¨æ åµä¸ï¼åºè¯¥æå®å ·ä½çIPï¼çä¸.0.0.1ç»æ£å¸¸çæå¡åºç¨ï¼ç¶åå©ç¨è¿ä¸ªå°åè¿è¡è½¬åï¼å°±å¯ä»¥ä¸å½±å对æ¹æ£å¸¸åºç¨äº
saddr.sin_addr.s_addr = inet_addr(argv[1]);
saddr.sin_port = htons();
if((s=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP))==SOCKET_ERROR)
{
printf("error!socket failed!\n");
return -1;
}
val = TRUE;
//SO_REUSEADDRé项就æ¯å¯ä»¥å®ç°ç«¯å£éç»å®ç
if(setsockopt(s,SOL_SOCKET,SO_REUSEADDR,(char *)&val,sizeof(val))!=0)
{
printf("error!setsockopt failed!\n");
return -1;
}
//å¦ææå®äºSO_EXCLUSIVEADDRUSEï¼å°±ä¸ä¼ç»å®æåï¼è¿åæ æéçé误代ç ï¼
//å¦ææ¯æ³éè¿éå©ç¨ç«¯å£è¾¾å°éèçç®çï¼å°±å¯ä»¥å¨æçæµè¯å½åå·²ç»å®ç端å£åªä¸ªå¯ä»¥æåï¼å°±è¯´æå ·å¤è¿ä¸ªæ¼æ´ï¼ç¶åå¨æå©ç¨ç«¯å£ä½¿å¾æ´éè½
//å ¶å®UDP端å£ä¸æ ·å¯ä»¥è¿æ ·éç»å®å©ç¨ï¼è¿å¿ä¸»è¦æ¯ä»¥TELNETæå¡ä¸ºä¾åè¿è¡æ»å»
if(bind(s,(SOCKADDR *)&saddr,sizeof(saddr))==SOCKET_ERROR)
{
ret=GetLastError();
printf("error!bind failed!\n");
return -1;
}
listen(s,2);
while(1)
{
caddsize = sizeof(scaddr);
//æ¥åè¿æ¥è¯·æ±
sc = accept(s,(struct sockaddr *)&scaddr,&caddsize);
if(sc!=INVALID_SOCKET)
{
mt = CreateThread(NULL,0,ClientThread,(LPVOID)sc,0,&tid);
if(mt==NULL)
{
printf("Thread Creat Failed!\n");
break;
}
}
CloseHandle(mt);
}
closesocket(s);
WSACleanup();
return 0;
}
DWORD WINAPI ClientThread(LPVOID lpParam)
{
SOCKET ss = (SOCKET)lpParam;
SOCKET sc;
char buf[];
SOCKADDR_IN saddr;
long num;
DWORD val;
DWORD ret;
//å¦ææ¯éè端å£åºç¨çè¯ï¼å¯ä»¥å¨æ¤å¤å ä¸äºå¤æ
//å¦ææ¯èªå·±çå ï¼å°±å¯ä»¥è¿è¡ä¸äºç¹æ®å¤çï¼ä¸æ¯çè¯éè¿.0.0.1è¿è¡è½¬å
saddr.sin_family = AF_INET;
saddr.sin_addr.s_addr = inet_addr(".0.0.1");
saddr.sin_port = htons();
if((sc=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP))==SOCKET_ERROR)
{
printf("error!socket failed!\n");
return -1;
}
val = ;
if(setsockopt(sc,SOL_SOCKET,SO_RCVTIMEO,(char *)&val,sizeof(val))!=0)
{
ret = GetLastError();
return -1;
}
if(setsockopt(ss,SOL_SOCKET,SO_RCVTIMEO,(char *)&val,sizeof(val))!=0)
{
ret = GetLastError();
return -1;
}
if(connect(sc,(SOCKADDR *)&saddr,sizeof(saddr))!=0)
{
printf("error!socket connect failed!\n");
closesocket(sc);
closesocket(ss);
return -1;
}
// åå ¥æ件:
ofstream oFile("portlog.txt");
if(!oFile)
{
printf("cannot write to the file.\n");
closesocket(ss);
closesocket(sc);
return 0 ;
}
while(1)
{
//ä¸é¢ç代ç 主è¦æ¯å®ç°éè¿ã0ã0ã1è¿ä¸ªå°åæå 转åå°çæ£çåºç¨ä¸ï¼å¹¶æåºççå å转ååå»ã
//å¦ææ¯å æ¢å 容çè¯ï¼å¯ä»¥åæ¤å¤è¿è¡å 容åæåè®°å½
//å¦ææ¯æ»å»å¦TELNETæå¡å¨ï¼å©ç¨å ¶é«æéç»éç¨æ·çè¯ï¼å¯ä»¥åæå ¶ç»éç¨æ·ï¼ç¶åå©ç¨åéç¹å®çå 以å«æçç¨æ·èº«ä»½æ§è¡ã
num = recv(ss,buf,,0);
if(num>0)
{
oFile<<"\n== DATA =========================================\n";
oFile<<buf;
send(sc,buf,num,0);
}
else if(num==0)
break;
num = recv(sc,buf,,0);
if(num>0)
{
oFile<<"\n== DATA =========================================\n";
oFile<<buf;
send(ss,buf,num,0);
}
else if(num==0)
break;
}
oFile.close();
closesocket(ss);
closesocket(sc);
return 0 ;
}
2024-12-28 20:431957人浏览
2024-12-28 20:411311人浏览
2024-12-28 20:172075人浏览
2024-12-28 19:36245人浏览
2024-12-28 18:561940人浏览
2024-12-28 18:382144人浏览
台灣已經邁入高齡化社會,罹患神經退化疾病的長者也越來越多,巴金森氏病是僅次於阿茲海默症,為盛行率第2名的神經退化疾病,從國健署的統計資料中顯示大於40歲開始罹患的比例開始增加。既然每個人都無法預測自己
今年是人類登陸月球50週年,最新一期《時代》雜誌和《經濟學人》的封面故事不約而同以太空作為主題。冷戰時代美蘇兩強間的太空計競賽,如今成了多國之間的角力戰,包括中國、印度等新興國家的實力和野心更是不容小
在防疫防控期间,北京市石景山区市场监管局加大聚焦疫情防控一线工作面,尤其是辖区各大医院的特种设备一直是安全工作中的重点,特别是对承担新型冠状病毒收治定点医院任务的石景山医院压力容器进行定期检验,包括高