【问题标题】:setting up OpenVPN to limit access to certain http dirs [closed]设置 OpenVPN 以限制对某些 http 目录的访问 [关闭]
【发布时间】:2016-08-31 13:11:41
【问题描述】:

我正在尝试配置所有内容,以便仅允许 VPN 用户访问某些文件夹(wp-admin 等),问题是通过遵循 https://www.digitalocean.com/community/tutorials/how-to-set-up-an-openvpn-server-on-ubuntu-14-04 之类的一些教程,我可以连接到我的 openvpn(它给了我一个10.8.0.X ip through tun0 和外部 IP 是我的服务器在检查 http://www.whatsmyip.org/ 时的 IP 但是当我在浏览器中输入我自己的服务器域时,它会看到我的真实 IP(getenv('REMOTE_ADDR') 显示我的真实 IP)而不是来自 VPN 的那个,所以我无法设置一个 .htaccess 文件来限制我自己的服务器 IP。

作为上述教程配置的总结,我有:

/etc/openvpn/server.conf

dh2048.pem
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"
user nobody
group nogroup

/proc/sys/net/ipv4/ip_forward

1

/etc/sysctl.conf

net.ipv4.ip_forward=1

/etc/default/ufw

DEFAULT_FORWARD_POLICY="ACCEPT"

/etc/ufw/before.rules

# START OPENVPN RULES
# NAT table rules
*nat
:POSTROUTING ACCEPT [0:0] 
# Allow traffic from OpenVPN client to eth0
-A POSTROUTING -s 10.8.0.0/8 -o eth0 -j MASQUERADE
COMMIT
# END OPENVPN RULES

ufw 状态详细:

root@XXX:/# ufw status verbose
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), allow (routed)
New profiles: skip

To                           Action      From
--                           ------      ----
1194/udp                     ALLOW IN    Anywhere
22/tcp                       ALLOW IN    Anywhere
53 (Bind9)                   ALLOW IN    Anywhere
80/tcp (Apache)              ALLOW IN    Anywhere
443/tcp (Apache Secure)      ALLOW IN    Anywhere
1194/udp (v6)                ALLOW IN    Anywhere (v6)
22/tcp (v6)                  ALLOW IN    Anywhere (v6)
53 (Bind9 (v6))              ALLOW IN    Anywhere (v6)
80/tcp (Apache (v6))         ALLOW IN    Anywhere (v6)
443/tcp (Apache Secure (v6)) ALLOW IN    Anywhere (v6)

我是否缺少某些东西或其他解决方法?

提前谢谢你,

【问题讨论】:

    标签: wordpress apache .htaccess openvpn


    【解决方案1】:

    如果你的 CMS 是 Wordpress,你可以通过安装插件来做到这一点。在 wordpress 的网站上找到 Restricted site access 插件,这个插件会; 限制访问者通过 IP 地址登录或允许访问。包括许多用于处理被阻止访问者的选项。

    使用此插件,您可以限制使用任何不同 IP 访问该页面的所有其他人

    如果您想为您的 WordPress 网站实施高级内容和网站访问限制,Restrict Content Pro 是另一个值得考虑的强大插件。 Restricted Content Pro 为 WordPress 的会员访问限制提供了最完整的解决方案之一。

    .htaccess 修改 - 您可以对 .htaccess 文件进行一些修改,以限制授权用户访问 WordPress 安装根目录中的某些文件夹或文件。如果您使用专用 IP,您可以阻止除您的 IP 地址之外的所有用户访问 admin 文件夹。如果您使用动态IP地址,请务必修改IP部分,否则您也会被阻止。

    代码sn-p:

    命令拒绝,允许 允许来自 199.199.10.0(使用您的 IP) 全部拒绝

    您还可以使用某种形式的身份验证系统为您的管理区域添加另一层保护。这样,其他有权访问管理区域的用户将无法访问实际的管理文件,外部入侵者或软件机器人也是如此(因为许多攻击都是使用机器人进行的)。

    此外,您可以限制对 wp-config.php 以及安装文件夹中其他单个文件的访问。例如,如果您在 .htaccess 文件的顶部下方包含代码 sn-p,则任何尝试访问此文件的用户都将被拒绝访问。 这是sn-p的代码:

    命令允许,拒绝 否认一切

    默认的 .htaccess 文件包含一些您不应破坏的基本 WordPress 功能,因此在对文件进行任何修改之前,请制作备份副本并妥善保管。

    如果您想在页面级别进行屏蔽,请查看此页面以获得进一步说明:http://wpdatatables.com/restricting-access-specific-content-wordpress-site/

    【讨论】:

    • 不错的解决方法,但我想要的是只允许连接到 vpn 的用户而不是将每个 ip 添加到扩展中,因为即使手机访问 wp-admin 也会有很多动态 IP /跨度>
    • 您的 OPEN VPN 必须分配一些 IP,只允许这些 IP 浏览那些特定页面,这可以使用上面定义的插件或通过 .htaccess 文件来完成。
    • 好的,谢谢 techspider :)
    猜你喜欢
    • 1970-01-01
    • 2012-05-19
    • 2023-03-28
    • 2015-09-17
    • 2016-07-07
    • 1970-01-01
    • 2013-06-10
    • 2012-09-29
    • 1970-01-01
    相关资源
    最近更新 更多