Ubuntu 下配置 PPTP,IPSec 和 Shadowsocks

摘要:Ubuntu 下配置 PPTP,IPSec 和 Shadowsocks...

作者:LoveCode标签:Ubuntu,PPTP,IPSec,Shadowsocks

PPTP

Step 1 - 安装PPTP 

apt-get install pptpd

打开 /etc/pptpd.conf,在文件尾加两行:

localip 10.10.0.255 
remoteip 10.10.0.100-200

localip 是服务器的IP,remoteip 是分配给客户端的 IP。类似路由器的IP设置,可以换成其他内网 IP,不要产生冲突即可。


Step 2 - 添加 NDS 

打开 /etc/ppp/pptpd-options,在 #ms-dns 10.0.0.2 下方添加谷歌的 DNS 或者自己所用 VPS 的 DNS: 

ms-dns 8.8.8.8 
ms-dns 8.8.4.4


Step 3 - 设置 IPv4 转发 

打开 /etc/sysctl.conf 添加一行: 

net.ipv4.ip_forward=1

运行 sysctl -p 使更改生效。

注:一般这行代码都有,只不过被注释了,把注释去掉即可。


Step 4 - 在 iptables 中添加 NAT 规则 

iptables -t nat -A POSTROUTING -s 10.10.0.0/24 -o eth0 -j MASQUERADE

该命令的作用是在 iptables 的 NAT 表 POSTROUTING 规则链中添加一条规则,将源地址是 10.10.0.* 的数据包进行地址伪装,伪装为防火墙的 IP,并转发到 eth0 网卡。 

用命令 iptables -t nat -vnL POSTROUTING 可查看到刚刚在 NAT 表 POSTROUTING 规则链中添加的规则如下:

Chain POSTROUTING (policy ACCEPT 212K packets, 16M bytes)
pkts  bytes target     prot opt in  out  source        destination
57604 4612K MASQUERADE all  --  any eth0 10.10.0.0/24  anywhere

若更改了 Step one 中的 localip,则 iptable 中的规则也要相应更改,可用命令 iptables -t nat -D POSTROUTING 1 来删除我刚刚建立的 NAT 表中 POSTROUTING 的第一条规则,然后再添加新的规则。 

重启后 iptables 的更改会失效,我的做法是将 iptables 备份,重启后直接通过备份恢复 iptables。 

备份 iptables-save > ~/backup/iptables.conf 
恢复 iptables-restore < ~/backup/iptables.conf

也可以选择将恢复命令写在 rc.local 里开机自动执行。


Step 5 - 配置账号密码 

打开 /etc/ppp/chap-secrets,按如下方式加入你想要的账号密码:

# Secrets for authentication using CHAP
# client    server  secret    IP addresses
  username  pptpd   secret        *


Step 6 - 启停守护进程 

启动 service pptpd start 
停止 service pptpd stop 
重启 service pptpd restart


IPSec

Step 1 - 安装 strongSwan 

apt-get install strongswan strongswan-plugin-xauth*-generic


Step 2 - 配置 IPSec 

打开 /etc/ipsec.conf,配置如下:

config setup
        uniqueids=never 

conn ios
        keyexchange=ikev1
        leftauth=psk
        rightauth=psk
        rightauth2=xauth
        left=%defaultroute
        leftsubnet=0.0.0.0/0
        leftfirewall=yes
        right=%any
        rightsourceip=10.10.0.0/24
        dpdaction=clear
        auto=add

该配置只供 Apple 设备使用,且 strongSwan 版本号大于 5.0.0。

这里的 left 和 right 是用来代表一个连接的两端,在定义不全的情况下, left 代表本地,也就是服务器端,right 代表远程,也就是客户端。

uniqueids=never 允许一个 ID 多设备同时登陆。

leftid 对应的是 CISCO IPSec 设定里面的 Group Name,这里没设置则 VPN 连接时 Group Name 留空不填。

rightsourceip 是分配给客户端的 IP,类似 PPTP 配置中的 remoteip。IPv4 转发设置和 iptables 规则配置可参考前面 PPTP 中的 Step 3 和 Step 4。

关于 ipsec.conf 的参数意义,可以参考 strongSwan Wiki。


Step 3 - 配置 strongSwan 

打开 /etc/strongswan.conf,在 load_modular = yes 下面加如下配置:

load_modular = yes
install_virtual_ip = yes
duplicheck.enable = no
dns1 = 8.8.8.8 
dns2 = 8.8.4.4

duplicheck.enable = no 与 Step 2 的 uniqueids=never 配合实现一个账号多设备同时登陆。


Step 4 - 配置账号密码 

打开 /etc/ipsec.secrets,配置如下:

%any : PSK "secret"
username : XAUTH "password"

secret 是共享密钥,username 和 password 改成自己想要的账号密码,可以添加多个账号。


Step 5 - 启停服务 

启动 ipsec start 
停止 ipsec stop 
重启 ipsec restart


Shadowsocks

Step 1 - 安装 pip 环境 

apt-get install python-gevent python-pip

注:python 版本要求不低于2.6,可以用命令 python -version 查看。


Step 2 - 安装 Shadowsocks 

pip install shadowsocks


Step 3 - 配置 Shadowsocks 

在 /etc/shadowsocks 下创建 config.json,配置如下

{  
    "server" : "域名或服务器ip",  
    "server_port" : 8388,  
    "local_port" : 1080,  
    "password" : "密码",  
    "timeout" : 600,  
    "method" : "aes-256-cfb",    
    "fast_open" : false  
}

安装 M2Crypto 来提高加密速度 

apt-get install python-m2crypto

注:配置文件可以在任意目录,配置文件名也可以随意。


Step 4 - 在后台启停 Shadowsocks 

启动 ssserver -c /etc/shadowsocks/config.json -d start 
停止 ssserver -c /etc/shadowsocks/config.json -d stop 
重启 ssserver -c /etc/shadowsocks/config.json -d restart


CopyRight © 2017 荒山本的官方网站 粤ICP备16049175号 All Right Service 网站地图(xml) 网站地图(html)