远程访问及控制一切随心而控

  • SSH远程管理
    • 配置OpenSSH服务端
      • sshd服务支持验证方式
      • 公钥和密钥的关系
  • SSH客户端程序的应用
    • ssh远程登录
    • scp远程复制
      • 1. 下行复制
      • 2. 上行复制
    • sftp安全FTP
      • 1.sftp下载
      • 2.sftp上传
  • 配置密钥对验证
    • 1.在客户端创建密钥对
    • 2.将公钥文件上传至服务器
    • 3.在客户端验证
    • 4.在客户端设置免密登录
  • TCP Wrappers 访问控制
    • TCP Wrappers 保护机制的实现方式
    • TCP Wrappers 的访问策略
      • 2.1服务程序列表
      • 2.2客户端地址列表
    • TCP Wrappers 机制的基本原则
  • 总结

SSH远程管理

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

配置OpenSSH服务端

  1. sshd服务默认使用的是TCP的22端口
  2. sshd服务的默认配置文件为/etc/ssh/sshd_config
vim /etc/ssh/sshd_config             //配置ssh服务端
Port 22                             //默认监听端口号为22
AddressFamily any
//监听地址为任意网卡,也可以指定Openssh服务器的具体ip
LoginGraceTime 2m                   //登录验证时间为2分钟
PermitRootLogin yes                 //禁止root用户登录
MaxAuthTries 6                      //最大重试次数为 6
PermitEmptyPasswords no             //禁止空密码用户登录
UseDNS no
//禁用DNS反向解析,以提高服务器的响应速度
  1. 只允许zhangsang、lisi、wangwu用户登录,且其中lisi用户仅能够从IP地址为192.168.80.80的主机远程登录
vim /etc/ssh/sshd_config             //修改服务端配置文件AllowUsers zhangsan lisi@192.168.146.20  wangwu
//允许zhangsan,lisi,wang登录,并且lisi只能以146.20登录systemctl restart sshd            //重启sshd服务

sshd服务支持验证方式

  • 密码验证:
    对服务器中本地系统用户的登录名称、密码进行验证。简便,但可能会被暴力破解
  • 密钥对验证:
    要求提供相匹配的密钥信息才能通过验证。通常先在客户端中创建一对密钥公钥,私钥,将公钥文件放到服务器中指定的位置,远程登录时系统将使用公钥,私钥进行加密/解密关联验证。
    可以增加安全性,且可以免交互登录。

公钥和密钥的关系

  • 公钥和私钥是成对生成的,这两个密钥互不相同,可以互相加密和解密
  • 不能根据一个密码来推算出另一个密钥
  • 公钥对外公开,私钥只有私钥的持有人才知道
  • 当密码验证、密钥对验证都启用时,服务器将优先使用密钥对验证。可根据实际情况设置验证方式
vim /etc/ssh/sshd_config                   //编辑服务端主配置文件
PasswordAuthentication yes                 //启用密码验证
PubkeyAuthentication yes                   //启用密钥对验证
AuthorizedKeysFile .ssh/authorized_keys    //指定公钥库文件

SSH客户端程序的应用

ssh远程登录

ssh 【选项】 root@192.168.146.20   //使用root远程登录
  • 当用户第一次登录ssh服务器时,须接收服务器发来的密钥验证,只有输入yes后才能继续验证,接收的密钥信息将保存到~/.ssh/known_host文件中。密码验证成功后,显示远程登录成功。
ssh 【选项】 root@192.168.146.20 -p 25  //指定端口登录
  • -p:指定非默认的端口号,如果缺省则默认使用端口号为22。

vim /etc/ssh/sshd_config
systemctl

scp远程复制

1. 下行复制

scp root@192.168.146.20:~/文件名/opt/文件名...
//复制20主机的文件到自己的opt目录下
  • 复制远程主机中的文件要使用绝对路径,:不能少
  • 验证:

2. 上行复制

scp -r root@192.168.146.20:/var/log /opt/
//复制20主机var目录下的内容到本机opt目录下
  • -r可以复制一整个目录到本主机的目录下
  • 验证:

sftp安全FTP

1.sftp下载

使用sfpt从20主机下载文件sftp root@192.168.146.20
sftp >get abc.txt.zip
  • get 为下载
  • 验证:

2.sftp上传

使用sfpt从10主机上传文件到20主机sftp root@192.168.146.20
sftp >put 123.txt
  • put 为上传
  • 验证:
  • quit为退出sftp模式


配置密钥对验证

