Raspberry Pi安装成VPN服务器
今天正好有时间,就把自己的Raspberry Pi配置了一下,变成VPN服务器,这样在外面就可以随时连接到家里的网络。
网络结构大致是这样的:
家里是192.168.1.0/24网段,使用Raspberry Pi,Pi的IP 192.168.1.110,网关192.168.1.1
公司是10.0.0.0/8网段,WinXP系统
VPN使用172.16.210.0/24网段
服务器端安装步骤如下:
[li] 首先安装软件包sudo apt-get install openvpn[/li][li]配置openvpn[/li] Openvpn的配置文件可以直接使用软件包里自带的,基本上不需要修改sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn
sudo gunzip /etc/openvpn/server.conf.gz 生成的/etc/openvpn/server.conf就是最终的配置文件。
我的配置如下:
port 8000 # openvpn监听端口,默认1194,我修改成8000
proto tcp # 默认udp,我这里使用TCP
dev tun
ca ca.crt
cert avstel.crt
key avstel.key # This file should be kept secret
dh dh1024.pem
server 172.16.210.0 255.255.255.0 # 这是我使用的VPN网段
ifconfig-pool-persist ipp.txt
push "route 192.168.1.0 255.255.255.0" # 添加192.168.1.0网段路由
keepalive 10 120
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
status /var/log/openvpn-status.log
log /var/log/openvpn.log
verb 3
下面就要按配置文件生成服务器和客户端使用的证书cd /usr/share/doc/openvpn/examples/easy-rsa/2.0/
为方便操作,这里我直接切换到root,然后将vars按自己需要修改以下内容export KEY_COUNTRY="CN"
export KEY_PROVINCE="SH"
export KEY_CITY="Shanghai"
export KEY_ORG="HOME"
export KEY_EMAIL="me@localhost"
export KEY_EMAIL=mail@localhost
export KEY_CN=example.org
export KEY_NAME=HOME Use
export KEY_OU=example.org
export PKCS11_MODULE_PATH=None
export PKCS11_PIN=1234 执行source导入以上变量:
按步骤生成key,所有内容都直接按回车接受默认值就可以了, build-dh这一步比较慢,需要耐心等待:
./cleanup-all
./build-ca
./build-dh
./build-key-server server
./build-key client
以上步骤没有问题的话,keys目录下面就生成了所有我们需要的key文件,将它们安装到/etc/openvpncd /usr/share/doc/openvpn/examples/easy-rsa/2.0/keys
cp ca.crt server.crt server.key dh1024.pem /etc/openvpn 然后将ca.crt, client.crt和client.key 3个文件下载下来,这个需要安装到OpenVPN 的client端去。
现在就可以把openvpn的服务启动起来/etc/init.d/openvpn start
客户端安装步骤
下载地址:http://openvpn.se/download.html
客户端的配置需要自己生成,我使用的配置文件vpn.ovpn内容如下:client
dev tun
proto tcp
remote example.org 8000 # 请将example.org修改成你自己的服务器外网IP
resolv-retry infinite
nobind
persist-key
persist-tun
ca "C:\\Program Files\\OpenVPN\\easy-rsa\\keys\\ca.crt"
cert "C:\\Program Files\\OpenVPN\\easy-rsa\\keys\\client.crt"
key "C:\\Program Files\\OpenVPN\\easy-rsa\\keys\\client.key"
remote-cert-tls server
comp-lzo
verb 3
将上面我们生成的ca和client证书按上面的路径放好,右键点击配置文件vpn.ovpn,选中“Start Openvpn on this config file”。
正常配置的情况下,就可以连接上我们的Raspberry Pi服务器了。
最后一步,为了让client端能直接访问家里的NAS服务器,需要在Raspberry Pi上做以下设置
修改/etc/sysctl.conf,将下面这一行前面的"#"去掉 为让它立即生效,执行sysctl -p
另外需要添加以下防火墙策略:iptables -t nat -A POSTROUTING -s 172.16.210.0/24 -j SNAT --to 192.168.1.110
为了让它重启后也能加载此设置,可以先将防火墙策略保存到/etc/network/iptablesiptables-save > /etc/network/iptables 最后修改/etc/network/interface,把以下内容添加到eth0网卡配置的最后面
up iptables-restore < /etc/network/iptables
|