码迷,mamicode.com
首页 > 其他好文 > 详细

ssh服务的配置使用

时间:2019-01-03 15:05:06      阅读:229      评论:0      收藏:0      [点我收藏+]

标签:加密   options   conf   免密登录   user   远程主机   ase   ups   images   

  • open-ssh服务
  • ssh实验

    • open-ssh
      远程服务工具Telnet、sshd等,Telnet传输基于明文,认证等均为非加密;ssh协议开源的实现:centos 6 7默认安装,Secure remote shell,允许认证加密方式登录。

      • 服务安装配置
        系统默认安装:
        [root@xt ~]# rpm -qa | grep ssh
        libssh2-1.4.3-10.el7.x86_64
        openssh-6.6.1p1-22.el7.x86_64
        openssh-server-6.6.1p1-22.el7.x86_64
        openssh-clients-6.6.1p1-22.el7.x86_64

        配置文件:

        server:/etc/ssh/sshd_config
        client:/etc/ssh/ssh_config

        服务脚本:
        CentOS 6:
        服务脚本:/etc/rc.d/init.d/sshd
        CentOS 7:
        Systemd Unit File:/usr/lib/systemd/system/sshd.service

      • 客户端工具
        Windows: xshell, securecrt, putty...;
        openssh-clients使用:
        ssh [options] [user@]host [command]
        ssh [-l user] [options] host [command]:省略用户名表示使用当前用户名作为远程登录的用户名
        常用选项:
        -P port :用于指定远程服务的端口
        -X :支持X11转发,在本地显示远程主机上的图形窗口,但   前提:本地是X图形界面,或者提供了x service;

        sh远程连接服务器时的配置选项,定义在/etc/ssh/ssh_config配置文件中

      • 认证方式
        1.基于口令认证:即每次ssh交互输入登录密码
        2.基于密钥认证:非对称加密
        • 在本地主机生成一对密钥
          ssh-keygen [-q] [-b bits] [-t type] [-f output_keyfile] [-P passphrase]
          -t {rsa|ecdsa|dsa}: 公钥加密算法,默认rsa 2048
          -b bits:密钥长度
          -P passphrase :私钥加密密码
          -f output_keyfile:生成密钥的保存位置
        • 在本地主机将公钥复制到远程主机的用户家目录
          ssh-copy-id -i identity_file [-p port] [user@]host
          ssh-copy-id -i .ssh/id_rsa.pub centos@192.168.0.10
      • scp基于ssh实现跨主机文件复制
        复制文件到远程主机:scp [options] /PATH/TO/SOMEFILE [user@]host:/PATH/TO/SOMEFILE
        复制文件到本地主机:scp [options] [user@]host:/PATH/TO/SOMEFILE /PATH/TO/SOMEFILE
        常用选项:
        -r:递归
        -p:保持源文件权限
        -q: 静默模式
        -P port:指定远程服务的端口

      • 最佳实践
        1、不要使用默认端口;
        2、禁止使用protocol version 1;Protocol 2
        3、限制可登录的用户;
            在配置文件中配置:
            AllowUsers  user1 user2 ...
            AllowGroups group1 group2...
            DenyUsers  user1 user2...
            DenyGroups group1 group2
        4、设定空闲会话超时时长;
        5、利用防火墙设置ssh访问策略;
        6、仅监听特定的IP地址;
        7、基于口令认证时,使用强密码策略(可以禁止)
            # tr -dc A-Za-z0-9_ < /dev/urandom | head -c 20 | xargs
        8、使用基于密钥的认证;
        9、禁止使用空密码;
        10、禁止root用户直接登录;
        11、限制ssh的访问频度和并发在线数;
        12、做好日志,经常分析;
        13、设置TCP Wrappers
            用TCP Wrappers可以阻止或允许应用服务仅对某些主机开放,给系统在增加一道安全屏障。这部分设置共涉计到两个文件:hosts.allow和 hosts.deny
            eg: 在白名单中允许特定的主机访问
            sshd:192.168.0.100 192.168.0.200

    实验环境:
    技术分享图片

    实验1:模拟中间人attack
    首先客户端与server建立ssh通信,客户端从服务端下载公钥保存在家目录.ssh/known_hosts文件,此时可以基于密码或者密钥远程登录server。修改server的密钥文件模拟server attacked:
    技术分享图片

    技术分享图片
    技术分享图片
    实验2:密钥互信实验
    技术分享图片

    [root@xt .ssh]# ls
    id_rsa  id_rsa.pub  known_hosts
    [root@xt .ssh]# ssh root@192.168.0.109 hostname
    node1.xuetong.com
    

    这样就实现了免密登录,由于使用空密钥,id_rsa* 这两个文件有可能被窃取,伪装成客户端,可以使用对文件加密。

    技术分享图片
    此时同样把公钥发送给node1
    技术分享图片
    但此时还是要交互输入密码。此密码保证了文件的安全性,仅在此机器有效。可以通过使用ssh-agent作为代理,免去输入密码。
    技术分享图片

    ssh服务的配置使用

    标签:加密   options   conf   免密登录   user   远程主机   ase   ups   images   

    原文地址:http://blog.51cto.com/12580678/2338246

    (0)
    (0)
       
    举报
    评论 一句话评论(0
    登录后才能评论!
    © 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
    迷上了代码!