Linux网络服务----ssh远程访问及控制

目录

  • 一、ssh远程管理
    • 1、配置Openssh服务端
      • 1>:ssh服务及配置文件
      • 2>:服务监听选项
      • 3>:用户登录控制
      • 4>:登录验证方式
    • 2、使用ssh客户端
      • 1>:命令程序
    • 3、秘钥对验证ssh体系
  • 二、TCP Wrappers访问控制
    • 1、TCP Wrappers概述
    • 2、TCP Wrappers访问策略
      • 1>:配置文件
      • 2>:访问控制基本原则
      • 3>:配置示例

一、ssh远程管理

  • SSH(Secure Shell)时一种安全通道协议,主要用来实现字符界面的远程登录,复制等功能
  • SSH(Secure Shell)协议对通信双方的数据传输进行了加密处理,安全性更好

1、配置Openssh服务端

1>:ssh服务及配置文件

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

2>:服务监听选项

  • sshd服务使用的默认端口号为22,指定监听服务的IP地址,以提高在网络中的隐蔽性。
  • 进入服务端的配置文件
[root@localhost ~]# cd /etc/ssh
[root@localhost ssh]# ls
moduli       ssh_host_ecdsa_key      ssh_host_ed25519_key.pub
ssh_config   ssh_host_ecdsa_key.pub  ssh_host_rsa_key
sshd_config  ssh_host_ed25519_key    ssh_host_rsa_key.pub      #ssh_config  是客户端的配置文件
[root@localhost ssh]# vim sshd_config                     #sshd_config  是服务端的配置文件
#Port 22                #监听端口号
#AddressFamily any
#ListenAddress 0.0.0.0             #监听地址
#ListenAddress ::            #ipv6 
......
#UseDNS no           #dns反向解析  禁用

3>:用户登录控制

#LoginGraceTime 2m          #登录验证时间2分钟
#PermitRootLogin no         #禁止root用户登录
#MaxAuthTries 6             #最大验证尝试次数为6 ,默认为3
#PermitEmptyPasswords no    #禁止空密码用户登录
......
AllowUsers--白名单:允许指定用户登录,拒绝所有人  ---安全性场合高
DenyUsers--黑名单:拒绝指定用户,允许所有人 ---安全性低的场合
示例:AllowUsers zhangshan [email protected]    ###设置zhangsjan可以在任意终端登录,wangwu仅限在192.168.195.164终端上登录,拒绝其他所有用户登录
ssh -o NumberOfPasswordPrompts=8  设置密码输入次数有8次
示例:ssh -o NumberOfPasswordPrompts=8 [email protected]  ##设置zhangsan用户在192.168.195.164终端下密码输入次数有8次机会

4>:登录验证方式

  • ssh服务支持两种验证方式:密码验证和秘钥对验证,可以设置一种也可以设置2种。
  • 密码验证:用服务器中本地系统用户的用户名和密码进行验证
  • 秘钥对验证:要求提供相匹配的秘钥信息才能通过验证,通常是在客户机上创建一对秘钥文件(公钥,私钥),然后将公钥文件放到服务器指定位置。远程登录时,系统将使用公钥,私钥进行加密解密关联验证。
    注:对称秘钥:加密解密用同一个秘钥。 如:AES,DES 加密速度快,但是不安全
    非对称秘钥:加密解密不同秘钥。分为公钥和私钥 ,不可从一个秘钥推出另一个 。速度慢但是安全
    私钥:验证身份,保密的
    公钥:所有人都知道,公开的

2、使用ssh客户端

1>:命令程序

  • ssh远程登录:通过ssh命令远程登录sshd服务,,使用时指定登录用户,目标主机地址作为参数。
示例:ssh [email protected]     #远程登录192.168.195.100的终端上的tom用户
  • scp远程复制:scp命令可以远程相互复制文件,使用时要指定复制源,目标,目标主机地址,登录用户。
示例:scp [email protected]:/etc/passwd /root/pwd254.txt     ##将远程服务器中的passwd文件复制到当前root下命名pwd254的文件
示例:scp -r /etc/vsftpd/ [email protected]:/opt    ## 将当前主机的vsftp文件复制到远程的opt目录下   -r 递归复制
  • sftp安全FTP:可以利用ssh安全连接与远程主机上传,下载文件。
示例:sftp [email protected]    ## 以FTP模式远程连接
put /etc/passwd              ##上传文件
get 1.txt     ##下载文件
bye    ## 退出登录