1.在客户端创建密钥对

可以先创建一个用户
useradd lisi
echo "000000" | passwd --stdin lisi
su lisi实验我们直接使用的root用户,所以上面步骤省略ssh-keygen -t rsa  //使用rsa算法生成密钥对
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
//指定私钥位置
Enter passphrase (empty for no passphrase):
Enter same passphrase again: //输入私钥密码Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
//私钥公钥存放位置
  • 在客户端生成密钥

2.将公钥文件上传至服务器

方法一:
直接在服务器的.ssh目录中导入公钥文本
cd ~/.ssh/
ssh-copy-id -i id_ecdsa.pub root@192.168.146.20方法二:
先将客户端的公钥文件复制到服务端的opt目录下
scp id_rsa.pub root@192.168.146.20:/opt
在服务端创建.ssh目录,从镜像导入文件
mkdir .ssh
cat /opt/id_rsa.pub > ~/.ssh/authorized_keys
//将公钥文件导入到authorized_keys中
  • 如果服务端没有.ssh目录,要先创建
  • id_rsa为私钥文件,id_rsa.pub为公钥文件提供给服务器


3.在客户端验证

在客户端使用ssh远程登录验证ssh root@192.168.146.20
Enter passphrase for key '/root/.ssh/id_rsa':  //输入私钥密码

4.在客户端设置免密登录

在客户端设置免密登录ssh-agent bash
ssh-add
Enter passphrase for /root/.ssh/id_rsa:  //输入私钥密码
ssh root@192.168.146.20                  //远程登录

TCP Wrappers 访问控制

  1. TCP Wrappers 像一个防护罩一样,保护着TCP服务程序,它代为监听TCP服务程序的端口,为其增加了一个安全检测过程,外来的连接请求必须先通过这层安全检测,获得许可后才能访问真正的服务程序
  2. 大多数 Linux 发行版,TCP Wrappers 是默认提供的功能
  3. 使用“rpm -q tcp_wrappers”安装

TCP Wrappers 保护机制的实现方式

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

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

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

ldd $(which ssh)

TCP Wrappers 的访问策略

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

2.1服务程序列表

  • ALL:代表所有的服务
  • 单个服务程序:如“vsftpd”
  • 多个服务程序组成的列表:如“vsftpd,sshd”

2.2客户端地址列表

  • ALL:代表任何客户端地址
  • LOCAL:代表本机地址
  • 多个地址以逗号分隔,允许使用通配符 “?” 和 “ * ”
  • “ * ” 代表任意长度字符 / “?” 仅代表一个字符
  • 网段地址:如 192.168.163. 或者 192.168.163.0/255.255.255.0
    区域地址:如 “.benet.com”匹配 bdqn.com 域中的所有主机

TCP Wrappers 机制的基本原则

  • 首先检查/etc/hosts.allow文件,如果找到相匹配的策略,则允许访问
  • 否则继续检查/etc/hosts.deny文件,如果找到相匹配的策略,则拒绝访问
  • 如果检查上述两个文件都找不到相匹配的策略,则允许访问
允许所有,拒绝个别
只需在/etc/hosts.deny文件中添加相应的拒绝策略允许个别,拒绝所有
除了在/etc/hosts.allow中添加允许策略之外,还需要在/etc/hosts.deny文件中设置“ALL:ALL”的拒绝策略
  • 验证
    从IP地址为12.0.0.1的主机或者位于192.168.146.0/24网段的主机访问sshd服务,其他地址被拒绝
vi /etc/hosts.allow
sshd:12.0.0.1,192.146.100.*vi /etc/hosts.deny
sshd:ALL

总结

  • 远程登录默认端口为22,若要指定端口用-p+端口号
  • scp +远程登录的主机名为上行复制 scp -r +远程登录主机名为下行复制
  • sftp上传为put,下载为get
  • 密钥验证要注意如果服务端没有.ssh目录要先创建

