安装epel仓库
yum install epel-release
安装easy-RSA
yum install easy-rsa
yum list installed easy-rsa
安装open服务端
yum install open
yum list installed open
如果在线无法安装,可以通过离线文件进行安装
yum localinstall open-2.4.12-1.el7.x86_64.rpm
在/etc/open文件夹下面创建easy-rsa文件夹,并把相关文件复制进去
mkdir /etc/open/easy-rsa
cp -r /usr/share/easy-rsa/3/* /etc/open/easy-rsa/
cp -r /usr/share/doc/easy-rsa-3.0.8/vars.example /etc/open/easy-rsa/vars
需要创建CA密钥、server端密钥、client端密钥,DH和CRL密钥、TLS认证钥匙。(因为用户名密码登录,所以client端密钥可以不用)
cd /etc/open/easy-rsa/
创建服务端和客户端密钥之前,需要初始化PKI目录
./easyrsa init-pki
./easyrsa build-ca nopass
创建服务器密钥名称为server1.key,添加nopass 选项,是指不需要为密钥添加密码。
./easyrsa gen-req server1 nopass
./easyrsa sign-req server server1
创建客户端密钥名称为client1.key
./easyrsa gen-req client1 nopass
./easyrsa sign-req client client1
根据之前创建的vars配置文件生成2048位的密钥
./easyrsa gen-dh
创建TLS认证密钥
open --genkey --secret /etc/open/easy-rsa/ta.key
CRL(证书撤销列表)密钥用于撤销客户端密钥。如果服务器上有多个客户端证书,希望删除某个密钥,那么只需使用./easyrsa revoke NAME这个命令撤销即可。
生成CRL密钥
./easyrsa gen-crl
复制ca证书、ta.key和server端证书及密钥到/etc/open/server文件夹里
cp -p pki/ca.crt /etc/open/server
cp -p pki/issued/server1.crt /etc/open/server
cp -p pki/private/server1.key /etc/open/server
cp -p ta.key /etc/open/server
复制ca证书、ta.key和client端证书及密钥到/etc/open/client文件夹里
cp -p pki/ca.crt /etc/open/client/
cp -p pki/issued/client1.crt /etc/open/client/
cp -p pki/private/client1.key /etc/open/client/
cp -p ta.key /etc/open/client/
复制dh.pem、crl.pem到/etc/open/client文件夹里
cp pki/dh.pem /etc/open/server
cp pki/crl.pem /etc/open/server
复制模板到主配置文件夹里面
cp -p /usr/share/doc/open-2.4.12/sample/sample-config-files/server.conf /etc/open/server
修改配置文件
cd /etc/open/server/
cp server.conf server.conf.bak
cat server.conf.bak | grep '^[^#|^;]' > server.conf
创建用户管理目录
mkdir -p /etc/open/server/user
在主配置文件中增加如下内容:
vim /etc/open/server/server.conf
auth-user-pass-verify /etc/open/checkpsw.sh via-env client-cert-not-required username-as-common-name script-security 3
vim /etc/open/checkpsw.sh
chmod 700 /etc/open/server/user/checkpsw.sh
chown open:open /etc/open/server/user/checkpsw.sh
vim /etc/open/psw-file
设置psw-file权限
chmod 600 /etc/open/server/user/psw-file
chown open:open /etc/open/server/user/psw-file
将目的网段推送到客户端侧
client-to-client
push "route 192.168.255.1 255.255.255.255"
push "route 192.168.255.2 255.255.255.255"
创建日志存放目录
mkdir -p /var/log/open/
chown -R open:open /var/log/open
修改内核模块
echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf
sysctl -p
修改防火墙
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" port protocol="udp" port="xxxxx" accept"
firewall-cmd --reload
启动服务
systemctl enable --now open-server@server
检查一下服务是否启动
systemctl status [email protected]
netstat -tunalp | grep xxxxx
将open的隧道接口加入到firewalld中的trusted域,确保隧道内的数据包可以不受限制
firewall-cmd --permanent --zone=trusted --add-interface=tun0
双击打开client.o文件,或着拖放到客户端界面中,点击OK确定导入
勾选Save password,填写用户名和密码。并点击CONNECT连接
勾选Don’t show again for this profile,并点击CONTINUE继续
出现这个界面就表示连接成功。
在/etc/open/server/user/psw-file中新增用户即可,格式为:
用户名[空格]密码
密码使用pwgen生成随机密码
pwgen -ncy1 10