1. 程式人生 > >Linux Centos7 OpenSSH版本低導致的安全漏洞 升級OpenSSH和OpenSSl來修復漏洞

Linux Centos7 OpenSSH版本低導致的安全漏洞 升級OpenSSH和OpenSSl來修復漏洞

Linux Centos7 OpenSSH版本低導致的安全漏洞 升級OpenSSH和OpenSSl來修復漏洞

      由於最近公司專案需要重新部署到伺服器,檢查出的安全漏洞,其中 一項就是Openssh版本低過低所以導致的遠端執行漏洞,如下:

          

於是我就要進升級版本填補漏洞,首先

1、檢視OpenSSH版本,在伺服器輸入以下命令:

命令:ssh -V

得到:

2、確認系統是否已經確認安裝gcc編譯器:

命令:gcc -v

得到:

如果沒安裝的同學可以參考:

https://www.imooc.com/article/17780?block_id=tuijian_wz%20yum%20-y%20install%20gcc%20gcc-c++%20kernel-devel%20//

3.升級Zlib

下載最新版本的Zlib:Zlib 官方網站:http://www.zlib.net/

目前最新版本的 Zlib 是 zlib-1.2.11.tar.gz

進入你的下載資料夾下載:

命令:cd /usr/local/src
命令:wget -c http://www.zlib.net/zlib-1.2.11.tar.gz

得到:

編譯安裝Zlib:

解壓命令: tar xzvf zlib-1.2.11.tar.gz
命令:cd zlib-1.2.11/
編譯:./configure --prefix=/usr/local/zlib
安裝:make install


現在zlib 編譯安裝在 /usr/local/zilib中了

4.升級openssl:

確認是否安裝了SSI和檢視版本:

命令:openssl version -a 或者 openssl version

目前能與Openssh配合的版本就是1.02版本

命令:cd /usr/local/src
命令:sudo wget http://www.openssl.org/source/openssl-1.0.2j.tar.gz
命令:sudo tar zxf openssl-1.0.2j.tar.gz
命令:cd openssl-1.0.2j
命令:sudo ./config --prefix=/usr/local/openssl
命令:sudo make
命令:sudo make install

備註:/usr/bin/openssl為舊的Openssl檔案,進行下一步之前記得備份一下

執行以下命令進行更換舊版的Openssl:

重新命名原來的openssl命令:sudo mv /usr/bin/openssl /usr/bin/openssl.bak
將安裝好的openssl 的openssl命令軟連到/usr/bin/openssl: 
命令:sudo ln -sf /usr/local/openssl/bin/openssl /usr/bin/openssl
切換到root許可權:sudo bash
在/etc/ld.so.conf檔案中寫入openssl庫檔案的搜尋路徑: echo "/usr/local/openssl/lib" >> /etc/ld.so.conf
使修改後的/etc/ld.so.conf生效:ldconfig -v
檢視版本:openssl version

參考來至:http://www.cnblogs.com/dinglin1/p/9047818.html

至此,Openssl升級完畢

5、關閉selinux 

命令:sudo vim /etc/sysconfig/selinux

修改 SELINUX=disabled,輸入:wq 儲存退出

6、安裝telnet並開起來,防止意外導致ssh無法連線

1、檢測telnet-server的rpm包是否安裝:

命令:rpm -qa telnet-server 

如沒有輸出就要安裝,安裝命令:

命令:sudo yum install telnet-server

然後發現沒有安裝包的錯誤:

只能通過下載安裝包來,提供telnet的rpm包下載網址:https://pkgs.org/download/telnet-server。我下載的 telnet-server-0.17-64.el7.x86_64.rpm版本。下載安裝命令:

命令:cd download
命令:wget http://mirror.centos.org/centos/7/os/x86_64/Packages/telnet-server-0.17-64.el7.x86_64.rpm
命令:sudo yum install 	telnet-server-0.17-64.el7.x86_64.rpm
命令:rpm -qa telnet-server 
命令:telnet-server-0.17-64.el7.x86_64.rpm
命令:rpm -qa telnet-server

1、檢測xinetd 的rpm包是否安裝:

命令:rpm -qa xinetd

如沒有輸出就要安裝,安裝命令:

命令:sudo yum install xinetd

然後發現又是沒有安裝包的錯誤:

只能通過下載安裝包來,我下載的是telnet-server-0.17-64.el7.x86_64.rpm版本。下載安裝命令:

​
命令:wget http://mirror.centos.org/centos/7/os/x86_64/Packages/xinetd-2.3.15-13.el7.x86_64.rpm
命令:sudo yum install xinetd-2.3.15-13.el7.x86_64.rpm

​

安裝完成後,將xinetd服務和telnet加入開機自啟動:

命令:sudo systemctl enable xinetd.service
命令:sudo systemctl enable telnet.socket

最後,啟動以上兩個服務即可:

