Linux远程访问及控制

SSH是一种安全协议,常用于远程登录和复制。OpenSSH是其开源实现,服务端配置文件`sshd_config`用于设定验证方式、端口等。文章介绍了如何配置OpenSSH服务端,包括更改默认端口、限制用户登录等,并讲解了密钥对验证增强安全性。此外,还提到了TCPWrappers作为访问控制机制,它为网络服务增加了一层安全检查。
摘要由CSDN通过智能技术生成

SSH远程管理

SSH协议

ssh是一种安全通道协议,主要用来实现字符界面的远程登录、远程复制等功能。
SSH协议对通信双飞的数据传输进行了加密处理,其中包括用户登录时输入的用户口令。因此SSH协议具有很好的安全性。
SSH客户端:Putty、xshell、CRT
SSH服务端:OpenSSH

OpenSSH服务器

OpenSSH是实现SSH协议的开源软件项目,适用于各种UNIX、Linux操作系统。
Cent0S7 系统默认已安装Openssh相关软件包,并已将sshd服务添加为开机自动启动
怎么判断sshd开机自启动?
在这里插入图片描述
执行systemctl start sshd命令即可启动sshd
sshd服务默认使用的是TCP22端口
服务端主程序:/usr/sbin/sshd
服务端配置文件:etc/ssh/sshd_config
客户端配置文件:etc/ssh/ssh_config,一般不修改

配置OpenSSH服务端

服务端配置文件解析:
sshd_config配置文件
vim /etc/ssh/sshd_config
#Port 22                  #默认使用22端口
#AddressFamily any        #默认任何地址可访问
#ListenAddress 0.0.0.0    #监听所有地址的ipv4地址
#ListenAddress ::         #监听的ipv6地址   
 
# Logging                 #日志模块内容
#SyslogFacility AUTH      
SyslogFacility AUTHPRIV    #默认日志位置输出到rsyslog服务的AUTHPRIV中,/var/log/message下
 
# Authentication:            #身份验证模块
#LoginGraceTime 2m           #默认验证用户登录失败后等待时间为2秒
#PermitRootLogin yes         #默认允许使用root账户登录
#MaxAuthTries 6              #默认最多可以尝试连接失败6次
#MaxSessions 10              #默认最大可连接10个会话
#PubkeyAuthentication yes    #基于key验证默认为开启
#AllowUsers user1,user2@ip  #白名单允许登录用户user1,用户为user2的且限制ip

修改端口号2233
在这里插入图片描述
在这里插入图片描述
通过命令去连接
在这里插入图片描述
禁止root用户的登录

在这里插入图片描述
在这里插入图片描述
只允许使用zhangsan,lisi,wangwu用户登录,且其中wangwu用户仅能从IP地址为192.168.190.20的主机远程登录

ALLowusers zhangsan lisi wangwu@192.168.190.20  多个用户用空格分隔
禁止某些用户登录
DenyUsers zhangsan

在这里插入图片描述
在这里插入图片描述
注意:root用户不在白名单内也无法登录。

sshd 服务支持两种验证方式

密码验证
对服务器中本地系统用户的登录名称、密码进行验证。简便,但可能会被暴力破解。
密钥对验证
要求提供相匹配的密钥信息才能通过验证。通常先在客户端中创建一对密钥文件(公钥、私钥),然后将公钥文件放到服务器中指定位置远程登录时,系统将使用公钥、私钥进行加密/解密关联验证。能增强安全性,且可以免交互登录。
公钥和私钥的关系:
公钥和私钥是成对生成的,这两个密钥互不相同,可以互相加解密。
不能根据一个密钥来推算出另一个密钥。
公钥对外公开,私钥只有私钥持有人才知道。

当密码验证、密钥对验证都启用时,服务器将优先使用密钥对验证。可根据实际情况设置验证方式。

vim /etc/ssh/sshd_config
PasswordAuthentication yes 启用密码验证
PubkevAuthentication yes  启用密钥对验证
AuthorizedKeysFile .ssh/authorized keys 指定公钥库文件

使用SSH客户端程序

  • ssh远程登录

ssh [选项] zhangsan@192.168.190.10
当用户第一次登录SS服务器时,必须接受服务器发来的ECDS密钥(根据提示输入"ves") 后才能继续验证。接收的密钥信息将保存到~/.ssh/knonw_hosts 文件中。密码验证成功以后,即可登录目标服务器的命令行环境中了。
-p: 指定非默认的端口号,缺省时默认使用 22端口
ssh -p 2345 zhangsan@192.168.190.10

  • scp远程复制
    安全性复制

Scp是Secure Copy的简写,用于在Linux下进行远程拷贝文件的命令,而且scp传输是加密的。

1、scp xxx root@192.168.63.20 ;/opt           本地文件复制到服务器
 
2、scp root@192.168.63.20 ;/opt/test/ ./       复制服务器的文件到本地
 
3、scp -r xxx/ root@192.168.63.20 ;/opt        本地目录复制到服务器

本地文件复制到服务器
在这里插入图片描述
将本机目录复制到远程主机
在这里插入图片描述

  • sftp
    安全性传输sftp

sftp是secure File Transfer Protocol的缩写,安全文件传送协议。可以为传输文件提供一种安全的网络的加密方法。
由于这种传输方式使用了 加密/解密 技术,所以传输效率比普通的 FTP 要低得多,如果对网络安全性要求更高时,可以使用 SFTP代替 FTP。
在这里插入图片描述
在这里插入图片描述

配置密钥对验证

  • 在客户端创建密钥对
    通过ssh-keygen工具为当前用户创建密钥对文件。可用的加密算法为RSA、ECDSA或DSA等(ssh-keygen命令的“-t”选项用于指定算法类型)。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
客户端服务端都需要开启密钥和关闭密码登录
在这里插入图片描述

[root@localhost .ssh]# vim /etc/ssh/sshd_config
[root@localhost .ssh]# systemctl restart sshd
重启服务

客户端或服务端重新登录
在这里插入图片描述

  • 无交互模式
    在这里插入图片描述在这里插入图片描述
    可无需登录直接连接客户端
    在这里插入图片描述

TCP Wrappers 访问控制

在Linux系统中,许多网络服务针对客户端提供了访问控制机制,如Samba、BIND、HTTPD、OpenSSH 等TCP wrappers将TCP服务程序"包裹"起来,代为监听TCP服务程序的端口,增加了一个安全检测过程,外来的连接请求必须先通过这层安全检测,获得许可后才能访问真正的服务程序。

TCP wrappers (TCP封套)

将TCP服务程序“包裹”起来,代为监听TCP服务程序的端口,增加了一个安全检测过程,外来的连接请求必须先通过这层安全检测,获得许可后才能访问真正的服务程序。

大多数Linux 发行版,TCP Wrappers 是默认提供的功能。

TCP Wrappers 保护机制的实现方式

直接使用tcpd程序对其他服务程序进行保护,需要运行tcpd程序。

由其他网络服务程序调用libwrap.so.*链接库,不需要运行tcpd程序。此方式的应用更加广泛,也更有效率。

使用 ldd 命令可以查看程序的libwrap.so.*链接库

vim /etc/hosts.allow

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值