? Editing: Post:21.body Save Delete Cancel
Content changed Sign & Publish new content

Shaoju's Blog

chenshaoju.bit

Follow in NewsfeedFollowing

Latest comments:

使用Windows用户账户和NTFS权限以限制不受信任的应用访问特定文件的几率

on Jan 19, 2019

说明

此教程用于使用 NTFS 自带的账户权限机制,对特定文件使用账户进行隔离,让不受信的应用无法访问该文件。

注意:此方法只能降低特定文件/目录被第三方应用读取的可能性,无法做到完全杜绝特定文件/目录被第三方应用读取,由于 Windows 的内核机制,驱动级别的文件访问可能不受 NTFS 权限/用户帐户权限限制,而如果应用本身请求管理员权限,理论上则可以通过管理员权限重置被限制的文件权限进行访问。

建议:专机专网专用为最佳解决方案。

备注:本教程基于 Windows 7 操作系统编写。

先决条件:存放文件所在的磁盘分区为 NTFS 格式, FAT/FAT32/exFAT 无法使用 NTFS 的权限机制。

创建用户

首先,我们需要新建一个 Windows 用户,用于分配给不信任的应用进行使用。以管理员身份启动命令提示符或者 PowerShell ,执行:

rundll32 netplwiz.dll,UsersRunDll

0.png (677x492)

在出现的用户帐户对话框中,点击“添加”按钮。

备注:默认情况,本机用户列表中可能只会显示一个用户,这个用户是当前登录系统的用户,请记录下来,稍后会用到(本例中为 chenshaoju)。如果出现多个用户,且不知道登录的用户名的话,请按 Win+L 返回登录屏幕,会显示当前登录的用户;或者启动命令提示符或 PowerShell ,执行命令 whoami ,也会显示当前的用户名。

1.png (477x566)

在新出现的添加新用户对话框中的用户名输入框中输入想要新建的用户名,需要记录下来。本例中,以新建用户名为 Software 的账户为例:

2.png (531x508)

点击下一步后,会要求输入该用户的密码,建议设定一个好记但是相对复杂的密码,点击下一步按钮继续。

3.png (531x508)

点击下一步后,向导会要求选择一个权限级别。此步骤比较关键。

如果操作系统的 UAC (用户帐户控制)为开启的情况下,当应用在启动时,会弹出 UAC 请求,那么请选择“管理员”。如果不会弹出,请选择“标准用户”。

4.png (531x508)

点击完成后,即可回到用户帐户对话框,现在,可以看到用户帐户中多了一个我们刚才新创建的帐户。

05.png (477x566)

以上就完成了新建用户的过程,点击确定按钮退出即可。

设置文件权限

下面,对需要限制被访问的文件进行权限设置。进入想要保护的文件所在目录,右击想要被保护的文件(本例中以 Secrte.txt 为例),单击属性。

6.png (978x652)

在出现的文件属性对话框中,点击安全选项卡,再点击下方的高级按钮,随后,在出现的高级安全设置对话框中,点击更改权限按钮:

7.jpg (978x652)

在新出现的高级安全设置中,取消“包括可从该对象的父项继承的权限”复选框,并点击删除按钮。

8.jpg (978x652)

点击删除按钮后,我们会看到权限项目中的内容已经清空了。下面,我们需要将自己使用的 Windows 账号添加进去(之前在用户帐户对话框中记录的那个)。点击添加按钮,然后输入当前的 Windows 账号,并点击检查名称按钮,确保正确,然后点击确定按钮。

9.jpg (978x652)

点击确定按钮后,操作系统会询问该用户对于该文件的授权,通常情况,给予完全授权即可,随后多次点击确定按钮以关闭对话框。

10.jpg (978x652)​​​​​​​

返回文件管理器后,我们会看到经过权限处理过后的文件上多了一个锁型符号,说明该文件受到特定权限保护,只有指定的帐户才能访问。

11.png (978x652)

以新用户身份运行程序

现在,我们可以启动不受信任的应用程序了,通过按住键盘上的 Shift 键,右击应用的快捷方式或者执行程序,选择以其他用户身份运行。

12.png (982x656)

随后,会要求输入另一位用户的用户名和密码,我们输入之前所创建,用于运行不受信任应用的 Windows 帐户。

13.png (978x652)

通过调用 Windows 任务管理器,即可看到正在运行的应用是以另一个帐户身份运行的:

14.png (978x652)

在一般情况下,该应用将无法访问所设定特殊权限的文件。

以上就完成了本教程的全部过程,如果需要一键启动,隐藏新建的Windows用户,可阅读这篇文章:

《使用Windows的“由…运行”(Run as)功能运行某些软件》:https://plus.google.com/+%E9%99%88%E5%B0%91%E4%B8%BEelf/posts/YjjUEunNzP3

Read more

使用TunSafe+WireGuard以安全访问互联网

on Oct 02, 2018

说明

此教程将快速指导如何配置 WireGuard 的服务端和 TunSafe 的客户端。

此教程基于 Debian 9(服务端), Windows 10 系统(客户端)编写。

此教程无版权,请随意使用。

快速入门

客户端

下载安装

目前(2018-10-02) Windows 的客户端只有一个第三方的 TunSafe开源,好用。

下载地址为:https://tunsafe.com/download

下载后安装,并启动,即可看到主界面:
TunSafeUI (454x362)

生成密钥对(Key Pair)

在开始前,我们需要先创建至少2个密钥对(公钥和私钥)。

在TunSafe软件的界面中,点击 File 菜单,再点击 Generate Key Pair ,即可出现公钥私钥生成界面。
2018-10-02.png (458x366)

通过点击 Randomize 按钮,软件会生成一对密钥,其中Private Key为私钥,Public Key为公钥,为了方便配置服务端和客户端,我们需要生成至少两对密钥。

新开一个记事本,将生成的公钥和私钥保存下来,建议参考下列格式记录清楚,稍后配置时需要使用。
NotePadKeys (419x184)

注意:出于安全考虑,不要照搬本教程的公钥和私钥。密钥对必须对应,不能将第一次生成的公钥第二次生成的私钥组合起来使用。

以上就完成了密钥对的生成,下面开始配置客户端的配置文件。

创建(编辑)客户端配置文件

通过点击 TunSafe 主界面右侧的 Edit Config 按钮,可以打开编辑文件进行编辑。

文件中有很多注释内容,本例将简单进行概述:

[Interface]
# [Interface] 以下为本机(客户端)的配置情况。

PrivateKey = +ERZhs7mDpIXjcnabVl+WytG80xjKCUEWlFsQrKtaUc=
# 此行为客户端私钥(Private Key),请在生成的密钥对中选取客户端的私钥并粘贴进来。

ListenPort = 9876
# 此行为指定监听的端口,也作为发送(源)端口,可自行修改,不要求和服务器一致。

DNS = 8.8.8.8
# 此行为设定连接后客户端所使用的DNS服务器。

Address = 10.0.2.1/24
# 此行为设定客户端连接后所使用的IP地址,可以维持默认,也可以自行指定,但是需要和服务端配置在同一网段(如都在 10.0.2.0/24网段),不然会被丢弃。

# BlockInternet = route, firewall
# 此行为TunSafe的专有选项,意思为是否要屏蔽所有不安全的互联网流量,建议维持默认关闭(注释, # )的状态。

[Peer]
# [Peer] 以下为连接服务器的配置。

PublicKey = R8m0mgZWEH1b+synpBYyqSTOuEsw1gU46u457IzsohA=
# 此行为服务器的公钥,请在生成的密钥对中选取服务端的公钥并粘贴进来。

# PresharedKey  =  SNz4BYc61amtDhzxNCxgYgdV9rPU+WiC8woX47Xf/2Y=
# 此行为预共享密钥,对于一般安全要求,无需指定。

AllowedIPs = 0.0.0.0/0
# 此行为指定允许数据包发送的IP范围,如果要允许发送至所有IP的数据包,设置为 0.0.0.0/0 即可。

Endpoint = 123.45.67.89:9876
# 此行为指定你的服务端的IP和端口,如果已知服务器的IP和端口,可以先填写进去。

PersistentKeepalive = 25
# 此行为定期发送“保持活动”的数据包,维持默认的 25 (秒)即可。

以上为客户端配置文件的设置,修改完毕后保存退出即可。

服务端:

下载与安装

请先确保已经更新到最新系统(含内核),建议使用 apt-get updateapt-get dist-upgrade 进行更新。

在服务端上获取 WireGuard 有两种方式,第一种可以修改 apt-get 所使用的 source.list ,增加 unstable 源分支,具体操作详见: https://www.wireguard.com/install/

另一种,可以从 Debian 源仓库直接下载到最新的内核组件工具包,下载后使用 dpkg -i 命令安装即可。

备注: WireGuard 服务端需要依赖动态内核模块支持框架(Dynamic Kernel Module Support Framework ,DKMS),请确保已经安装。

系统环境配置

安装结束后,首先我们需要允许IP转发,通过执行 sysctl -a |grep net.ipv4.ip_forward 命令,检查 net.ipv4.ip_forward 参数是否为1,如果不为1,则需要修改 /etc/sysctl.conf 文件,找到 net.ipv4.ip_forward 修改为1,或者新增一行 net.ipv4.ip_forward = 1 ,保存退出后使用 sysctl -p 命令使设置立刻生效。

创建服务端配置文件

下面,我们可以开始创建服务端的配置文件了,使用编辑器新建一个位于 /etc/wireguard/ 目录下的配置文件,本例中为 /etc/wireguard/wg0.conf

[Interface]
# [Interface] 以下为本机(服务器)参数指定。

PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
# 此行为定义启动该配置文件后,所执行的命令,该iptables命令用于创建一条转发规则。注意:如果服务器的网卡不叫 eth0 ,请注意修改,详见末尾疑难解答。

PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
# 此行为定义停止该配置文件后,所执行的命令,该iptables命令用于删除所创建的转发规则。注意:如果服务器的网卡不叫 eth0 ,请注意修改,详见末尾疑难解答。

