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. Mac 下安装配置jdk

    jdk官网下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html 1.  Mac自带了的JDK6,安装在目录:/ ...

  2. bzoj 3566: [SHOI2014]概率充电器【树形概率dp】

    设g[u]为这个点被儿子和自己充上电的概率,f[u]为被儿子.父亲和自己充上电的概率 然后根据贝叶斯公式(好像是叫这个),1.P(A+B)=P(A)+P(B)-P(A)*P(B),2.P(A)=(P( ...

  3. bzoj 1007: [HNOI2008]水平可见直线【半平面交】

    其实并不算标准半平面交?但是思路差不多 先按照斜率排序,然后用栈维护凸壳,每遇到重斜率或a[i],s[top-1]交点的x轴在s[top],s[top-1]交点左侧,则说明s[top]被a[i],s[ ...

  4. (3)css文本样式

    本篇学习资料主要讲解: 如何用css 的样式定义方法来介绍文字的使用. 第(1)节:用css设置文本样式.                       一.弄懂文本文字的制作.利用css的样式定义版面 ...

  5. spring 获取配置文件的值

    Spring 获取配置文件的值 package com.hafiz.www.util; import org.slf4j.Logger; import org.slf4j.LoggerFactory; ...

  6. 如何用PS快速做出3D按钮效果的图片

    1 先建立一个透明图层 2:再创建一个矩形 3:选用过喷样式 4: 双击图层并应用蓝色,记得这里应该复制下颜色的16进制值. 效果如图所示 取消光泽选项,大功告成! 最终效果如图所示,将其保存为PNG ...

  7. 利用Marshal.AllocHGlobal申请非托管内存,unsafe代码

    unsafe public class RUN { int[] array3; IntPtr handle; ; public RUN() { handleCount = * ; handle = S ...

  8. D. Winter Is Coming 贪心(好题)

    http://codeforces.com/contest/747/problem/D 大概的思路就是找到所有两个负数夹着的线段,优先覆盖最小的长度.使得那时候不用换鞋,是最优的. 但是这里有个坑点, ...

  9. ASP.NET MVC+Bootstrap个人博客之文章打赏(六)

    看到新浪微博.百度百家等等平台上都带有文章“打赏”功能,觉得很新鲜,于是也想在自己的博客中加入“打赏”功能. 当然,加入打赏功能并非是真的想要让别人打赏.因为只有那些真正能引起共鸣,发人深思,让人受益 ...

  10. windows8.1专业版 关闭ie11总是已停止工作

    该问题通常原因: 1 系统重病毒: 2 系统和安装的软件不兼容导致. 解决方案: 1 杀毒更新至最新进行杀毒,仍未解决,重新安装系统: 2 目前身边人员多数属于该情况: 1 如安装了输入法.迅雷或其它 ...