由於telnet服務也是由xinetd守護的,所以安裝完telnet-server,要啟動telnet服務就必須重新啟動xinetd 。

命令:sudo systemctl start telnet.socket
命令:sudo systemctl start xinetd

參考來至:https://www.cnblogs.com/lixuwu/p/6102444.html

預設情況下,系統是不允許root使用者telnet遠端登入的。如果要使用root使用者直接登入,需設定如下內容:

echo  'pts/0'  >>/etc/securetty
echo 'pts/1' >>/etc/securetty

以上命令需要root許可權才能執行,最後才重啟服務

重啟服務:service  xinetd  restart

而且還開通相對應的23埠,這裡我就不多說了,因為我們公司埠是統一管理的,接下來在你計算機上開啟telnet客戶端:

然後測試開啟cmd.exe看看能不能登入,telnet+IP,回車:

登入成功,接下來我們就可以安心地升級openSSH

7、升級openSSH

備份舊ssh配置資料夾 /etc/ssh :


sudo cp -rf /etc/ssh /etc/ssh.bak

下載openSSH安裝包:

命令:cd download(這是我自己的下載資料夾)

命令:sudo wget http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-7.4p1.tar.gz

提供個下載地址:http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/

接下來就是解壓安裝OpenSSH:

命令:sudo tar -zxvf openssh-7.4p1.tar.gz
命令:cd openssh-7.4p1
命令:sudo ./configure --prefix=/usr --sysconfdir=/etc/ssh --with-pam --with-zlib --with-md5-passwords --with-tcp-wrappers

發現是缺各種Open-devel依賴包,然後去網上下載rpm安裝包,發現出現各種問題,搞了好久,賊煩,就是不對應版本,浪費了一天多時間,又是重新安裝openssl什麼的,發現並沒有用,得安裝一個Openssl-fips,安裝以後又出現什麼缺pam-devel包的錯誤,然後還是一樣唉,懷疑是不是映象源,怎麼啥安裝包都沒有,都得下載,於是去更換映象源,發現映象源名字改了,所以伺服器不能識別了,改為原來的名字:

命令:cd /etc/yum.repos.d
命令:sudo mv /etc/yum.repos.d/CentOS-Base.repo.backup  /etc/yum.repos.d/CentOS-Base.repo

現在發現可以各種yum install 各種依賴包了。。。。說多了都是淚了,開發兼職運維的淚 

接著安裝兩個依賴包:

命令:sudo yum install openssl-devel
命令:sudo yum install pam-devel

然後重新編譯:

安裝命令:sudo make 或者 sudo make install

到這裡我的會出現說Key的許可權過於open,所以我改成600了:

命令:cd /etc/ssh/

命令:chmod 600 ssh_host_ecdsa_key

命令:chmod 600 ssh_host_rsa_key

命令:chmod 600 ssh_host_ed25519_key

複製配置

命令:sudo cp -p sshd_config /etc/ssh/sshd_config
檢視版本:ssh -V

配置允許root使用ssh:

命令:sudo vim /etc/ssh/sshd_config

取消註釋 PasswordAuthentication yes

重啟ssh服務:

命令:sudo service sshd restart

如果重啟不了就重啟伺服器,再重啟,至此Openssh升級完畢

相關推薦

Linux Centos7 OpenSSH版本導致安全漏洞 升級OpenSSHOpenSSl修復漏洞

Linux Centos7 OpenSSH版本低導致的安全漏洞 升級OpenSSH和OpenSSl來修復漏洞       由於最近公司專案需要重新部署到伺服器,檢查出的安全漏洞,其中 一項就是Openssh版本低過低所以導致的遠端執行漏洞,如下:      

Linux centos7上gitlab伺服器的搭建,本地配置使用

1 gitlab的搭建 1. 安裝一堆包,和 啟動相關服務 yum install -y curl policycoreutils-python yum install -y openssh-se

主機安全加固--升級opensshopenssl

[[email protected] init.d]# cat sshd #!/bin/bash # # Init file for OpenSSH server daemon # # chkconfig: 2345 55 25 # description: OpenSSH server daem

Linux Centos7安裝Oracle12c第二版本

oracle oracle12c linux環境:[email protected],分配資源:CPU:2顆,內存:4GB,硬盤空間:30GBOracle12C企業版64位下載地址:http://www.oracle.com/technetwork/database/enterprise-editi

SVN伺服器版本導致無法進行merge

Auto-merge 測試merge\分支\portaldb Retrieval of mergeinfo unsupported by %E6%B5%8B%E8%AF%95merge/%E5%88%86%E6%94%AF/portaldb' 公司目前的SVN版本是1.4.6,

Linux-Centos7系統下安裝python2並與python3版本共存

問題描述: 最近有個需求是想在centos下安裝python3.5 因為django這邊用到是這個版本 1.檢視系統版本和python版本 Centos7.6版本預設安裝的是python2.7.5版本 利用cat檢視系統版本,python -V檢視python版本 which檢視python目錄,

