详 远程访问及控制

SSH远程管理

SSH(Secure Shell)是一种安全通道协议,主要用来实现字符界面的远程登录、远程复制等功能。SSH协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令。

配置OpenSSH服务端

SSH服务及配置文件

在Centos6.5及以上版本中,OpenSSh服务器由openssh、openssh-server等软件包提供,默认已安装,并已将sshd添加为标准的系统服务。
sshd的配置文件默认位于/etc/ssh/目录下的sshd_config,正确调整相关配置项,可以进一步提高sshd远程登录的安全性。

服务监听选项

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

	[root@ns1 /]# vi /etc/ssh/sshd_config
	Port 22                                       监听端口为22
	......
	ListenAddress 0.0.0.0                         监听地址为任意网络
	......
	UseDNS no                                     禁用DNS反向解析   
	.....
	[root@ns1 /]#systemctl reload sshd            重新载入sshd

用户登录控制

sshd服务默认允许root用户登录,当在Internet中使用时这是非常不安全的。普遍的做法是:先以普通用户远程登入,进入安全Shell环境后,根据实际需要使用su命令切换为root用户。
关于sshd服务的用户登录控制,通常禁止root用户或密码为空的用户登录。另外。可以限制登录验证的时间(默认为两分钟)及最大重试次数,若超过限制后仍未能登录则断开连接。

	[root@ns1 /]# vi /etc/ssh/sshd_config
	LoginGraceTime 2m             登录验证时间为两分钟
	PermitRootLogin no            禁止root用户登录
	MaxAuthTries 6                最大重试次数为6
	PermitEmptyPasswords no       禁止空密码用户登录
	.....
	AllowUsers lisi robin@192.168.127.254   白名单,只允许lisi和robin能够从192.168.127.254
	主机登录
	DenyUsers zzq              黑名单,禁止用户zzq远程登录
	.....

登录验证方式

密码验证

以服务器中本地用户的登录名称、密码进行验证。这种方法使用最为简便,但从客户机角度来看,正在连接的服务器有可能被假冒;从服务器角度来看,当遭遇密码穷举(暴力破解:跑字典)攻击时防御能力比较弱。

密钥对验证

要求提供相匹配的密钥信息才能通过验证,通常现在客户机创建一对密钥文件(私钥、公钥),然后将公钥文件放到服务器中的指定位置。远程登录时,系统将使用公钥、私钥进行加密/解密关联验证,大大增强了远程管理的安全性

  • 公钥和私钥是成对生成的,这两个密钥互不相同,可以互相加密和解密
  • 不能根据一个密钥来推算出另一个密钥
  • 公钥对外公开,私钥只有私钥的持有人才知道

当密码验证、密钥对验证都启用时,服务器将优先使用密钥对验证

[root@ns1 /]# vi /etc/ssh/sshd_config
PasswordAuthentication yes   								启用密码验证
PubkeyAuthentication yes    								启用密钥对验证
AuthorizedKeysFile      .ssh/authorized_keys				指定公钥库数据文件
....

使用SSH客户端程序

在centos6.5及以上系统中。OpenSSH客户端由openssh-client软件包提供(默认已安装),其中包括ssh远程登录命令、以及scp、sftp远程复制和文件传输命令等

命令程序ssh、scp、sftp

ssh远程登录

使用ssh命令时应指定登录用户、目标主机地址作为参数。

[root@ns1 /]#ssh zzq@192.168.137.101
.......       第一次连接时需接受密钥           
zzq@192.168.137.101's password:    输入密码
如果sshd服务器使用了非默认端口号(如2345),则在登录时必须通过 - p 选项指定端口号
[root@ns1 /]#ssh -p 2345 zzq@192.168.137.101
scp远程复制
[root@localhost ~]# scp root@192.168.137.101:/etc/passwd /root/pwd101.txt
root@192.168.137.101's password: 
passwd                             100% 2454     1.0MB/s   00:00 
[root@localhost ~]# scp -r /etc/ssh/ root@192.168.137.101:/opt
root@192.168.137.101's password: 
moduli                                              100%  568KB  48.0MB/s   00:00    
ssh_config                                          100% 2276     2.9MB/s   00:00    
ssh_host_rsa_key                                    100% 1675     1.7MB/s   00:00    
ssh_host_rsa_key.pub                                100%  382   392.7KB/s   00:00    
ssh_host_ecdsa_key                                  100%  227   164.1KB/s   00:00    
ssh_host_ecdsa_key.pub                              100%  162   174.1KB/s   00:00    
ssh_host_ed25519_key                                100%  387   435.9KB/s   00:00    
ssh_host_ed25519_key.pub                            100%   82    90.2KB/s   00:00    
sshd_config  
sftp安全FTP
[root@localhost ~]# sftp root@192.168.137.101
root@192.168.137.101's password: 
Connected to 192.168.137.101.
sftp> ls
11         2      RECOVERED_FILES     anaconda-ks.cfg     initial-setup-ks.cfg               
tmp         下载                 公共                 图片                 文档                 桌面                 
模板 
sftp> put /boot/config-3.10.0-1062.el7.x86_64      上传文件
Uploading /boot/config-3.10.0-1062.el7.x86_64 to /root/config-3.10.0-1062.el7.x86_64
/boot/config-3.10.0-1062.el7.x86_64                  100%  149KB  25.8MB/s  00:00    
sftp> ls
11               2            RECOVERED_FILES       anaconda-ks.cfg                    
config-3.10.0-1062.el7.x86_64      initial-setup-ks.cfg                                     tmp                                
下载                             公共                             图片                             文档                             
桌面                             模板                             视频                             音乐                             
sftp> bye     退出登录