远程访问及控制一切随心而控相关推荐

  1. 【鬼网络】之远程访问及控制ssh

    远程访问及控制ssh 一.SSH远程管理 1.定义 2.优点 3.客户端与服务端 4.SSH服务的开启.端口号和配置文件 二.配置 OpenSSH 服务端 1.配置文件常用设置选项 2.AllowUs ...

  2. Linux远程访问及控制(SSH、TCP Wrappers 访问控制)

    Linux远程访问及控制 一.SSH远程管理 1.SSH定义 2.SSH数据传输优点 3.SSH客户端和服务端 二.OpenSSH 1.配置OpenSSH 服务端配置 2.scp远程复制 3.sftp ...

  3. 远程访问及控制(详解)——SSH远程管理及TCP Wrappers 访问控制

    远程访问及控制(详解)--SSH远程管理及TCP Wrappers 访问控制 一.SSH远程管理 1.定义 2.优点 3.客户端与服务端 4.SSH服务的开启.端口号和配置文件 二.配置 OpenSS ...

  4. SSH远程访问以及控制

    SSH远程访问以及控制 一.SSH远程管理基本简介 二.OpenSSH服务端相关配置 三.SSH客户端程序的登录以及使用 -登录验证方式 -SSH客户端程序的使用 (1)ssh远程登录: (2)scp ...

  5. centos 7.6 ——远程访问及控制——(ssh密钥登录、ssh客户端、TCP Wrappers)

    远程访问及控制 文章目录 远程访问及控制 一.ssh基本配置 1. 允许root登录 2. 禁止root远程登录 **注意 3. DenyUsers 黑名单的使用 4. AllowUsers 白名单使 ...

  6. Linux 远程访问及控制

    Linux 远程访问及控制 文章目录 Linux 远程访问及控制 引言: 一.SSH远程管理 1.SSH是什么: 2.SSH客户端与OpenSSH服务端 3.SSH服务配置 4.SSHD服务端的功能 ...

  7. Linux中的远程访问及控制

    文章目录 Linux中的远程访问及控制 SSH远程管理 OpenSSH服务器 ssh原理 公钥传输原理 ssh加密通讯原理 对称加密 非对称加密 配置OpenSSH服务端 登陆 服务端配置 ssh客户 ...

  8. 控制与计算机工程学院 - 控计学院,控制与计算机工程学院测控1502班召开诚信教育主题班会...

    为响应学校"诚信教育月"活动的号召,5月17日下午,控制与计算机工程学院测控1502班召开了诚信教育主题班会.学生处副处长.学生资助中心主任卜春梅老师,控计学院党委副书记谢桂庆老师 ...

  9. 技术漫谈 | 远程访问和控制云端K8S服务器的方法

    对于部署在云端的K8S容器编排系统,可以先通过SSH远程登录到K8S所在主机,然后运行kubectl命令工具来控制K8S服务系统.然而,先SSH登录才能远程访问的二阶段方式,对于使用Linux桌面或者 ...

最新文章

  1. 如何获得Oracle系统性能统计? Oracle大型数据库系统在AIXUNIX上的实战详解 集中讨论 14...
  2. [shell] 让你提升命令行效率的 Bash 快捷键 [完整版]
  3. Linux 打通ssh无密码登录
  4. 快速计算文件的MD5/SHA1/SHA256等校验值(Windows/Linux)
  5. SQL实战篇:SQL优化问题
  6. java list 取几个字段组装成map_24道Java各类常见问题整理
  7. 为什么你应该尝试@reach/router
  8. MariaDB强势席卷DB-Engines榜单后续,与阿里云达成全球独家战略合作
  9. 面向对象程序设计中“超类”和“子类”概念的来历
  10. 调用未知DLL中的导出函数[转]
  11. springboot的web练手项目,适合新手,以及初级程序员项目实战,也适合老手进行二次开发的众多项目
  12. pmp华为内部资料,成功的项目管理是怎样的?
  13. 在spyder中设置缩进对齐线提示
  14. 韩国服务器性能排行榜,2019韩国云服务器排名
  15. Easyrecovery激活码生成器分享
  16. 电路设计之--钽电容选取
  17. 【CNC——第6篇】PMAC上位机编程基础篇(上位机和下位机如何通信)
  18. CISSP-D8-软件开发安全
  19. Python 各种测试框架简介(三):nose
  20. 英语作文考前必背10大类万能句型

热门文章

  1. php编辑框禁止输入,如何设置表单的input文本框不可编辑
  2. Movavi Screen Recorder 22 Mac(屏幕录像截图软件)
  3. Flutter学习之路 AspectRatio 组件
  4. 基础shell脚本练习
  5. selenium爬取淘宝商品基础数据以及商品详情(茶叶数据)
  6. 联发科MT6779(Helio P90)基带处理器介绍
  7. (附源码)ssm基于javaweb的医疗健康知识管理系统设计与实现 毕业设计131903
  8. 植物大战 快速 排序——纯C
  9. 社区参加指南来了!开源社诚挚邀请您参加开源之夏!
  10. Ubuntu 12.04 安装之后的各种问题