linux 之 SSH服务实战应用

SSH服务的介绍

    SSh 是Secure Shell 的缩写,是简历在应用层和传输层基础上的安全协议。SSh是目前较为安全可靠的远程登录会话和传输协议。目前绝大多数的Linux都采用ssh远程登录方式且SSH客户端适合用于多种平台。

SSH 的服务结构

ssh 是C/S架构,即Client/server(客户端和服务器端)结构
目前,SSH有1.x和2.x的两个版本。连接ssh服务是要注意客户程序与SSH服务端版本是否一致。Openssh2.X同时支持SSH1.x和2.x

SSH 服务的功能

SSH可有效的防止DNS欺骗以及IP欺骗
压缩传输数据
SSH提供多种传输方式
SSH构建Socket5代理

SSH服务的安装与配置

1. 安装
    如果在安装系统时,不是选择最小化安装,SSH服务都讲会默认安装在系统中,无须自行安装。如果系统没有自带SSH服务,可按照如下情况自行安装。
    *Redhat 、Centos 等使用RPM包的发行版
        yum install openssh-server openssh-clients
    *Debian 、Ubuntu 等使用DEB包发行版
        apt-get install openssh-server open ssh-client
    其中openssh-server 是ssh服务端软件,openssh-client为ssh的客户端软件
2. ssh客户端的选择
    SSH客户端支持多平台
        *苹果OS X操作系统
            自带terminal中包含有ssh客户端,与Linux ssh客户端使用方法相同
        *linux 操作系统
            OpenSSH-client
        * windows操作系统
            Putty 、xshell 、secureCrt 、WinsSCP 、 plink 等
    3. SSH配置文件说明
        在linux操作系统中,ssh服务端配置文件默认路径为/etc/ssh/sshd_config
        常用的配置说明
        port               22               # ssh端口设置,这里默认使用的是22端口
        Protocol           2,1             #选择SSH协议版本
        ListenAddress      0.0.0.0          #监听网卡的IP
        PermitRootLogin     no              #是否允许root登陆,默认是允许的
        PasswordAuthentication    yes       #是否开启密码验证
        permitEmptyPasswords      no        #是否允许密码为空
        PrintMotd                 no        #登入后是否显示一些信息,如上次登入时间及地点等
        PrintLastLog              yes       #显示上次登入的信息
        keepalive                 yes       #发送keepAlive信息给客户端
        MaxStartups               10        #允许尚未登入的联机画面数
        DenyUsers                  *         #禁止用户登录,* 表示所有用户 
        AllowUsers                 *         #允许用户登录

SSH的认证方式与访问策略

1. SSH配置基于口令的认证方式
    口令是ssh服务的基础认证方式,在不对SSH进行相应配置的情况下口令认证方式是默认启用的
2. SSH配置基于秘钥的认证方式
    秘钥认证是linux运维中常用较为安全的认证方式,由于无须输入口令,固永远与自动化与集群运维中。
    生成秘钥与公钥文件
        ssh—keygen 生成公钥与秘钥
    将公钥文件加入主机的认证文件中
        cat id_rsa.pub >> ~/ .ssh/authorized_keys
        注意.ssh目录权限为700,authorized_keys文件为600
3. 基于用户的访问策略需要在SSH服务的配置文件中进行配置
        /etc/ssh/sshd_config
        DenyUsers       test        #禁止test用户登入
        AllowUsers      test        #允许test用户登入
        DenyGroups      test        #禁止test群组登入
        AllowUsers      test        #允许test群组登入
4.  基于IP地址的访问策略有两种方式实现:
        iptables防火墙
        iptables  -A INPUT -p tcp --dport 22 -s 192.168.0.10/32 -j ACCEPT
        iptables  -A INPUT -p tcp --dport 22 -j DROP
5.  TCP Wrappers
        /etc/hosts.allow
        sshd:192.168.0.10/255.255.255.255
        /etc/hosts.deny
        sshd:ALL 或  sshd:ALL EXCEPT 192.168.0.10
        TCP Wrappers只支持长格式掩码,不能用192.168.0.0/24

SSH运维常用参数

    Linux下的SSH客户端可以配合SSH服务端实现多种需求,在运维工作中,熟练的使用SSH客户端可以解决很多棘手的问题。
    SSH执行远程主机命令
    SSH构建跳板隧道
    SSH指定密钥路径、端口、用户及配置文件
    调式模式与绑定IP地址
    构建Socket5代理

实战示例:
    获取远程主机当前系统时间,并以“主机名: 时间”的格式保存在本地remote.txt文件中。
    SSH执行远程主机命令的格式
    ssh username@hostname  ‘command’
    对应格式编写示例:

    实战示例:
        hostA可直接访问,hostB只允许hostA访问,用过SSH构建本地到B的连接通道。
        命令格式:
        ssh –t hostA ssh hostB
        示例:
        ssh –t 192.168.1.10 ssh 10.0.0.10
        首先与192.168.1.10建立SSH连接,并通过此连接10.0.010建立SSH连接。

SSH指定密钥路径、端口、用户及配置文件

-i          指定密钥路径
-p          指定SSH端口
-l          指定用户
-F          指定配置文件
-t          指定为终端迫使SSH客户端以交互模式工作,常配合expect使用
示例:ssh -l test 192.168.1.10 -i ~/mykey –p 2015 –F ~/myconfig 
    以test用户连接192.168.1.10主机 使用当前用户家目录下mykey文件作为密钥文件 指定访问远程主机的2015端口 并使用myconfig作为本地ssh客户端设置

调试模式与绑定IP

调试模式
    ssh -v  hostname
    -v参数以类似log的形式返回debug信息,可以帮助运维人员在SSH连接出现问题时快速查找问题。
    绑定IP
    如果你的SSH客户端有多于两个以上的IP地址,你就不可能分得清楚到底是哪一个IP地址连接到了SSH服务。
    ssh –b 192.168.1.10 root@10.0.0.10
    示例中的命令表示为从192.168.1.10这个IP来与10.0.0.10建立SSH连接。

构建Socket5代理

    成功建立SSH隧道后,在浏览器中(IE不支持Socket5代理,推荐使用Firefox)设置Socket5代理,填写指定的2015端口即可通过hostA网络获取本地受限的网络资源
    实战实例:
        hostA可访问www.website.com,hostB无法直接访问该站点。现要求hostB可访问该站点。
        windows客户端下需使用Plink或MyEntunnel,这里以小巧的Plink为例
        在hostB中将plink复制到C盘根目录下,在提示符窗口(cmd.exe)中执行以下命令:
        plink username@hostA –D 2015 

(未完待续……欢迎大家提意见)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

流年师兄要努力りゅう

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值