简介
openvpn在centos、windows下的安装过程。有关openvpn.ovpn
等配置文件不做说明。
Openvpn Centos
#网桥 openvpn tap模式需要使用
yum install bridge-utils
brctl addbr br0
ifconfig br0 192.168.100.1 netmask 255.255.255.0
brctl addif br0 eth0
#iptables 转发
sudo iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o eth0 -j MASQUERADE
sudo iptables -nL -t nat
#以上在tun模式下不用
#openvpn docker
docker pull kylemanna/openvpn
#生成配置文件
#-d 取消默认配置 -c 打开c2c模式 -u 指定当前IP
#-s 划分服务器子网 -C 指定算法
docker run -v /data/openvpn:/etc/openvpn --rm kylemanna/openvpn ovpn_genconfig -d -c -C 'AES-256-CBC' -u tcp://11.11.22.55 -s 192.168.100.0/24
#生成密钥文件,输入密钥和CA名称
docker run -v /data/openvpn:/etc/openvpn --rm -it kylemanna/openvpn ovpn_initpki
#启动容器,附加特权
docker run \
-v /data/openvpn:/etc/openvpn \
-d -p 9494:1194/tcp \
--restart=on-failure:10 \
--cap-add=NET_ADMIN \
--name=openvpn \
--privileged=true kylemanna/openvpn
#开启ip转发
#docker重新创建、启动后需要执行,并restart
#docker重新创建、启动后需要执行,并restart
docker exec -it openvpn iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o eth0 -j MASQUERADE && iptables -nL -t nat
#登陆docker
docker run -v /data/openvpn:/etc/openvpn -it --rm kylemanna/openvpn bash -l
#生成客户端证书,输入密钥
docker run -v /data/openvpn:/etc/openvpn --rm -it kylemanna/openvpn easyrsa build-client-full fpj nopass
#需要配置密码则删掉nopass
docker run -v /data/openvpn:/etc/openvpn --rm -it kylemanna/openvpn easyrsa build-client-full fpj
#将用户证书导出到本地文件
docker run -v /data/openvpn:/etc/openvpn --rm kylemanna/openvpn ovpn_getclient fpj > /data/openvpn/client/fpj.ovpn
#注意掩码为/30,配置固定IP需要保证其可用
echo "ifconfig-push 192.168.100.5 192.168.100.6" > /var/lib/docker/volumes/"/data/openvpn"/_data/ccd/client1
#删除用户证书
docker run -v /data/openvpn:/etc/openvpn --rm -it kylemanna/openvpn easyrsa revoke fpj
#更新证书数据库
docker run -v /data/openvpn:/etc/openvpn --rm -it kylemanna/openvpn easyrsa gen-crl update-db
#重启openvpn容器
docker restart openvpn
# 固定IP的正确方法
client-config-dir /etc/openvpn/ccd
vim /etc/openvpn/ccd/user1
ifconfig-push 10.8.0.2 10.8.0.3
Openvpn Windows
服务端的安装包在官网下载即可。
因为要创建CA证书和用户证书两种,所以一般会将easy-rsa
复制一份出来。
这里仅列举了客户端证书生成。
# 进入easy-rsa(客户端的)打开EasyRSA-Start.bat
# 建立一个空的pki结构,生成一系列的文件和目录
./easyrsa init-pki
# 创建一个client1的用户
./easyrsa gen-req client1 nopass
# 回到制作server证书时的那个easyrsa3目录,导入client端证书,准备用server的ca签名
./easyrsa import-req /**/** client1
./easyrsa sign client client1
Openvpn Centos 客户端
安装方式不限。
# rpm -ivh http://mirrors.sohu.com/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm
# yum install -y openvpn
# 启动vpn
sh /etc/openvpn/openvpn_client.sh start
# 停止vpn
sh openvpn_client stop
# 重启vpn
sh openvpn_client restart
ps -ef | grep -v grep | grep openvpn
openvpn_client
文件,仅仅是一个启动脚本,内容:
#!/bin/bash
# 客户端配置文件
CONF_FILE="/etc/openvpn/conf/nwct.open"
# pid文件
PID_FILE="/tmp/openvpn_client.pid"
function start() {
openvpn --daemon --config /etc/openvpn/conf/nwct.ovpn > /etc/openvpn/log/openvpn_client.log > /dev/null
ps -ef | grep -v grep | grep openvpn > /dev/null
[ $? -eq 0 ] && echo -e "Start OpenVPN \033[32msuccessfully\033[0m!" || echo -e "Start OpenVPN \033[31mFailing\033[0m!"
echo `ps -ef | grep -v grep | grep openvpn | awk '{print $2}'` > $PID_FILE
}
function stop() {
ps -ef | grep -v grep | grep openvpn | awk '{print $2}' | xargs -I {} kill -9 {} > /dev/null
ps -ef | grep -v grep | grep openvpn > /dev/null
[ $? -eq 0 ] && echo -e "Stop OpenVPN is \033[31mFailing\033[0m!" || echo -e "Stop OpenVPN is \033[32mOK\033[0m!"
rm -f $PID_FILE
}
function status() {
ps -ef | grep -v grep | grep openvpn > /dev/null
[ $? -eq 0 ] && echo -e "OpenVPN is \033[32mRunning ...\033[0m" || echo -e "OpenVPN is \033[31mStopped\033[0m!"
}
#### main
case $1 in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
status)
status
;;
*)
echo "Error! Usage sh $0 (start|stop|restart|status)"
;;
esac
Openvpn Access Server
# 这两个需要翻墙,所以建议手动下载后再上传到目标机器
# https://openvpn.net/downloads/openvpn-as-bundled-clients-latest.rpm
# https://openvpn.net/downloads/openvpn-as-latest-CentOS7.x86_64.rpm
yum -y install openvpn-as-bundled-clients-17.rpm
yum -y install openvpn-as-2.9.2_04614689-CentOS7.x86_64.rpm
# 第一次使用需要设置管理账号密码
passwd openvpn
# 管理端
# https://192.168.70.222/admin/
systemctl restart openvpnas
>>转载请注明原文链接地址:Openvpn搭建过程中相关的命令