生活随笔
收集整理的這篇文章主要介紹了
服务器漏洞整理
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
服務器漏洞整理
記錄下掃描出來的各種漏洞和解決測試方法。
一、php+apache升級
php5+apache2.4.6的版本太老,升級到php7和apache2.4.46能解決大部分漏洞。
php升級 直接上升級腳本,其中復制配置文件那兩行不能直接用, 配置文件php.ini根據實際需求修改:
#!/bin/sh
echo "########## Stop httpd mysqld php-fpm ##########"
#停止apache服務
sudo systemctl stop httpd.service
#停止數據庫服務
sudo systemctl stop mysqld
#停止php-fpm服務
sudo systemctl stop php-fpm.service
echo "################ Remove php ###################"
#卸載php相關組件
sudo yum remove php*.x86_64 -y#由于linux的yum源不存在php7.x,所以我們要更改yum源
echo "########## change yum source ##########"
sudo rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
sudo rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm#yum search php7
echo "########## install php ##########"
#安裝php及相關拓展功能
sudo yum -y install php72w php72w-cli php72w-common php72w-devel php72w-embedded php72w-fpm php72w-mbstring php72w-mysqlnd php72w-pdo php72w-xml php72w-xmlrpc
#php 復制配置文件
sudo \cp -rf ./php-fpm.service /lib/systemd/system/
sudo \cp -rf ./php.ini /etc/
#設置開機啟動php-fpm
sudo systemctl enable php-fpm.service
echo "############## Start mysqld httpd php ###############"
#重啟數據庫
sudo systemctl start mysqld
#啟動apache服務
sudo systemctl restart php-fpm.service
sudo systemctl restart httpd.service
Apache升級 centos7的軟件庫默認只有2.4.6版本的apache,需要安裝epel和CodeIT來獲取最新的apache版本。 先上獲取最新版本的腳本,在這里停一下,看看yum info httpd的版本是不是最新的,如果還是老的2.4.6,去https://repo.codeit.guru/這個網址看下,codeit.el7.repo的路徑,和腳本里“wget https://repo.codeit.guru/codeit.el7.repo”這句能不能對上。
#!/bin/sh
echo "########## Stop httpd mysqld php-fpm ##########"
#停止apache服務
sudo systemctl stop httpd.service
#停止數據庫服務
sudo systemctl stop mysqld
#停止php-fpm服務
sudo systemctl stop php-fpm.service
echo "############# Remove httpd.x86_64 #############"
#卸載原版本apache
sudo yum -y erase httpd.x86_64
#獲取apache更改日志
sudo yum install -y yum-changelog
#安裝最新的epel
sudo yum install -y epel-release
#安裝CodeIT庫
cd /etc/yum.repos.d
wget https://repo.codeit.guru/codeit.el7.repoecho "############### Show Apache Info ##############"
#查看apache版本,是不是最新的
sudo yum info httpd
能獲取到最新的版本后,再進行升級。
echo "############## Install Apache ##################"
#安裝apache
sudo yum -y install httpd
cd /root/apache_upgrade
echo "########## Replace 00-mpm.conf httpd.conf ##########"
#改配置文件,00-mpm.conf中使用"LoadModule mpm_prefork_module modules/mod_mpm_prefork.so"這句
sudo \cp -rf ./00-mpm.conf /etc/httpd/conf.modules.d/
#改apache監聽端口,不改默認80
sudo \cp -rf ./httpd.conf /etc/httpd/conf/
#改/lib/systemd/system/httpd.service里的PrivateTmp=false
sudo \cp -rf ./httpd.service /lib/systemd/system/
echo "############## Start mysqld httpd php ###############"
#重啟數據庫
sudo systemctl start mysqld
#設置開機啟動apache
sudo systemctl enable httpd.service
#啟動apache服務
sudo systemctl restart php-fpm.service
sudo systemctl restart httpd.service
二、OpenSSH的漏洞
CVE-2020-15778 CVE-2018-15919 CVE-2017-15906 沒法通過升級解決,可以禁用scp,改用rsync,最省事的辦法是把openssh卸載,不影響遠程登服務器,不過這樣的話,就不能從服務器跳到其它服務器了。
#查詢已安裝的openssh
rpm –qa | grep openssh
#卸載 名字從上一步查到的結果里復制
rpm -e openssh-clients.x86_64.xxxxx.el7
三、sudo漏洞
CVE-2021- 3156 使用非root用戶登錄,運行命令
sudoedit -s /
如果返回 “sudoedit”開頭的信息,說明有安全風險。 如果返回 “usage”開頭的信息,說明沒有安全風險。
解決方式:把sudo升級到最新版本。官網地址:https://www.sudo.ws/download.html 按照系統,找到你要的最新版的rpm包 卸載
rpm -e sudo*
安裝
rpm -ivh sudo-1.9.5-3.el7.x86_64.rpm #名字注意下,版本號有變
測試,返回 “usage”開頭的信息,說明沒有安全風險
四、Apache目錄權限
包含js代碼文件的路徑需要禁止訪問。 改 /etc/httpd/conf/httpd.conf 文件,找到根目錄的Directory標簽:
<Directory "根目錄">## Possible values for the Options directive are "None", "All",# or any combination of:# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews## Note that "MultiViews" must be named *explicitly* --- "Options All"# doesn't give it to you.## The Options directive is both complicated and important. Please see# http://httpd.apache.org/docs/2.4/mod/core.html#options# for more information.#Options FollowSymLinks## AllowOverride controls what directives may be placed in .htaccess files.# It can be "All", "None", or any combination of the keywords:# Options FileInfo AuthConfig Limit#AllowOverride None## Controls who can get stuff from this server.#Require all granted
</Directory>
如果有個別目錄需要開放,在后面添加一個或多個Directory標簽
<Directory "要開放的目錄">Options Indexes FollowSymLinksAllow from all
</Directory>
五、版本、密碼信息保護
刪除phpinfo.php,這個文件是當時為了方便看php版本和組件信息加上的。 所有涉及到密碼的相關信息不用明文,包括ajax傳遞的參數、cookie里存的密碼信息等,至少也要用md5處理下。
六、遠端WWW服務支持TRACE請求
apache版本2.4.6以上,改http.conf文件,在最后加入:
TraceEnable off
重啟服務
systemctl restart httpd
測試 本地電腦telnet遠程連接服務器
telnet {ip} {apache端口} 回車 #如:telnet 1.1.1.1 8080
按ctrl+] 回車
輸入 TRACE / HTTP/1.0 回車 #此處建議直接復制,連接保持的時間比較短
輸入 X-Test:abcde 兩次回車
返回405報錯,說明沒有安全風險
總結
以上是生活随笔 為你收集整理的服务器漏洞整理 的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔 網站內容還不錯,歡迎將生活随笔 推薦給好友。