ListenPort = 9876
# 此行为定义服务端所监听的端口。

PrivateKey = +LAP1sZG1T6ljf6SQ/f2XOOiUyFzn5UrY8gd/tyJK2I=
# 此行为服务器的私钥,请在生成的密钥对中选取服务端的私钥并粘贴进来。

[Peer]
# [Peer] 以下为接入客户端的设定。

PublicKey = /09mvABMFRs3fONigHcMlyK9rbnAj87ELDTA7tLmzDI=
# 此行为客户端的公钥,请在生成的密钥对中选取客户端的公钥并粘贴进来。

AllowedIPs = 10.0.2.0/24
# 此行为允许客户端所使用的IP地址范围,需要和客户端所设置的IP地址位于同一网段,如客户端的IP为 10.0.2.1/24 ,那么这里可以设置为 10.0.2.0/24 ;如果客户端为 172.16.0.1/24 ,那么这里则需要设置为 172.16.0.0/24 。

完成设置后保存并退出,回到命令行后执行:wg-quick up wg0 即可基于我们刚写好的配置文件(wg0.conf)启动服务端。

备注:如果需要每次开机自动启动服务端的 WireGuared ,可执行:systemctl enable wg-quick@wg0 命令,其中 wg0 为配置文件的文件名(不含扩展名)。

开始连接

回到客户端,点击 TunSafe 软件的 Connect 按钮,如果没有任何错误,且提示 Connected ,则说明连接成功。
Connected (454x362)

疑难解答

※连接不上,始终在重试。

请检查客户端的服务器IP、端口,服务器和客户端的密钥对配置是否正确,有必要请重新配置一次服务器和客户端的密钥对,另外也可能是由服务端的网络防火墙屏蔽,请检查 iptablesufw 等策略是否正确。

如果配置无误,有一定可能性是由于线路不稳定(UDP丢包)或者你所在运营商(含客户端、服务端)的网络屏蔽了UDP协议。

※连接上了,但是无法上网。

请确保客户端配置文件中指定的IP地址(Address)在服务端配置文件中指定的IP地址(AllowedIPs)范围内,如客户端 [Interface] 下的 Address 设置的是 10.0.2.1/24 ,那么服务端 [Peer] 下的 AllowedIPs 则需要设置为 10.0.2.0/24

如果确认IP范围无误,请使用 sysctl -a |grep net.ipv4.ip_forward 命令检查 net.ipv4.ip_forward 是否为 1 ,如果不是,请检查是否正确编辑了 /etc/sysctl.conf 文件,或者 sysctl 是否已经生效。

如果 net.ipv4.ip_forward 确认为1,请使用 ifconfigip addr 命令检查设置了公网IPv4或IPv6的网卡是否叫 eth0 ,如果不是 eth0 ,请重新编辑服务器端的配置文件,将 PostUpPostDown 参数中的 eth0 部分修改为你的网卡名,某些网卡可能叫 enoXXensXXenpXsXX ,请以你的系统为准。

如果你的服务器同时部署了自定义的防火墙策略,请确保 PostUp 所添加的 iptables 策略位于 FORWARD 链的顶部。

参考链接

Read more

关于ZeroNet的Trackers

on Sep 07, 2018 ·
4 comments

在更新到某个版本的ZeroNet后,发现ZeroNet出现了一个Trackers的菜单。

这个东西的作用似乎和BT的Tracker原理一样,类似一个索引服务器。

有意思的是,它使用了一些公开的BT服务器作为索引。

一方面是希望尽快找到其他节点,另一方面是希望增加连通率。

这个有点像eMule的KAD机制,KAD也需要引导,只是可以通过以文件或者URL的方式提供 node.dat 用于初始化连接,只要一旦能连接上,就能从其他节点获取其他用户的连接信息,这又有点像I2P的连接机制了。

Read more

ZeroNet 参数研究

on May 11, 2017

研究了一下 ZeroNet 的参数,所有参数都可以在 src/config.py 文件中找到,只需要创建 zeronet.cmd 快捷方式,并在快捷方式中的目标参数中的末尾加上想要设置的参数即可,比如:
zeronet.cmd --tor_proxy 127.0.0.1:1080

更新:新版本的 ZeroNet 已经按系统进行分发了,只需要在 .exe 的快捷方式末尾增加参数即可。

Read more

用NameCoin弄了一个 .bit 域名

on Apr 26, 2016

研究了一下NameCoin,有点意思,感谢推友帮忙弄了一个 .bit 的域名。
具体的实现,官方有文档,详见:
https://zeronet.readthedocs.org/en/latest/faq/#how-can-i-register-a-bit-domain

Read more

Congratulations!

on May 31, 2015 ·
3 comments

Your zeronet blog has been successfully created!

Read more
Add new post

Title

21 hours ago · 2 min read ·
3 comments
Body
Read more

Not found

Title

21 hours ago · 2 min read

0 Comments:

user_name1 day ago
Reply
Body
This page is a snapshot of ZeroNet. Start your own ZeroNet for complete experience. Learn More