Apache:如何限制mod_proxy_connect可代理的HOST(不是访问者,而是目标服务器)?

有一台机器仅对外开放80端口,可使用mod_proxy_connect代理访问其22端口;但是这样一来它就变成任意服务器的ssh服务代理了,这样很不安全。是否有办法限制它?我在官方文档里面貌似没有找到。

阅读 5.8k
1 个回答

我自己修改代码实现了-。-
apache2.2/modules/proxy/mod_proxy_connect.c +123

char *allowed_hosts[] = { 
    "some host name",
    "127.0.0.1",
    "localhost"
};  
int hosts_num = sizeof(allowed_hosts) / sizeof(allowed_hosts[0]);
int k;
for (k = 0; k < hosts_num; k++) {
    if (strncmp(uri.hostname, allowed_hosts[k], strlen(allowed_hosts[k])) == 0) {
      break;
    }   
 }
if (k == hosts_num) {
    return ap_proxyerror(r, HTTP_BAD_GATEWAY,
          apr_pstrcat(p, "host not allowed for: ", uri.hostname, NULL));
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进