首页 > 系统相关 >基于Linux+宝塔面板+LNMP+Wordpress搭建的网站主页的网站漏洞修补的解决方案 (1)

基于Linux+宝塔面板+LNMP+Wordpress搭建的网站主页的网站漏洞修补的解决方案 (1)

时间:2023-09-18 17:24:15浏览次数:35  
标签:sshd etc 网站 OpenSSH LNMP 漏洞 Wordpress ssh config

基于Linux+宝塔面板+LNMP+Wordpress搭建的网站主页

1.网站漏洞修补的解决方案


@

目录


前言

为什么要做网站漏洞扫描

降低资产所面临的风险

我们知道,漏洞的典型特征:系统的缺陷/弱点、可能被威胁利用于违反安全策略、可能导致系统的安全性被破坏。 从信息安全风险评估规范GB/T 20984可以知道,分析风险的计算公式为:总风险 = 威胁 * 漏洞(脆弱性) * 资产价值。 由此可见漏洞是计算风险的重要变量,漏洞越严重,资产面临的风险越高。通过漏洞扫描及时发现漏洞,及时修复高危漏洞,能够有效降低资产的风险。[1]

满足法律合规要求

2017年生效的中华人民共和国网络安全法,作为上位法,明确了中国实施网络安全等级保护制度。而在网络安全等级保护测评过程指南GB/T 28449-2018这一标准中,则明确给出了对于二/三/四级系统的测评要求,漏洞扫描无疑是已写入其中的重要组成部分。

满足业界安全最佳实践及认证需求

信息技术安全评估通用标准ISO/IEC 15408 是计算机相关产品安全认证的国际标准,产品供应商可以委托第三方评估实验室评估其产品,若成功通过评估则会获得CC认证,而这通常也就意味着获得全球范围内的“通行许可证”。对产品的安全评估等级由低到高可以分为 EAL1~EAL7,最低等级的EAL1包含最少的保障过程。即便如此,漏洞评估也包含在EAL1范围内,因为它最为基础和有效。

其他参考信息

等级保护

信息安全等级保护制度是国家信息安全保障工作的基本制度、基本策略和基本方法,是促进信息化健康发
展,维护国家安全、社会秩序和公共利益的根本保障。国务院法规和中央文件明确规定,要实行信息安全
等级保护,重点保护基础信息网络和关系国家安全、经济命脉、社会稳定等方面的重要信息系统,抓紧建
立信息安全等级保护制度。

网络安全法

十二届全国人大常委会第二十四次会议表决通过了《中华人民共和国网络安全法》,并于 2017 年 6 月 1
日起施行。《网络安全法》第二十五条规定:网络运营者应当制定网络安全事件应急预案,及时处置系统漏
洞、计算机病毒、网络攻击、网络侵入等安全风险;在发生危害网络安全的事件时,立即启动应急预案,
采取相应的补救措施,并按照规定向有关主管部门报告。

安全建议

Windows 自动更新是 Windows 操作系统的一项功能,计算机的重要更新发布时,它会及时提醒下载和安
装。通过使用自动更新可以在第一时间更新操作系统,修复系统漏洞,保护计算机安全。使用此更新同微
软的在线升级并无冲突,仍然可以运行主机操作系统内的“Windows Update”程序或者访问http://update.microsoft.com/来进行在线升级。对于大量终端用户而言,可以采用 WSUS 自动更新服务器,
可以最快速、安全的进行系统更新,同时可以减少外网访问流量,特别是国际访问流量。我们建议采用
WSUS 的用户都启用此服务,实时更新系统补丁,降低安全隐患。对于存在弱口令的系统或服务,建议修
改密码,同时使用策略来强制限制密码长度和复杂性,对于一些可关闭的服务,建议关闭服务以达到安全
的目的。对于 Linux、Unix 系统的用户,也可以使用相应的更新命令来进行系统补丁升级,同时关注其他
软件的厂商安全公告做好升级操作。由于其他原因不能及时安装补丁的系统,考虑在网络边界、路由器、
防火墙上设置严格的访问控制策略,以保证网络的动态安全。

漏洞分类

主机漏洞

主机漏洞主要是指远程访问主机后台的安全漏洞。通常远程连接Linux的工具是OpenSSH,所以通常解决方案是升级OpenSSH工具。端口号默认22。
OpenSSH工具在CentOS7的版本通常是7.x,大部分已知的OpenSSH高危和中危漏洞在8.4+已修补,所以最好的解决方案就是升级OpenSSH工具,不要一个个去打补丁。目前最新的版本是9.0。