3、秘钥对验证ssh体系

服务端开启秘钥对验证

vim /etc/ssh/sshd_config
PubkeyAuthentication yes    ##开启秘钥对验证
AuthorizedKeysFile      .ssh/authorized_keys   ##秘钥生成目录
systemctl restart sshd         ##重启服务

客户端生成秘钥对

[caiwu@promote ~]$ ssh-keygen -t ecdsa      ##生成秘钥命令
Generating public/private ecdsa key pair.
Enter file in which to save the key (/home/caiwu/.ssh/id_ecdsa):   ##秘钥位置
/home/caiwu/.ssh/id_ecdsa already exists.
Overwrite (y/n)? y
Enter passphrase (empty for no passphrase):    ##设置秘钥
Enter same passphrase again:     ##设置秘钥
Your identification has been saved in /home/caiwu/.ssh/id_ecdsa.
Your public key has been saved in /home/caiwu/.ssh/id_ecdsa.pub.
The key fingerprint is:
SHA256:2+cUhOCKxd/EG60/NfbnpY96teZKCzxKmJAguarxMso [email protected]
The key's randomart image is:
+---[ECDSA 256]---+
|        .        |
|  .  . . o o     |
| o .  o . = o    |
|  o .o.o o =     |
| .  .o. S + . +  |  ##生成的秘钥
|.     . oo.. + o.|
|o      o...+=. .=|
|=o      . .++.o*o|
|+E.      .  o=*oo|
+----[SHA256]-----+
[caiwu@promote /]$ cd /home/caiwu
[caiwu@promote ~]$ ls -a
.  ..  .bash_logout  .bash_profile  .bashrc  .cache  .config  .mozilla  .ssh
[caiwu@promote ~]$ cd .ssh
[caiwu@promote .ssh]$ ls -a
.  ..  id_ecdsa  id_ecdsa.pub  known_hosts   ## id_ecdsa 为私钥  id_ecdsa.pub公钥

将公钥上传至服务器

[caiwu@promote .ssh]$ scp ~/.ssh/id_ecdsa.pub [email protected]:/opt  ##上传到服务器的opt目录下
[email protected]'s password:   ##输入密码
id_ecdsa.pub                                               100%  191    48.9KB/s   00:00    

在服务器中导入公钥文本

[root@localhost ~]# mkdir -p /home/wang/.ssh/  #创建一个目录
[root@localhost ~]# cat /opt/id_ecdsa.pub >> /home/wang/.ssh/authorized_keys. #将上传的公钥重定向到该目录下创建一个文本
[root@localhost ~]# cat 1 /home/wang/.ssh/authorized_keys   #查看秘钥内容
ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBEk6s1PsFwtUUMMD1uRtKLpAQ6DoT7rCmjTKX6BJSj0rv3rTNdqteWS8XF+WGb/2nxQ6DuiE0iF7evwZyYjzLaE= wang@promote.cache-dns.local

通过远程连接验证需要秘钥

二、TCP Wrappers访问控制

1、TCP Wrappers概述

  • TCP_Wrappers是一个工作在第四层(传输层)的的安全工具,对有状态连接的特定服务进行安全检测并实现访问控制,凡是包含有libwrap.so库文件的的程序就可以受TCP_Wrappers的安全控制。它的主要功能就是控制谁可以访问

2、TCP Wrappers访问策略

1>:配置文件

  • /etc/hosts.allow
  • /etc/hosts.deny

2>:访问控制基本原则

  • 策略格式
    服务列表:客户机地址列表
    服务列表
    多个服务以逗号分隔,ALL表示所有服务
    客户机地址列表
    多个地址以逗号分隔,ALL表示所有服务
    允许使用通配符*和?
    网段地址,如192.168.1 或者 192.168.1.0/255.255.255.0
    区域地址,如.benet.com
  • 策略的应用程序
    先检查hosts.allow,找到匹配则允许访问
    否则再检查hosts.deny,找到则拒绝访问
    若两个文件中均无匹配策略,则默认允许访问

3>:配置示例

只允许192.168.195.100地址和192.168.100网段的可以访问,其他拒绝

[root@localhost etc]# vim host
host.conf    hostname     hosts        hosts.allow  hosts.deny     #配置文件
[root@localhost etc]# vim host.allow 
ssh:192.168.195.100,192.168.100.*
[root@localhost etc]# vim hosts.deny   
ssh:ALL 

你可能感兴趣的:(linux,SSH)