Articles of httpd

使用Require IP命令进行访问控制时,无法启动HTTPD 2.4

这是为了评论一个类似的问题,但由于Stack对于评论的限制性很强,所以我按照他们的意愿重新发布: :这里的文档: http : //httpd.apache.org/docs/2.4/en/mod/mod_authz_core.html#require ) 这里是configuration文件: Options Indexes FollowSymLinks AllowOverride None Require ip $CIDR ~ 错误仍然是:5月24 20:54:54 ip-172-16-5-34.us-west-1.compute.internal httpd [23044]:AH00526:在/ etc / httpd / conf行3上的语法错误.d / httpd.conf:5月24日20:54:54 ip-172-16-5-34.us-west-1.compute.internal httpd [23044]:无效的命令'要求',可能是拼写错误或由模块不包含在服务器configuration中 我错过了什么? 它看起来像RequireAny或RequireAll命令可能会帮助,但他们不。 为了您的参考,这里提供的信息是不够的: 我如何要求IP范围而不是1 IP?

某些虚拟主机上的SSL抱怨错误的域名

所以我最近碰到这个问题,想在这里描述问题和解决scheme: 我在httpd服务器上有几个虚拟主机,并开始通过certbot-auto工具在其上安装letsencrypt SSL证书。 这一直工作得很好,直到一些域名会在浏览器中抛出证书属于另一个域名并且不安全的错误。 该域的SSL设置与其他可用的SSL设置完全相同。 他们都在同一个IP地址上,configuration是由certbot-auto工具创build的。 在浏览器中显示的域是ssl证书指向的错误域是系统上的其他域之一。

EC2和Apache HTTPD不通过IP访问,而是通过DNS名称访问

