如何使用 GPG 管理密钥

本文最后更新于 2019 年 4 月 8 日


本文以 Ubuntu 18.04 为例,介绍如何使用 GPG( GNU Privacy Guard )软件进行密钥的管理,以及 GPG 的基本使用方法及日常使用建议。


了解

请先了解,什么是 PGP、OpenPGP、GPG 。

以下是有用的链接:

PGP - 维基百科

GnuPG - 维基百科

OpenPGP, PGP, and GPG: What is the difference?

准备

安装 GPG :

1
sudo apt update && sudo apt install gpg -y

安装 nautilus-wipe :

1
sudo apt install nautilus-wipe -y

Read More

初六

今天是大年初六,现在是晚上六点。身体:疲惫,心情:差。

我仔细数了数一年来的经历,自己真就没什么长进的。我还是那个易寂寞又拖延的人,对生活缺乏热情,对新事物懦弱不堪,害怕丢脸,又因为他人的负面评价和恶意态度而神伤。搞不清楚我对什么是依赖的,好像什么东西我都可以随随便便依赖,又随随便便甩掉。可能我依赖的是依赖本身。无处安放的心。

脑中偶尔会蹦出自己犯过的种种错误,发现决定我现在什么样子的,不是当初的期望,恰是曾经的错误。一直以来都习惯保持怀疑,可有时也会犯傻,不切实际地相信某个单纯美好不现实的想法,然后不顾一切地去投入,往往是悲剧,往往让我错过了本应该是对的东西。

Read More

在 VPS 上搭建 PPTP VPN 服务

本文最后更新于 2019 年 8 月 30 日


示例用途:游戏虚拟局域网(饥荒,分手厨房)。

本文以在大陆阿里云 VPS 上的 Debian 10 系统为例,介绍如何搭建 PPTP VPN 服务。

注:请先参照 Ubuntu (Debian) 服务器的初始化配置 一文对服务器进行各种必要的配置。本文以 sammy 用户为例,进行 VPN 的建立,并默认已按初始化配置文章对服务器进行了配置。


安装

1
sudo apt update && sudo apt install pptpd -y

配置

修改 pptpd.conf ,找到对应位置,修改如下:

1
sudo vim /etc/pptpd.conf
/etc/pptpd.conf
1
2
3
option /etc/ppp/options.pptpd
localip 10.0.0.1
remoteip 10.0.0.100-200

添加一个 pppd 配置文件,例如:

1
sudo vim /etc/ppp/options.pptpd
/etc/ppp/options.pptpd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# Read man pppd to see the full list of available options

# The name of the local system for authentication purposes
name pptpd

# Refuse PAP, CHAP or MS-CHAP connections but accept connections with
# MS-CHAPv2 or MPPE with 128-bit encryption
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
require-mppe-128

# Add entry to the ARP system table
proxyarp

# For the serial device to ensure exclusive access to the device
lock

# Disable BSD-Compress and Van Jacobson TCP/IP header compression
nobsdcomp
novj
novjccomp

# Disable file logging
nolog

# DNS servers for Microsoft Windows clients. Using Google's public servers here
ms-dns 8.8.8.8
ms-dns 8.8.4.4

添加用户,设置密码:

1
sudo vim /etc/ppp/chap-secrets
/etc/ppp/chap-secrets
1
2
username_1 pptpd password_1 *
username_2 pptpd password_2 *

注意:如果以上密码包括特殊字符,请将密码字段用 " 包裹。

允许转发:

1
sudo vim /etc/sysctl.conf
/etc/sysctl.conf
1
net.ipv4.ip_forward = 1
1
2
3
sudo sysctl -p
sudo systemctl enable pptpd
sudo systemctl restart pptpd

防火墙配置

修改 /etc/default/ufw

1
sudo vim /etc/default/ufw
/etc/default/ufw
1
DEFAULT_FORWARD_POLICY="ACCEPT"

修改 /etc/ufw/before.rules

1
sudo vim /etc/ufw/before.rules

*filter 之前添加:

/etc/ufw/before.rules
1
2
3
4
5
6
7
8
9
# nat Table rules
*nat
:POSTROUTING ACCEPT [0:0]

# Allow traffic from clients to eth0
-A POSTROUTING -s 10.0.0.0/24 -o eth0 -j MASQUERADE

# commit to apply changes
COMMIT

# drop INVALID packets 之后添加:

/etc/ufw/before.rules
1
-A ufw-before-input -p 47 -i eth0 -j ACCEPT
1
2
sudo ufw allow 1723
sudo ufw disable && sudo ufw enable

开启安全组

阿里云后台安全组中添加 1723 端口(TCP)入站规则。

客户端所连 OpenWrt 路由器

针对错误:

LCP: timeout sending Config-Requests

路由器中:

1
2
3
opkg update
opkg install kmod-nf-nathelper-extra
vim /etc/sysctl.conf

最后一行添加:

/etc/sysctl.conf
1
net.netfilter.nf_conntrack_helper = 1
1
sysctl -p

References

PPTP server - ArchWiki

How To Setup a Firewall with UFW on an Ubuntu and Debian Cloud Server

Setup PPTP Server on Ubuntu 16.04

使用 PPTP 配置 Linux 上的 VPN 服务器

OpenWRT PPTP 穿透

GRE traffic dropped at firewall with explicit allow rules

PPTP NAT Traversal