图形工具远程登录、管理

在windows系统中,我们可以使用Xshell、SecureCRT、Putty 等工具远程访问sshd服务

构建密钥对验证的SSH体系

在客户端创建密钥对

[root@localhost ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):     指定私钥位置,不输入则默认存放为/root/.ssh/id_rsa
Enter passphrase (empty for no passphrase):        设置私钥短语
Enter same passphrase again: 				确认私钥短语

Your identification has been sav
+---[RSA 2048]----+
|                 |
|          o ..   |
|          o=+    |
|         ..*..   |
|     .  So  B. . |
|    o  . +oo =o .|
|   +  . o OEo ooo|
|  ..+  B.+.+oo +o|
|   ++o+.=oo. o+ .|
+----[SHA256]-----+
将公钥文件上传至服务器
[root@localhost ~]# scp /root/.ssh/id_rsa.pub root@192.168.137.101:/tmp
root@192.168.137.101's password: 
setterm: $TERM is not defined.
id_rsa.pub                                       100%  408   514.6KB/s   00:00
在服务器中导入公钥文本
[root@ns1 /]# mkdir -p /root/.ssh/
[root@ns1 /]# cat /tmp/id_rsa.pub >> /root/.ssh/authorized_keys
[root@ns1 /]# tail -1 /root/.ssh/authorized_keys 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC7kfSV2HKBiwoFhbpEQbMun4FzKX4bKNA22SE1DEc6RbphSvUQv
jyafSly/kvHhR+BvVHol0A46EihjfbhJ4OkMPvOTESYlELhS9IYLrHRS/BC052aL4Lp4t1NRIP5CZ9DPEcwqHUiK7y
H9vAp8IJMdd2CSqBwF7duv5MiWc5Qc3Tjof+eyr79cJPbJazSnfTJV40LyFleYQJ7OZqpzRJopXn8iLNQ0xmw7G
sCysasjNIAMHQtsDj/5JSR/qPM+EKkEzqPw30DgQZI1JsOibWNExuIISmC7wfiAQAyD+QRPID0MooS6o1wpm
3bpnvo5WSuw/wQ3RPKU/v7b2TtP/+9 root@localhost.localdomain
在客户端使用密钥对验证
[root@localhost ~]# ssh root@192.168.137.101
Enter passphrase for key '/root/.ssh/id_rsa':       输入私钥短语
Last login: Sat Jun 27 16:35:47 2020 from 192.168.137.1
[root@ns1 ~]#                         登陆成功

上传公钥并导入可以采用另一种方法,即使用 ssh-copy-id -i 公钥文件 user@host格式,-i选项指定公钥文件,user是之目标主机的用户。验证密码后,会将公钥自动添加到目标主机user宿主目录下的.ssh/authorized_keys文件结尾

TCP Wrappers 访问控制

TCP_Wrappers有一个TCP的守护进程叫作tcpd。以ssh为例,每当有ssh的连接请求时,tcpd即会截获请求,先读取系统管理员所设置的访问控制文件,符合要求,则会把这次连接原封不动的转给真正的ssh进程,由ssh完成后续工作;如果这次连接发起的ip不符合访问控制文件中的设置,则会中断连接请求,拒绝提供ssh服务。
在这里插入图片描述
TCP_Wrappers的使用主要是依靠两个配置文件/etc/hosts.allow, /etc/hosts.deny,用于拒绝和TCP_Wrapers控制权的序,直接编辑/etc/hosts.allow和/etc/hosts.deny就可以实现主机、ip、服务等控制

  • 在配置 TCP Wrappers 服务时需要遵循两个原则:
  • 编写拒绝策略规则时,填写的是服务名称,而非协议名称;
  • 建议先编写拒绝策略规则,再编写允许策略规则,以便直观地看到相应的效果。

配置格式

<服务程序列表>:<客户机地址列表>
  1. 服务程序列表
  • ALL:代表所有的服务
  • 单个服务程序:如‘vsftpd’
  • 多个服务组成的列表:如‘vsftpd,sshd’

2)客户机地址列表

  • ALL:代表任何客户机地址
  • LOCAL:代表本机地址
  • 单个IP地址
  • 网络段地址:如“192.168.4.0/255.255.255.0”
  • 以“.“开头开始的域名:如”.kgc.cn"匹配kgc.cn域中的所有主机
  • 以"."结束的网络地址:如“192.168.4."匹配整个192.168.4.0/24网段
  • 嵌入通配符“*” “?” :前者代表任意长度字符,后者仅仅代表一个字符,如“10.0.8.2﹡”匹配以10.0.8.2开头的所有IP地址。不可以与“."开始或结束的模式混用
  • 多个客户机地址组成的列表:如“192.168.1.,172.17.17.,.kgc.cn"

tcp_wrapper匹配机制:
1、先检查/etc/hosts.allow,如果被允许,则直接放行;
2、如果/etc/hosts.allow没有匹配项,则检查/etc/hosts.deny,如果被拒绝,则禁止访问;
3、如果二者均无匹配,则放行

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值