首頁  >  問答  >  主體

ssh - Apache:如何限制mod_proxy_connect可代理的HOST(不是訪問者,而是目標伺服器)?

有一台機器只對外開放80端口,可使用mod_proxy_connect代理訪問其22端口;但是這樣一來它就變成任意伺服器的ssh服務代理了,這樣很不安全。是否有辦法限制它?我在官方文件裡面貌似沒有找到。

曾经蜡笔没有小新曾经蜡笔没有小新2714 天前624

全部回覆(1)我來回復

  • 大家讲道理

    大家讲道理2017-05-16 17:07:01

    我自己修改程式碼實現了-。 -
    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));
    }

    回覆
    0
  • 取消回覆