搜索
您的当前位置:首页正文

Linux网络-远程访问及控制

来源:易榕旅网


一.SSH远程管理

1.SSH与TELNET

SSH:密文 tcp / 22端口

TELNET:明文 tcp / 23端口

1.1.SSH优点

  • 数据传输的过程是加密的,具有安全稳定的特点
  • 数据传输的方式是压缩的,可以提高传输速度

2.SSH简介

  • 是一种安全通道协议
  • 对通信数据进行了加密处理,用于远程管理

2.1.OpenSSH

  • 服务名称:sshd
  • 服务端主程序:/usr/sbin/sshd
  • 服务端配置文件:/etc/ssh/sshd_config
  • 客户端配置文件:/etc/ssh/ssh_config

2.2.常用的SSH软件的介绍

  • SSH客户端:putty(开源工具),xshell,CRT
  • SSH服务端:openSSH(centos7系统默认安装)
  • CentOS7 SSH服务启动自检命令:  systemctl is-enabled    sshd

                                   网络

SSH客户端<--------------------------------------->SSH服务端
            数据传输是加密的,可以防止信息泄漏
            数据传输是压缩的,可以提高传输速度
 

注意:在生产环境中,为了保密等措施,Xshell、CRT等外国软件应用较少,多使用国产或开源的

终端工具

二.配置OpenSSH服务器

1.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 反向解析,以加快远程连接速度

AllowUsers zhangsan lisi wangwu
@61.23.24.25                            只允许zhangsan、lisi、wangwu用户登录,且其中wangwu用户 
                                        仅能够从IP地址为61.23.24.25 的主机远程登录 多个用户以空 
                                        格分隔

DenyUsers zhangsan                      禁止某些用户登录,用法于AllowUsers 类似(注意不要同时使 
                                        用)

2.sshd 服务支持两种验证方式

2.1.密码验证

对服务器中本地系统用户的登录名称、密码进行验证。简便,但可能会被暴力破解

2.2.密钥对验证

要求提供相匹配的密钥信息才能通过验证。通常先在客户端中创建一对密钥文件(公钥、私钥),

然后将公钥文件放到服务器中的指定位置。远程登录时,系统将使用公钥、私钥进行加密/解密关

联验证。能增强安全性,且可以免交互登录

2.3.公钥和私钥的关系

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

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

vim /etc/ssh/sshd_config
PasswordAuthentication yes 						启用密码验证

PubkeyAuthentication yes 						启用密钥对验证

AuthorizedKeysFile .ssh/authorized_keys 		指定公钥库文件

三.使用SSH客户端程序

1.ssh远程登录

ssh [-p 端口] 用户名@目标主机IP 

ssh [-p 端口] 用户名@目标主机IP  命令         临时登录目标主机执行命令后退出

2.scp远程复制

scp [-P 端口] [-r] 本机文件/目录路径 ...  用户名@目标主机IP:绝对路径       

将本地的文件/目录复制到目标主机

scp [-P 端口] [-r] 用户名@目标主机IP:绝对路径  本机路径                    

将目标主机的文件/目录复制到本机

3.sftp文件传输

sftp [-P 端口]  用户名@目标主机IP
> get  put  cd  ls

四.SSH的验证方式

1.密码验证

使用账号和密码进行验证

PasswordAuthentication yes

2.密钥对验证

使用客户端创建的密钥对进行验证

PubkeyAuthentication yes

AuthorizedKeysFile      .ssh/authorized_keys           服务端的公钥文件默认保存路径

3.SSH密钥对的创建和使用

3.1.确保服务端开启了ssh密钥对验证

 /etc/ssh/sshd_config   -->  PubkeyAuthentication yes

3.2.在客户端创建密钥对

ssh-keygen [-t rsa/dsa/ecdsa]   
  • 生成的密钥对默认存放在当前用户家目录的 .ssh/ 目录中
  • 私钥是留给自己使用的
  • 公钥(XXX.pub)是给服务端使用的

3.3.上传公钥至服务端

 ssh-copy-id [-i 公钥文件]  用户名@目标主机IP 
  • 公钥信息会自动保存到服务端的 ~/.ssh/authorized_keys 文件里

3.4.客户端 ssh 远程登录,使用密钥对的密码进行验证

3.5.补充

密钥对在客户端是谁创建的,只能谁使用;密钥对上传给服务端的哪个用户,那么就只能使用那个

用户去登录

4.SSH密钥对免交互登录

4.1.使用空密码的密钥对

ssh-keygen      一路回车,不设置密码

ssh-copy-id

4.2.创建ssh会话代理(只能在当前会话中有效)

ssh-agent bash

ssh-add

五.TCP Wrappers机制

1.保护原理

TCP Wrappers(TCP封套) 是一个简单的防火墙机制。用来将TCP服务程序“包裹”起来,代为监

听TCP服务程序的端口,增加了一个安全检测过程,外来的连接请求必须先通过这层安全检测,获

得许可后才能访问真正的服务程序

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

2.TCP Wrappers保护机制的两种实现方式

  • 方式1:通过tcpd程序对其他服务程序进行包装
  • 方式2:由其他服务程序调用libwrap.so.*链接库(应用更广泛,更有效率)

2.1.方式2实际操作

支持
不支持

3.TCP Wrappers的运用

  • /etc/hosts.allow 设置允许访问 tcp 服务程序的策略(白名单)
  • /etc/hosts.deny 设置禁止访问 tcp 服务程序的策略(黑名单)

4.TCP Wrappers 的访问策略

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

4.1.格式

<服务程序列表>:<客户端地址列表>

服务程序列表

  • ALL:代表所有的服务。
  • 单个服务程序:如“vsftpd”。
  • 多个服务程序组成的列表:如“vsftpd,sshd”
  • ALL:代表任何客户端地址
  • LOCAL:代表本机地址
  • 多个地址以逗号分隔

允许使用通配符 “*” 和 “?” ,前者代表任意长度字符,后者仅代表一个字符

5.TCP Wrappers 机制的基本原则

允许所有,拒绝个别”

只需在/etc/hosts.deny文件中添加相应的拒绝策略

“允许个别,拒绝所有”

除了在/etc/hosts.allow中添加允许策略之外,还需要在/etc/hosts.deny文件中设置“ALL:ALL”的拒绝

策略

因篇幅问题不能全部显示,请点此查看更多更全内容

Top