记录一次树莓派安装openvpn并配置radius插件

安装openvpn

挺方便的,一行语句就解决了

apt-get install openvpn

配置openvpn

服务端秘钥生成

需要下载easy-rsa来配置秘钥
https://github.com/OpenVPN/easy-rsa/releases

wget https://github.com/OpenVPN/easy-rsa/releases/download/v3.0.4/EasyRSA-3.0.4.zip
unzip EasyRSA-3.0.4.zip
mv EasyRSA-3.0.4 easyrsa
cd easyrsa
//初始化一次,之前的会删除
./easyrsa init-pki
//构建ca证书 nopass 不用密码
./easyrsa build-ca nopass
//构建服务端证书
./easyrsa gen-req server nopass
//签约服务端证书
./easyrsa sign server server
//构建dh
./easyrsa gen-dh

配置修改

并不是一定必要的

//将目录下的vars.example,复制为vars
cp vars.example vars
//编辑
nano vars

我只改了秘钥位数,吧2048改成了1024
在easyrsa3版本中,配置项如下

set_var EASYRSA_KEY_SIZE 1024

配置openvpn服务器

然后从复制一个openvpn的配置模板放到 /etc/openvpn 目录里面

cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn
//是一个压缩文件,用gunzip解压
gunzip server.conf.gz
//然后得到一个server.conf文件,用nano编辑,或者下载到本地用编辑器编辑,然后上传也行
nano server.conf

这是我的配置(后面还会有加上radius插件的配置):

# 服务器ip
local 192.168.1.20
# 服务器端口
port 1194
# udp协议
proto udp
# vpn模式
dev tun
# 秘钥证书路径
ca /etc/openvpn/easyrsa/pki/ca.crt
cert /etc/openvpn/easyrsa/pki/issued/server.crt
key /etc/openvpn/easyrsa/pki/private/server.key
dh /etc/openvpn/easyrsa/pki/dh.pem
# ip段和子网掩码
server 10.8.0.0 255.255.255.0
# 固定记录
ifconfig-pool-persist ipp.txt
push "route 10.0.0.0 255.0.0.0"
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 192.168.1.1"
client-to-client
duplicate-cn
keepalive 10 120
# 开启数据压缩
comp-lzo
# 最大连接数
max-clients 100
# openvpn所属用户和用户组
user nobody
group nogroup

persist-key
persist-tun
plugin /etc/openvpn/radiusplugin.so /etc/openvpn/radiusplugin.cnf
# 日志记录
status openvpn-status.log
log         openvpn.log
# 日志等级
verb 3

client-cert-not-required
username-as-common-name

校验配置文件是否正确

openvpn server.conf
//运行vpn
openvpn --config server.conf
//这样运行,成功了的话,终端是不能继续执行其他命令了,没有成功,可以再/etc/openvpn目录下看日志
nano openvpn.log
//也可以这样开启
service openvpn restart

配置radius插件

先不弄客户端能不能连接上,直接配置radius插件,反正已经可以开启了,离成功也不远了- –

http://www.nongnu.org/radiusplugin/ 在这里获得插件源码

wget http://www.nongnu.org/radiusplugin/radiusplugin_v2.1a_beta1.tar.gz
tar -zxvf radiusplugin_v2.1a_beta1.tar.gz
apt-get install libgcrypt-dev
make
//编译成功后会多出几个文件,复制到我们的openvpn目录
cp radiusplugin.so /etc/openvpn
cp radiusplugin.cnf /etc/openvpn
//需要编辑我们的radiusplugin.cnf配置文件
vi radiusplugin.cnd

我的配置如下:

# VPN名字和radius协议中的对应,下面几个都是
NAS-Identifier=OpenVpn
# The service type which is sent to the RADIUS server
Service-Type=5
# The framed protocol which is sent to the RADIUS server
Framed-Protocol=1
# The NAS port type which is sent to the RADIUS server
NAS-Port-Type=5
# NAS IP地址,最好就是填本机的ip
NAS-IP-Address=192.168.1.20
# openvpn的配置文件
OpenVPNConfig=/etc/openvpn/server.conf
subnet=255.255.255.0
overwriteccfiles=true
nonfatalaccounting=false

server
{
    # The UDP port for radius accounting.
    # 记账udp端口
    acctport=1813
    # The UDP port for radius authentication.
    # 验证udp端口
    authport=1812
    # The name or ip address of the radius server.
    # radius服务器ip地址
    name=192.168.1.10
    # How many times should the plugin send the if there is no response?
    retry=1
    # How long should the plugin wait for a response?
    wait=1
    # The shared secret.
    sharedsecret=testpw
}

然后还需要在openvpn的配置中加上一段

plugin /etc/openvpn/radiusplugin.so /etc/openvpn/radiusplugin.cnf

测试

客户端

https://openvpn.net/index.php/open-source/downloads.html

客户端配置,感觉只是吧一些服务器上的配置删除,加上一些

# 客户端
client
# tun模式
dev tun
# tcp协议
proto udp
# 服务器ip
remote 192.168.1.20 1194
resolv-retry infinite
nobind
persist-key
persist-tun
# 我们配置的是radius,所以只需要ca证书,不需要服务器公钥
# ca证书可以写路径
# ca path.ca
# 也可以这样写
<ca>
-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----
</ca>

comp-lzo
verb 3
# 使用账号密码登录
auth-user-pass

通过

2018/7/21 先到这里,吧swoole-radius弄好再继续

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注

This site uses Akismet to reduce spam. Learn how your comment data is processed.