远程访问及控制(上)

简介: 远程访问及控制(上)

SSH远程管理

       SSH(Secure Shell)是一种安全通道协议,主要用来实现字符界面的远程登录、远程复制等功能。SSH协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令。与早期的Telnet、RSH(Remote Shell,远程执行命令)、RCP(Remote File Copy,远程文件复制)等应用相比,SSh协议提供了更好的安全性。

配置OpenSSH服务

       在CentOS7系统中,openssh服务器由openssh、openssh-server等软件包提供(默认已安装),并已将sshd添加为标准的系统服务。执行"systemctl start sshd"命令即可启动sshd服务,包括root在内的大部分用户(只要拥有合法的登录shell)都可以远程登录系统。

       sshd服务的配置文件默认位于/etc/ssh/sshd_config目录下,正确调整相关配置项,可以进一步提高sshd远程登录的安全性。下面介绍最常用的一些配置项,关于sshd_config文件的更多配置可参考man手册。

服务监听选项

       sshd服务使用的默认端口号为22,必要时建议修改此端口号,并指定监听服务的具体IP地址,以提高在网络中的隐蔽性。除此之外,ssh协议的版本选用V2比V1的安全性要更好,禁用DNS反向解析可以提高服务器的响应速度。

1.  [root@localhost ~]# vim /etc/ssh/sshd_config 
2.  Port 22                                     //监听端口号为22
3.  ListenAddress 0.0.0.0                       //监听地址为0.0.0.0
4.  Protocol 2                                  //使用SSH V2协议
5.  ……
6.  UseDNS no                                   //禁用DNS反向解析
7.  ……
8.  [root@localhost ~]# systemctl start sshd

用户登录控制

       sshd服务默认允许root用户登录,但在internet中使用时是非常不安全的。普遍的做法如下:先以普通用户远程登录,进入安全 shell安全环境后,根据实际需要使用su命令切换为root用户。

       关于sshd服务的用户登录控制,通常应禁止root用户或密码为空的用户登录。另外,可以限制登录验证的时间(默认为2分钟)及最大重试次数,若超过限制后仍未登录则断开连接。

1.  [root@localhost ~]# vim /etc/ssh/sshd_config 
2.  LoginGraceTime 2m                           //登录验证时间为2分钟
3.  StrictModes no                              //禁止root用户登录
4.  MaxAuthTries 6                              //最大重试次数为6
5.  ……
6.  PermitEmptyPasswords no                     //禁止空密码用户登录
7.  ……
8.  [root@localhost ~]# systemctl restart sshd

       当希望只允许或禁止某系用户登录时,可以使用AllowUsers或DenyUsers配置,两者用法类似(注意不要同时使用)。例如,若只允许jerry、tsengyia和admin用户登录,且其中admin用户仅能够从IP地址为192.168.1.20的主机远程登录,则可以在/etc/ssh/sshd_config配置文件中添加以下配置。

1.  [root@localhost ~]# vim /etc/ssh/sshd_config 
2.  ……//省略部分
3.  AllowUsers jerry tsengyia admin@192.168.1.20            //多个用户用空格分隔

登录验证方式

       对于服务器的远程管理,除了用户账号的安全控制以外,登录验证的方式也非常重要。sshd服务支持两种验证方式——密码验证、密钥对验证,可以设置只使用其中一种方式,也可以两种方式都启用。

       密码验证:对服务器中本地系统用户的登录名称,密码进行验证。这种方式使用最为简便,但从客户端角度来看,正在连接的服务器优肯被假冒;重复服务器角度来看,当遭遇密码穷举(暴力破解)攻击时防御能力比较弱。

       密钥对验证:要求提供相匹配的秘钥信息才能通过验证。通常先在客户端中创建一对秘钥文件(公钥、私钥),然后将公钥文件放到服务器中的指定位置。远程登录时,系统将使用公钥、私钥进行加密/解密关联验证,大大增加了远程管理的安全性。该方式不易被假冒,且可以免交互登录,在shell中被广泛使用。

       当密码验证,密钥对验证都启用时,服务器将优先使用密钥对验证。对于安全性要求较高的服务器,建议将密码验证方式禁用,只允许启用密钥对验证方式;若没有特殊要求,则两种方式都可以启用。

