ssh安全服务

    client \ sever

    ssh: secure shell, protocol, 22 / tcp, 安全的远程登录, 基于RSA或DSA实现身份认证

    两种方式的用户登录认证:

    基于password

    基于key

    客户端组件:

    ssh, 配置文件: / etc / ssh / ssh_configu

    Host PATTERN

    StrictHostKeyChecking no 首次登录不显示检查提示

    格式:ssh[user @ ]host[COMMAND]

        ssh[-l user]host[COMMAND]

        ssh 192.168.0.1 'ipconfig'

    常见选项

        -p port:远程服务器监听的端口

        -b: 指定连接的源IP

        ssh - b 192.168.0.1 192.168.0.2

        -v: 调试模式

        -C:压缩方式

        -X: 支持x11转发

        -Y:支持信任x11转发

        ForwardX11Trusted yes

        -t: 强制伪tty分配

        ssh - t remoteserver1 ssh remoteserver2

    ssh基于key的验证

        (1)在客户端生成密钥对

ssh - keygen - t rsa[-P ''][-f "~ / .ssh / id_rsa "]

        (2) 把公钥文件传输至远程服务器对应用户的家目录

            ssh-copy-id [-i [identity_file]] [user@]host

        (3)测试

            服务端生成一对公私钥

            A            B        C

            sever   client_A   client_B

            ssh-copy-id {B,C}

            若B有A的私钥 可直连C

        (5)重设私钥口令:

            ssh-keygen –p

        (6)口令代理管理

            ssh-agent bash

            ssh-add

    ssh实现服务批量KEY验证

        编辑脚本:批量keyv

            ssh-keygen -t rsa -P '' -f ~/.ssh.id_rsa

            生成Kety 指定 -t方式 -P '口令为空' -f 指定路径

                ###[root@centos6 ~]#cat hostlist.txt

                ###192.168.30.7 root centos

                ###192.168.30.17 root magedu

                ###[root@centos6 ~]#cat pushkey.sh

                ####!/bin/bash

                ###ssh-keygen -t rsa -P ''  -f ~/.ssh/id_rsa &> /dev/null && echo " Ssh key is created "

                ###while read line;do

                        ip=`echo $line|awk '{print $1}'`

                        user=`echo $line|awk '{print $2}'`

                        password=`echo $line|awk '{print $3}'`

                        expect <<-EOF

                        set timeout 50

                        spawn ssh-copy-id  -i /root/.ssh/id_rsa.pub $user@$ip

                        expect {

                        " yes / no " { send " yes \ n ";exp_continue }

                        " password " { send " $password \ n " }

                        }

                        expect eof

                        EOF

                        echo " $ip is finished "

                ###done < hostlist.txt

    rsync命令(同步变动数据)

        基于ssh和rsh服务实现高效率的远程系统之间复制文件

        使用安全的shell连接做为传输方式

            rsync –av /etc server1:/tmp 复制目录和目录下文件

            rsync –av /etc/ server1:/tmp 只复制目录下文件

        比scp更快,只复制不同的文件

        选项:

            -n 模拟复制过程

            -v 显示详细过程

            -r 递归复制目录树

            -p 保留权限

            -t 保留时间戳

            -g 保留组信息

            -o 保留所有者信息

            -l 将软链接文件本身进行复制(默认)

            -L 将软链接文件指向的文件复制

            -a 存档,相当于–rlptgoD,但不保留ACL(-A)和SELinux属性(-X)

    SSH端口转发

        ###本地转发:clientA-ssh severB-

            -L localport:remotehost:remotehostport sshserver

        选项:

            -f 后台启用

            -N 不打开远程shell,处于等待状态

            -g 启用网关功能

        示例

            ssh –L 9527:telnetsrv:23 -N sshsrv

            telnet 127.0.0.1 9527

        à
ß sshsrv:22 à
ß localhost:XXXXX à
ßlocalhost:9527 ß当访问本机的9527的端口时,被加密后转发到sshsrv的ssh服务,再解密被转发到telnetsrv:23 data

             telnetsrv:23à
ßsshsrv:YYYYY

        ###远程转发:

            -R sshserverport:remotehost:remotehostport sshserver

        示例:

            ssh –R 9527:telnetsrv:23 –N sshsrv

        让sshsrv侦听9527端口的访问,如有访问,就加密后通过ssh服务转发请求到本机ssh客户端,再由本机解密后转发到telnetsrv:23

            à
ß localhost:XXXXX à
ß sshsrv:22 à
ß sshsrv:9527 à
ßData

             telnetsrv:23à