网站漏洞

网站漏洞主要是指你在服务器所搭建的网站服务中内容或结构上的一些错误、兼容性的设置和一些信息的泄露,解决方案就是一一修改这些问题。端口号默认80。
虽然WordPress是一个开源的动态网站工具,有现成的模板和一堆插件,但是在不打插件的情况下,问题还是很多的。WordPress没有设置一些请求头,也没有默认的robots协议(虽然这玩意只是一个君子协议,但是可以防止大公司的搜索引擎乱爬),同样一些表单有隐藏内容,网站内容还是比较的冗余。


一、主机漏洞及解决方案

1.一些升级OpenSSH工具就可以解决的漏洞(举些例子)

OpenSSH X11 转发安全绕过漏洞(CVE-2016-1908)
OpenSSH client 安全漏洞(CVE-2016-1908)
OpenSSH sshd 安全漏洞(CVE-2016-6515)
OpenSSH sshd 安全漏洞(CVE-2016-10708)
OpenSSH 输入验证错误漏洞(CVE-2016-6515)
OpenSSH sshd 安全漏洞(CVE-2015-8325)
OpenSSH sshd 缓冲区错误漏洞(CVE-2016-10012)
OpenSSH sshd 安全漏洞(CVE-2016-10010)
OpenSSH 代码问题漏洞(CVE-2016-10009)

解决方案:升级OpenSSH

Centos 升级 OpenSSH 到 9.0教程:[2]
可通过执行命令,查看组件版本:

rpm -qa | grep openssh

安装编译所需依赖软件包:

yum install -y wget gcc pam-devel libselinux-devel zlib-devel openssl-devel

下载 OpenSSH 安装包上传至服务器或 wget 直接下载:

cd /usr/local/src
wget -O openssh.tar.gz https://mirrors.aliyun.com/pub/OpenBSD/OpenSSH/portable/openssh-9.0p1.tar.gz

备份配置文件 一般卸载的时候都会把配置文件以sshd_config.rpmsave的方式另存一份,但是/etc/pam.d/sshd这个配置文件并没有另存,所以建议都备份一下:

cp /etc/ssh/sshd_config sshd_config.backup
cp /etc/pam.d/sshd sshd.backup

删除低版本OpenSSH的的rpm包:

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

安装openssh,解压:

tar -zxvf openssh.tar.gz
cd openssh-9.0p1

编译配置:

./configure --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords --with-pam --with-zlib --with-tcp-wrappers --with-ssl-dir=/usr/local/ssl --without-hardening

编译安装“

make && make install

配置,调整文件权限:

chmod 600 /etc/ssh/ssh_host_rsa_key /etc/ssh/ssh_host_ecdsa_key /etc/ssh/ssh_host_ed25519_key

复制配置文件:

cp -a contrib/redhat/sshd.init /etc/init.d/sshd
chmod u+x /etc/init.d/sshd

还原配置文件:

mv ../sshd.backup /etc/pam.d/sshd
mv ../sshd_config.backup /etc/ssh/sshd_config

添加添加自启服务ssh到开机启动项:

chkconfig --add sshd
chkconfig sshd on

重启服务:

systemctl restart sshd

到此安装完毕,查看ssh版本:

ssh -V

应该会输出:

OpenSSH_9.0p1, OpenSSL 1.0.2k-fips 26 Jan 2017

到此,升级基本完成。安全起见不要关闭SSH窗口,新增一个SSH连接,看看能否正常登录。如果不能登录,可以根据 sshd 的日志进行配置调整。
如果不能正常登录,可以打开sshd_config文件进行修改,尤其是注意有些服务器默认的ssh端口不一定是22:

vim /etc/ssh/sshd_config

最后清理刚刚的安装包以及解压文件:

rm -rf /usr/local/src/openssh*

2.支持 SSH 弱加密算法

OpenSSH默认配置为允许弱加密算法,所以在安全检测中会提示需要禁用它们。

解决方案

修改 sshd_config 配置文件,最后添加一下内容(去掉 arcfour、arcfour128、arcfour256 等弱加密算法):

vim /etc/ssh/sshd_config

单独添加一行:[3]

Cipher saes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc

但是!当你更新了OpenSSH之后,上述的弱加密算法有的就已经被删去了,所以已经删除的算法必须要从上面删去。
那么我们就要使用nmap工具进行检测,我是在kali Linux上它自带nmap工具,然后输入以下命令:

