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

浏览:65日期:2022-07-28

问题描述

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

问题解答

回答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));}

相关文章: