设置 OpenVPN 以限制对某些 http 目录的访问
setting up OpenVPN to limit access to certain http dirs
我正在尝试配置所有内容,以便仅允许 VPN 用户访问某些文件夹(wp-admin 等),问题是通过遵循 https://www.digitalocean.com/community/tutorials/how-to-set-up-an-openvpn-server-on-ubuntu-14-04 i can connect to my openvpn (it gives me a 10.8.0.X ip through tun0 and the external IP is my server's one when checking at http://www.whatsmyip.org/ 等一些教程,但是当我进入自己的服务器时我的浏览器中的域它看到我的真实 IP(getenv('REMOTE_ADDR')显示我的真实 IP)而不是来自 VPN 的 IP,所以我无法设置 .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.规则
# 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)
我是否遗漏了什么或有不同的解决方法?
提前谢谢你,
如果您的 CMS 是 Wordpress,则可以通过安装插件来实现。在wordpress的网站上找到Restricted site access plugin,这个插件会;
限制对已登录或 IP 地址允许的访问者的访问。包括许多用于处理被阻止的访问者的选项。
使用此插件,您可以限制所有其他使用任何不同IP访问该页面的人
Restrict Content Pro 是另一个值得考虑的强大插件,如果您想为您的 WordPress 网站实施高级内容和网站访问限制。 Restricted Content Pro 为 WordPress 的仅限会员访问限制提供了最完整的解决方案之一。
.htaccess 修改 – 您可以对 .htaccess 文件进行一些修改,以限制授权用户访问 WordPress 安装根目录中的某些文件夹或文件。如果您使用专用 IP,您可以阻止除您的 IP 地址之外的所有用户访问 admin 文件夹。如果使用动态IP地址,一定要修改IP部分,不然也会被封
代码片段:
订单拒绝,允许
允许来自 199.199.10.0(使用您的 IP)
全部拒绝
您还可以使用某种形式的身份验证系统为您的管理区域添加另一层保护。这样,其他有权访问管理区域的用户将无法访问实际的管理文件,在外部入侵者或软件机器人的情况下也是如此(因为许多攻击是使用机器人进行的)。
此外,您可以限制对 wp-config.php 以及安装文件夹中其他单个文件的访问。例如,如果您在 .htaccess 文件顶部下方包含代码片段,则任何试图访问该文件的用户都将被拒绝访问。
这是代码片段:
命令允许,拒绝
拒绝所有人
默认的 .htaccess 文件包含一些您不应该破坏的基本 WordPress 功能,因此在您对该文件进行任何修改之前,制作一个备份副本并妥善保管。
如果您想在页面级别进行阻止,请查看此页面以进一步说明:http://wpdatatables.com/restricting-access-specific-content-wordpress-site/
我正在尝试配置所有内容,以便仅允许 VPN 用户访问某些文件夹(wp-admin 等),问题是通过遵循 https://www.digitalocean.com/community/tutorials/how-to-set-up-an-openvpn-server-on-ubuntu-14-04 i can connect to my openvpn (it gives me a 10.8.0.X ip through tun0 and the external IP is my server's one when checking at http://www.whatsmyip.org/ 等一些教程,但是当我进入自己的服务器时我的浏览器中的域它看到我的真实 IP(getenv('REMOTE_ADDR')显示我的真实 IP)而不是来自 VPN 的 IP,所以我无法设置 .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.规则
# 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)
我是否遗漏了什么或有不同的解决方法?
提前谢谢你,
如果您的 CMS 是 Wordpress,则可以通过安装插件来实现。在wordpress的网站上找到Restricted site access plugin,这个插件会; 限制对已登录或 IP 地址允许的访问者的访问。包括许多用于处理被阻止的访问者的选项。
使用此插件,您可以限制所有其他使用任何不同IP访问该页面的人
Restrict Content Pro 是另一个值得考虑的强大插件,如果您想为您的 WordPress 网站实施高级内容和网站访问限制。 Restricted Content Pro 为 WordPress 的仅限会员访问限制提供了最完整的解决方案之一。
.htaccess 修改 – 您可以对 .htaccess 文件进行一些修改,以限制授权用户访问 WordPress 安装根目录中的某些文件夹或文件。如果您使用专用 IP,您可以阻止除您的 IP 地址之外的所有用户访问 admin 文件夹。如果使用动态IP地址,一定要修改IP部分,不然也会被封
代码片段:
订单拒绝,允许 允许来自 199.199.10.0(使用您的 IP) 全部拒绝
您还可以使用某种形式的身份验证系统为您的管理区域添加另一层保护。这样,其他有权访问管理区域的用户将无法访问实际的管理文件,在外部入侵者或软件机器人的情况下也是如此(因为许多攻击是使用机器人进行的)。
此外,您可以限制对 wp-config.php 以及安装文件夹中其他单个文件的访问。例如,如果您在 .htaccess 文件顶部下方包含代码片段,则任何试图访问该文件的用户都将被拒绝访问。 这是代码片段:
命令允许,拒绝 拒绝所有人
默认的 .htaccess 文件包含一些您不应该破坏的基本 WordPress 功能,因此在您对该文件进行任何修改之前,制作一个备份副本并妥善保管。
如果您想在页面级别进行阻止,请查看此页面以进一步说明:http://wpdatatables.com/restricting-access-specific-content-wordpress-site/