nmap --script ssh2-enum-algos -sV -p port IP
# ssh一般端口为22,所以port你可以用22,IP就是你要检测的主机IP

因为我更新OpenSSH到9.0了,所以我只有上述的3个弱加密算法。我只需要在sshd_config中加:

Ciphers aes128-ctr,aes192-ctr,aes256-ctr

然后重启服务:

service sshd restart

不过一定记得再开一个SSH连接,看看是否连接没问题。
如果有问题的话,说明刚刚这几个弱加密算法有它已经删除了的算法,你禁用了某个它不知道的算法。
请用namp工具检查一下。

3.禁用弱mac算法

和上一个漏洞一样,禁用弱加密mac算法。检测方式也是一样:

nmap --script ssh2-enum-algos -sV -p port IP
# ssh一般端口为22,所以port你可以用22,IP就是你要检测的主机IP

解决方案

只看mac_algorithms,将所有都禁用。然后在sshd_config里最后加入,用逗号分开:[4]

vim /etc/ssh/sshd_config

因为更新到了9.0,所以我只需要禁用一项:

MACs hmac-sha1

然后重启服务:

service sshd restart

4.Diffie-Hellman Key Agreement Protocol 资源管理错误漏洞(CVE-2002-20001)

Diffie-Hellman Key Agreement Protocol是一种密钥协商协议。它最初在 Diffie 和 Hellman 关于公钥密码学的开创性论文中有所描述。该密钥协商协议允许 Alice 和 Bob 交换公钥值,并根据这些值和他们自己对应的私钥的知识,安全地计算共享密钥K,从而实现进一步的安全通信。仅知道交换的公钥值,窃听者无法计算共享密钥。

Diffie-Hellman Key Agreement Protocol 存在安全漏洞,远程攻击者可以发送实际上不是公钥的任意数字,并触发服务器端DHE模幂计算。

目前厂商已发布升级补丁以修复漏洞,详情请关注厂商主页:D(HE)ater[5]

解决方案

因为我有OpenSSH,我在sshd_config里加入:

KexAlgorithms -diffie-hellman-group1-sha1,diffie-hellman-group1-sha256,diffie-hellman-group14-sha1,diffie-hellman-group14-sha256,diffie-hellman-group15-sha256,diffie-hellman-group15-sha512,diffie-hellman-group16-sha256,diffie-hellman-group16-sha512,diffie-hellman-group17-sha512,diffie-hellman-group18-sha512,diffie-hellman-group-exchange-sha1,diffie-hellman-group-exchange-sha256,diffie-hellman-group-exchange-sha512

同时加入某些配置选项可以控制未经身份验证的并发连接的最大数量:

MaxStartups (全局)

MaxStartups 10:30:100

PerSourceMaxStartups (每个源 IP 子网)

PerSourceMaxStartups 1

PerSourceNetBlockSize (分组在一起的子网的大小)

PerSourceNetBlockSize 32:128

二、网站漏洞及其及其解决方案

1.robots.txt

WordPress默认是没有爬虫协议的,虽然这是一个君子协议,但是还是可以有效防止遵守规则的爬虫工具占用资源或是爬取敏感数据。
如果你没什么思路的话,可以复制我下面这几行,然后保存为robots.txt,将它放在你的网站主目录下。WordPress默认网站主目录是/www/wwwroot/IP/

User-agent: *
Allow: /wp-content/uploads/
Disallow: /wp-content/plugins/
Disallow: /wp-admin/
Disallow: /readme.html
Disallow: /refer/

2.WordPress登录界面隐藏标签漏洞

在WordPress登录界面有一个隐藏标签,实测其中的参数对登录没有影响,所以建议在登录界面的php文件里把对应的两个隐藏标签删除。JS路径为:

/html/body/div[1]/form/p[3]

参考

文章中有些内容直接复制粘贴过来的,因为了文章整体完整性和可读性,不在文章中插入连接,特此贴出原链接处


  1. 为什么要做漏洞扫描 ↩︎

  2. Centos 升级 OpenSSH 到 9.0 ↩︎

  3. 漏洞复测系列 -- SSH 支持弱加密算法漏洞 ↩︎

  4. 【网络安全】ssh禁用弱秘钥交换算法和弱MAC算法 ↩︎

  5. D(HE)ater ↩︎