ßlocalhost:YYYYY

        动态端口转发:

            当用firefox访问internet时,本机的1080端口做为代理服务器,firefox的访问

            请求被转发到sshserver上,由sshserver替之访问internet

                ssh -D 1080 root@192.168.244.131

            在本机firefox设置代理socket proxy:127.0.0.1:1080

    ssh服务器

        服务器端:sshd, 配置文件: /etc/ssh/sshd_config 第17行 port端口改掉

            登录信息日志在 /var/log/secure

                awk '/failed password/{ip$[(NF-3)]++}END{for (i in ip){if(ip[i]>=3)system(" iptables - A INPUT - s " i " - j REJECT ")}}' /var/log/secure

                常用参数:

            Port (端口)

            ListenAddress ip (监听ip)

            LoginGraceTime 2m  (登录维持两分钟)

            PermitRootLogin yes  (是否ROOT登录)

            StrictModes yes 检查.ssh/文件的所有者,权限等

            MaxAuthTries 6  (最多能尝试连接一半的次数)

            MaxSessions 10 同一个连接最大会话

            PubkeyAuthentication yes  (公钥验证)

            PermitEmptyPasswords no  (是否能空密码)

            PasswordAuthentication yes  (密码验证 )

            GatewayPorts no  (网关端口)

            ClientAliveInterval:客户端活动间隔 单位:秒

            ClientAliveCountMax:客户端活动间隔探测次数 默认3

            UseDNS yes  (dnf解析 建议no)

            GSSAPIAuthentication yes 提高速度可改为no

            MaxStartups 未认证连接最大值,默认值10

            Banner /path/file

            限制可登录用户的办法:

                AllowUsers user1 user2 user3

                DenyUsers

                    两个都有的时候。拒绝名单优先

                AllowGroups

                DenyGroups

        建议使用非默认端口

            禁止使用protocol version 1

            限制可登录用户

            设定空闲会话超时时长

            利用防火墙设置ssh访问策略

            仅监听特定的IP地址

            基于口令认证时,使用强密码策略

                tr -dc A-Za-z0-9_ < /dev/urandom | head -c 30| xargs

            使用基于密钥的认证

            禁止使用空密码

            禁止root用户直接登录

            限制ssh的访问频度和并发在线数

    经常分析日志 

    ssh 工具

        dropbear

        编译安装dropbear示例

        ssh协议的另一个实现:dropbear

        源码编译安装:

            1、安装开发包组:yum groupinstall "Development tools"

            2、下载dropbear-2017.75.tar.bz2

            3、tar xf dropbear-2017.75.tar.bz2

            4、less INSTALL README

            5、./configure

            6、make PROGRAMS="dropbear dbclient dropbearkey dropbearconvert scp"

            7、make PROGRAMS="dropbear dbclient dropbearkey dropbearconvert scp" install

        dropbear启动ssh服务:

            8、ls /usr/local/sbin/ /usr/local/bin/

            9、/usr/local/sbin/dropbear -h

            10、mkdir /etc/dropbear

            11、dropbearkey -t rsa -f /etc/dropbear/dropbear_rsa_host_key -s 2048

            12、dropbearkey -t dss -f /etc/dropbear/dropbear_dsa_host_key

            13、dropbear -p :2222 -F –E #前台运行

            dropbear -p :2222 #后台运行

        客户端访问:

            14、ssh -p 2222 root@127.0.0.1

            15、dbclient -p 2222 root@127.0.0.1

AIDE

    AIDE(Advanced Intrusion Detection Environment)

    高级入侵检测环境)是一个入侵检测工具,主要用途是检查文件的完整性,审计计算机上的那些文件被更改过了。

    AIDE能够构造一个指定文件的数据库,它使用aide.conf作为其配置文件。AIDE数据库能够保存文件的各种属性,包括:权限(permission)、索引节点序号(inode number)、所属用户(user)、所属用户组(group)、文件大小、最后修改时间(mtime)、创建时间(ctime)、最后访问时间(atime)、增加的大小以及连接数。AIDE还能够使用下列算法:sha1、md5、rmd160、tiger,以密文形式建立每个文件的校验码或散列号.

    这个数据库不应该保存那些经常变动的文件信息,例如:日志文件、邮件、/proc文件系统、用户起始目录以及临时目录.

    AIDE

        安装

            yum install aide

        修改配置文件

            vim /etc/aide.conf (指定对哪些文件进行检测)

            /test/chameleon R

            /bin/ps R+a

            /usr/bin/crontab R+a

            /etc PERMS

            !/etc/mtab #"!"表示忽略这个文件的检查

            R=p+i+n+u+g+s+m+c+md5 权限+索引节点+链接数+用户+组+大小+

            最后一次修改时间+创建时间+md5校验值

            NORMAL = R+rmd60+sha256

        AIDE

            初始化默认的AIDE的库:

                /usr/local/bin/aide --init

            生成检查数据库(建议初始数据库存放到安全的地方)

                cd /var/lib/aide

                mv aide.db.new.gz aide.db.gz

            检测:

                /usr/local/bin/aide --check

            更新数据库

                aide --update

