这是我的conf: /var/log/apache2/*.log { weekly missingok rotate 52 compress delaycompress notifempty create 640 root adm sharedscripts postrotate if /etc/init.d/apache2 status > /dev/null ; then \ /etc/init.d/apache2 reload > /dev/null; \ fi; endscript prerotate if [ -d /etc/logrotate.d/httpd-prerotate ]; then \ run-parts /etc/logrotate.d/httpd-prerotate; \ fi; \ endscript } 如果我正确地做了,它应该保留52周的价值logging(包装),但是每个星期后都会被删除。 我有2个虚拟主机,一个是www,另一个是testing子域。 这是我告诉我的网站从站点启用conf进行login。 <VirtualHost *:80> ServerAdmin [email protected] ServerName test.xxx.com […]
在我的nginx sites-availableconfiguration文件中,我可以指定一个服务器名称别名,如下所示: server_name example.com www.example.com; 如果我有一个Apache服务器,我可以用ServerName和ServerAlias做类似的事情: ServerName example.com ServerAlias www.example.com 我还在我的区域文件中指定了CNAMElogging: www.example.com. 1800 IN CNAME example.com. 我想要www.example.com和example.com服务器相同的内容。 因为我有一个CNAMElogging,所有www.example.com都会被指向example.com ,所以不需要别名。 这个论点也可以转向说CNAMElogging是不需要的。 我的web服务器(nginx或Apache)中的别名和CNAMElogging是多余的? 如果是这样,我应该摆脱其中之一? 如果是的话,哪一个?
所以我负责研究Acunetixnetworking安全扫描发现的问题。 以下是有关扫描的详细信息: Host_header_attack 主机头部攻击的自动检测 由于我没有足够的声望,所以我不能发布两个以上的链接,但是上面的第一个链接上的结构参考文献更详细地介绍了这个漏洞,似乎是这个主题的主要来源。 build议的解决方法build议使用“虚拟”默认虚拟主机和应用程序使用SERVER_NAME而不是使用主机头 。 当谈到一个真正的原始服务器时,这些build议是非常棒的,但是当你使用一个反向代理时,这些build议并不多。 我们的Acunetix正在扫描的网站被设置为一个位于逆向代理之后的应用服务器。 在我们的例子中,反向代理是iPlanet,但是我已经使用mod_proxy在Apache 2.4.7中确认了相同的行为。 这是它是如何工作的,为什么它会触发Acunetix扫描。 当使用绝对URI进行请求时(正如扫描程序所做的那样),根据RFC规范,服务器将忽略主机头,而是使用绝对URI内的主机。 这是我们看到的行为,因此,即使Host标头具有不正确的/恶意值,也会select正确的虚拟主机。 到现在为止还挺好。 当反向代理将此请求传递到后端原始服务器时,会出现问题。 当它这样做的时候,它会把原来的Host头和请求一起传递。 如果主机头有一个不正确的或恶意的值,这将被传回原始服务器。 如果源服务器不实现虚拟主机,则不需要validation主机头是否正确。 这样做的结果是任何运行在试图使用Host头的值的原始web / app服务器上的应用程序都将使用恶意主机值。 在这种情况下使用SERVER_NAME是没有用的,因为站点的服务器名称(或者真正的主机)没有被反向代理转发,并且源服务器仍然响应主机头值。 在这里使用UseCanonicalName和ServerNam e指令也是没有用的,因为您需要原始请求中的服务器名称(可能是多个值)。 这个“攻击”是在2013年发现的,但是我找不到很多关于它的信息,不仅仅是重复上面引用的细节。 这不是一个常见的问题,因为HTTP客户端不会发送绝对URI,除非他们正在与转发代理服务器交谈。 这意味着所有常规的请求都是相对的URI,这个问题就会消失(恶意主机头然后卡在反向代理上的“dummy”或默认虚拟主机上)。 我确实创build了一个解决方法,在请求发送到后端之前,反向代理主动将主机头设置为SERVER_NAME 。 这是有效的,但是我担心它是否可能是一种违背押注做法/标准的解决scheme。 将这样的主机头设置为什么会破坏? 我们对此进行了头脑风暴,但我无法想象它会如何。 我明天将打电话给甲骨文,以获得他们的反馈。 在我看来,这可能是一个这样的边缘案例,这只是我尝试的两个Web服务器产品的一个疏忽,但我无法想象有什么事情会持续很长时间而没有得到解决。 我肯定错过了什么。 对不起,这是很长的时间,但是,有什么想法? :)这篇文章的“问题”部分是这样的: 上面的解决方法是一个很好的解决scheme,还是会打破? 有这个问题的已知解决scheme吗?
我从来没有激活之前的mod_security或编辑虚拟主机,所以这对我来说是一个新的挑战,我试图按照本教程,但似乎网上的大多数教程没有反映我的情况。 我有一个在Ubuntu 14.04上运行Apache 2的EC2实例,我没有一个名为httpd的文件,但是在我的/etc/apache2/sites-available文件夹中,我有名为000-default.conf的文件: <VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /var/www/html <IfModule security2_module> SecRuleEngine Off </IfModule> <Directory /var/www > AllowOverride All </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> 这是我的security2.conf位于/etc/apache2/mods-available <IfModule security2_module> SecDataDir /var/cache/modsecurity Include "/usr/share/modsecurity-crs/*.conf" Include "/usr/share/modsecurity-crs/activated_rules/*.conf" IncludeOptional /etc/modsecurity/*.conf </IfModule> 我希望启用mod_security但现在我不能因为在../html文件夹(我的../html文件夹)我有Wordpress和phpMyAdmin(所以如果我删除SecRuleEngineclosures,它给了我错误权限在所有网站上被拒绝)。 从上面提到的教程中我知道我需要使用这段代码来排除特定的目录: <Directory "/var/www/wp-admin"> <IfModule security2_module> SecRuleEngine Off </IfModule> </Directory> 我不明白的是:我需要在/sites-available创build一个新的.conf文件吗? 例如,它应该如何看起来像.conf文件来排除位于/usr/share/phpmyadmin phpMyAdmin目录?
所以基本上,我遵循这个指南关于iptraf监测和rrdtool的信。 我把它放在/usr/lib/cgi-bin/像往常一样的CGI脚本。 然后,当我从浏览器访问它的时候,它的图像似乎被破坏了。 为了进行debugging,我将权限临时设置为777。 我认为Apache2正在尝试执行png文件作为脚本。 我如何防止? 以下是我的configuration文件。 提前致谢! 哦。 我以root身份运行。 #tail /var/log/apache2/error.log [Sun Mar 01 06:13:05 2015] [error] [client 192.168.0.241] Premature end of script headers: tcp_services-25-6hr.png, referer: http://192.168.0.1/cgi-bin/tcp.cgi [Sun Mar 01 06:13:05 2015] [error] [client 192.168.0.241] Premature end of script headers: tcp_services-80-6hr.png, referer: http://192.168.0.1/cgi-bin/tcp.cgi [Sun Mar 01 06:13:05 2015] [error] [client 192.168.0.241] Premature end of […]
我的公司正在使用* .example.com的通配符SSL证书在同一台服务器上托pipeexample.com和sub.example.com。 现在是更新我们的证书的时候了,我们不知道我们是如何获得证书的。 我的老板不认为我们付了200美元,他们似乎付出代价。 我的老经理(几天前离开公司)是安装它的人,他不记得他做了什么,但他认为他必须生成一些东西,而不是仅仅使用CA提供的文件。 apacheconfiguration有这些行,没有其他未注释的SSL *文件行: SSLCertificateFile /usr/local/ssl/cert/example.com.crt SSLCACertificateFile /usr/local/ssl/cert/intermediate.crt SSLCertificateKeyFile /usr/local/ssl/private/example.com-wild.key 当我检查intermediate.crt( openssl x509 -in intermediate.crt -text -noout )时,它根本没有提及我们的组织或网站,它在2010-2020年有效。 Data: Version: 3 (0x2) Serial Number: 145105 (0x236d1) Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, O=GeoTrust Inc., CN=GeoTrust Global CA Validity Not Before: Feb 19 22:45:05 2010 GMT Not After : Feb 18 22:45:05 2020 GMT […]
我尝试curl -I domainname ,这里是响应。 HTTP/1.1 200 OK Date: Tue, 21 Apr 2015 14:49:09 GMT Server: Apache/2.2.15 (CentOS) X-Powered-By: PHP/5.3.3 Set-Cookie: PHPSESSID=kpgqqefkge38jlqc608hq12046; path=/ Expires: Thu, 19 Nov 1981 08:52:00 GMT Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Pragma: no-cache Content-Type: text/html; charset=UTF-8 X-Varnish: 294982 Age: 0 Via: 1.1 varnish-v4 Content-Length: 0 Connection: keep-alive HTTP/1.1 200 OK Date: […]
在设置一个应该彼此隔离的多个站点的托pipe环境时,我做了一个很明显的步骤,即configurationPHP,使其作为与每个站点相关联的用户运行,而不是像Apache用户那样运行,但有没有某种方式为了确保一个站点不能像Apache用户那样运行用其他语言(例如Python)编写的脚本? 我已经看到了像符号链接攻击这样的聪明攻击,它使用.htaccess规则和符号链接来欺骗Apache从其他网站以明文方式提供PHP文件(这与问题无关,只是一个例子),而且因为我不熟悉PHP以外的服务器端语言的设置,我不知道要通过Apache conf文件来检查和/或禁止什么,以确保以其他语言编写的脚本不能作为Apache用户。 例如,尽pipePHP设置为以网站用户身份运行,但如果网站遭到黑客入侵,黑客是否可以创build一个.htaccess文件,将.abc文件设置为以Perl脚本运行,如果服务器上的configuration不正确那么那些作为Apache用户运行? 什么是最好的方法来解决这个问题?
有大量空闲的httpd进程总是在运行吗? 我运行了一个testing,将StartServers和MinSpareServers增加了1000,并测量了内存使用量的增加,只有500MB。 鉴于此,我认为既然我们有很多内存,为了在突发stream量期间获得最佳性能,我们不妨将StartServers和MinSpareServers设置为大约1000,当然,将ServerLimit和MaxRequestWorkers (以前称为MaxClients )设置为更高。 有没有这样做的缺点,我不知道假设我们的服务器能够一次处理多个请求,我们使用MaxConnectionsPerChild作为预防内存泄漏? 作为对每个人想0.5MB每httpd过程的一个侧面说明是不正确的,从我读了为什么Apache的内存使用量less于单个进程报告什么的原因是,它使用共享库。
所以我在一个本地公司的小型服务器上的Apache日志中find了这个: 1.2.3.4 – – [09/Nov/2015:17:00:16 +0000] "GET /wp-content/uploads/2012/08/gold-coins.jpeg HTTP/1.1" 301 342 每天约有50万次,拥有15万个独特IP。 我已经redirect到我的网站外(因此301)的stream量,因为它是服务器崩溃。 但它仍然在使用一些带宽。 补救这种情况的最好方法是什么?