Linux远程访问控制

目录

一、SSH概述

1.SSH定义

 2.SSH的优点

 3. SSH客户端和OpenSSH客户端

4.SSH的配置文件

 5.SSH服务端功能

 二、配置OpenSSH服务端

 三、SSHD服务

1.远程登录

2.scp远程复制

 3.sftp安全FTP

四、sshd 服务支持验证方式

1.密码验证

2.密钥对验证

 3.密钥登录过程

 4.配置密钥对验证

五、访问控制TCP Wrappers

 1.TCP Wrapper 保护机制的两种实现方式

 2.TCP Wrappers 的访问策略

 3.TCP Wrappers 机制的基本原则


一、SSH概述

1.SSH定义

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

SSH客户端<--------------------------------------------------------->SSH服务端

                    数据传输是加密的,可以防止信息泄露

                    数据传输是压缩的,可以提高传输速度

 2.SSH的优点

  1. 安全性: 数据传输是加密的,可以防止信息泄漏。
  2. 身份验证:防止未经授权的用户访问远程系统。
  3. 远程管理:可通过SSH协议登录远程服务器并执行命令,无需直接物理访问设备。
  4. 端口转发:SSH支持 端口转发功能,可以安全地传输其他协议和应用程序。
  5. 传输速度: 数据传输是压缩的,可以提高传输速度。

 3. SSH客户端和OpenSSH客户端

  • SSH客户端:Putty、 Xshell、 CRT、MobaXterm、FinalShell
  • SSH服务端:OpenSSH
  • OpenSSH 是实现SSH协议的开源软件项目,适用于各种UNIX、Linux 操作系统。
  • Centos 7系统默认已安装openssh相关软件包,并已将sshd服务添加为开机自启动
  • 执行“systemctl start sshd" 命令即可启动sshd服务
  • sshd服务默认使用的是TCP的22端口,安全协议版本sshv-2,除了2之外还有1(有漏洞)

4.SSH的配置文件

sshd服务的默认配置文件是/etc/ssh/sshd_config

ssh_config是针对客户端的配置文件,sshd_config是针对服务端的配置文件

 5.SSH服务端功能

ssh服务端主要功能包括两个服务功能ssh远程链接和sftp服务

主要作用:SSHD服务使用ssh协议可以用来进行远程控制,或者在计算机之间传输文件。

 二、配置OpenSSH服务端

sshd_config配置文件的常用选项设置
vim /etc/ssh/sshd_config
Port 22 								#监听端口为 22
ListenAddress 0.0.0.0 					#监听地址为任意网段,也可以指定OpenSSH服务器的具体IP

LoginGraceTime 2m 						#登录验证时间为 2 分钟
PermitRootLogin no 						#禁止 root 用户登录
MaxAuthTries 6 							#最大重试次数为 6

PermitEmptyPasswords no 				#禁止空密码用户登录
UseDNS no 								#禁用 DNS 反向解析,以提高服务器的响应速度

 三、SSHD服务

1.远程登录

登录方法一:
ssh  远程服务器用户名@远程服务器主机名或IP地址 -p 端口    //默认端口为22,可以不加-p
ssh [选项] zhangsan@20.0.0.111  

登录方法二:
ssh -l +远程主机用户名 +远程服务器主机名或IP地址 -p 端口
ssh -p 10022 root@20.0.0.111
 
-l :指定登录名称
-P :指定登录端口(当服务端的端口非默认时,需要使用-p指定端口进行登录)

2.scp远程复制

将远程主机的/opt/ 1.txt 文件复制到本机
scp /opt/1.txt root@20.0.0.22:/mnt
将远程主机 /mnt/132.txt 文件拿过来(在远程主机mnt中建立一个132.txt文件)
scp root@20.0.0.22:/mnt/132.txt

vim /etc/hosts 

20.0.0.22   [名字]  #编辑hosts 将IP地址写入之后加名字后   远程登录服务器之后就可以用名字代替IP地址

 3.sftp安全FTP

由于使用了加密/解密技术,所以传输效率比普通的FTP要低,但安全性更高。操作语法sftp于ftp几乎一样。

sftp zhangsan@192.168.80.10
Connecting to 192.168.80.10...
root@20.0.0.111's password:	 #输入密码
sftp> ls
sftp> get 文件名		#下载文件到ftp目录
sftp> put 文件名		#上传文件到ftp目录
sftp> quit				#退出

四、sshd 服务支持验证方式

sshd 服务支持两种验证方式:

1.密码验证

对服务器中本地系统用户的登录名称、密码进行验证。简便,但可能会被暴力破解暴力破解可看之前博客有详细描述系统弱口令检测

2.密钥对验证

要求提供相匹配的密钥信息才能通过验证。通常先在客户端中创建一对密钥文件(公钥key.pub、私钥key)然后将公钥文件放到服务器中的指定位置。远程登录时,系统将使用公钥、私钥进行加密/解密关联验证。能增强安全性,且可以免交互登录。服务器将优先使用密钥对验证。可根据实际情况设置验证方式。

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

 3.密钥登录过程

  1. ssh客户端通过ssh-keygen生成自己的公钥和私钥,将公钥发送给ssh服务端,并且放在指定的位置。
  2. 公钥发送完毕后。ssh客户端再向ssh 服务端进行登录请求。
  3. ssh服务端收到ssh客户端的登录请求后,ssh服务端用对应的公钥加密一些随机数返回给ssh客户端。
  4. ssh客户端收加密的随机数后使用私钥对其进行解密,再将解密的结果发送给ssh服务端进行验证。
  5. ssh服务端接收到ssh客户端发送过来的解密数据,将其与原数据进行比对,保持一致则允许用户进行登录

 4.配置密钥对验证

