代码之家  ›  专栏  ›  技术社区  ›  TheTanadu

nginx和openvpn-控制对wordpress配置文件的访问

  •  -1
  • TheTanadu  · 技术社区  · 7 年前

    我带着疑问和挣扎而来,因为我已经设置了lemp+csf防火墙+nginx wordpress block+openvpn。

    所以-我在阻止访问 wp-login.php 文件和 /wp-admin 服务器上的目录。

    我已经成功地阻止了那里的任何人,但我无法通过VPN隧道访问连接。

    图例:

    • IP:1.1.1.1-服务器IP
    • IP:10.8.0.2-我在VPN连接上的IP

    这是我在nginx的定位块:

    location ~ ^/(wp-admin|wp-login\.php) {
      allow 1.1.1.1;
      deny all;
    }
    

    这是我的openvpn conf文件:

    port 1194
    proto udp
    dev tun
    sndbuf 0
    rcvbuf 0
    ca ca.crt
    cert server.crt
    key server.key
    dh dh.pem
    auth SHA512
    tls-auth ta.key 0
    topology subnet
    server 10.8.0.0 255.255.255.0
    ifconfig-pool-persist ipp.txt
    push "redirect-gateway def1 bypass-dhcp"
    push "dhcp-option DNS 8.8.8.8"
    push "dhcp-option DNS 8.8.4.4"
    keepalive 10 120
    cipher AES-256-CBC
    comp-lzo
    user nobody
    group nobody
    persist-key
    persist-tun
    status openvpn-status.log
    verb 3
    crl-verify crl.pem
    

    我尝试允许连接10.8.0.0/24和服务器IP…但我还是得到了 error 403 当我试图通过VPN到达那里的时候。

    编辑

    我试图将重定向添加到VPN push "redirect-gateway def1" 在定位块里我换了 1.1.1.1 10.8.0.0/24 但仍然没有(即使1.1.1.1不起作用)。

    编辑2

    我将分配的IP从VPN改为客户端16.8。 是的。 (/24)。我不能访问文件(wp-*)时,我给块 allow 1.1.1.1; allow 16.8.0.0/24; deny all 是的。 这是训练副总裁,所以我可以更努力地解决它:D

    1 回复  |  直到 7 年前
        1
  •  0
  •   nbari    7 年前

    可能发生的情况是,您正在尝试使用VPN的公用IP而不是专用IP访问您的站点,似乎您已经尝试过:

    location ~ ^/(wp-admin|wp-login\.php) {
      allow 1.1.1.1;
      allow 10.80.0.0/24;
      deny all;
    }
    

    但现在尝试检查当前IP正在执行请求,请尝试执行以下操作:

    location /myip {
        default_type text/plain;
        return 200 "$remote_addr\n";
    }
    

    然后查询 yoursite/myip 它应该打印您用来访问的IP,以及您可能只想允许的IP。(如果是公共IP,则IP可能与此处打印的IP匹配) https://myip.country/ip )