我最近换笔记本,原来的笔记本就拿来做服务器。我在笔记本上装了ubuntu系统,并且在弄了一个vpn。相比起centos搭建vpn服务器,Ubuntu系统不知简单了几个档次。
下面我们就开始吧~
1. 安装pptpd和ufw,这个ufw是ubuntu/debian系统的防火墙,碉堡碉堡的,特别好用!因为系统自带,所以我只安装了pptpd。如果系统没有ufw,就要安装了。
2. 编辑/etc/pptpd.conf,修改local ip和remote ip。local ip是服务器的ip地址,remote ip是你要分配给客户机的ip或者ip段。
3. 修改/etc/ppp/pptpd-options文件,将这三行注释掉,并修改DNS服务器。
4. 修改/etc/ppp/chap-secrets文件,添加vpn用户名、密码、允许登录ip等信息。
5. 开启数据包转发功能,编辑/etc/sysctl.conf文件,将net.ipv4.ip_forward=1注释消除。并使用sysctl -p生效。
注:此处涉及内核修改,切记备份,切记切记!!!
6. 修改/etc/default/ufw文件,将DEFAULT_INPUT_POLICY和DEFAULT_FORWARD_POLICY两项设置由DROP改为ACCEPT。
7. 修改/etc/ufw/before.rules,修改前记得备份,在COMMIT前添加以下规则:
# NAT table rules
:POSTROUTING ACCEPT [0:0]
# Allow forward traffic to eth0
-A POSTROUTING -s “vpn子网” -o “网卡名称” -j MASQUERADE
# Process the NAT table rules
8. 启动/重启ufw和pptpd
sudo /etc/init.d/ufw start/restart
sudo /etc/init.d/pptpd start/restart
9. 查看pptpd状态
ps -ef|grep pptpd
10. 做完这些操作之后,笔者兴奋地连了一波,果然可以!但是当笔者查看防火墙状态时,却发现:
这特么。。。搞事吧?极其不安全的说!!!
于是,笔者做了优化:)
1:关掉ufw
/etc/init.d/ufw stop
2. 安装iptables,并设置地址伪装。
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o enp8s0 -j MASQUERADE
3. 保存现有规则
iptables-save > /etc/iptables-rules
4. 重启pptpd服务,并测试。发现它就可以连了。查看端口,发现:
1723端口是开着的。
但是这里有个问题,我并没有对iptables进行过什么特殊的规则编写,为什么它就会自动开启那些需要的端口?目前还没搞明白,可能需要再去找找资料吧。
但是到此为止,服务就算可以用了,而且安全性还行。配合一条iptables规则:
iptables -I INPUT -s 192.168.0.0/24 -p tcp --dport 22 -j ACCEPT
就可以保证先连接到vpn的情况下,可以比较开心地是用内网,且可以通过22端口进行ssh连接。在未来的扩展当中,还可以玩到kvm虚拟化或者docker/ks容器化这种较为高端的技术,想想都tm兴奋啊~~~