我的EC2实例有一些问题。 我有一个标准的Apache HTTPD正常的亚马逊Linux。 我的问题是,我无法通过IP地址访问HTTPD(例如http://123.123.123.123/ ),但是当我使用亚马逊提供的DNS时,一切正常(例如ec2-123-123-123- 123.eu-central-1.compute.amazonaws.com)。 有没有人有一个想法可能是他们错了什么? 最好的问候,约翰内斯。

查看,比较和复制机器之间的SELinuxconfiguration?

我有两台机器运行相同的JBoss和HTTPD设置。 他们从RedHat 7完全相同的安装开始,并遵循相同的过程在两台机器上安装一切。 在一台机器上,SELinux以默认设置运行,一切正常。 我从来没有碰过SELinux。 在另一台机器上,当我尝试在networking浏览器中访问它时,出现403条禁止的错误消息。 当我在网上search为什么时,我发现一个build议,我应该禁用SELinux,看看它是否工作。 所以我跑了setenforce 0 ,重新启动jboss和httpd,刷新我的浏览器,禁止的消息走了,一切都工作了。 我用setenforce 1重新打开SELinux setenforce 1 ,重新启动应用程序,刷新浏览器,禁止的消息回来。 所以在我的第二台机器上,SELinux肯定有些问题。 这很奇怪,因为我没有在任何一台机器上碰到SELinux,直到我试图在第二秒钟把它关掉。 我已经证实,在第一台机器上,当我运行getenforce ,它确实返回Enforcing 。 我的问题是 – 如何查看每台机器上的SELinuxconfiguration? 我怎么能比较它们,找出它们之间的差异,编辑或复制它们,以便我可以在不干扰我的应用的情况下在第二台机器上运行SELinux,就像在我的第一台机器上一样? 编辑 – 我运行这个命令来search审计日志: cat /var/log/audit/audit.log | grep httpd | grep denied 第一行重复了好几次。 最后两行只在最后出现一次。 type=AVC msg=audit(1468877854.297:22110): avc: denied { getattr } for pid=5193 comm="httpd" path="/var/www/html/sfo/index.htm" dev="dm-0" ino=70334613 scontext=system_u:system_r:httpd_t:s0 tcontext=unconfined_u:object_r:var_t:s0 tclass=file type=AVC msg=audit(1468877854.297:22111): […]

如何在一个日志文件中从Vhosts中捕获IP地址和Useragent

目前我在我的Apache 2.4 httpd文件中有一些虚拟主机。 我希望能够获取有关访问谁的更多信息,包括访问日志中的IP地址和用户代理。 在httpd的conf文件中,我有这样的: ` <IfModule log_config_module> # info from http://www.techstacks.com/howto/log-client-ip-and-xforwardedfor-ip-in-apache.html LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" proxy SetEnvIf X-Forwarded-For "^.*\..*\..*\..*" forwarded CustomLog "logs/access_log" combined env=!forwarded CustomLog "logs/access_log" proxy env=forwarded </IfModule> 结果如下:“目前,它显示了这一点: `::1 – – [05/Aug/2016:02:49:26 +1200] "OPTIONS * […]

如何在HAPROXY中将客户端IP转发到后台服务器

我有两个后端服务器,我必须监视客户端IP,默认情况下HAProxy发送服务器IP而不是客户端IP。 我在这里find了一个类似的解决scheme,但对我的情况不起作用。 我简单的configuration文件如下 这是我的haproxy.cnf global log 127.0.0.1 local2 chroot /var/lib/haproxy pidfile /var/run/haproxy.pid maxconn 4000 user haproxy group haproxy daemon # turn on stats unix socket stats socket /var/lib/haproxy/stats defaults mode http log global option httplog option dontlognull option http-server-close option forwardfor except 127.0.0.0/8 option redispatch retries 3 timeout http-request 10s timeout queue 1m timeout connect […]

我怎样才能阻止所有的HEAD请求包含在Apache上的子string的url?

我pipe理的一个服务器正在被一个糟糕的编码的AWS构build的机器人所困扰,这个机器人不断地切换IP并且似乎卡在一个recursion编码循环中。 我能看到的唯一一致的指纹是每个请求只是一个HEAD请求,每个请求似乎都重新编码了前一个请求。 所以http://someurl.com/?foo=%25bar成为..%2525..变成..%252525.. … %2525252525252525…x1000 ..%252525.. … ..%252525.. 。 以下是我看到的请求types的示例: HEAD http://example.com/?foo=%25bar HEAD http://example.com/?foo=%2525bar HEAD http://example.com/?foo=%252525bar HEAD http://example.com/?foo=%25252525bar HEAD http://example.com/?foo=%2525252525bar HEAD http://example.com/?foo=%2525252525…25bar (x1000) 到目前为止,我一直在使用Cloudflare防火墙来阻止每个IP,但他们保持切换IP。 我怎样才能阻止所有包含子string的HEAD请求(比如%25252525 )? 我正在运行Apache/2.4.6 (CentOS) 。

Apache httpd接收请求并响应但不logging活动

我试图去调查一些奇怪的stream量击中我的Apache Web服务器,但stream量没有被logging在服务器上。 在位于服务器和互联网之间的防火墙上,我看到数据包进入和离开服务器。 我挠我脑袋的是,我已经搜查每一个httpd日志,我没有find传入的请求。 请求进入端口80,当Apache收到请求时,我希望发生的事情是将请求冲击到https(我有一个logging集来logging这个stream量)。 我通常也期望在特定的虚拟主机的日志中看到它,但并不感到惊讶,因为第一个logging器没有显示任何东西。 我注意到的另一件事是所有传入的请求都来自非常低的端口号(<500)。

Certbot https不适用于example.com,仅适用于www.example.com

[更新] – 我把它贴到了错误的网站上,所以我会把这个主题复制到Unix / Linux社区。 所以请删除这个话题! 我在我的networking服务器上安装了SSL证书,并启用了将所有http请求redirect到https。 到目前为止,当我尝试打开www.example.com而不是使用example.com时,这是有效的。 只是为了logging,我用example.com更改了我的domain.com。 我已经检查了我的access_log和error.log ,当我尝试在浏览器中打开example.com时,它们都不显示任何新条目。 curl https://example.com curl: (60) Issuer certificate is invalid. More details here: http://curl.haxx.se/docs/sslcerts.html curl performs SSL certificate verification by default, using a "bundle" of Certificate Authority (CA) public keys (CA certs). If the default bundle file isn't adequate, you can specify an alternate file using […]

如何通过添加头文件来响应Apache httpd

我有一个Apache的httpd服务器后面的docker服务器。 我正确地处理标题将被返回到我在docker级收到的请求。 但有时apache httpd添加一些标题(通常是Content-Type ),我不希望它们被添加到我的响应中(我将它们在docker中过滤掉)。 我试图通过在/etc/httpd/conf/httpd.conf注释以下行来加载headers_mod ,但是这并没有解决问题: LoadModule headers_module modules/mod_headers.so 而当看着我可以在mod_headers文档中使用的命令,我没有看到任何人可以用来静音httpd! 任何想法如何我可以强制httpd的行为,我想?