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. Linux 常用命令五 软链接和硬链接

    一.软链接 相当于windows的快捷方式,当源文件不存在时,软链接失效. 创建软链接: wang@wang:~/workpalce/python$ ls -l 总用量 -rw-rw-r-- wang ...

  2. bzoj 4825: [Hnoi2017]单旋【dfs序+线段树+hash】

    这个代码已经不是写丑那么简单了--脑子浆糊感觉np++分分钟想暴起打死我--就这还一遍A过了-- 先都读进来hash一下,因为是平衡树所以dfs序直接按照点值来就好 对于每个操作: 1:set维护已插 ...

  3. glance镜像服务

    一.glance介绍: 因为云平台是提供Iass层的基础设施服务,我们拿到的是一台虚拟机,那么要用虚拟机的话必须有底层的镜像做支撑,所以说镜像的话也有一个服务来管理.但是我们云平台用的镜像不是装操作系 ...

  4. 【正睿多校联盟Day4 T4 简单的数论题】

    题目名有毒 由于并没有系统地开始学习数论,所以数论题基本靠暴力. 然鹅本题的题解相当简单: emmm....我当你没说 一个简单易懂的方法是这样的: 1. 欧拉定理的推论 若正整数a,n互质,则对于任 ...

  5. D. Alyona and a tree 公式转换 + 分块暴力

    http://codeforces.com/problemset/problem/740/D 对于每一对<u, v>.设dis[u]表示root到点u的距离,那么dis<u去v> ...

  6. net start iisadmin报错:系统找不到指定的文件

    IIS Admin Service不能启动 ,直接启动或命令(net start iisadmin)都不成功.导致IIS站点访问异常. 最终参考网上解决方案: 这是大多是由于windows\syste ...

  7. LN : leetcode 343 Integer Break

    lc 343 Integer Break 343 Integer Break Given a positive integer n, break it into the sum of at least ...

  8. 使用VirtualBox的时候虚拟机无法ping通windows主机,但是主机可以ping通虚拟机

    问题原因是windows开启了防火墙导致的,将windows的防火墙关闭即可. 关闭windows防火墙后会有警告的信息出现,直接无视即可.

  9. iOS Programming State Restoration 状态存储

    iOS Programming State Restoration 状态存储 If iOS ever needs more memory and your application is in the ...

  10. iOS Programming Subclassing UITableViewCell

    iOS Programming Subclassing UITableViewCell  1.Creating BNRItemCell UITableViewCell is a UIView subc ...