SSH安全服务的更多相关文章

  1. Linux实战教学笔记05:远程SSH连接服务与基本排错(新手扫盲篇)

    第五节 远程SSH连接服务与基本排错 标签(空格分隔):Linux实战教学笔记-陈思齐 第1章 远程连接LInux系统管理 1.1 为什么要远程连接Linux系统 在实际的工作场景中,虚拟机界面或物理 ...

  2. systemctl status ssh.service 服务重启出现报错

    Case: ubuntu在从Ubuntu 16.04 LTS 升级到18.04 的时候,执行 do-release-upgrade -d 后,发现ssh无法登陆服务器, Solution: 1.通过s ...

  3. (转)远程SSH连接服务与基本排错

    远程SSH连接服务与基本排错 原文:https://www.cnblogs.com/chensiqiqi/p/6224474.html#top 1.1 为什么要远程连接Linux系统 在实际的工作场景 ...

  4. 3、SSH高级服务

    1.ssh服务生成新的公钥和私钥[root@rhel6_80 ~]# ssh-keygen Generating public/private rsa key pair. Enter file in ...

  5. Linux SSH,FTP服务配置

    CentOS-6.4-x86_64-minimal 0.网卡配置 参考:Linux系统\Centos没有网卡eth0配置文件怎么办? - http://jingyan.baidu.com/articl ...

  6. 远程SSH连接服务与基本排错

    为什么要远程连接Linux系统?? 在实际的工作场景中,虚拟机界面或物理服务器本地的窗口都是很少能够接触到的,因为服务器装完系统后,都要拉到IDC机房托管,如果是购买了云主机,更碰不到服务器本地显示器 ...

  7. SSH高级服务

    SSH端口转发 SSH 会自动加密和解密所有 SSH 客户端与服务端之间的网络数据.但是,SSH 还能够将其他 TCP 端口的网络数据通过 SSH 链接来转发,并且自动提供了相应的 加密及解密服务.这 ...

  8. 安装,配置,启动FTP,SSH,NFS服务

    1.安装,配置,启动FTP服务 sudo apt-get install vsftpd 修改vsftpd的配置文件/etx/vsftpd/.config,将下面几行前面的“#”去掉 #local_en ...

  9. Ubuntu13.10:[3]如何开启SSH SERVER服务

    作为最新版本的UBUNTU系统而言,开源,升级全部都不在话下.传说XP已经停止补丁更新了,使用UBUNTU也是一个很好的选择.ubuntu默认安装完成后只有ssh-agent(客户端模式),宾哥百度经 ...

随机推荐

  1. MySQL调优之数据类型选择原则

    本文涉及:高可用数据库设计时数据类型的选择原则 在进行数据库设计时,如果能够选择最恰当的数据类型就可以为后期的数据库调优打好最坚实的基础 选择数据类型的原则 更小的通常更好 例如存储订单状态字段很多时 ...

  2. pycharm2017.1破解方法

    破解专业版,在server选项里边输入 http://elporfirio.com:1017/就可以了

  3. [Usaco2009 Feb]庙会捷运Fair Shuttle

    Description 公交车一共经过N(1<=N<=20000)个站点,从站点1一直驶到站点N.K(1<=K<=50000)群奶牛希望搭乘这辆公交车.第i群牛一共有Mi(1& ...

  4. 二分查找+数学 HDOJ 4342 History repeat itself

    题目传送门 题意:计算从1开始到第n个非完全平方数的开方和 分析:设第n个非完全平方数的值为a,x * x < a < (x+1) * (x+1),而且易得(tmp = sqrt (a) ...

  5. JD商家后台管理的细节

    1: 宝贝主图和滚动图都是800px,只有刚好这么多时才能得到显示,否则不会显示. 2:宝贝描述图只支持750px, 只有这么多时才能得到显示, 刚开始不知道, 上传图片上去后, 发现始终无法显示, ...

  6. 转-NSUserDefaults 简介,使用 NSUserDefaults 存储自定义对象

    转自:http://my.oschina.net/u/1245365/blog/294449 摘要 NSUserDefaults适合存储轻量级的本地数据,一些简单的数据(NSString类型的)例如密 ...

  7. hihocoder1703 第K小先序遍历

    思路: 给定n个节点二叉树的中序遍历,不同形态的二叉树的种类数有卡特兰数个.为了在中序序列[l, r]表示的子树上找先序序列第k小的树,首先需要从小到大枚举每个节点作根所能构成的二叉树的数目来确定树根 ...

  8. CF933A/934C A Twisty Movement

    思路: 实际上是求原序列中最长的形如1......2......1......2......的子序列的长度.令dp[i][j](1 <= j <= 4)表示在子序列a[1]至a[i]中形如 ...

  9. Hadoop YARN学习之核心概念(2)

    Hadoop YARN学习之核心概念(2) 1. Hadoop 2.X YARN引入的新服务 1.1 新的ResourceManager纯碎作为资源调度器,是集群资源的唯一仲裁者: 1.2 用户应用程 ...

  10. TinyMCE编辑器

    TinyMCE编辑器下载地址   http://www.tinymce.com/download/download.php