1.  [root@localhost ~]# vim /etc/ssh/sshd_config 
2.  PasswordAuthentication yes                          //启用密码验证
3.  PubkeyAuthentication yes                            //启用密钥对验证
4.  AuthorizedKeysFile      .ssh/authorized_keys        //指定公钥库文件
5.  ……//省略部分文件
6.  [root@localhost ~]# systemctl restart sshd

       其中,公钥库文件用来保存多个客户端上传的公钥文本,以便与客户端本地的私钥文件进行匹配。

使用SSH客户端程序

       在CentOS7系统中,openssh服务器由openssh、openssh-server等软件包提供(默认已安装),其中包括ssh远程登录命令,以及scp、sftp远程复制和文件传输命令等。实际上,任何支持SSH协议的客户端层序都可以与OpenSSH服务器进行通信,如Windows平台的Xshell、SecureCRT、putty等图形工具。

       命令程序ssh、scp、sftp

ssh远程登录

       通过ssh命令可以远程登录sshd服务,为用户提供一个安全的shell环境,以便对服务器进行管理和维护。使用时应指定登录用户,目标主机地址作为参数。例如,若要登录主机192.168.1.10,以对方服务器的tsengyia用户进行验证,可以执行以下操作。

1.  [root@localhost ~]# ssh tsengyia@192.168.1.10
2.  The authenticity of host '192.168.1.10 (192.168.1.10)' can't be established.
3.  ECDSA key fingerprint is d3:34:18:89:73:c8:d3:47:e4:7d:36:c7:a3:62:17:b6.
4.  Are you sure you want to continue connecting (yes/no)? yes //输入yes接受秘钥
5.  Warning: Permanently added '192.168.1.10' (ECDSA) to the list of known hosts.
6.  tsengyia@192.168.1.10's password:                           //输入密码
7.  [tsengyia@localhost ~]$                                     //登录成功

       当用户第一次登录SSH服务器时,必须接受服务器发来的ECDSA秘钥(根据提示输入“yes”)后才能继续验证。接收的秘钥信息将保存到 ~/ .ssh/known_host文件中。密码验证成功以后,即可登录目标服务器的命令行环境中了,就好像把客户端的显示器,键盘连接到服务器一样。

1.  [tsengyia@localhost ~]$ whoami                                          //确认当前用户
2.  tsengyia
3.  [tsengyia@localhost ~]$ /sbin/ifconfig ens33 | grep "inet"
4.        inet 192.168.1.10  netmask 255.255.255.0  broadcast 192.168.1.255 //当前主机地址

       如果ssh服务器使用了非默认的端口号(如2345),则在登录时必须通过“-p”选项指定端口号。例如,执行以下操作将访问主机192.168.1.10的2345端口,以对方服务器的jerry用户验证登录。

1.  [tsengyia@localhost ~]$ ssh -p 2345 jerry@192.168.1.10
2.  The authenticity of host '[192.168.1.10]:2345 ([192.168.1.10]:2345)' can't be established.
3.  ECDSA key fingerprint is d3:34:18:89:73:c8:d3:47:e4:7d:36:c7:a3:62:17:b6.
4.  Are you sure you want to continue connecting (yes/no)? yes       //输入yes接受秘钥
5.  Warning: Permanently added '[192.168.1.10]:2345' (ECDSA) to the list of known hosts.
6.  jerry@192.168.1.10's password:                                  //输入密码
7.  [jerry@localhost ~]$                                            //登录成功

scp远程复制

       通过scp命令可以利用ssh安全连接与远程主机相互复制文件。使用scp命令时,处理必须指定复制源,目标之外,还应指定目标主机地址,操作用户,执行后根据提示输入验证口令即可。例如,以下操作分别演示了下行,上行复制的操作过程,将远程主机中的/etc/passwd 文件复制到本机,将本机的/etc/vsftpd目录复制到远程主机。

