Centos 7.4中的远程访问控制的实现方法
一、SSH远程管理
SSH是一种安全通道协议,主要用来实现字符界面的远程登录、远程复制等功能。SSH协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令。与早期的Telent、RSH、RCP、等应用相比,SSH协议提供了更好的安全性。
1、配置OpenSSH服务端
在Centos7.4系统中,OpenSSH服务器由openssh、openssh-server等软件包提供(默认已安装),并已将sshd添加为标准的系统服务。执行“systemctlstartsshd”命令即可启动sshd服务,包括root在内的大部分用户都可以远程登录系统。sshd服务的配置文件默认位于/etc/ssh/sshd_config目录下,正确调整相关配置项,可以进一步提高sshd远程登录的安全性。
1)服务监听选项
sshd服务使用的默认端口号为22,必要时建议修改此端口号,并指定监听服务的具体IP地址,以提高在网络中的隐蔽性。V2版本要比V1版本的安全性要更好,禁用DNS反向解析可以提高服务器的响应速度。
[root@centos01~]#vim/etc/ssh/sshd_config 17Port22 19ListenAddress192.168.100.10 21Protocol2 118UseDNSno ...... [root@centos01~]#systemctlrestartsshd
2)用户登录控制
sshd服务默认允许root用户登录,但在Internet中使用时是非常不安全的。关于sshd服务的用户登录控制,通常应禁止root用户或密码为空的用户登录。另外,可以限制登录验证的时间(默认为2分钟)及最大重试次数,若超过限制后仍未能登录则断开连接。
[root@centos01~]#vim/etc/ssh/sshd_config 37LoginGraceTime2m 38PermitRootLoginyes 40MaxAuthTries6 67PermitEmptyPasswordsno ...... [root@centos01~]#systemctlrestartsshd
2、登录验证方式
对于服务器的远程管理,除了用户账户的安全控制以外,登录验证的方式也非常重要。sshd服务支持两种验证方式——密码验证、密钥对验证,可以设置只使用其中一种方式,也可以两种方式都启用。
密码验证:对服务器中本地系统用户的登录名称、密码进行验证。这种方式使用最为简便,但从客户端角度来看,正在连接的服务器有可能被假冒;从服务器角度来看,当遭遇密码穷举第三者时防御能力比较弱。
密钥对验证:要求提供相匹配的密钥信息才能通过验证。通常先在客户端中创建一对密钥文件(公钥、私钥),然后将公钥文件放到服务器中的指定位置。远程登录时,系统将使用公钥,私钥进行加密/解密关联验证,大大增强了远程管理的安全性。该方式不易被假冒,且可以免交互登录,在Shell中被广泛使用。
当密码验证,密钥对验证都启用时,服务器将优先使用密钥对验证。对于安全性要求较高的服务器,建议将密码验证方式禁用,只允许启用密钥对验证方式;若没有特殊要求,则两种方式都可以启用。
[root@centos01~]#vim/etc/ssh/sshd_config 43PubkeyAuthenticationyes 47AuthorizedKeysFile.ssh/authorized_keys 66PasswordAuthenticationyes ...... [root@centos01~]#systemctlrestartsshd
其中,公钥文件用来保存多个客户端上传的公钥文本,以便与客户端本地的私钥文件进行匹配。
二、使用SSH客户端程序
在Centos7.4系统中,OpenSSH客户端由openssh-clients软件包提供(默认已安装),其中包括ssh远程登录命令,以及scp、sftp远程复制和文件传输命令等。
1、命令程序ssh远程登录
通过ssh命令可以远程登录sshd服务,为用户提供一个安全的Shell环境,以便对服务器进行管理和维护。使用时应指定登录用户、目标主机地址作为参数。示例如下:
[root@centos02~]#sshroot@192.168.100.10 root@192.168.100.10'spassword: Lastlogin:MonNov1119:02:502019from192.168.100.254 [root@centos01~]# [root@centos01~]# [root@centos01~]#sshroot@192.168.100.10 Theauthenticityofhost'192.168.100.10(192.168.100.10)'can'tbeestablished. ECDSAkeyfingerprintisSHA256:PUueT9fU9QbsyNB5NC5hbSXzaWxxQavBxXmfoknXl4I. ECDSAkeyfingerprintisMD5:6d:f7:95:0e:51:1a:d8:9e:7b:b6:3f:58:51:51:4b:3b. Areyousureyouwanttocontinueconnecting(yes/no)?yes Warning:Permanentlyadded'192.168.100.10'(ECDSA)tothelistofknownhosts. root@192.168.100.10'spassword: Lastlogin:MonNov1119:03:082019from192.168.100.20 [root@centos01~]#who rootpts/12019-11-1119:03(192.168.100.20) rootpts/22019-11-1119:04(192.168.100.10)
如果sshd服务器使用了非默认的端口(如2222),则在登录时必须通过“-p”选项指定端口号。示例如下:
[root@centos01~]#vim/etc/ssh/sshd_config Port2222 [root@centos01~]#systemctlrestartsshd [root@centos02~]#ssh-p2222root@192.168.100.10 root@192.168.100.10'spassword: Lastlogin:MonNov1119:20:282019from192.168.100.10 [root@centos01~]#
2、scp远程复制
通过scp命令可以利用SSH安全连接与远程主机相互复制文件,使用scp命令时,除了必须指定复制源、目标之外,还应指定目标主机地址、登录用户,执行后根据提示输入验证口令即可。示例如下:
[root@centos02~]#scp root@192.168.100.10:/etc/ssh/sshd_config./ root@192.168.100.10'spassword: sshd_config100%39103.6MB/s00:00 [root@centos02~]#scp-r./sshd_config root@192.168.100.10:/opt root@192.168.100.10'spassword: sshd_config100%39101.2MB/s00:00
3、sftp安装FTP
通过sftp命令可以利用SSH安全连接与远程主机上传、下载文件,采用了与FTP类似的登录过程和交互环境,便于目录资源管理。示例如下:
[root@centos01~]#cd/opt/ [root@centos01opt]#sftproot@192.168.100.20 root@192.168.100.20'spassword: Connectedto192.168.100.20. sftp>pwd Remoteworkingdirectory:/root sftp>putsshd_config Uploadingsshd_configto/root/sshd_config sshd_config100%39106.4MB/s00:00 sftp>getsshd_config Fetching/root/sshd_configtosshd_config /root/sshd_config100%39103.6MB/s00:00 sftp>exit
三、构建密钥对验证的SSH体系
密钥对验证方式可以远程登录提供更好的安全性。在Linux服务器、客户端中构建密钥对验证SSH体系的基本过程。如下图所示,整个过程包括四步,首先要在SSH客户端以zhangsan用户身份创建密钥对,并且要将创建的公钥文件上传至SSH服务器端,然后要将公钥信息导入服务器端的目标用户lisi的公钥数据库,最后以服务器端用户lisi的身份登录验证。
1、在客户端创建密钥对
在客户端中,通过ssh-keygen工具为当前用户创建密钥对文件。可用的加密算法为ECDSA或DSA(ssh-keygen命令的“-t”选项用于指定算法类型)。示例如下:
[root@centos02~]#ssh-keygen-tdsa Generatingpublic/privatedsakeypair. Enterfileinwhichtosavethekey(/root/.ssh/id_dsa): Createddirectory'/root/.ssh'. Enterpassphrase(emptyfornopassphrase): Entersamepassphraseagain: Youridentificationhasbeensavedin/root/.ssh/id_dsa. Yourpublickeyhasbeensavedin/root/.ssh/id_dsa.pub. Thekeyfingerprintis: SHA256:zv0EdqIuOfwSovN2Dkij08y9wZ0f1+IyhY7LFNKKzkkroot@centos02 Thekey'srandomartimageis: +---[DSA1024]----+ || || || |.| |o.oS.+.| |**.+.=.+.=| |oE.*o+==.+o| |=o..*Oo+++| |++oo+*+o..| +----[SHA256]-----+ [root@centos02~]#ls-lh~/.ssh/id_dsa* -rw-------1rootroot66811月1216:11/root/.ssh/id_dsa -rw-r--r--1rootroot60311月1216:11/root/.ssh/id_dsa.pub
新生成的密钥对文件中,id_das是私钥文件,权限默认为600,对于私钥文件必须妥善保管,不能泄露给他人;id_dsa.pub是公钥文件,用来提供给ssh服务器。
2、将公钥文件上传至服务器
将上一步生成的公钥文件上传至服务器,并部署到服务器端用户的公钥数据库中。上传公钥文件时可以选择SCP、FTP、HTTP甚至发送E-mail等任何方式。
root@centos02~]#ssh-copy-id-i./.ssh/id_dsa.pub root@192.168.100.10 /usr/bin/ssh-copy-id:INFO:Sourceofkey(s)tobeinstalled:"./.ssh/id_dsa.pub" Theauthenticityofhost'192.168.100.10(192.168.100.10)'can'tbeestablished. ECDSAkeyfingerprintisSHA256:PUueT9fU9QbsyNB5NC5hbSXzaWxxQavBxXmfoknXl4I. ECDSAkeyfingerprintisMD5:6d:f7:95:0e:51:1a:d8:9e:7b:b6:3f:58:51:51:4b:3b. Areyousureyouwanttocontinueconnecting(yes/no)?yes /usr/bin/ssh-copy-id:INFO:attemptingtologinwiththenewkey(s),tofilteroutanythatarealreadyinstalled /usr/bin/ssh-copy-id:INFO:1key(s)remaintobeinstalled--ifyouarepromptednowitistoinstallthenewkeys root@192.168.100.10'spassword: Numberofkey(s)added:1 Nowtryloggingintothemachine,with:"ssh'root@192.168.100.10'" andchecktomakesurethatonlythekey(s)youwantedwereadded.
3、在客户端使用密钥对验证
当私钥文件(客户端)、公钥文件(服务器)均部署到位以后,就可以在客户端中进行测试了。首先确认客户端中当前的用户为root,然后通过ssh命令以服务器端用户root的身份进行远程登录。如果密钥对验证方式配置成功,则在客户端将会要求输入私钥短语,以便调用私钥文件进行匹配(若未设置私钥短语,则直接登入目标服务器)。
[root@centos02~]#sshroot@192.168.100.10 Lastlogin:TueNov1216:03:562019from192.168.100.254 [root@centos01~]#who rootpts/02019-11-1217:35(192.168.100.20) rootpts/22019-11-1216:03(192.168.100.254)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。