Mat*_*yan 3 security amazon-web-services pci-compliance amazon-elb
我注意到,当发出特定类型的请求时,即使在私有子网中,也会显示ELB背后的ec2实例的内部IP.特别是具有空HOST值的一个.
telnet site_url 80
GET / HTTP/1.0
Run Code Online (Sandbox Code Playgroud)
并返回标题:
HTTP/1.1 301 Moved Permanently
Cache-Control: max-age=1209600
Content-Type: text/html; charset=iso-8859-1
Date: Thu, 26 Mar 2015 18:47:22 GMT
Expires: Thu, 09 Apr 2015 18:47:22 GMT
Location: https://10.0.7.35/
Server: Apache
Content-Length: 226
Connection: Close
Run Code Online (Sandbox Code Playgroud)
当然,这也发生在443上的开放ssl请求.
是否有人知道这个问题的解决方案或锻炼?我知道IIS有相同的症状,但我的问题是AWS ELB特有的.
编辑:
Apache重定向强制HTTPS.
RewriteCond %{HTTPS} off
RewriteCond %{SERVER_ADDR} !^127\.0\.0\.1
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Run Code Online (Sandbox Code Playgroud)
这实际上与ELB无关,而且与Apache有关,这显然是返回此信息(因此server: Apache输出中的行).
您显然在Apache配置中定义了某种重定向,以将流量从端口80重定向到端口443.您应该更新您的问题,以包括Apache配置文件的相关部分,包括任何重写规则,ServerName ,. htaccess设置等
编辑:
您在重写规则中使用HTTP_HOST,它对应于请求中提供的主机.在您提供的示例中,您没有提供主机,因此请尝试执行此操作:
$ telnet www.example.com 80
GET / HTTP/1.0
Host: www.example.com
Run Code Online (Sandbox Code Playgroud)
如果定义了虚拟主机,那么请求的主机部分是必需的,以便Apache知道请求应该路由到哪个虚拟主机.
您可能还想在这些行中添加另一个重写条件:
RewriteCond %{HTTP_HOST} !^www.example.com
RewriteRule ^(.*)$ https://www.example.com$1 [R=301,L]
Run Code Online (Sandbox Code Playgroud)
这将确保如果有人试图访问您的网站而不提供包含标题的完整请求,它将重定向到正确的域.
一位朋友今天发布了这个消息,尽管已经有了答案,我还以为我会详细介绍我发现的细节.
使用原始帖子中描述的机制,我能够重现所描述的场景,其中Location返回的头确实是https://地址.
但是,经过仔细检查,提供的地址不是我的任何实例地址 - 而是它似乎是ELB实例本身的IP地址.
我通过检查ELB背后的一个实例进一步证实了这一点,并使用这样的命令序列,我能够确认该GET /命令返回的IP地址确实是ELB的.
# These commands are purely to assist in obscuring my own IPs. :)
$ export LOCALIP=$(ifconfig | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print $1}')
$ export DISCOVEREDIP=<the IP from the GET test>
# I'm also using `sed` here to replace real IPs with strings to demonstrate which node is which
$ ss -tn | grep $DISCOVEREDIP | sed -e "s/$LOCALIP/localip/" -e "s/$DISCOVEREDIP/discoveredip/" | head -n 3
ESTAB 0 0 localip:80 discoveredip:3950
ESTAB 0 0 localip:80 discoveredip:4157
ESTAB 0 0 localip:80 discoveredip:4148
Run Code Online (Sandbox Code Playgroud)
因此,我可以推断出我的Web服务器的本地IP地址正在侦听ELB指向的端口80,而ELB的IP正在使用更高的端口连接到我的Web服务器.
没有超出ELB内部IP地址的曝光,无需担心.快乐的乌云密布!
| 归档时间: |
|
| 查看次数: |
3524 次 |
| 最近记录: |