Centos 6.x Openssh 升級 7.7p1 版本


OpenSSH 升級

目前在一家金融公司上班,正好趕上金融公司各種暴雷,本人心里慌慌的。

然后就是金融公司要進行的最低的三級等保評測,各種修改系統安全,密碼強度、WAF、防火牆等各種。

評測公司對我司的網站進行了漏掃,檢測出來Openssh 版本過低,並且伴有兩個高危漏洞,兄弟倆關系不錯。


安裝xinetd telnet-server

為防止Openssh 升級失敗,所以需要把telnet啟動起來

之前測試的時候,telnet登陸,不能使用root,普通用戶沒問題,懶得解決了,直接配置了普通用戶的visudo.

[root@centos6 ~]# yum install xinted telnet-server -y
[root@centos6 ~]# chkconfig telnet on
[root@centos6 ~]# vim /etc/xinetd.d/telnet
#修改一下`/etc/xinetd.d/telnet` 配置文件,把最后一樣的disable 的值修改為no
# default: on
# description: The telnet server serves telnet sessions; it uses \
#       unencrypted username/password pairs for authentication.
service telnet
{
        flags           = REUSE
        socket_type     = stream
        wait            = no
        user            = root
        server          = /usr/sbin/in.telnetd
        log_on_failure  += USERID
        disable         = no
}

[root@centos6 ~]# /etc/init.d/xinetd start

搞定,配置普通用戶的visudo這里就不詳解了。

算了,還是說下吧

[root@centos6 ~]# useradd test
[root@centos6 ~]# passwd test
#這里輸入兩次密碼

[root@centos6 ~]# visudo
#打開后,在最后添加下面的內容,然后保存退出就可以了

test        ALL=(ALL)       NOPASSWD: ALL

這樣就搞定了

開始升級

生產系統是:CentOS 6.5, 自帶的SSH版本太低,安全檢查報有漏洞,需要升級版本。

[root@centos6 ~]# rpm -qa | grep openssh
openssh-clients-5.3p1-122.el6.x86_64
openssh-5.3p1-122.el6.x86_64
openssh-server-5.3p1-122.el6.x86_64

本文使用最新的openssh-7.7p1的版本進行源碼升級安裝。

升級OpenSSH不難,難的是在升級前的基礎環境安裝

基礎包安裝

yum安裝最簡單

yum install gcc gcc-c++ zlib zlib-devel openssl openssl-devel pam-devel -y

然后。。。完事兒了,基礎環境安裝完了。真的很難

下面去openssh官網下載最新的源碼包, 點擊我下載OpenSSH,官方的哦

下面開始升級

首先刪除老版本的Openssh。

rpm -e --nodeps rpm -qa | grep openssh

然后編譯安裝:
由於配置和編譯的過程太長,就不復制了,直接貼上命令:

[root@centos6 soft]# ls
openssh-7.7p1.tar.gz
[root@centos6 soft]# tar xf openssh-7.7p1.tar.gz 
[root@centos6 soft]# cd openssh-7.7p1
[root@centos6 openssh-7.7p1]# 
[root@centos6 openssh-7.7p1]# ./configure --prefix=/usr --sysconfdir=/etc/ssh --with-ssl --with-zlib --with-md5-passwords --with-pam
內容太多,忽略
              Host: x86_64-pc-linux-gnu
          Compiler: gcc
    Compiler flags: -g -O2 -pipe -Wall -Wpointer-arith -Wuninitialized -Wsign-compare -Wformat-security -Wno-pointer-sign -fno-strict-aliasing -mfunction-re
turn=thunk -mindirect-branch=thunk -D_FORTIFY_SOURCE=2 -ftrapv -fno-builtin-memset -fstack-protector-all -fPIE  Preprocessor flags:  -D_XOPEN_SOURCE=600 -D_BSD_SOURCE -D_DEFAULT_SOURCE
      Linker flags:  -Wl,-z,retpolineplt -Wl,-z,relro -Wl,-z,now -Wl,-z,noexecstack -fstack-protector-all -pie 
         Libraries: -lcrypto -lrt -ldl -lutil -lz  -lcrypt -lresolv
         +for sshd:  -lpam

PAM is enabled. You may need to install a PAM control file 
for sshd, otherwise password authentication may fail. 
Example PAM control files can be found in the contrib/ 
subdirectory

[root@centos6 openssh-7.7p1]# make && make install

#安裝的時候這里遇到一個坑,需要make install兩次,可能是我卸載的順序有問題把,否則提示找不到sshd命令。請注意
#執行之后等結果,看看報不報錯,反正我的不報錯。

安裝完之后,別着急去別的目錄,還在當前安裝目錄,需要拷貝幾個配置文件,拷貝之前一定要備份

執行過程如下:

# 先拷貝配置文件
[root@centos6 openssh-7.7p1]# cp -a /etc/ssh /etc/ssh_bak
[root@centos6 openssh-7.7p1]# cp ssh_config /etc/ssh/
cp: overwrite `/etc/ssh/ssh_config'? y
[root@centos6 openssh-7.7p1]# cp sshd_config /etc/ssh/
cp: overwrite `/etc/ssh/sshd_config'? y
[root@centos6 openssh-7.7p1]# cp moduli /etc/ssh/
cp: overwrite `/etc/ssh/moduli'? y

#這里是拷貝sshd的啟停腳本
[root@centos6 openssh-7.7p1]# cp contrib/redhat/sshd.init /etc/init.d/sshd
cp: overwrite `/etc/init.d/sshd'? y

#直接start啟動ssh,千萬不能restart,使用restart會造成連不上,需要登錄控制台啟動
#再設置開機自啟
[root@centos6 openssh-7.7p1]# /etc/init.d/sshd start
Starting sshd:                                             [  OK  ]
[root@centos6 openssh-7.7p1]# chkconfig sshd on

#查看,安裝后的果實;
[root@centos6 openssh-7.7p1]# ssh -V
OpenSSH_7.7p1, OpenSSL 1.0.1e-fips 11 Feb 2013

沒問題,搞定了。

最后的小提示:

開啟root用戶遠程登錄 。
此步驟不是必須。建議是關閉該選項,開啟會有安全隱患。
vi /etc/ssh/sshd_config
PermitRootLogin yes

開啟SSH服務
千萬不能restart。使用restart會造成連不上,需要登錄控制台啟動。
service sshd start


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM