精华内容
下载资源
问答
  • 最近公司的系统被客户那边的一套扫描漏洞的设备扫出了关于 openssh 的几个漏洞,大概看了一下主要是因为 openssh 当前版本为 5.3,版本低了,本来觉得是个小问题,我自己的 distribution 是 centos 6.x, yum 最新的...

     

    最近公司的系统被客户那边的一套扫描漏洞的设备扫出了关于 openssh 的几个漏洞,大概看了一下主要是因为 openssh 当前版本为 5.3,版本低了,本来觉得是个小问题,我自己的 distribution 是 centos 6.x, yum 最新的 openssh 也只是 5.3,没办法只能到 rpm 官网找新的包,找到最新的是 6.4,然后通过 yum localinstall 升级了,没想到第二天客户反映还存在 openssh 漏洞,要一个没有才能对外开放 22 端口。 懵逼,没办法,只能去openssh 官网找最新的 release,最新版本是 7.5,安装过程中遇到了一系列的坑,就不一一述说了,为了帮助大家避免这些坑,特记录下来仅供参考。

    ssh 升级步骤

    准备工作:安装telnet服务,并启用,防止openssh服务无法远程的情况

    安装

    cd /root/
    mkdir ssh_upgrade && cd ssh_upgrade

    上传openssh安装包

    rz 安装包 

    查看当前openssh版本

    ssh -V     

    卸载原有openssh

    yum remove openssh -y    

    安装 gcc、openssl和zlib

    yum install gcc openssl-devel zlib-devel
    tar zxvf openssh-7.5p1.tar.gz
    cd openssh-7.5p1
    ./configure
    make && make install

    拷贝ssh服务文件

    cp ./contrib/redhat/sshd.init /etc/init.d/sshd
    chmod +x /etc/init.d/sshd

    修改SSHD服务文件

    vim /etc/init.d/sshd
    修改以下内容
    SSHD=/usr/sbin/sshd 为 SSHD=/usr/local/sbin/sshd
    /usr/sbin/ssh-keygen -A 为 /usr/local/bin/ssh-keygen -A 
    保存退出

    加入系统服务

    chkconfig --add sshd

    查看系统启动服务是否增加改项

    chkconfig --list |grep sshd
    
    sshd               0:off    1:off    2:on    3:on    4:on    5:on    6:off 

    允许root用户远程登录

    cp sshd_config /etc/ssh/sshd_config
    vim /etc/ssh/sshd_config 修改 PermitRootLogin yes,并去掉注释

    配置允许root用户远程登录

    这一操作很重要!很重要!很重要!重要的事情说三遍,因为openssh安装好默认是不执行sshd_config文件的,所以即使在sshd_config中配置允许root用户远程登录,但是不加上这句命令,还是不会生效!

    vim /etc/init.d/sshd
    在 ‘$SSHD $OPTIONS && success || failure’这一行上面加上一行 ‘OPTIONS="-f /etc/ssh/sshd_config"’
    保存退出

    重启 

    service sshd start  

    收尾工作:确定openssh访问没问题之后,关闭telnet服务

    # mv /etc/securetty.old /etc/securetty 
    # chkconfig  xinetd off 
    # service xinetd stop 

    展开全文
  • 安全部门漏洞检查,让升级openssh版本,升级操作不复杂,但毕竟是线上环境,主要注意如果你是通过ssh远程升级ssh版本,万一失败了,ssh不上去,是否可以到现场处理。(重要提示:当进行系统update的时候,会将sshd...

    安全部门漏洞检查,让升级openssh版本,升级操作不复杂,但毕竟是线上环境,主要注意如果你是通过ssh远程升级ssh版本,万一失败了,ssh不上去,是否可以到现场处理。(重要提示:当进行系统update的时候,会将sshd文件和ssh文件恢复到原来的版本,如果配置了支持jenkins相关的内容KexAlgorithms,会导致ssh无法启动,解决方式参考文章最后,使用不同目录安装方式)

    环境:

    cat /etc/issue

    CentOS release 6.5 (Final)


    ssh -V

    OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013


    openssl version -a
    OpenSSL 1.0.1e-fips 11 Feb 2013

    一、准备
    备份ssh目录(重要)
    cp -rf /etc/ssh /etc/ssh.bak

    【 可以现场处理的,不用设置
    安装telnet,避免ssh升级出现问题,导致无法远程管理
    yum install telnet-server

    vi /etc/xinetd.d/telnet
    service telnet
    {
            flags           = REUSE
            socket_type     = stream
            wait            = no
            user            = root
            server          = /usr/sbin/in.telnetd
            log_on_failure  += USERID
            disable         = no
    }

    默认不允许root登录

    vi /etc/securetty
    增加
    pts/0
    pts/1
    pts/2
    如果登录用户较多,需要更多的pts/*

    /etc/init.d/xinetd restart
    这样root可以telnet登录了

    ssh升级后建议再修改回还原设置


    二、安装
    升级需要几个组件
    yum install -y gcc openssl-devel pam-devel rpm-build

    现在新版本,目前是openssh-7.3最新,但刚刚出来,为保险,我选用7.2版本
    wget http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-7.3p1.tar.gz
    wget http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-7.2p1.tar.gz
    wget http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-7.1p1.tar.gz

    解压升级包,并安装
    tar -zxvf openssh-7.2p1.tar.gz
    cd openssh-7.2p1
    ./configure --prefix=/usr --sysconfdir=/etc/ssh --with-pam --with-zlib --with-md5-passwords --with-tcp-wrappers
    make && make install

    安装后提示:
    /etc/ssh/ssh_config already exists, install will not overwrite
    /etc/ssh/sshd_config already exists, install will not overwrite
    /etc/ssh/moduli already exists, install will not overwrite
    ssh-keygen: generating new host keys: ECDSA ED25519
    /usr/sbin/sshd -t -f /etc/ssh/sshd_config
    /etc/ssh/sshd_config line 81: Unsupported option GSSAPIAuthentication
    /etc/ssh/sshd_config line 83: Unsupported option GSSAPICleanupCredentials


    修改配置文件,允许root登录

    vi /etc/ssh/sshd_config
    #PermitRootLogin yes
    修改为
    PermitRootLogin yes

    命令:
    sed -i '/^#PermitRootLogin/s/#PermitRootLogin yes/PermitRootLogin yes/' /etc/ssh/sshd_config

    重启openSSH
    service sshd restart

    升级后版本
    ssh -V
    OpenSSH_7.2p1, OpenSSL 1.0.1e-fips 11 Feb 2013


    如果之前你将原ssh目录修改名字
    mv /etc/ssh /etc/ssh_bak

    需要修改下配置:
    修改配置文件,禁止root登录
    sed -i '/^#PermitRootLogin/s/#PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config

    可以不操作,禁止dns解析
    sed -i '/^#UseDNS yes/s/#UseDNS yes/UseDNS no/' /etc/ssh/sshd_config

    可以不操作默认是22,修改ssh端口至6022
    echo "Port 6022" >> /etc/ssh/sshd_config


    注:在升级SSH时你的SSH是不会因为升级或重启服务而断掉的.


    问题1:
    [root@testserver2 tmp]# service sshd restart
    Stopping sshd:                                             [  OK  ]
    Starting sshd: /etc/ssh/sshd_config line 81: Unsupported option GSSAPIAuthentication
    /etc/ssh/sshd_config line 83: Unsupported option GSSAPICleanupCredentials [  OK  ]

    解决:
    将/etc/ssh/sshd_config文件中以上行数内容注释下即可

    sed -i '/^GSSAPICleanupCredentials/s/GSSAPICleanupCredentials yes/#GSSAPICleanupCredentials yes/' /etc/ssh/sshd_config
    sed -i '/^GSSAPIAuthentication/s/GSSAPIAuthentication yes/#GSSAPIAuthentication yes/' /etc/ssh/sshd_config
    sed -i '/^GSSAPIAuthentication/s/GSSAPIAuthentication no/#GSSAPIAuthentication no/' /etc/ssh/sshd_config

    问题2:
    更新后ssh有如下提示,但不影响使用:
    [root@testserver2 tmp]# ssh 10.111.32.51
    /etc/ssh/ssh_config line 50: Unsupported option "gssapiauthentication"                                           

    解决:
    可以注释/etc/ssh/ssh_config的gssapiauthentication内容


    ------------------------------------------------------------------------------------------

    CentOS7升级openssh参考这里的内容

    本次使用源码安装(系统需要gcc),各软件版本如下:

    zlib-1.2.8
    openssl-1.0.2h
    openssh-7.3p1

    安装步骤如下:

    1、安装zlib
    [root@CentOS7test ~]# cd zlib-1.2.8/
    [root@CentOS7test zlib-1.2.8]# ./configure
    [root@CentOS7test zlib-1.2.8]# make
    [root@CentOS7test zlib-1.2.8]# make install

    2、安装openssl
    [root@CentOS7test ~]# cd openssl-1.0.2h/
    [root@CentOS7test openssl-1.0.2h]# ./config --prefix=/usr/ --shared
    [root@CentOS7test openssl-1.0.2h]# make
    [root@CentOS7test openssl-1.0.2h]# make install

    3、安装openssh
    [root@CentOS7test ~]# cd openssh-7.3p1/
    [root@CentOS7test openssh-7.3p1]# ./configure --prefix=/usr/local --sysconfdir=/etc/ssh --with-pam --with-zlib --with-md5-passwords --with-tcp-wrappers
    [root@CentOS7test openssh-7.3p1]# make
    [root@CentOS7test openssh-7.3p1]# make install

    4、查看版本是否已更新
    [root@CentOS7test openssh-7.3p1]# ssh -V
    OpenSSH_7.3p1, OpenSSL 1.0.2h 3 May 2016

    5、新介质替换原有内容
    [root@CentOS7test openssh-7.3p1]# mv /usr/bin/ssh /usr/bin/ssh_bak
    [root@CentOS7test openssh-7.3p1]# cp /usr/local/bin/ssh /usr/bin/ssh
    [root@CentOS7test openssh-7.3p1]# mv /usr/sbin/sshd /usr/sbin/sshd_bak
    [root@CentOS7test openssh-7.3p1]# cp /usr/local/sbin/sshd /usr/sbin/sshd

    6-加载ssh配置重启ssh服务
    [root@CentOS7test ~]# systemctl daemon-reload
    [root@CentOS7test ~]# systemctl restart sshd.service

    7、遇到的问题解决

    问题1:
    安装完成后,telnet 22端口不通,通过systemctl status sshd.service查看发现有警告信息
    部分信息如Permissions 0640 for '/etc/ssh/ssh_host_ecdsa_key' are too open

    修正:
    修改相关提示文件的权限为600,并重启sshd服务(systemctl restart sshd.service)
    查看服务状态(systemctl status sshd.service)
    例:chmod 600 /etc/ssh/ssh_host_ecdsa_key

    问题2:
    安装完成后,如需root直接登录

    修正:
    修改/etc/ssh/sshd_config文件,将文件中#PermitRootLogin yes改为PermitRootLogin yes
    并重启sshd服务
    升级后验证


    问题3:

    如果你使用了jenkins进行部署,升级后会影响jenkins部署,测试连接web端会报错 Algorithm negotiation fail

    修正:

    在web端修改sshd_config文件最后一行增加以下内容

    KexAlgorithms diffie-hellman-group1-sha1,curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha1

    参考:http://stackoverflow.com/questions/32627998/algorithm-negotiation-fail-in-jenkins

    --------------------------------------------------------------


    临时修改版本号,运行很久的线上环境升级存在风险,如果可以的话只修改版本号吧(后期经过验证,这种修改版本号的方法无效,ssh -v IP可以查看版本)
    查询
    ssh -V
    sshd -V

    备份

    cp /usr/bin/ssh /usr/bin/ssh.bak.version_edit
    cp /usr/sbin/sshd /usr/sbin/sshd.bak.version_edit

    修改

    sed -i 's#OpenSSH_5.3p1#OpenSSH_7.2p1#g' /usr/bin/ssh
    sed -i 's#OpenSSH_5.3p1#OpenSSH_7.2p1#g' /usr/sbin/sshd

    补充汇总下:

    centos7.X主机升级ssh
    cp /usr/bin/ssh /usr/bin/ssh.bak.20161124
    cp /usr/sbin/sshd /usr/bin/sshd.bak.20161124
    mv /etc/ssh /etc/ssh.bak
    ---下载包、安装gcc 、编译等中间步骤参上边内容---
    make && make install
    /usr/sbin/sshd -t -f /etc/ssh/sshd_config
    echo 'PermitRootLogin yes' >> /etc/ssh/sshd_config

    cp /etc/ssh.bak/sshd_config /etc/ssh/sshd_config 将原来的文件覆盖下这个新生成的内容

    /bin/systemctl restart  sshd.service


    centos6.X升级ssh
    cp /usr/bin/ssh /usr/bin/ssh.bak.20161124
    cp /usr/sbin/sshd /usr/bin/sshd.bak.20161124
    cp -rf /etc/ssh /etc/ssh.bak
    ---下载包、安装gcc 、编译等中间步骤参上边内容---
    make && make install
    sed -i '/^#PermitRootLogin/s/#PermitRootLogin yes/PermitRootLogin yes/' /etc/ssh/sshd_config
    sed -i '/^GSSAPICleanupCredentials/s/GSSAPICleanupCredentials yes/#GSSAPICleanupCredentials yes/' /etc/ssh/sshd_config
    sed -i '/^UsePAM/s/UsePAM yes/#UsePAM yes/' /etc/ssh/sshd_config
    sed -i '/^GSSAPIAuthentication/s/GSSAPIAuthentication yes/#GSSAPIAuthentication yes/' /etc/ssh/sshd_config
    sed -i '/^GSSAPIAuthentication/s/GSSAPIAuthentication no/#GSSAPIAuthentication no/' /etc/ssh/sshd_config
    service sshd restart


    附录:

    CentOS7 sshd_config配置内容

    [python] view plain copy
    1. #       $OpenBSD: sshd_config,v 1.93 2014/01/10 05:59:19 djm Exp $  
    2.   
    3. # This is the sshd server system-wide configuration file.  See  
    4. # sshd_config(5) for more information.  
    5.   
    6. # This sshd was compiled with PATH=/usr/local/bin:/usr/bin  
    7.   
    8. # The strategy used for options in the default sshd_config shipped with  
    9. # OpenSSH is to specify options with their default value where  
    10. # possible, but leave them commented.  Uncommented options override the  
    11. # default value.  
    12.   
    13. # If you want to change the port on a SELinux system, you have to tell  
    14. # SELinux about this change.  
    15. # semanage port -a -t ssh_port_t -p tcp #PORTNUMBER  
    16. #  
    17. #Port 22  
    18. #AddressFamily any  
    19. #ListenAddress 0.0.0.0  
    20. #ListenAddress ::  
    21.   
    22. # The default requires explicit activation of protocol 1  
    23. #Protocol 2  
    24.   
    25. # HostKey for protocol version 1  
    26. #HostKey /etc/ssh/ssh_host_key  
    27. # HostKeys for protocol version 2  
    28. HostKey /etc/ssh/ssh_host_rsa_key  
    29. #HostKey /etc/ssh/ssh_host_dsa_key  
    30. HostKey /etc/ssh/ssh_host_ecdsa_key  
    31. HostKey /etc/ssh/ssh_host_ed25519_key  
    32.   
    33. # Lifetime and size of ephemeral version 1 server key  
    34. #KeyRegenerationInterval 1h  
    35. #ServerKeyBits 1024  
    36.   
    37. # Ciphers and keying  
    38. #RekeyLimit default none  
    39.   
    40. # Logging  
    41. # obsoletes QuietMode and FascistLogging  
    42. #SyslogFacility AUTH  
    43. SyslogFacility AUTHPRIV  
    44. #LogLevel INFO  
    45.   
    46. # Authentication:  
    47.   
    48. #LoginGraceTime 2m  
    49. PermitRootLogin yes  
    50. #StrictModes yes  
    51. #MaxAuthTries 6  
    52. #MaxSessions 10  
    53.   
    54. #RSAAuthentication yes  
    55. #PubkeyAuthentication yes  
    56.   
    57. # The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2  
    58. # but this is overridden so installations will only check .ssh/authorized_keys  
    59. AuthorizedKeysFile      .ssh/authorized_keys  
    60.   
    61. #AuthorizedPrincipalsFile none  
    62.   
    63. #AuthorizedKeysCommand none  
    64. #AuthorizedKeysCommandUser nobody  
    65.   
    66. # For this to work you will also need host keys in /etc/ssh/ssh_known_hosts  
    67. #RhostsRSAAuthentication no  
    68. # similar for protocol version 2  
    69. #HostbasedAuthentication no  
    70. # Change to yes if you don't trust ~/.ssh/known_hosts for  
    71. # RhostsRSAAuthentication and HostbasedAuthentication  
    72. #IgnoreUserKnownHosts no  
    73. # Don't read the user's ~/.rhosts and ~/.shosts files  
    74. #IgnoreRhosts yes  
    75.   
    76. # To disable tunneled clear text passwords, change to no here!  
    77. #PasswordAuthentication yes  
    78. #PermitEmptyPasswords no  
    79. PasswordAuthentication yes  
    80.   
    81. # Change to no to disable s/key passwords  
    82. #ChallengeResponseAuthentication yes  
    83. ChallengeResponseAuthentication no  
    84.   
    85. # Kerberos options  
    86. #KerberosAuthentication no  
    87. #KerberosOrLocalPasswd yes  
    88. #KerberosTicketCleanup yes  
    89. #KerberosGetAFSToken no  
    90. #KerberosUseKuserok yes  
    91.   
    92. # GSSAPI options  
    93. GSSAPIAuthentication yes  
    94. GSSAPICleanupCredentials no  
    95. #GSSAPIStrictAcceptorCheck yes  
    96. #GSSAPIKeyExchange no  
    97. #GSSAPIEnablek5users no  
    98.   
    99. # Set this to 'yes' to enable PAM authentication, account processing,  
    100. # and session processing. If this is enabled, PAM authentication will  
    101. # be allowed through the ChallengeResponseAuthentication and  
    102. # PasswordAuthentication.  Depending on your PAM configuration,  
    103. # PAM authentication via ChallengeResponseAuthentication may bypass  
    104. # the setting of "PermitRootLogin without-password".  
    105. # If you just want the PAM account and session checks to run without  
    106. # PAM authentication, then enable this but set PasswordAuthentication  
    107. # and ChallengeResponseAuthentication to 'no'.  
    108. # WARNING: 'UsePAM no' is not supported in Red Hat Enterprise Linux and may cause several  
    109. # problems.  
    110. UsePAM yes  
    111.   
    112. #AllowAgentForwarding yes  
    113. #AllowTcpForwarding yes  
    114. #GatewayPorts no  
    115. X11Forwarding yes  
    116. #X11DisplayOffset 10  
    117. #X11UseLocalhost yes  
    118. #PermitTTY yes  
    119. #PrintMotd yes  
    120. #PrintLastLog yes  
    121. #TCPKeepAlive yes  
    122. #UseLogin no  
    123. UsePrivilegeSeparation sandbox          # Default for new installations.  
    124. #PermitUserEnvironment no  
    125. #Compression delayed  
    126. #ClientAliveInterval 0  
    127. #ClientAliveCountMax 3  
    128. #ShowPatchLevel no  
    129. #UseDNS yes  
    130. UseDNS no  
    131. #PidFile /var/run/sshd.pid  
    132. #MaxStartups 10:30:100  
    133. #PermitTunnel no  
    134. #ChrootDirectory none  
    135. #VersionAddendum none  
    136.   
    137. # no default banner path  
    138. #Banner none  
    139.   
    140. # Accept locale-related environment variables  
    141. AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES  
    142. AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT  
    143. AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE  
    144. AcceptEnv XMODIFIERS  
    145.   
    146. # override default of no subsystems  
    147. Subsystem       sftp    /usr/libexec/openssh/sftp-server  
    148.   
    149. # Example of overriding settings on a per-user basis  
    150. #Match User anoncvs  
    151. #       X11Forwarding no  
    152. #       AllowTcpForwarding no  
    153. #       PermitTTY no  
    154. #       ForceCommand cvs server  

    CentOS6 sshd_config配置内容
    [python] view plain copy
    1. #       $OpenBSD: sshd_config,v 1.80 2008/07/02 02:24:18 djm Exp $  
    2.   
    3. # This is the sshd server system-wide configuration file.  See  
    4. # sshd_config(5) for more information.  
    5.   
    6. # This sshd was compiled with PATH=/usr/local/bin:/bin:/usr/bin  
    7.   
    8. # The strategy used for options in the default sshd_config shipped with  
    9. # OpenSSH is to specify options with their default value where  
    10. # possible, but leave them commented.  Uncommented options change a  
    11. # default value.  
    12.   
    13. #Port 22  
    14. #AddressFamily any  
    15. #ListenAddress 0.0.0.0  
    16. #ListenAddress ::  
    17.   
    18. # Disable legacy (protocol version 1) support in the server for new  
    19. # installations. In future the default will change to require explicit  
    20. # activation of protocol 1  
    21. Protocol 2  
    22.   
    23. # HostKey for protocol version 1  
    24. #HostKey /etc/ssh/ssh_host_key  
    25. # HostKeys for protocol version 2  
    26. #HostKey /etc/ssh/ssh_host_rsa_key  
    27. #HostKey /etc/ssh/ssh_host_dsa_key  
    28.   
    29. # Lifetime and size of ephemeral version 1 server key  
    30. #KeyRegenerationInterval 1h  
    31. #ServerKeyBits 1024  
    32.   
    33. # Logging  
    34. # obsoletes QuietMode and FascistLogging  
    35. #SyslogFacility AUTH  
    36. SyslogFacility AUTHPRIV  
    37. #LogLevel INFO  
    38.   
    39. # Authentication:  
    40.   
    41. #LoginGraceTime 2m  
    42. PermitRootLogin yes  
    43. #StrictModes yes  
    44. #MaxAuthTries 6  
    45. #MaxSessions 10  
    46.   
    47. #RSAAuthentication yes  
    48. #PubkeyAuthentication yes  
    49. #AuthorizedKeysFile     .ssh/authorized_keys  
    50. #AuthorizedKeysCommand none  
    51. #AuthorizedKeysCommandRunAs nobody  
    52.   
    53. # For this to work you will also need host keys in /etc/ssh/ssh_known_hosts  
    54. #RhostsRSAAuthentication no  
    55. # similar for protocol version 2  
    56. #HostbasedAuthentication no  
    57. # Change to yes if you don't trust ~/.ssh/known_hosts for  
    58. # RhostsRSAAuthentication and HostbasedAuthentication  
    59. #IgnoreUserKnownHosts no  
    60. # Don't read the user's ~/.rhosts and ~/.shosts files  
    61. #IgnoreRhosts yes  
    62.   
    63. # To disable tunneled clear text passwords, change to no here!  
    64. #PasswordAuthentication yes  
    65. #PermitEmptyPasswords no  
    66. PasswordAuthentication yes  
    67.   
    68. # Change to no to disable s/key passwords  
    69. #ChallengeResponseAuthentication yes  
    70. ChallengeResponseAuthentication no  
    71.   
    72. # Kerberos options  
    73. #KerberosAuthentication no  
    74. #KerberosOrLocalPasswd yes  
    75. #KerberosTicketCleanup yes  
    76. #KerberosGetAFSToken no  
    77. #KerberosUseKuserok yes  
    78.   
    79. # GSSAPI options  
    80. #GSSAPICleanupCredentials yes  
    81. #GSSAPICleanupCredentials yes  
    82. #GSSAPIStrictAcceptorCheck yes  
    83. #GSSAPIKeyExchange no  
    84.   
    85. # Set this to 'yes' to enable PAM authentication, account processing,   
    86. # and session processing. If this is enabled, PAM authentication will   
    87. # be allowed through the ChallengeResponseAuthentication and  
    88. # PasswordAuthentication.  Depending on your PAM configuration,  
    89. # PAM authentication via ChallengeResponseAuthentication may bypass  
    90. # the setting of "PermitRootLogin without-password".  
    91. # If you just want the PAM account and session checks to run without  
    92. # PAM authentication, then enable this but set PasswordAuthentication  
    93. # and ChallengeResponseAuthentication to 'no'.  
    94. #UsePAM no  
    95. UsePAM yes  
    96.   
    97. # Accept locale-related environment variables  
    98. AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES  
    99. AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT  
    100. AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE  
    101. AcceptEnv XMODIFIERS  
    102.   
    103. #AllowAgentForwarding yes  
    104. #AllowTcpForwarding yes  
    105. #GatewayPorts no  
    106. #X11Forwarding no  
    107. X11Forwarding yes  
    108. #X11DisplayOffset 10  
    109. #X11UseLocalhost yes  
    110. #PrintMotd yes  
    111. #PrintLastLog yes  
    112. #TCPKeepAlive yes  
    113. #UseLogin no  
    114. UseLogin no  
    115. #UsePrivilegeSeparation yes  
    116. #PermitUserEnvironment no  
    117. #Compression delayed  
    118. #ClientAliveInterval 0  
    119. #ClientAliveCountMax 3  
    120. #ShowPatchLevel no  
    121. #PidFile /var/run/sshd.pid  
    122. #MaxStartups 10  
    123. #PermitTunnel no  
    124. #ChrootDirectory none  
    125.   
    126. # no default banner path  
    127. #Banner none  
    128.   
    129. # override default of no subsystems  
    130. Subsystem       sftp    /usr/libexec/openssh/sftp-server  
    131.   
    132. # Example of overriding settings on a per-user basis  
    133. #Match User anoncvs  
    134. #       X11Forwarding no  
    135. #       AllowTcpForwarding no  
    136. #       ForceCommand cvs server  
    137. UseDNS no  
    138. #GSSAPIAuthentication no  
    139. #GSSAPIAuthentication yes  


    20161205补充:

    实际使用中发现ansible和jenkins使用时有些问题,网上查询了下,需要在/etc/ssh/sshd_config文件中最后增加两行:

    [python] view plain copy
    1. Ciphers aes128-cbc,aes192-cbc,aes256-cbc,aes128-ctr,aes192-ctr,aes256-ctr,3des-cbc,arcfour128,arcfour256,arcfour,blowfish-cbc,cast128-cbc  
    2.   
    3. KexAlgorithms diffie-hellman-group1-sha1,curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha1  
    因为升级了openssh太新导致通信时加密算法出现问题,加上后重启就可以了。

    20170428补充:

    升级openssh版本脚本

    [plain] view plain copy
    1. cp /usr/bin/ssh /usr/bin/ssh.bak.20161124  
    2. cp /usr/sbin/sshd /usr/bin/sshd.bak.20161124  
    3. cp -rf /etc/ssh /etc/ssh.bak  
    4. yum install -y gcc openssl-devel pam-devel rpm-build  
    5. wget http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-7.2p1.tar.gz  
    6. tar -zxvf openssh-7.2p1.tar.gz && cd openssh-7.2p1 && ./configure --prefix=/usr --sysconfdir=/etc/ssh  --with-pam --with-zlib --with-md5-passwords --with-tcp-wrappers && make && make install  
    7. sed -i '/^#PermitRootLogin/s/#PermitRootLogin yes/PermitRootLogin yes/' /etc/ssh/sshd_config  
    8. sed -i 's/GSSAPIAuthentication yes/#GSSAPIAuthentication yes/' /etc/ssh/ssh_config  
    9. sed -i '/^GSSAPICleanupCredentials/s/GSSAPICleanupCredentials yes/#GSSAPICleanupCredentials yes/' /etc/ssh/sshd_config  
    10. sed -i '/^GSSAPIAuthentication/s/GSSAPIAuthentication yes/#GSSAPIAuthentication yes/' /etc/ssh/sshd_config  
    11. sed -i '/^GSSAPIAuthentication/s/GSSAPIAuthentication no/#GSSAPIAuthentication no/' /etc/ssh/sshd_config  
    12. #sed -i '/^#UsePAM/s/#UsePAM yes/UsePAM yes/' /etc/ssh/sshd_config 如果内网使用ldap需要设置这项  
    13.   
    14. echo "  
    15. #ansible support" >>/etc/ssh/sshd_config  
    16. echo "Ciphers aes128-cbc,aes192-cbc,aes256-cbc,aes128-ctr,aes192-ctr,aes256-ctr,3des-cbc,arcfour128,arcfour256,arcfour,blowfish-cbc,cast128-cbc" >>/etc/ssh/sshd_config  
    17. echo "  
    18.   
    19. service sshd restart  

    重要提示:最近发现,在升级完ssh版本后,如果你进行了系统update或者升级用到ssh包的相关软件包,会导致ssh的版本回退到原来的版本。


    20170504补充:


    对于linux执行update,会导致升级后的ssh恢复到之前版本问题,处理方式(新版本ssh安装到不用的目录中,系统启动使用新目录的ssh)

    一、备份文件
    cp /usr/bin/ssh /usr/bin/ssh.bak.20171124
    cp /usr/sbin/sshd /usr/bin/sshd.bak.20171124
    cp -rf /etc/ssh /etc/ssh.bak.20171124

    二、安装(/usr/local/ssh7为新目录,/usr/local/ssh7/ssh放置配置文件)
    yum install -y gcc openssl-devel pam-devel rpm-build
    wget http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-7.2p1.tar.gz
    tar -zxvf openssh-7.2p1.tar.gz && cd openssh-7.2p1 && ./configure --prefix=/usr/local/ssh7 --sysconfdir=/usr/local/ssh7/ssh  --with-pam --with-zlib --with-md5-passwords

    --with-tcp-wrappers && make && make install


    三、修改sshd_config内容
    vi /usr/local/ssh7/ssh/sshd_config文件内容:

    Port 22
    Protocol 2
    PermitRootLogin yes
    AuthorizedKeysFile      .ssh/authorized_keys
    ChallengeResponseAuthentication no
    UsePAM yes
    AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
    AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
    AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE
    AcceptEnv XMODIFIERS
    X11Forwarding yes
    Subsystem       sftp    /usr/local/ssh7/libexec/sftp-server
    UseDNS no
    #ansible支持加入
    Ciphers aes128-cbc,aes192-cbc,aes256-cbc,aes128-ctr,aes192-ctr,aes256-ctr,3des-cbc,arcfour128,arcfour256,arcfour,blowfish-cbc,cast128-cbc
    #jenkins支持加入
    KexAlgorithms diffie-hellman-group1-sha1,curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-

    sha256,diffie-hellman-group14-sha1


    四、修改启动文件
    cp /etc/init.d/sshd /etc/init.d/sshd7
    mv /etc/init.d/sshd /etc/init.d/sshd.bak.20171124

    vi /etc/init.d/sshd7
    修改:
    #SSHD=/usr/sbin/sshd 为
    SSHD=/usr/local/ssh7/sbin/sshd

    修改:
    #[ -f /etc/ssh/sshd_config ] || exit 6 为
    [ -f /usr/local/ssh7/ssh/sshd_config ] || exit 6

    五、root下修改环境变量
    # vi /etc/profile.d/ssh7.sh
    export SSH_7=/usr/local/ssh7
    export PATH=${SSH_7}/bin:${SSH_7}/sbin:$PATH

    六、重启ssh
    service sshd7 restart
    以后需要这样重启ssh服务

    参考:
    http://blog.c1gstudio.com/archives/1474

    https://www.douban.com/note/306958442/

    http://www.cnblogs.com/elisun/p/5523696.html
    展开全文
  • 最近公司的系统被客户那边的一套扫描漏洞的设备扫出了关于 openssh 的几个漏洞,大概看了一下主要是因为 openssh 当前版本为 5.3,版本低了,本来觉得是个小问题,我自己的 distribution 是 centos 6.x, yum 最新的...

    openssh upgrade to latest version

    最近公司的系统被客户那边的一套扫描漏洞的设备扫出了关于 openssh 的几个漏洞,大概看了一下主要是因为 openssh 当前版本为 5.3,版本低了,本来觉得是个小问题,我自己的 distribution 是 centos 6.x, yum 最新的 openssh 也只是 5.3,没办法只能到 rpm 官网找新的包,找到最新的是 6.4,然后通过 yum localinstall 升级了,没想到第二天客户反映还存在 openssh 漏洞,要一个没有才能对外开放 22 端口。 懵逼,没办法,只能去openssh 官网找最新的 release,最新版本是 7.5,安装过程中遇到了一系列的坑,就不一一述说了,为了帮助大家避免这些坑,特记录下来仅供参考。

    ssh 升级步骤

    安装

    cd /root/
    mkdir ssh_upgrade && cd ssh_upgrade

    上传openssh安装包

    rz 安装包 

    查看当前openssh版本

    ssh -V     

    卸载原有openssh

    yum remove openssh -y    

    安装 gcc、openssl和zlib

    yum install gcc openssl-devel zlib-devel
    tar zxvf openssh-7.5p1.tar.gz
    cd openssh-7.5p1
    ./configure
    make && make install

    拷贝ssh服务文件

    cp ./contrib/redhat/sshd.init /etc/init.d/sshd
    chmod +x /etc/init.d/sshd

    修改SSHD服务文件

    vim /etc/init.d/sshd
    修改以下内容
    SSHD=/usr/sbin/sshd 为 SSHD=/usr/local/sbin/sshd
    /usr/sbin/ssh-keygen -A 为 /usr/local/bin/ssh-keygen -A 
    保存退出

    加入系统服务

    chkconfig --add sshd

    查看系统启动服务是否增加改项

    chkconfig --list |grep sshd
    
    sshd               0:off    1:off    2:on    3:on    4:on    5:on    6:off 

    允许root用户远程登录

    cp sshd_config /etc/ssh/sshd_config
    vim /etc/ssh/sshd_config 修改 PermitRootLogin yes,并去掉注释

    配置允许root用户远程登录

    这一操作很重要!很重要!很重要!重要的事情说三遍,因为openssh安装好默认是不执行sshd_config文件的,所以即使在sshd_config中配置允许root用户远程登录,但是不加上这句命令,还是不会生效!

    vim /etc/init.d/sshd
    在 ‘$SSHD $OPTIONS && success || failure’这一行上面加上一行 ‘OPTIONS="-f /etc/ssh/sshd_config"’
    保存退出

    重启

    service sshd start  
    展开全文
  • 离线的意思是为Linux无法链接网络,只能通过windows 将文件上传 ...此处为SSL版本下载,文件的上传可以使用Xftp https://ftp.openssl.org/source/ 此处为SSH版本下载,文件的上传可以使用Xftp 三、放置

    离线的意思是为Linux无法链接网络,只能通过windows 将文件上传
    一、首先准备软件Xshell与Xftp
    我们个人使用可以去官网下载https://www.netsarang.com/zh/free-for-home-school/
    在这里插入图片描述
    选择两者,官方会将下载链接发送邮件到你填写的邮箱
    二、首先在官网下载所需要的SSH与SSL
    此处为SSL版本下载,文件的上传可以使用Xftp
    https://ftp.openssl.org/source/
    在这里插入图片描述
    此处为SSH版本下载,文件的上传可以使用Xftp
    在这里插入图片描述
    三、放置文件位置
    openssl-1.1.1l.tar.gz 放置在/usr/local/src下
    openssh-8.8p1.tar放置在 /opt 目录下
    四、确认是否安装gcc编译器
    执行命令: gcc -v
    如果未安装的话请参考
    https://www.imooc.com/article/17780?block_id=tuijian_wz%20yum%20-y%20install%20gcc%20gcc-c++%20kernel-devel%20//
    五、升级SSL
    执行命令:cd /usr/local/src
    执行解压命令:tar xzvf openssl-1.1.1l.tar.gz
    执行命令:cd openssl-1.1.1l
    执行命令:sudo ./config --prefix=/usr/local/openssl
    执行命令:make
    执行命令:make install
    执行命令:mv /usr/bin/openssl /usr/bin/openssl.bak
    (是否覆盖回复y或者Y)
    执行命令:ln -sf /usr/local/openssl/bin/openssl /usr/bin/openssl
    执行命令:echo “/usr/local/openssl/lib” >> /etc/ld.so.conf
    执行命令:ldconfig -v
    查看SSL版本:openssl version
    六、升级SSH
    执行命令:cd /opt
    执行解压命令:tar xzvf openssh-8.8p1.tar.gz
    删除原有的ssh相关文件:通过xftp将/etc/ssh/* 下的文件删除
    (注意!注意!注意!卸载完成服务器ssh服务就会停掉,此时客户端连接的不能断开,在ssh没安装好之前也不可重启ssh服务和服务器,否则断开之后将无法进行远程连接)
    执行命令:cd /opt/openssh-8.8p1/
    执行命令:

    ./configure --prefix=/usr/ --sysconfdir=/etc/ssh  --with-openssl-includes=/usr/local/ssl/include --with-ssl-dir=/usr/local/ssl   --with-zlib   --with-md5-passwords   --with-pam && make && make install
    

    执行命令:cp -a contrib/redhat/sshd.init /etc/init.d/sshd
    (是否覆盖回复y或者Y)
    执行命令:cp -a contrib/redhat/sshd.pam /etc/pam.d/sshd.pam
    (是否覆盖回复y或者Y)
    执行命令:chmod +x /etc/init.d/sshd
    执行命令:chkconfig --add sshd
    执行命令:chkconfig sshd on
    执行重启命令: service sshd restart
    查看SSH版本:ssh -V
    七、可能会遇到的问题
    (1)、无法使用root用户进行操作
    配置允许root使用ssh: vim /etc/ssh/sshd_config 增加内容: PermitRootLogin yes
    (不太建议这么做,可以使用普通账号先连接服务器,然后su命令切换到root用户进行操作)
    在这里插入图片描述
    (2)、进入到目录 /etc/ssh/sshd_config 将 PasswordAuthentication yes 注释打开,启用公钥身份验证;
    在这里插入图片描述

    展开全文
  • 今年4月份发openssh发布了8.6版本 客户的机子上装的centos6,自带的openssh版本也比较低5.3p1,一扫描都是各种漏洞问题 所以准备升级到新的8.6版本 1、由于升级过程ssh会链接不上,需要先开启telnet服务,一定...
  • Centos7 OpenSSH版本安全漏洞修复绿盟检查出的漏洞修复方案-升级OpenSSH版本查看当前版本升级到最新版本官网查看最新版本下载并升级下载openssh-8.1p1.tar.gz卸载原Openssh解压openssh安装包检测环境是否满足可能...
  • RedHat更新Openssh到最新版本

    万次阅读 2017-02-24 15:22:41
    由于目前服务器上ssh版本较低,存在安全漏洞,需要升级到最新版本。 系统版本:RedHat 6.6 旧openSSH版本:5.3p1 新openSSH版本:7.4p1 升级方式:源码安装 1.更新ssl yum update openssl 更新ssl到...
  • openssh

    2021-09-25 23:11:00
    文章目录openssh1. openssh简介2. SSH 认证方式3. openSSH 的工作模式4. penSSH程序简介5. 服务器端配置文件/etc/ssh/sshd_config ...在Linux系统中,OpenSSH目前最流行的远程系统登录与文件传输应用,也是传统Telen
  • 如果ssh版本过低,最好先yum update openssh升级下到目前yum仓库的默认版本 yum update openssh -y 安装telnet-server以及xinetd yum install xinetd telnet-server -y 如果下面telnet文件不存在的话,可以跳...
  • 我们经常用telnet来验证服务器的端口是否有开,但是某些端口会透露程序的版本等相关信息, ...版本信息:openssh7.5p1 先查出sshd文件位置: whereis sshd 备份sshd文件: cd /usr/sbin cp sshd sshd.bak 修
  • 扫描结果上图显示。下面将升级过程做一个备忘,以便日后使用,...目前openssh-8.0 :https://openbsd.hk/pub/OpenBSD/OpenSSH/portable/openssh-8.0p1.tar.gz; openssl:https://www.openssl.org/source/openssl-1.0...
  • 需要升级openssh版本: 1、下载: wget https://cikeblog.com/s/openssh-8.5p1-1.el7.tar.gz tar -zxvf openssh-8.5p1-1.el7.tar.gz 2、安装: rpm -Uvh *.rpm 至此,升级完成,如果之前升级过的,下面的就...
  • 目前在一家金融公司上班,正好赶上金融公司各种暴雷,本人心里慌慌的。 然后就是金融公司要进行的最低的三级等... 评测公司对我司的网站进行了漏扫,检测出来Openssh 版本过低,并且伴有两个高危漏洞,兄弟俩关系不错。
  • 甲方扔过来一份主机扫描安全评估报告,我看了下报告有几个中危漏洞什么“OpenSSH'sftp-server'安全绕过漏洞”,“OpenSSH ...我原来的版本OpenSSH_7.4p1存在一些漏洞,目前最新的版本OpenSSH_8.2p1,我看目前升级到
  • Openssh

    2018-07-17 16:40:26
    简介:OpenSSH 是 SSH (Secure SHell) 协议的免费开源实现。SSH协议族可以用来进行远程控制, 或在计算机之间传送文件。而实现此功能的传统方式,如telnet(终端仿真协议)、 rcp ftp、 rlogin、rsh都是极为不安全的...
  • 整个过程不需要卸载原先的openssl包和openssh的rpm包。不影响我们的操作 本文的环境都是系统自带的openssh,没有经历过手动编译安装方式。如果之前有手动编译安装过openssh,请参照本文自行测试是否能成功。 如果...
  • centos7.6升级openssh-8.0p1版本

    千次阅读 2019-07-01 10:18:00
    如果ssh版本过低,最好先yum update openssh升级下到目前yum仓库默认的openssh7.4p1版本 安装telnet-server以及xinetd yum insyall xinetd telnet-server -y 配置telnet 查看Telnet文件是否存在 ll /etc/...
  • openssh升级

    千次阅读 2020-12-14 10:55:05
    由于openssh依赖于openssl所以升级openssh的同时需要一并升级openssl,目前这里升级的版本openssh-8.0p1和openssl-1.0.2r.在升级的时候由于是通过源码编译的方式进行升级的所以还需要一些其他的依赖包。这些依赖包...
  • 一、关于openssh相关漏洞治理方法,笔者只涉及如下项 1.用户枚举漏洞(CVE-2018-15919) ... OpenSSH7.8及之前版本,auth-gss2.c文件存在安全漏洞。远程攻击者可利用该漏洞检测其指定的用户是否存在。 vim /etc/ss.

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,760
精华内容 2,704
关键字:

openssh目前版本