我为何要写这一篇稿子?html
为了不更多的运维、开发者没能实现企业的信息安全,我将共享出我我的的HTTPD的安全修复(2.2和2.4差不太多就看2.4就好) apache
原由:我为某M工做,但因某M和testin合做,结果他们跑个脚本在安全上检测到安全
SlowHTTPDenialofServiceAttack(解决方案是reqtimeout_module)服务器
不安全的http
poodle
sweet32
中间件漏洞:
响应包版本泄露session
【顺便一提,这些问题我早知道了,他们的修复建议并没什么用,依然是CV大法】运维
首先咱们来看看2.2有哪些风险dom
Fixed in Apache httpd 2.2.23 low: XSS in mod_negotiation when untrusted uploads are supported (CVE-2012-2687) low: insecure LD_LIBRARY_PATH handling (CVE-2012-0883) Fixed in Apache httpd 2.2.24 low: XSS due to unescaped hostnames (CVE-2012-3499) --moderate: XSS in mod_proxy_balancer (CVE-2012-4558) Fixed in Apache httpd 2.2.25 low: mod_rewrite log escape filtering (CVE-2013-1862) --moderate: mod_dav crash (CVE-2013-1896) Fixed in Apache httpd 2.2.27 low: mod_log_config crash (CVE-2014-0098) --moderate: mod_dav crash (CVE-2013-6438) Fixed in Apache httpd 2.2.29 important: mod_cgid denial of service (CVE-2014-0231) low: HTTP Trailers processing bypass (CVE-2013-5704) --moderate: mod_deflate denial of service (CVE-2014-0118) --moderate: mod_status buffer overflow (CVE-2014-0226) Fixed in Apache httpd 2.2.31 low: HTTP request smuggling attack against chunked request parser (CVE-2015-3183) Fixed in Apache httpd 2.2.32 important: Apache HTTP Request Parsing Whitespace Defects (CVE-2016-8743) --moderate: mod_userdir CRLF injection (CVE-2016-4975) n/a: HTTP_PROXY environment variable "httpoxy" mitigation (CVE-2016-5387) Fixed in Apache httpd 2.2.34 important: Uninitialized memory reflection in mod_auth_digest (CVE-2017-9788) important: ap_get_basic_auth_pw() Authentication Bypass (CVE-2017-3167) important: mod_ssl Null Pointer Dereference (CVE-2017-3169) important: ap_find_token() Buffer Overread (CVE-2017-7668) important: mod_mime Buffer Overread (CVE-2017-7679) Not fixed in Apache httpd 2.2 *apache httpd 2.2已中止更新 其中个别漏洞是能够形成源码泄露的。 最新版本: apache ver.2.4.37 openssl ver.1.1.1
以上就是HTTPD2.2版本的风险,我我的也有基于低版本的修复,可是它并不安全,为防止某些人重蹈覆辙,强烈建议升级到2.4.37,版本于2018年10月23日发布,更新的版本请参照我新的博客,我将会持续跟踪,分享。测试
Apache HTTPD 2.4.37 安全配置ui
<IfModule http2_module>
LogLevel http2:info
</IfModule>
——涉及文件:httpd.conf,httpd-ssl.conf加密
如何安装(基于Centos7)
前置依赖:
<
>
./configure --prefix=/opt/apache/apr-1.6.5 make make install ./configure --prefix=/opt/apache/apr-iconv-1.2.2 --with-apr=/opt/apache/apr-1.6.5 make make install ./configure --prefix=/opt/apache/apr-util-1.6.1 --with-apr=/opt/apache/apr-1.6.5 --with-apr-iconv=/opt/apache/apr-iconv-1.2.2/bin/apriconv make make install *// apr-util-1.6.1 报错 *// xml/apr_xml.c:35:19: fatal error: expat.h: No such file or directory 解决方法 yum install expat-devel *//ps:expat-devel-2.1.0-10.el7_3.x86_64 最新版是2.4.4 ./configure --prefix=/opt/apache/pcre-8.42 --with-apr=/opt/apache/apr-1.6.5/bin/apr-1-config make && make install ./configure --prefix=/opt/apache/httpd-2.4.37 --with-pcre=/opt/apache/pcre-8.42 --with-apr=/opt/apache/apr-1.6.5/bin/apr-1-config --with-apr-util=/opt/apache/apr-util-1.6.1 --with-apr-iconv=/opt/apache/apr-iconv-1.2.2/bin/apriconv --enable-so --enable-ssl --enable-mods-shared=all --enable-cache --enable-disk-cache --enable-file-cache --enable-mem-cache make && make install *//OpenSSL v1.1.1升级详见 *//https://blog.csdn.net/evkj2013/article/details/82933079
我增长/修改了哪些配置
#conf/httpd.conf
#配置插件 <IfModule reqtimeout_module> RequestReadTimeout header=5-40,MinRate=500 body=20,MinRate=500
#用来解决 SlowHTTPDenialofServiceAttack 即超时慢DOS攻击 </IfModule> <IfModule mod_headers.c>
#HSTS只能经过https请求访问 Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"
#配置只有同一个域才能访问资源,用来解决点击劫持 Header always set X-Frame-Options SAMEORIGIN
#script 和 styleSheet 元素会拒绝包含错误的 MIME 类型的响应 Header always set X-Content-Type-Options nosniffs
#XSS注入防范的安全头 Header always set X-XSS-Protection "1; mode=block" </IfModule> # Configure mod_proxy_html to understand HTML4/XHTML1 <IfModule proxy_html_module> Include conf/extra/proxy-html.conf </IfModule> # Secure (SSL/TLS) connections include conf/extra/httpd-ssl.conf<IfModule ssl_module>
#增长的SSL配置 SSLRandomSeed startup builtin SSLRandomSeed connect builtin </IfModule> #禁用 Trace 跟踪 TraceEnable off
#配置服务器生成页面的页脚 ServerSignature Off
#隐藏版本号 ServerTokens Prod #启动重定向 #RewriteEngine on #RewriteCond %{SERVER_PORT} !^443$ #RewriteRule ^/?(.*)$ https://%{SERVER_NAME}/$1 [L,R]
这些安全头有什么做用,将挖一个坑。会增长在未来准备写的CSP以前发布
Trace是必定要禁用的,由于这个并不安全,为何不安全将在后续的补全章节展出。
#conf/extra/httpd-ssl.conf
SSLCipherSuite ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256!SSLv3:!kRSA:!EXPORT:!ADH SSLProxyCipherSuite HIGH:MEDIUM:!SSLv3:!kRSA //在这里我禁用了!EXPORT(不多人注意这里,要加的)还有!ADH(就是DH)等套件由于过期了,我在这里采用了ECDHE套件,牢固,十分安全。 SSLHonorCipherOrder on
#禁止SSL2&3,TLS1&1.1 SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1 SSLProxyProtocol all -SSLv3 #SSL 的session设置
SSLSessionTickets off SSLSessionCache "shmcb:/opt/apache/httpd-2.4.37/logs/ssl_scache(512000)" SSLSessionCacheTimeout 300
#OSCP SSLUseStapling On SSLStaplingResponderTimeout 5 SSLStaplingReturnResponderErrors off SSLStaplingCache "shmcb:/opt/apache/httpd-2.4.37/logs/ssl_stapling(32768)" SSLStaplingStandardCacheTimeout 3600 SSLStaplingErrorCacheTimeout 600 SSLEngine on //下面是密钥的配置,每一个人都不同,不粘了
个人套件依然存在CBC(就是对称密码),因此有概率被lucky 13(概率有多高不知道,你们能够试试),除非你不用CBC,追求最佳的安全,不然这些就够了。其余的配置一切安全。
1024和2048会致使响应慢
本HTTPD采用了TLS1.2(1.3没开)。
如何去测试配置如今是否安全?
https://testssl.sh/
我不知道怎么使用
testssl.sh <hostname>/<URI>
我须要一份报告
testssl.sh <options> <URI> | aha >output.html
啥是URI
你暂时,在这里彻底能够理解成URL