标签:sshd,etc,网站,OpenSSH,LNMP,漏洞,Wordpress,ssh,config
From: https://www.cnblogs.com/kemuling/p/17712491.html

相关文章

  • 基于javaweb远程教育网站开发与实现-计算机毕业设计源码+LW文档
    一、课题简介本课题将设计并实现一个基于JAVAWEB远程教育网站,根据课题的需求制定技术开发方案,可分别实现管理员与普通用户的注册、登录功能,可以实现客户端C++编程语言课程视频选取播放、学习进度记录、问答咨询论坛、在线测试等功能,实现服务端相关数据表的增删改查功能以及学生注......
  • wordpress找回密码重置链接提示您的密码重设链接无效,请在下方请求新链接
    1、https://www.yjro.com/122159.html这个问题产生的原因是发送的邮件里面有链接url,然后这个url被“<>”包住的,导致邮件解析出错。出现这个问题原因是wordpress程序源码有个bug,源码加的有<>这两个符号,前面这个符号没关系。但是在后面的话,地址在邮箱中>会被认为是目标站点地址的......
  • 哇,不用密码就能登录任意网站
    hello,我是小索奇居然可以免密码登录你的网站?听起来是不是很恐怖确实如此,Cookie可以用于保持用户在网站上的登录状态,从而实现免密码登录,学会了不要做坏事哈这里仅做免密码登录的实操,就不介绍Cookie的作用了哈如需进一步了解Cookie请点击:Cookie好基友这里用小索奇已经登录的Github做......
  • 基于Java Web的陕西旅游网站的设计与实现-计算机毕业设计源码+LW文档
    一、研究的背景和意义研究背景:本文主要是基于旅游业是我国现阶段发展的重要产业,旅游可以推动经济上的发展,通过深入的对当前旅游行业的研究,也随着网络技术的发展,传统的旅游方式游客已经无法满足,游客不再满足于单一路线的线路,无法进行更多的选择,每天日常的行程安排丧失了一定......
  • python实现从网站下载文件, 带进度信息
    我实现了一个函数,代码如下:defdownload_file_from_url(url,save_path='',callback:callable=None):'''下载文件,并保存到save_path指定的位置url:形如'http://www.tdx.com.cn/products/data/data/vipdoc/shlday.zip'或者'http......
  • Discuz论坛网站标题栏Powered by Discuz!版权信息如何去除或是修改?
    当我们搭建好DZ论坛网站后,为了美化网站,想把标题栏的Powered by Discuz!去除或是修改,应该如何操作呢?今天飞飞和你分享,在操作前务必把网站源码和数据库都备份到本地或是网盘。 Discuz的版权信息存在两处地方,一个是标题栏,一个是底部。一般为了美化修改个标题栏就可以了,底部的......
  • 基于Python+Flask实现一个TODO任务管理系统网站
    随着科技的进步,数字化的任务清单逐渐成为生活中不可或缺的一部分。它们不仅可以帮助我们跟踪日常任务,还可以提高效率。但是,你是否考虑过自己制作一个任务管理系统呢?好消息是,使用Python和Flask,我们可以轻松快捷地构建一个。今天,我将向大家展示如何实现一个简单、易用的TODO任务管......
  • 22个实用的CSS技巧,让你的网站与众不同
    想要让你的网站在激烈的竞争中脱颖而出吗?使用CSS的强大功能可以帮助你实现这一目标。本文将分享22个实用的CSS技巧,帮助你提升网站的外观和用户体验。无论你是一个新手还是有经验的开发者,这些技巧都将为你的网站注入新鲜的设计元素和动感效果。1.自定义字体:通过使用@font-face规则,......
  • Python开发实例(二十)网站检测工具:创建一个测量网站的工具,检查页面加载时间等指标
    在这个实例中,我们将创建一个简单的网站检测工具,使用Python的requests库来测量网站,包括页面加载时间等指标。首先,请确保你已经安装了requests库。如果没有安装,可以通过以下命令来安装:pipinstallrequests下面是一个网站检测工具的Python程序:importrequestsimporttimedefmeasu......
  • 国内AI绘画网站突然批量关停
    我是卢松松,点点上面的头像,欢迎关注我哦!就在昨晚,一场突如其来的神秘事件席卷了国内的AI绘画界。据网友向松松爆料的消息,有部分AI绘画网站突然关闭,常用的几个网站无一例外都变得无法打开。官方给出的理由仅仅是“网站升级”,但具体的原因却无人知晓。这种集体“失踪”的现象让人感到十......