1.  下载:scp -P 端口号 用户名@服务器IP地址:/路径/文件名 /本地路径
2.  [root@localhost ~]# scp -P 2345 jerry@192.168.1.10:/etc/passwd /root/pwd.txt
3.  jerry@192.168.1.10's password:                                  //输入用户密码
4.  passwd                                        100% 2361     2.3KB/s   00:00 
5.  上传:scp -P 端口号 /本地目录/文件名 用户名@服务器IP地址:/路径
6.  [root@localhost ~]# scp -P 2345 /tmp/B.txt jerry@192.168.1.10:/tmp/
7.  jerry@192.168.1.10's password: 
8.  B.txt                                         100%    0     0.0KB/s   00:00

ftp安全FTP

                通过sftp命令可以利用SSH安全连接与远程主机上传,下载文件,采用了与FTP类似的登录过程和交互式环境,便于目录资源管理。例如,以下操作演示了sftp登录、浏览、文件上传、等过程。

1.  [root@localhost ~]# sftp -P 2345 tsengyia@192.168.1.10
2.  tsengyia@192.168.1.10's password:                   //输入密码
3.  Connected to 192.168.1.10.
4.  sftp> ls
5.  sftp> put /boot/config-3.10.0-514.el7.x86_64        //上传文件
6.  Uploading /boot/config-3.10.0-514.el7.x86_64 to /home/tsengyia/config-3.10.0-514.el7.x86_64
7.  /boot/config-3.10.0-514.el7.x86_64            100%  134KB 134.5KB/s   00:00    
8.  sftp> ls
9.  config-3.10.0-514.el7.x86_64                        //退出登录
10.  sftp> bye
11.  [root@localhost ~]#

图形工具Xshell

       图形工具Xshell是windows下一款功能非常强大的安全终端模拟软件,支持Telnet、SSH、SFTP等协议,可以方便地对Linux主机进行远程管理。

安装运行Xshell后,在新建会话窗口中指定远程主机的IP地址、端口号等相关信息,然后单击“连接”按钮,根据提示接受秘钥、验证密码后即可成功登录目标主机。


相关文章
|
23天前
|
监控 安全 网络安全
局域网管理监控的远程访问控制:利用SSH和Python实现安全管理
在当今数字化时代,局域网管理监控对于确保网络安全至关重要。远程访问控制是一项关键任务,通过利用SSH(Secure Shell)和Python编程语言,我们可以实现更加安全的管理方法。本文将介绍如何使用这两者结合,为局域网管理提供可靠的远程访问控制。
208 1
|
23天前
|
网络协议 数据安全/隐私保护 网络架构
如何使用软路由R4S+iStoreOS实现远程访问内网电脑桌面
如何使用软路由R4S+iStoreOS实现远程访问内网电脑桌面
|
11月前
|
网络安全
不能建立到远程计算机的连接,你可能需要更改此连接的网络设置
公司内网换了个账号,突然就连接不上了,也不知道怎么回事,搜了半天也没找到合适的,集合总结了一下才找到适合我电脑的解决方法
359 0
|
12月前
|
网络协议 安全 算法
远程访问及控制(下)
远程访问及控制(下)
|
安全 网络协议 网络虚拟化
通过Internet对PLC远程访问控制
西门子S7-200 SMART CPU集成了一个以太网通信端口,支持以太网和基于TCP/IP的通信标准,利用该端口通过Internet对所售出的产品进行远程诊断和维护,可以减少工程师到现场的时间和费用,为客户提供更为快捷的服务,减少客户的损失。
通过Internet对PLC远程访问控制
|
Web App开发 Ubuntu Linux
远程桌面控制
远程桌面控制
370 0
远程桌面控制
|
网络协议 安全 算法
远程访问及控制
1、SSH远程管理,TCP Wrappers访问控制 2、配置密钥对验证
远程访问及控制
|
数据安全/隐私保护 Windows
|
开发工具 数据安全/隐私保护 网络协议

热门文章

最新文章