Linux 系統 :CentOS7.X版本下安裝MySQL5.7資料庫

設定rpm下載目錄在/opt目錄下新建一個目錄存放mysql cd /opt sudo mkdir mysql12 下載MySQL的源 如果在這之前沒有提示-bash: wget: command not found,那麼還得先安裝wget sudo yum

Linux centos7 下使用James3.2.0版本及James2.3.2.1版本郵箱搭建

    因公司的業務需要,需要搭建一個自己的郵箱伺服器。選了很多的版本,最後選擇了James,並且分為兩個James的版本。3版本的和2版本的在以下都會介紹安裝配置和使用,以及外網部署的配置。參考別人的部落格以及對於James的官網研究了將近三天,最後將兩個版本的都測

Linux常用命令版本CentOS7.x

自己剛接觸Linux不久。就把自己經常用到的命令分享一下。 1、首先使用的Linux終端模擬軟體是xshell。 使用協議為SSH協議,SSH協議的埠號預設為22 下面是一些命令: 資料庫命令:以mysql為例 1,登入命令    mysql -u使用者名稱稱 -p    

flash提示版本導致無法安裝解決方法

若 FLASH 在安裝的過程中提示"正嘗試安裝的 Adobe(R) Flash(R) Player 版本不是最新的版本",請按如下步驟操作:   1、 點選 “開始”-> “執行”,輸入“regedit”,回車;如下圖所示。   2、將 "HKEY_LOCA

Linux下GLIBCXXGLIBC版本造成的編譯錯誤的解決方案

最近在給編譯環境centOS 6.5安裝新版clang (clang 3.4/3.5)的時候,雖然已經裝了gcc 4.9.1, 但編譯的時候(參考clang官方主頁http://clang.llvm.org/get_started.html的步驟,在獨立build目錄下執行

Linux作業系統Centos7.2版本搭建Apache+PHP+Mysql環境

對於在校學生來說騰訊雲1元主機很划算,就申請了一臺,打算在上面學習下linux,使用版本為centos7.2版本。在伺服器上比較推薦centos,此版本生命週期較長,而且網上有關centos的教程很多,方便學習。 Centos6版本的推薦看下面這個教程,很詳細 安裝Ap

ojdbc14版本導致資料庫連線失敗 Connection reset

java.sql.SQLException: Io 異常: Connection resetat oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)at oracle.jdbc.dbaccess.

解決You should consider upgrading via the 'python -m pip install --upgrade pip' command. (pip工具版本導致)

步驟1:  找到pip- 版本號 dist-info 資料夾   操作: 在python的安裝目錄下的Lib檔案下的site-packages資料夾下找到 ip- 版本號 dist-info 資料夾       例如: C:\Python37\Lib\site-packages\

VC運行庫版本不同導致鏈接.LIB靜態庫時發生重復定義問題的一個案例分析總結

修改 borde 並且 release 鏈接 部分 sdn 托管代碼 兩個 MSDN中對於在不同的配置下Link的LIB作了說明: C Runtime Library: 開關 對應的庫 版本 /MD

Linux下搭建版本控制器SVN

svn 版本回退 分支、多人協作 倉庫 關於版本控制器,大致可分為集中式和分布式兩種。 集中式的版本控制器通常會存在一個中央服務器,主要是用來存放版本庫的,(這裏暫且先不說分支的事)當我們工作之前,首先需要從中央服務器得到一份最新版本的代碼,修改完畢之後,再次推送到中央服務器。集

nginx+tomcat實現負載均衡以及session共享(linux centos7環境)

processes 解壓 smo eve cti 下載 gen cli -c 一、nginx的安裝 1.準備三份tomcat tomcat1 設置端口 8080 tomcat2 設置端口 8081 tomcat3 設置端口 8082 2. 下載nginx 3. 解壓到/ho

.Net Core Linux centos7行—IOC模塊

net.net core中可以說是用了全新的IOC模板,定義在Microsoft.Extensions.DependencyInjection下。提供了一套標準的接口。並提供了默認實現。並且大範圍使用著,處處都體現著IOC的設計思想。Startup的ConfigureServices方法中,集中對服務進行配置

struts2 版本導致的 Filter 不同

att pin cut blog area pat apach 報錯 rep 過了好久又重新接觸Struts2,使用maven直接獲取的struts2-core-2.5.1的包,從網上直接copy了一段web.xml中的Filter,結果報錯,struts2.3.x 以後

解決辦法:由於oracle版本不同導致導入數據時失敗

tps https 是否 span note 版本 not mil images 在向一個數據庫導入dmp文件時,出現了如下錯誤 經查詢,是由於“導出的dmp文件與導入的數據庫的版本不同造成的” 用notepad查看dmp文件的版本,看看是否和數據庫版本一致 解決辦法: