如何让网站安全系数达到A+级别

A+2

前言:2017年开年第一博。2017年,本博客也进入第4个年头了。时光如梭,至今,收获近2000条评论,结交一些兴趣相投、志同道合的朋友。自2014年以来,本博依然保持着一定的更新频率,虽不是频繁更新,但也不忘初心,在兴趣的引领下,学习到许多互联网知识,也领悟到许多东西。农历新年也快到了,Javen在此祝愿大家新年快乐,身体健康,平安幸福。

一、2017,普及化HTTPS元年真正到来

2017年,在网站安全方面欠账的站长似乎有事情要忙了。综观网络发展趋势,可以很明显断定的一点就是,网站面临的安全威胁日趋增加,密码爆破、撞库已经在知名网站发生许多次,个人信息的隐私在所谓“大数据”的忽悠之下毫无遁形之力。在各个站长懒癌晚期病症和各类利益纠缠的作用下,近年HTTPS普及化的进展并不能称之为迅速。

chrome1然而,巨头谷歌要发力了:从2017年1月份正式发布的Chrome 56开始,Google将彻底把含有密码登录和交易支付等个人隐私敏感内容的HTTP页面标记为【不安全】,并且将会在后续更新的Chrome版本中,逐渐把所有的HTTP网站标记为【不安全】因此,Javen认为,2017年可以说将会是全球网站全面提升安全系数的一年。

chromeus1 如上图所示的提示,Chrome 56直接把含有用户密码或交易支付等信息敏感内容的HTTP页面,在地址栏上直接显示【不安全】的网站提醒文字。

chromeus2如上图,最终所有的HTTP网站将直接显示【不安全】的红色警告字样。
或许,在谷歌的大力推动下,Javen认为,2017年,也就是真正普及HTTPS的元年。

二、为什么要HTTPS?

好吧,又回到这个老生常谈的问题了。容我不再详述。

请参看本站历史博文。
启用全站HTTPS加密保护隐私的重要性
开启HSTS (HTTP Strict Transport Security)的重要性

三、如何提升安全系数?

  1. 加强SSH安全登录。

    包括强化SSH登录密码、修改常用端口、禁用登录密码、使用密钥登录等等。

    ①修改常用端口

    我们只需要修改22数字为任意的5个数字(这样妥当一点)。然后重启SSH:

    ②生成密钥

    然后下载生成的私钥id_rsa.然后在本地用puttygen工具生成putty的私钥ppk文件
    同时把vps上生成的id_rsa.pub文件改名为authorized_keys
    可以执行以下命令:

    然后修改下这个文件的权限为600

    这样就完成了vps上的公钥的生成。
    然后还需要对ssh进行相关的配置
    修改/etc/ssh/sshd_config 文件,将RSAAuthentication 和 PubkeyAuthentication 后面的值都改成yes ,保存。
    重启sshd服务,执行

    ③禁用密码登录
    最后需要把用口令登录关闭掉,只能使用密钥登录。
    1)修改/etc/ssh/sshd_config 文件
    将PasswordAuthentication yes 修改成 PasswordAuthentication no
    2)重启sshd服务/etc/init.d/ssh restart

  2. 网页和数据库的登录路径方面。

    1)网页登录路径修改(以Wordpress为例)。

    将你的数据库使用SSL加密链接。包括但不限于强化数据库登录密码、隐藏(修改)phpmyadmin、wordpress等登录地址、启用谷歌两步验证等。

    ①修改代码
    不用插件可以直接将下面的代码复制到当前主题的 functions.php 文件中:(本博客就是采用下面这种方法,推荐)

    这样只有打开 http://okwoo.com/wp-login.php?123=456,才会打开登录页,否则就会自动跳转到 http://okwoo.com/
    这样就有效的隐藏起来wordpress的登陆路径了,(备注:修改代码不要再记事本下进行)当然除了这种方法以外还有修改登陆路径文件名的方法。

    ②修改文件名
    修改登陆wordpress后台登陆路径wp-login.php文件名,比如将wp-login.php修改成wp-789.php,在文件名修改后还要打开这个文件,将里面所有的wp-login.php替换成wp-789.php(当然也可以你随意想一个路径)。这样登录地址便成了http://lisanbao.com/wp-789.php
    当然,还可以和前面一种方法结合
    跟前面那个方法结合起来,就成了http://okwoo.com/wp-789.php?123=456 。当然,除了这些办法之外也肯定还有其他办法,由于本人对wordpress没有研究 ,所以能用就行。为了增加被猜中的难度,其中123、456、789可以自行修改成数字、密码、特殊字符的组合。

    2)Mysql SSL 配置。

    进行完这个操作之后,可以保护你的节点和你数据库之间的连接。

    ①请确认你的 Mysql 支持 SSL ,LNMP 默认没有这个支持,需要自己编译。这是是 5.5 版本的方法,其他版本请自己参考 Mysql 官网的方法。

    ②然后就生成证书,按照
    http://dev.mysql.com/doc/refman/5.5/en/creating-ssl-files-using-openssl.html
    的方法,生成在 /etc/mysql/ 下。

    ③然后设置 my.cnf 的 [mysqld] 段添加

    ④添加完成,重启 mysql

    ⑤重启完毕,然后把 /etc/mysql/ 的 client-cert.pem 和 client-key.pem 和 ca.pem 传到你节点上 ssr mod 的目录下,我这里以 /root/shadowsocks 为例。

    ⑥然后设置 userapiconfig.py 添加或者设置如下

    重启节点上的程序,搞定。

  3. 为你的网站申请权威并且规范的SSL证书并配置。推荐进行全站HTTPS。

    全站HTTPS的难度在于你必须为全站的资源都进行HTTPS化,包括所有图片。在使用了站外http图床的网站则容易出现混合内容(Mixed contents)的安全警示。因此,必须修改所有站内链接为HTTPS,并替换所有未经加密的资源链接为HTTPS。在某些情况下,我们还需要下载某些文件并上传到自己的网站或启用了HTTPS的CDN上并修改为相应HTTPS链接。

    请参看本站历史博文。快速注册Let’s Encrypt SSL证书并续期让多说完美支持https让七牛插件完美支持httpswordpress更换域名教程

    The project aims to make encrypted connections in the World Wide Web the default case. By getting rid of payment, web server configuration, validation emails and dealing with expired certificates it is meant to significantly lower the complexity of setting up and maintaining TLS encryption.On a Linux web server, execution of only two commands is sufficient to set up HTTPS encryption, acquire and install certificates within 20 to 30 seconds.

    ssl1 ssl2

  4. 为你的网站开启HSTS(HTTP Strict Transport Security)。

    且设置的时效足够长。必要时申请加入Preload列表。

    请参看本站历史博文。开启HSTS (HTTP Strict Transport Security)的重要性

    HTTP Strict Transport Security (HSTS) is a web security policy mechanism which helps to protect secure HTTPS websites against downgrade attacks and cookie hijacking. It allows web servers to declare that web browsers (or other complying user agents) should only interact with it using secure HTTPS connections,[1] and never via the insecure HTTP protocol. HSTS is an IETF standards track protocol and is specified in RFC 6797.

    # max-age: 记住的时长, 单位是秒 (31536000 = 1 年)
    # includeSubdomains: 所有子域名都强制使用 https 访问, 这个如果不确定千万别开。
    # preload: 告诉浏览器可以预加载你的域名的 HSTS。

  5. 为你的网站开启HTTP/2协议。

    请参看本站历史博文。升级LNMP一键安装包以支持HTTP/2

    HTTP/2 is the first major upgrade to the HTTP protocol in over 15 years. Websites have changed dramatically in the interim, with the number of external image, CSS, and JavaScript assets growing by the year. HTTP/1.1 wasn’t designed for this kind of complexity. HTTP/2 is optimized for the modern website, improving performance without complicated hacks like domain sharding and file concatenation.

    http201

  6.  为你的网站域名开启DNSSEC,防范DNS污染。

    对于DNSSEC,Cloudflare官方的解释是,DNSSEC protects against forged DNS answers. DNSSEC protected zones are digitally signed to ensure the DNS records received are identical to the DNS records published by the zone owner. 用户只需遵照Cloudflare后台DNS配置页面的说明在域名申请机构网站配置即可。DNSSEC

  7.  为你的网站开启权威并且安全的CDN云加速,并开启反向代理以隐藏真实ip地址,以此防范各类DDOS攻击。

    请参看本站历史博文。启用了CloudFlare的CDN云加速和Universal SSL加密证书

  8. 更新并使用新的权威的流式加密算法。
  9. 定期备份数据库和重要的网站文件,包括配置文件。

    请参看本站历史博文。主机之间迁移数据简明教程

以上9步之中,3~6项尤为重要,这些项目的正确配置,将有助于你大幅提升网站的安全系数,并成为衡量一个网站安全系数是否达标的重要指标。

四、本站Nginx之vhost.conf文件示例:

五、测试你的网站安全性

完成必要的设置之后,在SSL测试网站,输入自己的网站地址,即可在线测试你的安全系数评级。最高级别为A+!

测试地址https://www.ssllabs.com/ssltest/index.html

本站安全系数已经达到A+级别
A+2A+3 A+4 A+5 A+6

另外的一个测试地址,快速有效:https://www.websiteplanet.com/zh-hans/webtools/ssl-checker/

iShot2021-05-03 19.31.24

后记:本文在一年以前就想写成,现在补上,作为梳理之用。普通站长做到以上几点,网站安全基本无虞。

 

安装描述文件屏蔽iOS设备的自动升级

众所周知,苹果设备在关闭验证后无法降级。一般来讲,出厂的系统流畅性最好。然而,现在的新iOS系统出来的时候,厂商会鼓吹新的系统多么多么好,然后一些吃瓜群众便开始表演自干五技能,招致大批老设备卡顿。 继续阅读

禁止Kindle自动升级教程

IMG_20151029_103916_HDR_副本

亚马逊最新的官方固件取消了分享个人文档内容到微博的可能性,只能分享电子书的内容。这就造成包括RSS推送内容(例如我的《经纬日报》)和通过邮件发送文档在内的许多内容无法通过Kindle内置的微博分享功能进行分享。

Kindle固件是强制静默升级的,只要在连接到WiFi的情况下,它收到推送便会在不经用户的同意的情况下静默升级。新的固件如果有问题或Bug,用户只能选择忍受,很多情况下,是不需要频繁升级的。 继续阅读

Kindle 5.8.x 越狱教程:先降级固件再越狱

下方的教程全篇转载于上方的Kindle伴侣。起初Javen是不情愿越狱的,因为越狱并没有十分吸引我的理由(至少目前看来是这样),但是鉴于亚马逊强制升级的做法,我决定越狱然后通过安装插件的方式阻止自动升级。亚马逊官方最新的5.8.1固件中,移除了分享个人文档的可能性,只能分享正版电子书的内容,所以通过自定义发送的RSS电子书《经纬日报》的内容就无法再通过微博分享,加上不经用户同意在连接WiFi的情况下强制升级的做法不能令人接受,所以我决定对其越狱,安装支持EPUB、PDF重排的插件Koreader和禁止自动升级的插件BackDoorLock(失效)。

screenshot_2016_07_18T15_28_19+0800

安装了KUAL插件的页面图标(第一个)

虽然我实验禁止自动升级的插件BackDoorLock并没有成功阻止升级,但是折腾一番后我找到了另一种不需要越狱有效且更简单的方法:新建update.bin.tmp.partial的方式。虽然初衷达成但是属于曲线救国,但是误打误撞让Kindle拥有更多的功能(比如越狱后支持EPUB格式、支持更强大的PDF重排功能、更换字体和屏保等),也算是没有拜拜浪费精力。而且,越狱后,为支持多看系统提供了可能性。

文/Kindle伴侶 http://kindlefere.com/post/410.html

国外 mobileread 论坛的大神 knc1 再次提供了先降级固件再越狱的方法。其思路是先用特殊的 Kindle 固件把 Kindle 系统降级到出厂版本,然后再进行越狱,升级到最新固件后越狱不会丢失。下面步骤参考自 knc1 在 mobileread 论坛发布的帖子《DGA-1 (DownGrade Attack One), PW2, PW3, KT2, KV》。

目录:

第一部分:降级到出厂固件
★ 关于 KPW3 降级失败的问题
第二部分:越狱出厂固件
● 仅适用于 Kindle Paperwhite 2 (KPW2)
● 适用于 KO、KV、KWP2、KPW3 和 499 入门版 Kindle
第三部分:升级到最新固件
越狱相关资料

下面所示步骤是以 Kindle Paperwhite 2 (KPW2) 为例而写的,每一步都经过实机验证通过。其他型号的 Kindle 如 KO、KP3、KV、入门版 Kindle 也均有小伙伴反馈成功降级并成功越狱。不过仍然要强调的是,越狱属于风险操作,请一定先备份好 documents 文件夹中的数据(尤其是 My Clipiings.txt 文件),以防操作失误或者其它未知原因导致数据丢失。另外,尝试越狱一切后果需要自行承担。

在开始下面的步骤之前,请先停用 Kindle 设备密码和家长监护设置。然后参考《查询 Kindle 序列号及辨别 Kindle 型号的方法via 这篇文章,检查下你的 Kindle 序列号前缀是否列在表中,如果列在表中请继续下面的步骤,否则请勿继续操作。下面每个步骤只需要操作一遍,勿重复操作。

重要提示!如果你的 Kindle 正好是 KPW3,请一定确认序列号前缀列在表中,否则请勿尝试下面的方法。如果在操作过程中遇到反复重启或卡大树的情况,请不要慌,下面有具体的应对方法。

第一部分:降级到出厂固件

为 Kindle Paperwhite 3 (KPW3) 降级的小伙伴请注意!大概有 2% 的 KPW3 设备在降级到 5.6.1.1 版本后,出现卡大树、“变砖”、循环重启的问题。如果你也遇到这种问题,请下载新提供的 5.7.4 版本的 KPW3 出厂固件降级。这个固件不会出现使用 5.6.1.1 版本固件降级所导致的种种问题。

  1. 前往《Kindle 固件降级文件下载:不拆机就能降级》这篇文章中下载适合自己 Kindle 型号的固件降级文件(本例 KPW2 是降级到 5.4.3.2 版本);
  2. 用 USB 数据线把 Kindle 连接到电脑,直到出现 Kindle 磁盘。把下载好的固件降级文件(如 update_PW2_5.4.3.2_initial.bin)拷贝到 Kindle 的根目录(和 documents 文件夹同级);
  3. 弹出 Kindle 磁盘回到 Kindle 界面,依次点击“菜单 -> 设置 -> 菜单 -> 更新您的 Kindle”。然后耐心等待 Kindle 降级,直到降级成功后再次进入 Kindle 再进行第二部分的操作。

*提示1:请注意,降级过程中可能比较漫长,请稍安勿躁,只需要耐心等待即可。
*提示2:如果确认序列号前缀没问题却降级失败,请重置一下 Kindle 系统再重试。
*提示3:如果把降级固件拷贝到 Kindle 后重启出现“您的 Kindle 需要维修”的提示,请在 Kindle 磁盘的根目录创建一个名为 DO_FACTORY_RESTORE 的文件(不要任何后缀名),然后重试降级。

★ 解决 KPW3 卡大树、循环重启的问题

如果你的 Kindle 型号为 Kindle Paperwhie3 (KPW3) 并且使用了版本号为 5.6.1.1 的出厂固件降级,有很大的几率会遇到卡大树或循环重启的情况,其表现有两种,一种是你可以通过 USB 数据线看到 Kindle 磁盘,另一种是你只能在 Kindle 重启的一瞬间看到 Kindle 磁盘。请视具体情况尝试下面的解决方案。

a、如果是第一种情况请尝试下面的步骤:

  1. 把出厂固件文件放到 Kindle 根目录;
  2. 安全弹出 Kindle 磁盘并断开数据线;
  3. 按住 Kindle 的电源按钮 40 秒钟;
  4. 这样 Kindle 应该就会恢复到正常状态;
  5. 如果问题仍然没有解决,请停止操作到原帖反馈。

b、如果是另一种情况请尝试下面的步骤:

  1. 创建一个名为 DO_FACTORY_RESTORE 的没有后缀名的空文件;
  2. 按住 Kindle 电源按钮 40 秒钟直到 Kindle 重启;
  3. 在 Kindle 磁盘出现的一刹那把创建的空文件拷贝到根目录;
  4. 拷贝完毕后再次按照上面的方法重启一下,Kindle 将恢复正常;
  5. 把出厂固件拷贝到 Kindle 根目录(与 documents 文件夹同级);
  6. 安全弹出 Kindle 磁盘,并断开数据线;
  7. 按住 Kindle 电源按钮 40 秒钟直到 Kindle 重启;
  8. 如果问题仍然没有解决,请停止操作到原帖反馈。

第二部分:越狱出厂固件

● 仅适用于 Kindle Paperwhite 2 (KPW2)

注意,KPW2 比较特殊,只需要操作下面这一个步骤即可略过本部分其他步骤直接进入第三部分。

