CN111083087A - 实现ssh安全登录的方法、系统、存储介质及设备 - Google Patents
实现ssh安全登录的方法、系统、存储介质及设备 Download PDFInfo
- Publication number
- CN111083087A CN111083087A CN201811215817.5A CN201811215817A CN111083087A CN 111083087 A CN111083087 A CN 111083087A CN 201811215817 A CN201811215817 A CN 201811215817A CN 111083087 A CN111083087 A CN 111083087A
- Authority
- CN
- China
- Prior art keywords
- ssh
- module
- secure login
- pam
- locking
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1425—Traffic logging, e.g. anomaly detection
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种实现ssh安全登录的方法、系统、存储介质及设备,所述实现ssh安全登录的方法包括:导入pam‑abl模块;监测安全状况;当发现安全异常时锁定账号和来源IP地址。本发明解决了利用ssh登录进行暴力破解从而进行网络攻击的问题。并创造性的利用pam‑abl模块导入ssh系统中成功实现了对单独IP以及单独账号进行限制、锁定及解锁的安全保护功能。
Description
技术领域
本发明特别是涉及一种实现ssh安全登录的方法、系统、存储介质及设备。
背景技术
随着网络的逐渐普及发达,网络攻击日益上升,网络安全问题已经成为了非常重要的安全问题之一。
在众多的网络攻击方法中,对SSH系统登录的暴力破解是一种常见的攻击方式,已经严重影响到了SSH系统的安全,目前对SSH系统的暴力破解攻击应对方式还停留在进行单一的大范围限制,而不能对特定的攻击者进行单独的IP和账户锁定,从而导致了亟待解决的异常严重的网络安全问题。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种实现ssh安全登录的方法、系统、存储介质及设备,用于解决现有技术中利用ssh登录进行暴力破解从而进行网络攻击的问题。
为实现上述目的及其他相关目的,本发明提供一种实现ssh安全登录的方法,所述实现ssh安全登录的方法包括:导入pam-abl模块;监测安全状况;当发现安全异常时锁定账号和来源IP地址。
于本发明的一实施例中,所述安全状况包括:错误尝试。
于本发明的一实施例中,所述锁定包括:自动锁定和手动锁定。
于本发明的一实施例中,所述实现ssh安全登录的方法还包括:在锁定所述账号和所述来源IP地址并且安全异常解除后进行手动解锁。
于本发明的一实施例中,所述当发现安全异常时自动锁定账号和来源IP地址的一种实现过程包括:判断所述错误尝试是否超过阈值;若是,锁定所述账号和所述来源IP;若否,继续监测判断所述错误尝试是否超过阈值。
为实现上述目的及其他相关目的,本发明提供一种实现ssh安全登录的系统,所述实现ssh安全登录的系统包括:pam-abl模块,监测安全状况;当发现安全异常时锁定账号和来源IP地址;处理模块,与所述pam-abl模块通信相连,用于系统处理;ssh模块,导入pam-abl模块,与所述处理模块通信相连。
于本发明的一实施例中,所述实现ssh安全登录的方法还包括:在锁定所述账号和所述来源IP地址后手动解锁。
于本发明的一实施例中,所述实现ssh安全登录的系统包括:pam-abl模块,监测安全状况;当发现安全异常时锁定账号和来源IP地址;处理模块,与所述pam-abl模块通信相连,用于系统处理;ssh模块,导入pam-abl模块,与所述处理模块通信相连。
为实现上述目的及其他相关目的,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时如本发明所述实现ssh安全登录的方法。
为实现上述目的及其他相关目的,本发明还提供一种设备,所述设备包括:所述存储器用于存储计算机程序,所述处理器用于执行所述存储器存储的计算机程序,以使所述设备执行如本发明所述实现ssh安全登录的方法。
如上所述,本发明的一种实现ssh安全登录的方法、系统、存储介质及设备,具有以下有益效果:本发明解决了利用ssh登录进行暴力破解从而进行网络攻击的问题。并创造性的利用pam-abl模块导入ssh系统中成功实现了对单独IP以及单独账号进行限制、锁定及解锁的安全保护功能。
附图说明
图1A显示为本发明实施例所述的一种实现ssh安全登录的方法的一种实现流程示意图。
图1B显示为本发明实施例所述的一种实现ssh安全登录的方法的一种实现流程示意图。
图2显示为本发明实施例所述的一种实现ssh安全登录的系统的一种结构示意图。
图3显示为本发明实施例所述的一种设备的一种结构示意图。
元件标号说明
20 实现ssh安全登录的系统
21 pam-abl模块
22 处理模块
23 ssh模块
30 设备
31 处理器
32 存储器
S101~S203 步骤
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
请参阅图1A和1B,为实现上述目的及其他相关目的,本发明提供一种实现ssh安全登录的方法,所述实现ssh安全登录的方法包括:
S101、导入pam-abl模块21;
S102、监测安全状况;
S103、当发现安全异常时锁定账号和来源IP地址。
于本发明的一实施例中,所述安全状况包括:错误尝试。
于本发明的一实施例中,所述锁定包括:自动锁定和手动锁定。
于本发明的一实施例中,所述实现ssh安全登录的方法还包括:在锁定所述账号和所述来源IP地址后手动解锁。
于本发明的一实施例中,所述当发现安全异常时自动锁定账号和来源IP地址的一种实现过程包括:
S201、判断所述错误尝试是否超过阈值;
S202、若是,锁定所述账号和所述来源IP;
S203、若否,继续监测判断所述错误尝试是否超过阈值。
——更具体的情况是,SSH登录暴力破解是常见网络攻击一种,ssh服务结合pam_abl模块实现了对ssh登录的认证统计,当错误的尝试超过阈值时,可自动锁定账号和来源IP地址,以此来防止用户账号和密码被暴力破解。也提供了手动锁定和解锁功能。
——pam-abl,PAM(Pluggable Authenticatiion Modules)开发的pam_abl模块能实现自动对试图登录ssh的每个认证进行统计,对大量错误的试图尝试通过认证的登录进行必要的封杀,这样对于使用SSH服务的Unix和Linux服务器管理人员来说,方便了很多,在我们面临大量的针对SSH的暴力攻击头疼的时候,完全可以采用此模块实现防御。
在具体的实施过程中:我们需要下载源代码并进行编译安装,其中一个实施例为:
#tar zxvf pam_abl-0.2.3.tar.gz
#cd pam_abl
#make&&make install
#cp conf/pam_abl.conf/etc/security/
配置:
编辑/etc/pam.d/system-auth文件,加入pam_abl.so模块,下面是一个例子:
#%PAM-1.0
#This file is auto-generated.
#User changes will be destroyed the next time authconfig is run.
auth required/lib/security/pam_env.so
auth required/lib/security/pam_abl.so config=/etc/security/pam_abl.conf
auth sufficient/lib/security/pam_unix.so likeauth nullok
auth required/lib/security/pam_deny.so
account sufficient/lib/security/pam_succeed_if.so uid<100
account required/lib/security/pam_unix.so
password requisite/lib/security/pam_cracklib.so retry=3
password sufficient/lib/security/pam_unix.so nullok use_authtokmd5shadow
password required/lib/security/pam_deny.so
session required/lib/security/pam_limits.so
session required/lib/security/pam_unix.so
接下来就是配置pam_abl了,我们编辑配置文件/etc/security/pam_abl.conf,内容如下:
#/etc/security/pam_abl.conf
#debug
host_db=/var/lib/abl/hosts.db
host_purge=2d
host_rule=*:3/1h,30/1d
user_db=/var/lib/abl/users.db
user_purge=2d
user_rule=!root:3/1h,30/1d
简单解释一下上面这个配置文件:
第2行
host_db=/var/lib/abl/hosts.db
和第5行
user_db=/var/lib/abl/users.db
分别定义了被禁止的主机名和用户列表保存到哪里。第3行
host_purge=2d
和第6行
user_purge=2d
分别定义了禁止的主机和用户的释放时间,也就是多长时间后解禁。这里定义的是2天后,
主机和用户都会解禁。第4行
host_rule=*:3/1h,30/1d
和第7行
user_rule=!root:3/1h,30/1d
分别定义了主机和用户规则,我们看看他的语法规则。
他的规则如下:
host或user_rule=:<尝试次数>/<禁止时间>,<尝试次数>/<禁止时间>
因此上面的配置文件第4行host_rule=*:3/1h,30/1d主机规则的意思是禁止所有的主机(*表示),在一个小时内当错误的连接次数达到或者超过3次时禁止,在1天内当超过30次时禁止。第7行用户规则user_rule=!root:3/1h,30/1d意思是所有的用户,除了root(用!root表示)在最近的一个小时内连接错误达到三次就禁止,或者最近的一天超过30次就禁止。
当然,你也可以定义你选择的那些用户,比如:
anze|dasa|kimzet|madison:20/1h
这意味着上面的四个用户anze,dasa,kimzet,madison将被禁止,如果在最近的一个小时内连接错误次数达到20次。
注:这里说的连接次数,是指你建立连接,然后输入密码,当缺省输入三次密码都不正确时,就退出了,这就算一次。
测试:
现在我们可以测试我们的配置了,打开终端,远程连接一下,尝试连接次数超过三次,你应该可以下面下面类似的结果:
pam_abl[6248]:Blocking access from sataras.example.com to servicessh,user madison
你可以用命令pam_abl查看被禁止的用户和主机:
#pam_abl
Failed users:
madison(3)
Blocking users[!root]
Failed hosts:
sataras.example.com(3)
Blocking users[*]
这就表示用户madison和主机sataras.example.com被禁止了,你可以尝试再次连接机器,并输入正确的密码,也打印"权限禁止"的提示。
——SSH为Secure Shell的缩写,由IETF的网络小组(Network Working Group)所制定;SSH为建立在应用层基础上的安全协议。SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用SSH协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。几乎所有UNIX平台—包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平台,都可运行SSH。
传统的网络服务程序,如:ftp、pop和telnet在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,别有用心的人非常容易就可以截获这些口令和数据。而且,这些服务程序的安全验证方式也是有其弱点的,就是很容易受到“中间人”(man-in-the-middle)这种方式的攻击。所谓“中间人”的攻击方式,就是“中间人”冒充真正的服务器接收你传给服务器的数据,然后再冒充你把数据传给真正的服务器。服务器和你之间的数据传送被“中间人”一转手做了手脚之后,就会出现很严重的问题。通过使用SSH,你可以把所有传输的数据进行加密,这样"中间人"这种攻击方式就不可能实现了,而且也能够防止DNS欺骗和IP欺骗。使用SSH,还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。SSH有很多功能,它既可以代替Telnet,又可以为FTP、PoP、甚至为PPP提供一个安全的"通道"。
从客户端来看,SSH提供两种级别的安全验证。
第一种级别(基于口令的安全验证):
只要你知道自己帐号和口令,就可以登录到远程主机。所有传输的数据都会被加密,但是不能保证你正在连接的服务器就是你想连接的服务器。可能会有别的服务器在冒充真正的服务器,也就是受到“中间人”这种方式的攻击。
第二种级别(基于密匙的安全验证):
需要依靠密匙,也就是你必须为自己创建一对密匙,并把公用密匙放在需要访问的服务器上。如果你要连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用你的密匙进行安全验证。服务器收到请求之后,先在该服务器上你的主目录下寻找你的公用密匙,然后把它和你发送过来的公用密匙进行比较。如果两个密匙一致,服务器就用公用密匙加密“质询”(challenge)并把它发送给客户端软件。客户端软件收到“质询”之后就可以用你的私人密匙解密再把它发送给服务器。
用这种方式,你必须知道自己密匙的口令。但是,与第一种级别相比,第二种级别不需要在网络上传送口令。
第二种级别不仅加密所有传送的数据,而且“中间人”这种攻击方式也是不可能的(因为他没有你的私人密匙)。但是整个登录的过程可能需要10秒。
如果你考察一下接入ISP(Internet Service Provider,互联网服务供应商)或大学的方法,一般都是采用Telnet或POP邮件客户进程。因此,每当要进入自己的账号时,你输入的密码将会以明码方式发送(即没有保护,直接可读),这就给攻击者一个盗用你账号的机会—最终你将为他的行为负责。由于SSH的源代码是公开的,所以在Unix世界里它获得了广泛的认可。Linux其源代码也是公开的,大众可以免费获得,并同时获得了类似的认可。这就使得所有开发者(或任何人)都可以通过补丁程序或b u g修补来提高其性能,甚至还可以增加功能。开发者获得并安装SSH意味着其性能可以不断提高而无须得到来自原始创作者的直接技术支持。SSH替代了不安全的远程应用程序。SSH是设计用来替代伯克利版本的r命令集的;它同时继承了类似的语法。其结果是,使用者注意不到使用SSH和r命令集的区别。利用它,你还可以干一些很酷的事。通过使用SSH,你在不安全的网络中发送信息时不必担心会被监听。你也可以使用POP通道和Telnet方式,通过SSH可以利用PPP通道创建一个虚拟个人网络(Virtual Private Network,VPN)。SSH也支持一些其他的身份认证方法,如Kerberos和安全ID卡等。
但是因为受版权和加密算法的限制,可以预计将来会有越来越多的人使用SSH而不是Telnet或者POP3等。
SSH主要由三部分组成:
传输层协议[SSH-TRANS]
提供了服务器认证,保密性及完整性。此外它有时还提供压缩功能。SSH-TRANS通常运行在TCP/IP连接上,也可能用于其它可靠数据流上。SSH-TRANS提供了强力的加密技术、密码主机认证及完整性保护。该协议中的认证基于主机,并且该协议不执行用户认证。更高层的用户认证协议可以设计为在此协议之上。
用户认证协议[SSH-USERAUTH]
用于向服务器提供客户端用户鉴别功能。它运行在传输层协议SSH-TRANS上面。当SSH-USERAUTH开始后,它从低层协议那里接收会话标识符(从第一次密钥交换中的交换哈希H)。会话标识符唯一标识此会话并且适用于标记以证明私钥的所有权。SSH-USERAUTH也需要知道低层协议是否提供保密性保护。
连接协议[SSH-CONNECT]
将多个加密隧道分成逻辑通道。它运行在用户认证协议上。它提供了交互式登录话路、远程命令执行、转发TCP/IP连接和转发X11连接。
SSH是由客户端和服务端的软件组成的,有两个不兼容的版本分别是:1.x和2.x。用SSH 2.x的客户程序是不能连接到SSH 1.x的服务程序上去的。OpenSSH 2.x同时支持SSH1.x和2.x。
服务端是一个守护进程(daemon),他在后台运行并响应来自客户端的连接请求。服务端一般是sshd进程,提供了对远程连接的处理,一般包括公共密钥认证、密钥交换、对称密钥加密和非安全连接。
客户端包含ssh程序以及像scp(远程拷贝)、slogin(远程登陆)、sftp(安全文件传输)等其他的应用程序。
他们的工作机制大致是本地的客户端发送一个连接请求到远程的服务端,服务端检查申请的包和IP地址再发送密钥给SSH的客户端,本地再将密钥发回给服务端,自此连接建立。SSH 1.x和SSH 2.x在连接协议上有一些差异。
一旦建立一个安全传输层连接,客户机就发送一个服务请求。当用户认证完成之后,会发送第二个服务请求。这样就允许新定义的协议可以与上述协议共存。连接协议提供了用途广泛的各种通道,有标准的方法用于建立安全交互式会话外壳和转发(“隧道技术”)专有TCP/IP端口和X11连接。
SSH被设计成为工作于自己的基础之上而不利用超级服务器(inetd),虽然可以通过inetd上的tcpd来运行SSH进程,但是这完全没有必要。启动SSH服务器后,sshd运行起来并在默认的22端口进行监听(你可以用#ps-waux|grep sshd来查看sshd是否已经被正确的运行了)如果不是通过inetd启动的SSH,那么SSH就将一直等待连接请求。当请求到来的时候SSH守护进程会产生一个子进程,该子进程进行这次的连接处理。
具体的,SSH另类应用:用ssh做socks5代理:
1.下载MyEntunnel。
2.下载PuTTY,解压到MyEntunnel程序的目录下。
3.运行MyEntunnel.exe,设置:SSH Server里头填上ssh ftp的地址或IP,填好用户名和密码,点Connect,系统栏里面的小锁变成绿色就连接成功了。
4.设置浏览器。IE是不支持socks代理的,用firefox好了,打开firefox的代理设置页,在socks主机处填上127.0.0.1端口填原先设置的,默认7070。
Win主机环境运行SSH命令的方法:
对于Win主机用户,可以下载工具putty来进行shell管理。具体的命令依赖于登录到远端主机所使用的系统和Shell。
一些常用的shell命令如下:
cd[目录名]转换路径
cd..返回上级目录
ls显示当前目录下所有文件
rm[-r]-f[][文件名]删除文件,加[-r]可以删除文件下所有子文件,如rm[-r]-f[abc]删除abc文件夹及文件夹下的所有文件
tar-xzf[解压下载的压缩包]
unzip[文件名]解压文件
cp-rpf.A/*B将A文件夹中的所有文件拷贝到其上级目录B中
wget(远程下载文件到服务器上)
SSH协议框架中设计了大量可扩展的冗余能力,比如用户自定义算法、客户自定义密钥规则、高层扩展功能性应用协议。这些扩展大多遵循IANA的有关规定,特别是在重要的部分,像命名规则和消息编码方面。
SSH采用面向连接的TCP协议传输应用22号端口安全系数较高。
启动方法一:使用批处理文件
在服务器端安装目录下有两个批处理文件“start-ssh.bat”和“stop-ssh.bat”。运行“start-ssh.bat”文件就可以启动SSH服务,要停止该服务只要执行“stop-ssh.bat”文件即可。
启动方法二:使用SSH服务配置程序
在安装目录下,运行“fsshconf.exe”程序,它虽是SSH服务器的配置程序,但也可以用来启动和停止SSH服务。在弹出的“F-Secure SSH Server Configuration”窗口中,点击左面列表框中的“Server Settings”后,在右边的“Service status”栏中会显示服务器状态按钮,如果服务器是停止状态,则按钮显示为“Start service”,点击该按钮就可启动SSH服务,再次点击可停止SSH服务。
启动方法三:使用NET命令
在服务器端的“命令提示符”窗口中,输入“net start″F-secure SSH Server″”命令,就可以启动SSH服务,要停止该服务,输入“net stop″F-Secure SSH Server″”命令即可。其中“F-Secure SSH Server”为SSH服务器名,“net start”和“net stop”为Windows系统启动和停止系统服务所使用的命令。
启动了SSH服务后,一定要关闭Telnet服务,这样服务器就处在安全环境之中了,不用再怕数据被窃取。
SSH是较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用SSH协议可以有效防止远程管理过程中的信息泄露问题。S S H最初是U N I X系统上的一个程序,后来又迅速扩展到其他操作平台。S S H在正确使用时可弥补网络中的漏洞。客户端包含ssh程序以及像scp(远程拷贝)、slogin(远程登陆)、sftp(安全文件传输)等其他的应用程序。SSH有很多非常酷的特性,如果它是你每天的工作伴侣,那么我想你有必要了解以下10条高效使用SSH的秘籍,它们帮你节省的时间肯定会远远大于你用来配置它们的时间。
有些时候,你可能没法直接连接到某台服务器,而需要使用一台中间服务器进行中转,这个过程也可以自动化。首先确保你已经为服务器配置了公钥访问,并开启了agentforwarding,可以通过2条命令来连接目标服务器,不会有任何提示输入:
$ssh gateway
gateway$ssh db
然后在你的本地SSH配置中,添加下面这条配置:
Host db
HostName
ProxyCommand ssh gateway netcat-q 600%h%p
可以通过一条命令来直接连接目标服务器了:
$ssh db
这里你可能会需要等待长一点的时间,因为SSH需要进行两次认证,注意netcat也有可能被写成nc或者ncat或者前面还需要加上g,你需要检查你的中间服务器来确定实际的参数。
如果你在远程服务器上的用户名和你本地的用户名不同,你同样可以在SSH配置中进行设置:
Host www*mail
HostName%h
User simon
就算我的本地用户名是smylers,我仍然可以这样连接我的服务器:
$ssh www2
SSH会使用simon账户连接你的服务器,同样,Putty可以保存这个信息在你的session中。
你也可以在你的SSH配置中直接定义主机别名,就像下面这样:
Host dev
HostName
你还可以使用通配符来进行分组:
Host dev intranet backup
HostName%h
Host www*mail
HostName%h
在Putty中你可以为每个主机名保存单独的session,然后双击建立连接(但是它可能没办法支持通配符)。
输入服务器的完整主机名来建立一个新的SSH连接实在是太乏味无聊了,尤其是当你有一组拥有相同域名但是子域名不同的服务器需要管理时。
或许你的网络已经配置了可以直接使用短域名,比如intranet,但是如果你的网络不支持,实际上你可以自己搞定这个问题,而不用求助网络管理员。
解决办法根据你用的操作系统而略有差异,下面是我的Ubuntu系统的配置:
prepend domain-search
然后你需要重启网络:$sudo restart network-manager
不同的系统,这两条命令可能会略有差异。
有时候你可能需要从一个服务器连接另外一个服务器,比如在两个服务器之间直接传输数据,而不用通过本地电脑中转:
www1$scp-pr templates www2:$PWD
(顺便说一下,当你需要在两台服务器间拷贝文件时,$PWD变量时非常有用的),因为即使你已经在两台服务器上添加了你本地电脑的公钥,scp默认仍然会提示你输入密码:这是因为你用来作为跳板的那台服务器上并没有你的私钥,所以,第二台服务器会拒绝你的公钥,但是一定不要通过将你的私钥拷贝到中转服务器上来解决这个问题,你可以使用agent forwarding来解决这个问题,只要在你的.ssh/config文件中加入下面这行代码就可以了:ForwardAgent yes或者是在Putty中勾上“Allow agent forwarding”选项,本地SSH就变成了第一台服务器的SSH代理,从第一台服务器在连接其它服务器就变和和在你本地一样简单,注意,如果要开启这个选项,前提是这个中间服务器值得你信任。
如果你还在通过密码方式登录SSH,那么你或许应该试试SSH Keys,首先使用OpenSSH为自己生成一对密钥:
$ssh-keygen
跟随指示,完成之后,你应该可以在你的.ssh目录下看到两个文件,id_rsa就是你的私钥,而id_ras.pub则是你的公钥,现在你需要将你的公钥拷贝到服务器上,如果你的系统有ssh-copy-id命令,拷贝会很简单:
$ssh-copy-id
否则,你需要手动将你的公钥拷贝的服务器上的~/.ssh/authorized_keys文件中:
$<~/.ssh/id_rsa.pub ssh‘mkdir-p.ssh;cat>>.ssh/authorized_keys;chmodgo-w.ssh.ssh/authorized_keys’
试试重新连接到SSH服务器,或是拷贝文件,是不是已经不需要再输入密码了?
如果你发现自己每条需要连接同一个服务器无数次,那么长连接选项就是为你准备的:
ControlPersist 4h
你每次通过SSH与服务器建立连接之后,这条连接将被保持4个小时,即使在你退出服务器之后,这条连接依然可以重用,因此,在你下一次(4小时之内)登录服务器时,你会发现连接以闪电般的速度建立完成,这个选项对于通过scp拷贝多个文件提速尤其明显,因为你不在需要为每个文件做单独的认证了。
如果你需要在多个窗口中打开到同一个服务器的连接,而不想每次都输入用户名,密码,或是等待连接建立,那么你可以配置SSH的连接共享选项,在本地打开你的SSH配置文件,通常它们位于~/.ssh/config,然后添加下面2行:
ControlMaster auto
ControlPath/tmp/ssh_mux_%h_%p_%r
试试断开你与服务器的连接,并建立一条新连接,然后打开一个新窗口,再创建一条连接,你会发现,第二条连接几乎是在瞬间就建立好了。
Windows用户
如果你是Windows用户,很不幸,最流行的开源SSH客户端Putty并不支持这个特性,但是Windows上也有OpenSSH的实现,比如这个Copssh,如果你觉得下面的一些技巧对你很有帮助,或许你应该试试Copssh。
文件传输
连接共享不止可以帮助你共享多个SSH连接,如果你需要通过SFTP与服务器传输文件,你会发现,它们使用的依然是同一条连接,如果你使用的Bash,你会发现,你甚至SSH甚至支持Tab对服务器端文件进行自动补全,共享连接选项对于那些需要借助SSH的工具,比如rsync,git等等也同样有效。
如果你确保你和某个服务器之间的连接是安全的(比如通过公司内网连接),那么你就可以通过选择arcfourencryption算法来让数据传输更快一些:
Host dev
Ciphers arcfour
注意这个加速是以牺牲数据的“加密”性为代价的,所以如果你连接的是位于网上的服务器,千万不要打开这个选项,并且确保你是通过VPN建立的连接。
如果每次连接服务器都意味着你需要等待几十秒而无所事事,那么你或许应该试试在你的SSH配置中加入下面这条:
GSSAPIAuthentication no
如果这条命令有效的话,你应该通知你的系统管理员让他在服务器上禁用这个选项,这样其他人就不用再分别添加这条配置到它们的本地配置了。
本发明所述的实现ssh安全登录的方法的保护范围不限于本实施例列举的步骤执行顺序,凡是根据本发明的原理所做的现有技术的步骤增减、步骤替换所实现的方案都包括在本发明的保护范围内。
本发明还提供一种实现ssh安全登录的系统20,所述实现ssh安全登录的系统20可以实现本发明所述的实现ssh安全登录的方法,但本发明所述的实现ssh安全登录的方法的实现装置包括但不限于本实施例列举的实现ssh安全登录的系统20的结构,凡是根据本发明的原理所做的现有技术的结构变形和替换,都包括在本发明的保护范围内。
请参阅图2所示,为实现上述目的及其他相关目的,本发明提供一种实现ssh安全登录的系统20,所述实现ssh安全登录的系统20包括:
pam-abl模块21,监测安全状况;当发现安全异常时锁定账号和来源IP地址;
处理模块22,与所述pam-abl模块21通信相连,用于系统处理;
ssh模块23,导入pam-abl模块21,与所述处理模块22通信相连。
于本发明的一实施例中,所述实现ssh安全登录的方法还包括:在锁定所述账号和所述来源IP地址后手动解锁。
于本发明的一实施例中,所述实现ssh安全登录的系统20包括:
pam-abl模块21,监测安全状况;当发现安全异常时锁定账号和来源IP地址;
处理模块22,与所述pam-abl模块21通信相连,用于系统处理;
ssh模块23,导入pam-abl模块21,与所述处理模块22通信相连。
需要说明的是,应理解以上装置的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现,也可以全部以硬件的形式实现,还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。例如:x模块可以为单独设立的处理元件,也可以集成在上述装置的某一个芯片中实现。此外,x模块也可以以程序代码的形式存储于上述装置的存储器中,由上述装置的某一个处理元件调用并执行以上x模块的功能。其它模块的实现与之类似。这些模块全部或部分可以集成在一起,也可以独立实现。这里所述的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),一个或多个微处理器31(Digital Singnal Processor,简称DSP),一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,如中央处理器(Central Processing Unit,简称CPU)或其它可以调用程序代码的处理器。这些模块可以集成在一起,以片上系统(System-on-a-chip,简称SOC)的形式实现。
为实现上述目的及其他相关目的,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时如本发明所述实现ssh安全登录的方法。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过计算机程序相关的硬件来完成。前述的计算机程序可以存储于一计算机可读存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
请参阅图3所示,为实现上述目的及其他相关目的,本发明还提供一种设备30,所述设备30包括:所述存储器32用于存储计算机程序,所述处理器31用于执行所述存储器32存储的计算机程序,以使所述设备30执行如本发明所述实现ssh安全登录的方法。
——更具体的,本实施例提供的设备,包括:处理器、存储器、收发器、通信接口或/和系统总线;存储器和通信接口通过系统总线与处理器和收发器连接并完成相互间的通信,存储器用于存储计算机程序,通信接口用于和其他设备进行通信,处理器和收发器用于运行计算机程序。上述提到的系统总线可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该系统总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。通信接口用于实现数据库访问装置与其他设备(如客户端、读写库和只读库)之间的通信。存储器可能包含随机存取存储器(Random Access Memory,简称RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现场可编程门阵列(FieldProgrammable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
如上所述,本发明的一种实现ssh安全登录的方法和系统具有以下有益效果:创造性的利用pam-abl模块导入ssh系统中成功实现了对单独IP以及单独账号进行限制、锁定及解锁的安全保护功能。
本发明解决了利用ssh登录进行暴力破解从而进行网络攻击的问题,有效克服了现有技术中的种种缺点而具高度产业利用价值。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
Claims (10)
1.一种实现ssh安全登录的方法,其特征在于,所述实现ssh安全登录的方法包括:
导入pam-abl模块;
监测安全状况;
当发现安全异常时锁定账号和来源IP地址。
2.根据权利要求1所述的实现ssh安全登录的方法,其特征在于,所述安全状况包括:错误尝试。
3.根据权利要求1所述的实现ssh安全登录的方法,其特征在于,所述锁定包括:自动锁定和手动锁定。
4.根据权利要求1或3所述的实现ssh安全登录的方法,其特征在于,所述实现ssh安全登录的方法还包括:在锁定所述账号和所述来源IP地址并且安全异常解除后进行手动解锁。
5.根据权利要求1所述的实现ssh安全登录的方法,其特征在于,所述当发现安全异常时自动锁定账号和来源IP地址的一种实现过程包括:
判断所述错误尝试是否超过阈值;
若是,锁定所述账号和所述来源IP;
若否,继续监测判断所述错误尝试是否超过阈值。
6.一种实现ssh安全登录的系统,其特征在于,所述实现ssh安全登录的系统包括:
pam-abl模块,用于监测安全状况;当发现安全异常时锁定账号和来源IP地址;
处理模块,与所述pam-abl模块通信相连,用于系统处理;
ssh模块,导入pam-abl模块,与所述处理模块通信相连。
7.根据权利要求6所述的实现ssh安全登录的系统,其特征在于,所述实现ssh安全登录的方法还包括:在锁定所述账号和所述来源IP地址并且安全异常解除后进行手动解锁。
8.根据权利要求6所述pam-abl模块实现ssh安全登录的系统,其特征在于,所述实现ssh安全登录的系统包括:
pam-abl模块,监测安全状况;当发现安全异常时锁定账号和来源IP地址;
处理模块,与所述pam-abl模块通信相连,用于系统处理;
ssh模块,导入pam-abl模块,与所述处理模块通信相连。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1至5任一项所述实现ssh安全登录的方法。
10.一种设备,其特征在于,所述设备包括:所述存储器用于存储计算机程序,所述处理器用于执行所述存储器存储的计算机程序,以使所述设备执行如权力要求1至5中任一项所述实现ssh安全登录的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811215817.5A CN111083087A (zh) | 2018-10-18 | 2018-10-18 | 实现ssh安全登录的方法、系统、存储介质及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811215817.5A CN111083087A (zh) | 2018-10-18 | 2018-10-18 | 实现ssh安全登录的方法、系统、存储介质及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111083087A true CN111083087A (zh) | 2020-04-28 |
Family
ID=70308831
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811215817.5A Pending CN111083087A (zh) | 2018-10-18 | 2018-10-18 | 实现ssh安全登录的方法、系统、存储介质及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111083087A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112491867A (zh) * | 2020-11-24 | 2021-03-12 | 北京航空航天大学 | 一种基于会话相似性分析的ssh中间人攻击检测系统 |
CN114301657A (zh) * | 2021-12-23 | 2022-04-08 | 杭州安恒信息技术股份有限公司 | 一种账号登录的检测方法、装置、以及介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130117554A1 (en) * | 2011-12-21 | 2013-05-09 | Ssh Communications Security Corp | User key management for the Secure Shell (SSH) |
CN105703925A (zh) * | 2014-11-25 | 2016-06-22 | 上海天脉聚源文化传媒有限公司 | 一种Linux系统安全加固方法及系统 |
US20160315954A1 (en) * | 2015-04-23 | 2016-10-27 | Dell Software, Inc. | Detecting shared or compromised credentials through analysis of simultaneous actions |
CN106161395A (zh) * | 2015-04-20 | 2016-11-23 | 阿里巴巴集团控股有限公司 | 一种防止暴力破解的方法、装置及系统 |
CN106656640A (zh) * | 2017-03-14 | 2017-05-10 | 北京深思数盾科技股份有限公司 | 网络攻击的预警方法及装置 |
CN106686014A (zh) * | 2017-03-14 | 2017-05-17 | 北京深思数盾科技股份有限公司 | 网络攻击的防治方法及装置 |
CN106940762A (zh) * | 2017-03-17 | 2017-07-11 | 郑州云海信息技术有限公司 | 一种用户登录限制及行为记录装置及方法 |
-
2018
- 2018-10-18 CN CN201811215817.5A patent/CN111083087A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130117554A1 (en) * | 2011-12-21 | 2013-05-09 | Ssh Communications Security Corp | User key management for the Secure Shell (SSH) |
CN105703925A (zh) * | 2014-11-25 | 2016-06-22 | 上海天脉聚源文化传媒有限公司 | 一种Linux系统安全加固方法及系统 |
CN106161395A (zh) * | 2015-04-20 | 2016-11-23 | 阿里巴巴集团控股有限公司 | 一种防止暴力破解的方法、装置及系统 |
US20160315954A1 (en) * | 2015-04-23 | 2016-10-27 | Dell Software, Inc. | Detecting shared or compromised credentials through analysis of simultaneous actions |
CN106656640A (zh) * | 2017-03-14 | 2017-05-10 | 北京深思数盾科技股份有限公司 | 网络攻击的预警方法及装置 |
CN106686014A (zh) * | 2017-03-14 | 2017-05-17 | 北京深思数盾科技股份有限公司 | 网络攻击的防治方法及装置 |
CN106940762A (zh) * | 2017-03-17 | 2017-07-11 | 郑州云海信息技术有限公司 | 一种用户登录限制及行为记录装置及方法 |
Non-Patent Citations (2)
Title |
---|
强丽丽: "提高配网自动化安全可靠性", 《网络安全和信息化》 * |
杨雪婵: "多管齐下保护SSH安全", 《网络安全和信息化》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112491867A (zh) * | 2020-11-24 | 2021-03-12 | 北京航空航天大学 | 一种基于会话相似性分析的ssh中间人攻击检测系统 |
CN114301657A (zh) * | 2021-12-23 | 2022-04-08 | 杭州安恒信息技术股份有限公司 | 一种账号登录的检测方法、装置、以及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10693916B2 (en) | Restrictions on use of a key | |
US9258308B1 (en) | Point to multi-point connections | |
KR101414312B1 (ko) | 클라이언트로부터 서버로 사용자 자격 증명들을 위임하는 방법, 애플리케이션 프로그래밍 인터페이스, 및 클라이언트컴퓨팅 장치 | |
EP1648137A2 (en) | System and methods for providing network quarantine using IPSEC | |
CN110781465B (zh) | 基于可信计算的bmc远程身份验证方法及系统 | |
ZA200508074B (en) | System and methods for providing network quarantine using ipsec | |
CN111083087A (zh) | 实现ssh安全登录的方法、系统、存储介质及设备 | |
Norberg | Securing Windows NT/2000 servers for the internet | |
Carthern et al. | Management Plane | |
Regateiro et al. | SPDC: Secure Proxied Database Connectivity. | |
Stahnke | Pro OpenSSH | |
Souppaya et al. | Guidance for Securing Microsoft Windows XP Systems for IT Professionals: A NIST Security Configuration Checklist | |
Neagu | Oracle 11g Anti-hacker's Cookbook | |
Scarfone et al. | Guide to Securing Microsoft Windows XP Systems for IT Professionals: A NIST Security Configuration Checklist | |
Foltz et al. | INSTITUTE FOR DEFENSE ANALYSES | |
Harpes et al. | SSH Inside Out | |
Slabihoud et al. | Forefront TMG 2010 Common Criteria Evaluation | |
Stahnke | The OpenSSH Server | |
Foltz et al. | Sharing Smart Card Authenticated Sessions Using Proxies | |
WO2016192765A1 (en) | Authentication and authorization based on credentials and ticket | |
Tuttle et al. | AIX 5L Version 5.2 Security Supplement | |
Rubini | Take Command: ssh: Secure Shell | |
Marasky | When Business Need Justifies Leaving RPC Services Enabled | |
Reich | Analyzing and Integrating TNC and VPN Technologies |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20200428 |
|
WD01 | Invention patent application deemed withdrawn after publication |