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