下载 kindle-jailbreak-1.14.N.zip官方下载百度网盘via

  1. 把下载到的 kindle-jailbreak-1.14.N.zip 并解压缩,找到“kindle-5.4-jailbreak.zip”再将其解压缩;
  2. 用 USB 数据线把 Kindle 设备连接到电脑,把解压缩得到的所有文件(文件夹 kindle-5.4-jailbreak 内的文件)全部拷贝到 Kindle 根目录(和 documents 文件夹同级);
  3. 弹出 Kindle 磁盘。进入 Kindle 的 主界面,依次点击 “菜单 —> 设置 —> 菜单 —> 更新您的 Kindle”;
  4. 点击菜单后系统不会重启也不会有其它任何反应,在这期间不要有任何操作,直到屏幕下方出现“**** JAILBREAK ****”的字样时,表示越狱已成功,然后操作第三部分。

● 适用于 KO、KV、KWP2、KPW3 和 499 入门版 Kindle

下载 jb-factory-1.1.zip官方下载百度网盘via

  1. 解压缩下载的文件 jb-factory-1.1.zip 得到 main-htmlviewer.tar.gz 文件;
  2. 用 USB 数据线把 Kindle 连接到电脑,直到出现 Kindle 磁盘。把文件 main-htmlviewer.tar.gz 拷贝到 Kindle 根目录(和 documents 文件夹同级);
  3. 弹出 Kindle 磁盘回到 Kindle 界面,点击搜索框,输入 ;installHtml(带分号),点击回车键。
  4. 如果 Kindle 屏幕闪动并重启,就可以继续下面的步骤了。

下载 JailBreak-1.14.N-FW-5.x-hotfix.zip官方下载网盘下载via

  1. 用 USB 数据线把 Kindle 连接到电脑,直到出现 Kindle 盘符;
  2. 解压缩下载到的 ZIP 压缩包 JailBreak-1.14.N-FW-5.x-hotfix.zip,得到一个名为Update_jailbreak_bridge_1.14.N_install.bin 的文件;
  3. 将此 bin 文件拷贝到 Kindle 磁盘根目录,然后从电脑弹出 Kindle;
  4. 依次在 Kindle 中点击“菜单 —> 设置 —> 菜单 —> 更新您的 Kindle”,等待重启;
  5. 重启完毕后你的 Kindle 就已经处于越狱状态了。

*使用以上方法越狱失败请注意!如果按照上面的步骤没有成功(比如输入 ;installHtml 没反应,无法更新 jailbreak bin 文件),请略过第二部分,先把 Kindle 升级到 5.6.5,然后再按照《Kindle 5.6.5 越狱教程:支持所有 5.6.5 固件》这篇文章提供的的方法越狱。最后再进行第三部分步骤。

*注意,越狱成功后如果还想升级到最新版本固件,请不要先装插件,因为升级后虽然越狱不会消失,但是插件还是需要重装的,所以请先升级到最新版本固件后再安装增强插件。

*如果以上所有方法都尝试过却仍然无法成功越狱,请前往原帖反馈。

第三部分:升级到最新固件

越狱成功后,前往《固件大全》下载和你的 Kindle 型号相对应的最新固件文件(或者其它你想保持的固件版本),手动升级 Kindle 即可。升级到最新固件后越狱仍然有效。

*注意,如果重置了 Kindle 需要使用恢复文件恢复越狱,具体方法参考“越狱相关资料”第 2 篇文章。

相关文章

  1. 禁止Kindle自动升级教程
  2. Kinlde使用技巧:让Kindle战斗力骤升
  3. KindleEar: 为Kindle搭建个人RSS推送服务器

越狱相关资料

  1. 越狱后安装增强插件,请查看《Kindle 5.6.5 越狱插件资源下载及详细安装步骤》这篇文章。
  2. 重置恢复越狱和插件,请查看《Kindle 升级 5.7.x 固件后如何恢复越狱和插件》这篇文章。

感谢网友“吻过鲜花露水吻上刀刃”提供的消息。特别感谢 mobileread 论坛的黑客大神也是为 Kindler 持续提供 Kindle 越狱方案的 knc1 以及提供和持续更新越狱文件的 NiLuJe,还有其它所有贡献者。

如果发现文章内容有误,或有其它任何相关问题敬请留言。如果按照本文方法越狱成功,建议留言留下您的 Kindle 序列号的前六位,方便其它小伙伴验证自己的 Kindle 是否可以越狱,谢谢!

还有,在描述自己遇到的问题时,不要简单的说失败了或出问题了,请尽可能描述清晰,并提供必要信息,比如Kindle 序列号前缀、下载的固件文件名、操作过程等,否则别人无法回答。