SSH安全服务

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

posted on 2018-08-03 12:12  OrochWang 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/OrochWang/p/9308838.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Linux SSH服务是一种安全的远程登录协议,可以在不同的计算机之间进行加密通信和文件传输。它可以通过公共网络连接到远程服务器,提供了一种安全的远程访问方式,可以在不同的操作系统之间进行通信和交互。Linux SSH服务是Linux系统中非常重要的一部分,可以提高系统的安全性和可靠性。 ### 回答2: Linux的SSH服务是一种远程登录协议,全称为Secure Shell。它允许用户通过一个加密通道远程登录到Linux系统,使用户能够在本地计算机上通过命令行界面访问和管理远程服务器。 SSH服务使用非对称加密机制来验证用户身份和保护通信过程中的数据安全。当用户通过SSH客户端连接到远程服务器时,服务器会向客户端发送一个公钥。客户端使用这个公钥对服务器的身份进行验证,并生成一个会话密钥进行后续通信。这种密钥交换的方式保证了通信过程中的数据传输安全SSH服务的优点之一是其高度安全性。通过SSH登录到远程服务器时,用户的密码以及所有数据都会以加密的形式传输,防止了敏感信息被窃取。此外,SSH还支持密钥身份验证,允许用户使用公钥/私钥对进行登录,提供了更高的安全性。 此外,SSH服务还提供了其他一些功能。用户可以通过SSH隧道在不同的计算机之间建立安全的通信通道,以便于传输其他协议的数据。用户还可以使用SSH远程执行命令、传输文件等。 总之,Linux的SSH服务是一种安全、可靠的远程登录协议,它通过加密通道保证了用户身份验证和数据传输的安全,为用户提供了方便的远程管理和操作方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值