vim /etc/ssh/sshd_config          #编辑服务端主配置文件
PasswordAuthenticantion   yes    #启用密码验证
PubkeyAuthentication yes           #启用密钥对验证
AuthorizedKeysFile.ssh/authorized_keys   #指定共钥库文件

systemctl restart sshd       #重启

ssh-keygen -t  rsa           #生成密钥文件  -t  指定加密方式 不加-t默认使用rsa方式
Generating public/private ecdsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): #指定私钥位置,直接回车使用默认位置 
Enter passphrase (empty for no passphrase): 		#设置私钥的密码 -直接回车
Enter same passphrase again: 						#确认输入  -直接回车
【呈现出加密的密钥】
ls /root/.ssh/    									#查看密钥文件
ll  /root/.ssh/ 									#查看密钥权限
ssh -copy-id root@20.0.0.22  						#将公钥文件上传至服务器
passwd:                                             # (输密码)

另外一台设备
ssh-keygen -t  rsa                   				#更新  +三个回车
ssh-copy-id  root@20.0.0.111 						#服务器中导入公钥
passwd: 										    #密码

回到第一台设备
ssh 20.0.0.22                                       #不需要输入密码就可以登录 
免密登录成功

五、访问控制TCP Wrappers

TCP Wrappers 将TCP服务程序“包裹”起来,代为监听TCP服务程序的端口,增加了一个安全检测过程,外来的连接请求必须先通过这层安全检测,获得许可后才能访问真正的服务程序。
大多数 Linux 发行版,TCP Wrappers 是默认提供的功能。rpm -q tcp_wrappers

 1.TCP Wrapper 保护机制的两种实现方式

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

 2.TCP Wrappers 的访问策略

  •  TCP Wrappers 机制的保护对象为各种网络服务程序,针对访问服务的客户端地址进行访问控制。
  • 对应的两个策略文件为/etc/hosts.allow 和/etc/hosts.deny,分别用来设置允许和拒绝的策略。

 3.TCP Wrappers 机制的基本原则

  • 首先检查/etc/hosts.allow文件,如果找到相匹配的策略,则允许访问;
  • 否则继续检查/etc/hosts.deny文件,如果找到相匹配的策略,则拒绝访问;
  • 如果检查上述两个文件都找不到相匹配的策略,则允许访问。
  • 25
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux远程控制关机通常涉及到对Linux系统的网络管理能力以及SSH协议的应用。SSH(Secure Shell)是一种安全的远程连接协议,可以用于终端会话、文件传输以及其他远程操作。 ### 使用SSH远程控制关机 #### 步骤一:设置权限 为了能够远程控制另一台Linux机器关机,首先需要确认目标服务器允许SSH登录,并且你需要拥有管理员级别的权限。 #### 步骤二:创建SSH密钥对 使用SSH密钥对进行认证比密码更安全,减少了凭据泄露的风险。通过生成一对公私钥: ```bash ssh-keygen -t rsa ``` 这将生成两个文件:`id_rsa` 和 `id_rsa.pub`。将 `id_rsa.pub` 的内容添加到目标服务器的 `.ssh/authorized_keys` 文件中,确保该目录的访问权限是严格的(例如,仅所有者可读、可写): ```bash scp id_rsa.pub user@target-server:/home/user/.ssh/authorized_keys chmod 0400 /home/user/.ssh/authorized_keys chown -R user:user /home/user/.ssh/ ``` #### 步骤三:编写脚本进行远程关机 你可以编写一个shell脚本来执行远程关机操作: ```bash #!/bin/bash # 获取目标主机的IP地址或其他标识符 hostname=$1 # 远程执行关机命令 ssh user@$hostname "sudo shutdown now" ``` 保存这个脚本为`remote_poweroff.sh`,并赋予它执行权限: ```bash chmod +x remote_poweroff.sh ``` 然后,你可以通过在本地执行这个脚本来远程关机目标Linux系统: ```bash ./remote_poweroff.sh target-host-ip-or-name ``` #### 安全提示: - 确保在生产环境中使用这种方法时,只允许可信的用户执行远程操作。 - 如果可能,考虑增加额外的安全措施,比如限制脚本执行的时间范围或特定目录。 ### 相关问题: 1. **如何确保SSH连接的安全性?** 确保SSH连接的安全性包括使用强密码策略,启用公钥身份验证,定期更新操作系统和应用程序补丁等。 2. **在Windows中远程控制Linux系统的关机?** Windows用户可以通过PowerShell中的PSEXEC工具或第三方软件如Remote Desktop Manager来实现这一功能。 3. **为什么在某些情况下远程关机可能会失败?** 这可能是由于网络延迟、目标系统上的防火墙配置不当、SSH服务未运行或者用户权限不足等原因导致。检查网络连通性和目标系统的安全性设置至关重要。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值