處理綠盟科技安全評估的系統漏洞
如下圖一次掃描,中度風險39個,這個是必須要處理的.其中mysql佔了36個,一看這個感覺整個人都不好了.但是最後解決的辦法也很簡單,就是升級.
系統版本Redhat 7.3
1.telnet
因為要升級openssh,openssl,為了避免意外,首先要開啟telnet服務,並把所有相關的包上傳到伺服器.
1.1確認是否安裝了telnet和xinetd(預設是沒有安裝)
rpm -qa telnet* rpm -qa xinetd
#按情況安裝如下依賴包
yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5-devel libidn libidn-devel openssl openssl-devel nss_ldap openldap openldap-devel openldap-clients openldap-servers libxslt-devel libevent-devel ntp libtool-ltdl bison libtool vim-enhanced patch
1.2 關閉telnet自啟動
systemctl disable xinetd
systemctl disable telnet.socket
1.3 啟動telnet
1)啟動xinetd就會開啟telnet服務
service xinetd start
2)檢查telnet監聽是否正常
yum -y install net-tools netstat -tunlp|grep 23
3)設定服務自啟動
#首先檢查是否自啟動 systemctl list-unit-files | grep enable |grep xin
#沒有的話加入自啟動 systemctl enable xinetd systemctl enable telnet.socket
1.4 檢查防火牆,是否開始23埠
1)檢查防火牆是否開啟
firewall-cmd --state
2)
開啟23埠
firewall-cmd --permanent --add-port=23/tcp firewall-cmd --reload
1.5 測試telnet
輸入命令:telnet <ip> ,接著輸入使用者名稱密碼登入
2. 處理mysql安全漏洞
解決mysql的CVE-2018-3058之類漏洞的辦法就是升級mysql小版本.我這裡安裝的master-slave模式的mysql.mysql版本由5.7.22升級到5.7.24
2.1 檢視slave狀態
show slave status \G;
2.2 備份資料和配置檔案
mysqldump -uroot -p --all-databases > ./all20181129.sql
cp /etc/my.cnf /etc/my.cnf20181129
2.3 解除安裝mysql5.7.22
rpm -qa | grep -i mysql
service mysqld stop
yum -y remove `rpm -qa | grep -i mysql`
2.4 安裝mysql5.7.24
1.解壓
tar -xvf mysql-5.7.24-1.el7.x86_64.rpm-bundle.tar
2.安裝client
rpm -ivh mysql-community-common-5.7.24-1.el7.x86_64.rpm rpm -ivh mysql-community-libs-5.7.24-1.el7.x86_64.rpm rpm -ivh mysql-community-devel-5.7.24-1.el7.x86_64.rpm rpm -ivh mysql-community-client-5.7.24-1.el7.x86_64.rpm
3.安裝server
rpm -ivh mysql-community-server-5.7.24-1.el7.x86_64.rpm
4.還原主伺服器配置
cp /etc/my.cnf20181129 /etc/my.cnf
5.從伺服器配置
cp /etc/my.cnf20181129 /etc/my.cnf
6.防火牆檢查
selinux檢查(主) firewall-cmd --state #防火牆列表 firewall-cmd --list-all #防火牆開放3306埠 firewall-cmd --permanent --add-port=3306/tcp # 防火牆重新載入配置 firewall-cmd –reload
7.設定SELINUX
# 輸入命令: getenforce # 如果不是Permissive,做已下修改 setenforce 0 vim /etc/selinux/config SELINUX= Permissive
8.開啟資料庫
service mysqld start
3.openssl
3.1檢視OpenSSL
rpm -qa openssl
3.2如需解除安裝openssl
rpm -e --nodeps `rpm -qa|grep openssl`
3.3編譯安裝
mv /etc/ssl /etc/ssl.bak tar -zxvf ./openssl-1.0.2o.tar.gz cd openssl-1.0.2o ./config shared --prefix=/usr/local/ssl --openssldir=/usr/local/ssl make make install mv /usr/bin/openssl /usr/bin/openssl.lod mv /usr/include/openssl /usr/include/openssl.old ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl ln -s /usr/local/ssl/include/openssl /usr/include/openssl echo "/usr/local/ssl/lib" >> /etc/ld.so.conf echo "/usr/local/ssl/lib64" >> /etc/ld.so.conf ln -s /usr/local/ssl/lib/libssl.so.1.0.0 /usr/lib64/libssl.so.1.0.0 ln -s /usr/local/ssl/lib/libcrypto.so.1.0.0 /usr/lib64/libcrypto.so.1.0.0 ldconfig -v openssl version -a #檢視OpenSSL版本
4.openssh
由openssh7.8 升級到openssh7.9
四、升級openssh7.9(所有伺服器)
4.1 檢視版本
ssh -V
4.2解除安裝舊版本openssh
service sshd stop rpm -qa|grep openssh rpm -e --nodeps `rpm -qa|grep openssh` cp -r /etc/ssh /etc/sshold
4.3編譯安裝
tar -zxvf ./openssh-7.9p1.tar.gz cd openssh-7.9p1 ./configure --prefix=/usr/local/openssh --with-ssl-dir=/usr/local/ssl --with-zlib=/usr/local/zlib make make install
4.4拷貝配置檔案
cp contrib/redhat/sshd.init /etc/init.d/sshd chkconfig --add sshd cp /usr/local/openssh/etc/sshd_config /etc/ssh/sshd_config cp /usr/local/openssh/sbin/sshd /usr/sbin/sshd cp /usr/local/openssh/bin/ssh /usr/bin/ssh cp /usr/local/openssh/bin/ssh-keygen /usr/bin/ssh-keygen cp /usr/local/openssh/etc/ssh_host_ecdsa_key.pub /etc/ssh/ssh_host_ecdsa_key.pub
4.5啟動ssh服務
service sshd restart
4.7檢查版本
ssh -V
5.zlib
升級到zlib-1.2.11,這個是一個坑,注意順序,如果提前解除安裝早了,會造成新zlib編譯安裝失敗.
5.1 安裝依賴(先不用做)
5.2 解壓 zlib1.2.11到/usr/local/src/下
tar -zxvf zlib-1.2.11.tar.gz -C /usr/local/src/
2.3 檢視一下zlib安裝檔案
rpm -ql zlib
2.4 configure
cd /usr/local/src/zlib-1.2.11 ./configure -prefix=/usr/local/zlib/ -libdir=/lib64/
2.5 用make進行編譯
make
2.6 解除安裝zlib,掌握這個順序很有必要,如果解除安裝早了的話,上一步就會提示失敗。解除安裝完成之後,發現/lib64/目錄下,zlib的庫檔案,libz.so*沒有了
rpm -e --nodeps zlib-1.2.7-17.el7.x86_64
2.7用make install安裝zlib,安裝完成之後,可以看到/usr/local/zlib/目錄下有個lib目錄,裡面存放的就是zlib的庫檔案
make install
2.8這時候用yum等工具,會提示確實libz.so*支援,所以必須把當前共享庫檔案註冊到系統中,開啟/etc/ld.so.conf,
vim /etc/ld.so.conf
在下面加入一行/usr/local/zlib/lib/,然後儲存退出
2.9用ldconfig重新更新一下cache,這時候再用yum等工具,發現執行正常了,至此,zlib就更新成功。
ldconfig
2.10檢視版本
find /usr/ -name zlib.pc
cat /usr/lib64/pkgconfig/zlib.pc